PREME/G/MU383011
02325950981380615109955346687470534499199240926707949028050798432951232072810632266809946917476328792621863881300106398130350328580622344869763874710503467623931149749524517154809257706857134434516834713074794157021941013039397987450655169562988351406747351813078855831304901414624593399755550145682391930933863352531716752761124755886463869147326671311773370987036579237372343047297415339019671083847632899137308016787763916792816975933230184489362810787558451847852637096069719609005183438591741264400105347360593528027062165388534261190625283649158421625568916791626375207526045572550319097111731236097386813103637967013835356338061917923795926363971972584885963393725037469478111229916510752672618900160987900320546498630035817339126990678613627848748519423959693843922588543408432387988471456766309909346585196069861955364001440627024995858997772263063192787936383481680275765424823797360928427413000134288721044115918955818862369069071434604883287023087086658925211123912577995415711576967714728854922170922722179617750770407073553244914730154669721498000711097479245468920305763241170690127454955538659498178592356926387335403336921433367930524073365554670528158954674916617944124865935922878523395538761203736191569553456422868290536805826992577911218701032223211681059208224705541814913181168571299531839398129712439311832620194954434344993086103891452966420383368601442848992688130591287228531153201484154602964497815502220306361575568699983838615864125305159302494226355350184674969000770042975479076244564067972593722913294729538056127446783746614104004244568507819856523091194164560017556437461621729086995748010987594721354613935456107650168888709840557952938642440010551380488660681630490880870811611483117492758559011761348625696503415622747339858644163271765586361808224426911261691446743274737291349623251090235778189689039117477038264597714985723281054665306299855522141997701535936106247126189942294984013818660595889471205302645140227478596820122656697041792637433809220072716611736562807992864372401543185895938162383830278057686048567406121281663161442950207907227474846206306399027442088951083743817248993141821738190488537787810793686533588746185070408821929927314713199857251481077397211060362188490098260134438789776686006758108510572827797287445181112557374869232365804207387360727983553078777570380918848348095861491039374306546301781823251579567212127532829187631531221332113991393950192692228152286005326303524471519423584395784712678553152297539824544628779915888684371728297465821592169749143004927490284895695258859842129620260176267258180701821012093503642684145956244470332909734309286338034262514101097345520423471491617024852892398195666391778874941831555259781758261549307335213519555880350941555036810940475412642613617908799466841529490605282284997698421510548895666854704262813595673267617812504398768416219679450594112255395420513829395011107832043353806008273800334393248433811141765445869930396778312105618773836167728447485316483227087959415402001460756010742410428110770367399780839241189291141328347626669595453915955117768601074054763997166882403136029680181691958519017030658085725411765598731613225488045564396482895461044615454122831926854733078775366418431378299499950278964087195743739940231147647309448401526549679271232509138077167609551087765220405814728432273733397693917174463121039993334377535496133128959991968307538810620667344436443050755229833641637628283120330067950807655308743426567927531114925614309467186354172596058831873471533893093866655743759309808503508444984815420265331875284085225200808268645362354967143970052611751455402016362688578313151654815279785076483034727475463241540376491342226206849477279502151558246717799396152125293392687937628070078753538905286600371013485418755505401219306460172707218598073929327108711092552744035471473252621547614738748682084547902847428499440971709246520287631501038384967911463666958199635389012096293618839263215679515983160218971457012924691626927193879059605445638570527348233952618708248924072796807254413360077689192246199618265486094107847524582924896859266579863154928882469814917331638242457020284193599061122318382860756614969916948321838102391456559546257157434305236304295285293615554145039527348748077254361563197150030016109132960416533526595712437908819352506244910493133429168031863288122961342447990876928475250230191054938928940404933616288285910801388972283641863847813973101475681039225408499414143825205079289625460321534891460986525689299318708890826862736833331344718312475045020522408546977495781084514461777932227295024522953526227314337778682149725500767655117528904192313633766431726365656477462714217332800753856024843037656870782781187992425176085462169014221845324307908350385496168714861798886407981219419211440813085169416150873864534827753978905651884797978417760110341785704062900080833044031623238031789274711188286504457692532286951944184894049345109116890791907031303858792961179726418257715148152498102374165153356411101151309320875295086047426099886869560401769285565847864645881613034414460144377443780112478332313271546098947693354331666319799382436711344884698071947465320562268065375746520185444267034601681273151977861217963019430408126246911996032078328200057038992497545805995022719754363522555664912957593032112204267188364272959935806960817903914878673375421371532340278444466689386091495593325149576823638381278567529753790717912856334828422422443725989705376919895769233860820695208268659222479909344876720446905567613116903188082636705136976307538062919926605580798018495329822363513747521091015139999633842843592384291493023339484069295581723790621102341821245334586497340299552985818382571626238412770353010752793145777657803451115462417809910365358266626718059386927175307242211266596436483438440278809620613050402273496920572767542613973744742871595897240168761705751056553863623742307661841322868163782355410614206160498740809040724236670401014791622562401256687987548613024293887218836638669891862230442009768071358332612618420126634293864227976273891337175573095014346230348225250819661146589768296991347972145896572732313664162442045088215851135074274622320117498256710449790314559336595512458472810776269110341529581788814362153533059531870915962052810763531838839780945786328155322036949208338222688691583236857408448079225339379783869364481536524155616721006561448547600159319682845932030116459979449023320125676970768841219859819746440509447123292295885391200966483176496255879624216145897833265522135707949299798412172184949474770762661192027711394553607161487841314969545051136293434015169049962695279244364704630460865112020976247846588754619898427659891132617678579664354282613828259682109665492161395771305877315626676699787797028056112900074051269992775759425173017521734634985294198853616658785710739386145004841506595544182094336931791744372644848316384895823197760608492510413046090333832961634726344365862105523017198205319050880739114314054586637890817650602477674266995879161661099796249933536828902392010321909920059310175868134864745461402177381716202408207375041619560202819638350039533481840995180716719878794764164070881260158477667155403532439894483032110597630254138836464037169075825862971221181324801743982701194194644200287327816586909429382463004395570790944350434388101560054469909311498963379590552083120144024011526100737700292959361752536016941596433372478186893495762923820568484182843444159909159675042748630295364161251688405115292609840599889653167429843369958290415477141749155017222996446419054475585993612469950964375793520325882819927989701118560392824256946301810616623134936531936413455238255174516495558729599205856204011180253341599209310884992389491074313263029769216912221337611252547311266768868539865657513439980983132570803631536731715766270497124660427311898035374226029285587217345759298304980943304917078284054009947753532905206025873607197701423396274481459338188391826199779408982566403968132933397736027746005670109691579725535537039574350423282752662847058341903054213273726497253384153621753311365539547849026915457518917269117256703942915568626148682926382627508248120231032545717704867319866872221303913009849175071921628456424397791951107778628954472350364793452885845913290357071011274214462796194716962300362712125817354240711318432524101240061006090473512562999034109732529502444928856023187661149674649509243719022167922859903289510522494053675630980515633585186847253039935216618042232051641743480338331887402073619003231555621261199486522074859331835805757639206540651910333500132862530942005033284293030595985797727668453101786680852700261907693544511254786183514081458316477137886747929340973499530608116946343205881254002477704013292880941473074843037555155111796094028942462267271609139271713512615424310806292785800419052206947684709422232069344651718756957620994128651436323444896502428614729181224922250837788950494698160892724385161357593381898346351321761080172687558393476455594391510100062468568992950882561803617879315129112412211761639656712965383794929181306063300614163878605102294619483379346994696429147440787560211564191323886414076151765664319322092576762183386857680323854156322334705838303727073934302532456687064966705634582492181204608059276248902799526413661454154495031820195388989648107458431365589396438848004473929764117177936579156690539850711411259880643769152765517321865649889847356482251465639623900978423889197796092541959658160762971512137528662780190947457737447903784927125407567368317788632294373257687150788965070032801735040546479744548469669473619857112025176490689656550802896452913667845913206027563365175792368855903051916234208055927715268339549951756484827331967045813132838218095261325420829692407301737393239399852983449989506068064231217894940233784436928954503870966828004524918924038009778695845196950633761483458603381528161892094491534839503871191253298302192267125100641207252084694872745703363991840556603304869888072155015155264647569665067831043106114243469764193100453564335168337756987504247464665771520732587476886779853158310164365333671160199304949023028801928398016848279813904550670026755652097225533173031095893133349083520316447773247934424116796689551499294944541062071872718774055067452542135764721144481672778584703392365024933280469727200679448076880404386919379509174730034500135956829820963683171132064462409613296498648176952596434031258941624958288457971070940327823154112336505877312019444250026817694947792729148680948638392848367542911105343525227908525482926893730249426271914811037416236412253347361642880790808146916157982163869740810259280663698710827535555808604404588104814096272525977248428384528243803117808057445565978889365612338683349584952798689663614363654441798307434932467258631716648772571758341370500022453796518103808469471462574416401339849192621347178501979477961870832386893844472209530273929712313407410607161940713563469933858936726091112949163264682801768184557388531658688774051111324638843205511868882572431629442946970332988640427398044395621476760607982012680138714416472624328045354433598387279742764312598681875223765359328379393631923487447373555507176872514616895821962991503967761812568223793156907150589080673979203389222711113636537480790670296998248685121272789794466816785450244715279430883901002475567643604983280090867896269763341500315342052561545917489166859650769317527075705525600480380509058698331298407429868350872756172922902279754234396988284016440733297716304235114444799346744102702204961322782947547285172440305846519820541283206204225751830837670545477857619990115950931407947617723276752470616688267621314239219584009914384163676250102609482678744150417482551456418438720013509860969349464599895169639487124865717122339606012414639952001052486719922416658354030100844355044678547539924428635009309477682276912810719634851658886733643358251858598445104458088995216527573688485303978536863383238968078321958954005999179190799638098307108369181723269290282631104769015653151615904731217035761567126411580239371990640978701755968271771819270661437310222315638734167398124031469846256266172847068693042609468740370251525459145878928797298764328106977194244120344797443292248435255740006263129453094528210850194454403145679820219086261418573695971166621624542935263364232416095556252002198754402527409642725732905024233344096591833004451587855283724567735487793520356092752541544862814850962039146040379701234907967710919095792596782054583585023341403266254334748459556503844514355481739951410971828286188845962789513110919186767246031070171042120344684822967967402500589602027123056295213043796368643038413821667073978049140972867496802959825579318189321982541757894986430171684925872193493997446860173173010578187816225666031956091282400217837200420492509382084140608246176655128476282684807519174779768153179746017303515792672538073757456469346648331955542442613001202734938701843022416853434267139680785012037431157427449718913416967037429908404509106180011920473268009722737054661918401878546178855326084867445630023844444671815617353295630444375341996632029494956210517177900671421724103936513265316552097283532141827721111774511360113394343960720495402316942839968821229032429676096816285589512716676903106743724977549910686918532795578696497765468920210290997216137168739177876887742261333488533355229742255945938741584361704483597682870072979882277567290606180261024936860651754557608744952379877444807337117488566750017867440594815497851838178322597752853630258593145376438606831089819909078787754109783635831543086837298732372450024846654111165091751703070282102097553835266073324211618543381218548006831043573346347584789882499587690778037155727809681568387132021762945881355984228135755073526836014627342056824977075985696336014401941111112387736399169174780904247220828467171920776206006537622936413076324855179175194658636353656577631395515199608563169139429379000282466552644544108368893227714243188519316493731532825756232119777719237000193323454059219090904277732786221442872594706686975970178429531378211286575255351268140569876963948274901365919413362304303932759867782517925946721100039876165293079631397873875683796925633389150491420077975379733076904680852267732965903617417585205335712544617125111551703117042859607270267265871680450905935886588366761721224102435789860603078011255284099039086783021724067285651358635605909855227314908467450934453879891222117984840975952121892008618765489306899483689505845992905588713179307666077818680006028586260275809717849512198710204806875948920724297015554642890529030965466620567680564628729823047807463717609582331708345907036060774852034182032213296078636485447368215695116084781593207215683621101911874486948494625548052483907337950049227684227206866876390315162178103235089269966247678530674564642607554972632177301834373194324866576205925793233320036614129692306383885628853136157298078584307271073759564184987176906383994386370382576155868726401009737526799371770044754275374386567820677275700104855473384124049523168971901180624090716677905785485015644431104361808087588994464687406218092724712902554949026626228742114722536148422638029520242299587242783446025122846804082690416920219825344812032261473263603382248310853376422004575359915515569595134180211787738512922440690445834192935034597974283289198491941444920418214825831290030522727676296175885754949661336187372422950619393927960973392012993524895709014139745067354095071591314821184466380256072984965015745150118518530050920671399580010416836954858000245173570916052727019399604614542655835386152929519705963419790403172429310630261853071358811667728396222713373747046036816163105466932893858797184333032302139171231305485588000768971895451818063972090819261145573832452556894486265673361927279972091818997877185550925675172073305131709686640382470064732091834735548411033282147714501877208726680201205376095512040300103403583256878319139083164878794739213216400888808678078131535394194858915557466600799058260836613284784260404392796689921221459661282538262720700400245286990288002672623243264616203663730157387890535391987174437036199935267937369862244124020858414847025302458975887778214505319196965446934859169875848094582757930555300071701288809967304949949925573162774122207158983509325996010395002847405309295873336162879636725295524803019060696477665918204825848133239746527812075036184649446175936106409619880503429773709351976241975908318259835108808945542584741108696423603329767951215482351084044731511478476602082750417181542002367228655229114845523688778917603197194298744834681672413623011343234489040817470900585397776589979991909554601651762350546907769107822155024161812734679904842144191739515837712769182117835881098862344755692174007297151737246830469000594323882338515589178280027657584354133392625913653313622342674014912530711127363564397305472190171167642158120928830993085433093689831087866914251139857242410908945707575164042290151810943379059926432925829476213771512180953168693154858647223832246327636219180522857094446321662927829443875118439942761585327893341265406091575144616198992857659090706191800900123452330476922576181656224993797560842436385347055335348709349806695194477749296143435332160637676440477161416127086082403514850538747136379854298716140478993494819032831981560191604962332473275360299375578349581632829340862508188884568900749090807480278648834636496978083407231073920113497959591881990866916316942044460415571053175236035890899007299350144787693201218598090684174862706282884433511264225193729229589564089979221750524204202611897901237722809444211895596932257305882791823494524141585649156431182863298284179278805003457959124609644186793456150641481288016266797212820027478691718698015377824770109928934459251818037724247599536480563196913531262965443680451812397014716525380800098137162079092053485646380176435583948603233557699945918787189963254749101972832997511405134913315914870996783450519287747568953883166834821178050720264149136052516513669358089158109895014312426125871720964608896730663077919349914235002333367732442442643040640121245950194718835712054367267406599169695240593079220470334572905971333371473631394379405118645048494378723674267880539578433274721556349006313453169371918175905281774583231856216402032294192092712474469950451780960615623057781535191765969053084262023096490317198800455830979719148136348458375780850802120995907304906060272358696450413022208509926459571339455465438542408133818472654304473538412215917523844174792049154348774218907653817297049278696883271172079822427955123153948917705490128021667220208563602977321064731945329137596146344179979536327776779137077827233836918888927489903855743280901751336088880994589048117508057367341768004293326587435761989042660586702572757260990836808772154976849283447275800685050996346125922179464071435406047987475253054377454744265076902721913989475892035366480127177991560858182152319291716237464060668690701342948964769691818449156171465445460029411498208234221939288655672656413972713727196008498500256362790369039351267132276592816359561704908523547597613364885653436432034172522138598885881870647717938764085560080006034360633963213993883539917691196590966800245408080567125355750207128177476830770966362458272755022743678358045787329887921998014469600935195784205038701927772363133308738450771834190396838448516625730210726183778736525707924099551840580700880934981662546541192114929945240359095130278149352358374402730440175745289025280003648813469535766518437704584857238624087436780809820703635932812082447830994584207497629112126213241844268106068038561534734279399142518315132775880177238544659278956184337306094448399231858845843092622354532092376202679307424694160105548917508974326061393440516435330325533935272288631801060506190840412867842691473272425635513663236890692058839302951035520346890172478498930746900615715990670858785898608563623721899446546154966508445744392504101721091850728553237546957371436258203995589293207900249964530708530651323691412759864477790768768505864255079684150470088512049165670276534693621804972529543286245931529224842225841971456940698599857881483507551264585144865037468537211976819583999035346858903562832641603961540573225554068033723070598962012051526200851189431650947588315428945717762818466046678791907408830796665702540491385567796847196654495283459903205412959271350617058768271775911491613310180071280642879088096248560102685761831662093929035052599429157302510486193779499208325990077958550645299227184543658884364007995767110837475222782150209975750949895802899353068842194812576579010781587352219500061708505590847491642590217453260877298269227965707040623177827939552940609970703411066316021459025578321531027020761472020018320401063751100867148566300381669694518300673284679917119047764825131910215556054376872375070623691069086575562914487425313244685131592284327714820892191462704048006498761422401786894546028003956147610352595447662241121868122774221008965060394889127230578709892385604996382332494496472208375573890707421975740338146510017286053316874844760502823132541738319643634913223166510696198144773239246116468596891232466163951231760139871262850474366641848652488326612531410663796142002977519696007359268160107469699577714925465416924364140455489140038901195726883547135369892013185088011435794442885358571210332288508882860772735795842265654254593722790074838648718124942159063966809757472907816900431493775042537920489464569865572209834868933273119241556246656864874151170174524258089936508477056183580109461401504677306704835376908812411825352948835526357739457129017105604611046935185932870673675141792846206814768180921456645199329127548332858102016713154635919792174563771700940973115813474947746462249312607801187598726022025069073509515496223773650988994426148783388381220005704929514359063430956995254294208363963436484406300776704774079578593724040954342781570559458986505338230843212972334941212203438817358198105883230024139674701841981434038240373385370281426635062843652561718634486087987313829537988501119838768473603634313657894080650639033307217381233294505263529776383836499995215708141384144007535095205229744725668520309625506414920600323863134583751632659518169071527325350925293864705236143859670938240933275726701091092557980677788138070420911014064418044626986259036259075098055198211940938510248171573046639164816764548362478570491869140756213075865774062141387560235309401720903917111184659235228339880884602398270114224343030006980425438314466929965675356834859931566630066843062546428978129339093680415189194916941133148243770555288415282411959467808184616590448603966416786434595537144479323695223469142913215869784163672921430403941018722539105992891588053297115348670753241835756024882585066749200471809407968947891715742639120355667314124633855797621530011859323642874011845948141113875342799809332901077192419959697692718293154514194912438825281507053921295997912267900759593132271961065501711789310547538024663284641913562418170656461857734877039854424863859196295140691738630956123064688418783854808398807143190692430251272582351352101988092839350552742697320439752803636971204198133534857129436540801540169682010044303121219542316263718084949858001626403208953098500646873107992442263951640568563586240062130637123020634777702924328659922364370437952132886935681518162858585020754716466765150512625138607987269580029468134302988713708917915797130735230245400774526768642946482488647895859196538481917275378794264210790605818392052548963234865097519789289153330862804050854056156887134189197175583124189541372413813987846890890882170096362900941487565460442592007514945441417053313301578492292852029919944029457523444108613627391338196175208588502025901214667991873864709272073165158472006440065615103583176801193072085243053085920560308023722791947470388671842586516534125665809700521267380689814660060023650081829669564874722679313581673053642423600418699691393795530689678702669180936814612367555688650770339184171464582049680975056118177005006745742505168011558564803366740427867714120190106218560536165256718085529805135382955979379929833326594213335273419050897570320390199482526517440298145948940491604956201836321514845146594778709016622456390220701181329786064731038154606395099258889781274996187239843589017625743473041894456521726471958037899516716288922129493780871059805249324872434504689475478455467407415567554744955220769375542529468009332521221563303743123522251814288745193469630232334086807028546429562998158073382272614583394256301954826473646440310448910264645040089792201486257674864789577159749224293113523392470240697130947303019117889135557804000207734681464028500248935385561685755979918681661258718179101633313079514003878977131570239363072156810005114571736412277423651942687198687888335675094923184613803753731283386917315768284989379176057270799177907232789188773715264735239036399023356276806492169578610193740902612812310443177685386180835050040505283228319588502160855026915022472575071007732184603445785450655113855323785110776560531366345763393552493838339685981454525506987622463787204075347447373377710377043230539881494191582366101828818945987087142216637349550556780978105226590112914160127383680919715554218791791969657134311362937380877249840552880789358838356800932702561945095845932970339809710504837934208128693111780719705435234841886644322763860001951640888122314596675709237039419476606320295582154473303676473759167812582192102280336789525299032395547831147006445175803258577660493075719203958818076094048076506602479285009534764721997270389936641298712370676108039714959676379615710476819761853306979931403309885447781929032861822824590381418454663804064115924401126779169580258128583202894449854009924646218466437459852288388326988169060648903878622540499896613073976247590629689440503975113006789186259632309288761049163917171068342158765516699378313885783339210401410139911165847566611675921620985383771973416850130157429891495943536278741756596943983899419381806325588270738988256764222735432530301371325387510859870881233058181230003591814903659287470025271915262137265518685029036088119663958702208831619975510858552003227317851005275691282647190777073404018367439488794028674906666093357904588275707411119350007882247636956155061953936590788579228571448272978482452985727535079690008471248355579198674908363177033165133786365157675316282322342704522376110132220413019114730955110984682702125330201358427339292521925258135043409906922969348611747436767376068669142840582731682850612521120249734496559174526008192099054666170101536662975120276846857520632868702337851684035173672282022958538552070002060565846423180187142664966718637005123291243974368744122159809881484694126328416052328524779289649185020075819069768773063760423776474305522986480275782876305742848999667828028987654646292825338587825541744794097300486867667365226735792604819908889915496013336468493902682811683834829418161960626881845012851569165910828892811004568149581500464592881524341817462896940070458250177589143687479821547563642416866923221052679531544054077686288793083836642295700636635020058166043696431947843918862000019987716471844204909205451967466844891276602093999756121010611134831994966663344004175342784749455274692453934398953507221351235920429588911777773728096109967843652155313555056239611412818705784083173327732321063160000364115090083924572405307981061886301142805601678025132954354155113049263453686742405284882356335800536024428193962499444130241014619396188194902158362276219545337164224590095706653499530792637050325691648528407999267867295572853786886186972279545332097457322290332487385226648421671546130649362553825942009286224488988100259370130975070009146160788702598411403335974163537361956531151255110743064057783762523313245943106048186040187895873295011912321515913857463970891763631936826922920793141445461272583530650192712371393982685257263209862682576451624759375408506899427776961608394413127484186052996531590666129030933828965663604396326509059727359852983811824474403057917287398368937202457489721747636103554933263432798045260741861879331990280099425433423777466123217885256423189985879257660526235396885942423546786245026585694831355976610235904388567605622634431757182162964636695901093099618106119214742827049694637439175144139628091690131574601829636011600141141999540526273151960380698526836187323759057441373910456182892873421274894352115569201156389266852889563458724942926595718423603503447365767325854045677858628331657750153901750156131439819198289004431924277303527697713080327913378843816122056031144224964466022643685794159944582671182547776015617269754655325863031320667282116105428706746807057489921937729127641810562966505195287088243597566321718267860028398715873083575245522763125916735077856732225162283924983019153208399819300537250192810299514189638078967861835879101977207098842399935116866417618728463805938857661559050684562624638944599950798113010192154739122023049293161570022559521055697118095874808653896959306813569832281860411452339617284770641584533885583240398935927333986605444755608696645756588126323902446010461398056225796675422306067734455330283188941863798626727946201029097743346100108928288343457091237798652123728358908540600197598600648217817681589624268968238232625169161177146520428483618416175116106090857232942720069726411759766636753078068795055022245922239374187773262761432934815565812494390583123112515018717852412933133534625138046780610296057574097670815019030823379479139289607960880784889357217772810543759417786201812846466454361966341333878347013603613395389364360207161038177153960510792658173481966648587698021043633979020746489613409259625544144928577750259819684912709886849908865143467057852926870741639265191418619343048777065495081319120637629605953414141285232282322099679078152430908507812499495937518335745255101859697326891316313939381905291493523173657881832962245962479749163911937255572734125044725658156720234139502632821271171335035607883892517004672623603940751826409771705293695834089641954085549833991500872004189746038229832191536531115678271399597327958558281227877691754476997668278750021992572728009606166883732555937306148875633737518798857700064041423471101980502074822401729358407678421376264530618119690774007732513239796937743460536855502233040882482181907148633507486146652968717538465225360990741617185792219088458893855819663298689682200289645880595259414558481483050853705567958808801598416404774597757479567101575938233096296664028152086705889827764092547496813112587918882114957134042478097409646595271908759304129930553749966594070282921402030672438157954065217259730605486227499520454811565896441714699351392656533783525095291467076324322769892720391662850866498508248544462656368691691593605931786913242082995829892638204072278958181438705766581606239533847977170084171042361646199800293022535798649843489476135842947849790119503315447416759479983787687796207034875784549183944546362571303921050575957146503019697292782498969890285972524819944294670636346405570117651783206041720788866484904456109557993276055028767208004882193856514502589023539747503343364977534316434367389433248476551738457267210902662807740731251295823491363299912082889669200673248036382535992087632607334952371761308774140035197647704554170033506946481581551257676075016113395901636122241349876387187943746207001566162174621946021464665594885456509644369674765387827590412483403275448344694377018507015831434851614453324130325249007236623860057509500575578494231505079514423757843127319460913091692105389141238200604266937517422664440581866187874032882066782460136928542607835603899086591601360195001467172891931357417016022225397417314372035558829012540204517476104773897906843933320614665611192730885430016159382531543714899618454273770500429693931679788619194976571512424308825047092373798700247592493984335624547394460612984681187146806935549222209482195664125574382257472043025698621223522592584491163266066707336682370904146384250259935141457287301375400178477687675970087120853341654592647956697822851996481226512909305117559038681268349572452378669783955785576588590776919559829203267799446338744266351264343873699880983327216049607981853235900064396815861556003351679120378346835482911715888848888970950977539145718429428302897509540115378184242198796049788031048187096503295471217533806652995484901758961225041689921955647278625837123478763960088024600760445283542997218799311213380477781330767098062687103944121149418987903558933608853682200205062577872679931246342645510372848364404111255187257130934837066092471585126890983221355460895819321568565457292934653887844077918372334395487752002941455641925355112715252250688757557797090383294849577969281363252050135399673628011824911789280798524643020789920478312436207178611750831899076396204931324552739417785865665301020907342404162083101784849598179734006477203592804902446294362391458695566857497739743147890431038249617898189127933699453733073581648076958973912578375076836927548795446652363751863487659438746804909669504479321353412001635531794738281381459149259261687599086994911343240852061818647413326471286907903634516337645195896734571263049807932268443095781800813314681045882017718674758975402427498988099980044402340781468808764001214492631447632049323001854807206403485099882161765638301919006113856365139714828758418862052817512396750786045403760934394941756070898968657207344315453551653336016015189971677925814490297283715399034934881711560060708286951311731672002566311221946100155056207103413752119737774141153129126567378440009285077575814613599621095996274131764134507551887228838141581314671391026792983228915748791317089515381122306677130999248781730280964732067863901721199263739308182004603336584166027293147034984368252383857166807822911279759493625570054843158244155083360948040653907479610728466284040591971712076260546025104430486103803272072865633461479030358871114967837714232663285036303826513927128812253587367869020853848393601836392223851215741748783420326864991804875461915866731335218982484881415452163573939820296741597909487247186848632506992944942410849181237218911266957446948307700276499572212639631158781205501795238857152594861011276738698602188627427623119233924826607213231322518383280844605506846204093467064143998645991956364571966909025929740841358428416839040326530308558440537977906720037701073464696175517394419278948160815722904051320807412207893005698170042834719580078735773966972403571407805871948161291909036216158935184137399588085727918526667425066589930980813994049065485702715325634395959395491464565826272044886923366010875959379927504715314943658471320577209718742158093528643113822225904171241742277441720161583016120986837451447484763600990893739538143628621193454791692966862919456995387330986079882709979350840860247632589977299506396925513556573929836318724063922768302708400712607673639660177196887730223761478703294048973325521690066626159863101202946771574283269138995521780072930431398185536108309522986248310599742854350987526484375547434675552737563603878255005090703164966828422111373125073523944565662674947305400759231571437453749459996261549085580361510757822480399593064611499416861190827134327109495454875924083846005732980179044454354148890315741732498540310759113065378990105246549625831043143356177897501962232992807095179500398102231603626878650903081571671224185136818849393225117433729913404709058444780258668694300596663042319016224581901418497750194412098985316578899098072066433067374059181963470770610085106831691108958604878623561044538513512311281176509406806019958555316883439946745466813482546295811063467052920693173284137277237416454513904482700827588231570245671640346244776240882013382883909150716089392376297504817545421351672953289285489800614271157540372534467005772249687221433799314205340387693674579642450072563718311810027467230660703899919536341503237152911471096576596752465154482005011885250406326704232565631115684928447269216244457822711463708052588585502603121792870047318076292424535833949526409323548671169886497534423139144861868619603907395985254505501624777070572734441297471394305000830002241492782961824055333701455033396113652432899090857301632139544490407929603844745586850536444919476831919482628312150164462797887873711920679096442638722844386375047357053873169446456180560329724052466771288892725946414337651184081938910609389625278237413545810672776158664743094835346245620455329407207602151478632791473120274011150040611752292574764700572605731648491777651372396282196501791032255691274567508553046976104201050885017769833270122022851026305536526795258095963534052265927626604546365643607722213817332951967289308520719651185026642530440802796632470885727496219366162602482618205067268046933692848669897820841234985191357322138493031582547052219615251008507083142845446258946863311657703528087417812057677285872523278612965479933083368578061738933376221454828261694998475841749127735208466284963144832702741655978241568014262282297280735829732593391864072509595374006896625879935135750471665754680835057464946765219890638639618622522291679600717099060264902269318030166455012718006058925440778524196911417152778492852816288177497337711654345975729696397111069833698402471073493857873063081970280979133410129760642852327954370368094690791824058652975481532177293528251475242455234462402982238660840181740977158582464522142135358673113398095333425125313929748874638467110485845526297543412034567605161798731548373085209822266219125918353840245519317504383700951604351105407999573181383402433642158227297827587240377394157782501850695743835683045364591007187843718730371333399259250623270951712488828294654506335865993088251795734359325811035013010877800745123378069432866760866836258582880810550546513429061971003989259694562106438850057134444319897235227886148686474601423809454922502725560453901760049630546910738032845805586053215671484498575352815677775056123262493488874201247588066532766009516647351570767063252720176570999287965381944019811715043010671816866779943744235307555602965619401379084387882142824732975245806825276023074240782065892257981522168726182734861921651145745252712234367001914823930322865249102218016907713824232444165865697828554784700813989707320469468185662180436630183001479088009809996595221546463909632973004328568332899595887435169907438725878772762356574350187438339927965852736504572531604915409985403333891775071749086657844352738428681920533085681019264360077488027075797354818040827183345655650130125603633751682677773028853160582331483504460656713706048742992998591422852891073366196937505269852656512199635607122426311561393010017138978809352040004367944952983104556644959835324267253822833958782552547042274797008210056222450340606185067993166829069919806949120842914234277885951672522453505098525037491614228935916644465248601897608074328792144091276579441800572319679871697384204093690367086766986880320577991204883790380984297365765526746338384601790925337295171690412317013817626512611881065687740030940110063955325783258990918140281557324889481365656105546274124233574738352902132892457401816174488322750600375659641454558354207325706019417034489942802866083595987988952700659185531450373697076300978078842771435985945046401453543146475746236976986196249840990518828951530962410455514295496358958063072421171526552411862276700723965910969243606412409896432816520804137016136519517553860681917233146373489957357502658167444033068810859741165373289668738887848353773484679830566471171125873169292170724759270194725311899606522549811116359789281150522872062656280586614108058570886229615685584222361529143461184783008131888516881358716872231233042648558683828401304442826440886913680265583328225415591928879627926748933282859218424708361690380866473408953522804114648642114644194703745170730902310330108875412341298832685881853771020621326066280622589287359481389252183181669260546399304160964538229904895566489964209554715065953114337127144564586271657249028995282568108346146302762209369331741913289815002624284856724205123478337527086214333268157871354707826858941823409101082662930588494935701064519208857474980169847074605541395809139574541022872429567800225723304015811847399056005361674195151554783740663971817268575240789233218987776492701267008787662384168940245058655871153615855416209124834990834567989337394956857565379126482728731878994942803451972214552601751423737451525079571976575172410181254102816554765061759056679882296107406531129449116187608385077727826063362991932607583866759570575915315680626440176350979202677947724676427106931971048531012126705309690386946865368070458081232948252988913203148682318433501092960210105863850211562659606496867438683053830660280457126994457351767249495690636711880195098129939595225995690134745721004653754604342045315783359704392078457845799952185844183264950213962173062902548784289535881452539390252363985653830867604997210432086929205805014009585083179740630909169051109537539282071482558898114507942930839345661396649407749055306394619986523147542173140630253325927254217949637594527403958500440698125578258233540857310502307754989276607539612654299802916909093427247424185725084735458142425325812934516185497422924575593390656682073894970159012370923457855320439316013179497511987733849347588142934622108568242753321128966942080849108139368762848457463910502409865155484231028994979472256822390571975437275793624473135366066045297506006969253110120492702909135647120034238400279543780520421519020606656494209095400491049925851001752636975187899093890847028794213023837875709868255132886025609210646043646387855364817594655174125624856557046551762485992159856315621480105585849635115980769973234496252028322493007962802819184423854648829081428867560910057795511387635536142478581589886943385744704647237808493829962668099308722992786343789241323974806291733681841003242982083927839684894488695753079337194442119605646911070501333631633948111693321802699589140422011388609492481137444285526920528280872439472350335312378145694797591061316547691172262703777494967995237552456915556813911218473043574119317646474190377622132089035081667509469285948103337512002413220900949028059405586978531933378347368601394131129121827963534506368584472502999757031269364714619223041239049439129664870904958662697646260239290972243280844949728529191255465734351993746525961038558171905836082474469256864229771943885455388332745626009468833098378112670669940031401927774297057755009698938993572164114566407084752140416127130229193327482894910408220484224957526565433277918276030548355784240389713217737054882929272997618345274849635820064303690612844037788277217838763431843849181935929262803417530754178631230562407779138858576370193017323736321525859033898567939891404242345559377993486081328910867687704870488890015060765790140857910771956636580793553871884582562688983897759087516319090961838871314126220145231257136307717657030103824387328314292355157056215426545127903387723685922077936727689110794358526227900305017670747623220051581136641325995597212254939664304164486248537385744895182417482795743670493234563891545548314595952245549812647192340900813590328563332370543011194982703970039577026026944570765732888620512442768859942942385776649578761401075544667873463145760976937414122646097575892495296024800646692227756083291910712297823074076126896049231979775804380379428360690853081529042782923596084517287638322901160771274469981604423019061120339360982406822438135185497255682424309638892070575935421396545947555706201974800072245527742471778144342534382374799803294786636385558275814889877748199947095813440547236421234419821065856378077371947505620269863483543798593823144777283106005538910626002064909133730360065505498397071201584005728816743794811283128103278283611608104822759997254260193791315388068475338014497235297652348257214029892803869146634259744435386606097754599092099632803222800584581607216146583779948603945487924558568380369411539001304085860067639403221578719165485140723244816750229644719888890867772793032287312849579019667356835060575418226697560133705379587765822995320109455040667017390414543630295793179979533325880136686957601684167279110164334518669794510241797780960552641083225013909368484845351014733870420939198156649254401697563771685089138370236473345858498007895287939888827314247464394517422607767428846354298599921339217234481846447447320360574782269806179044483458903724874444224755413091198619772839432251722376147842061106238089239791079455421090672595172181629395369646090150183124481386450000874586004464240993015723477029142754884877468406240593459051374026331651164658855636690523167764163123312179131507562013698719409105374163640507335883216098919235322564198251045005493803404131759190877539774564270444417822698619671378109479021075812700044026584844557705342455259816471546033137994897563917366658526401493483339741794056903337052960882468197335892100909680668781354844058380112067863120054639873439429286568972091714725616125802568093090215083967621986047099256058788222010371283724745892910938357221035614010534901715046282220605919907732933052923303913426073036053838297398038402998542108310737434171408069467090102634509463283586147121613814810069055557489200930116468300005714993527545446010189249993070851733399375193285117378758278856991849079422695973260093374586001031445627383067869627352363080161190262741976794911426807471471994740682490067936635316828739315416927040670235017553589821634426197563581893884816844860862549080751164104998953821607814952240166622458041728066987254791863327481569673495289199660347830494689161081043865859140577103486865149499874423318586711897625314795502249683020794387593771681290463129080327363010139621383280065993014217450607702476487490153243226184787027346361403962716018242595369289009110240088431291473786208595767858513434196976981898200733841279041369383358946572581560175738088688802929943971171116902568780400074956062498390943272786275237089492241886111098878102822118002379323685136145545036451057728645443175290040076442193552695445570141645262874885031455910186848011546295773683176119265590727357215975273882307211827598606925461463945071812526153482794807960973897912616802612116222189114633631928925144462066889322618314900343949982250767369572792543138332548715042804804570840998244835273132406117090253637476485846063142914840568592037803810122995019936923949917480521532298613870349715037053863919518957279879571195565545351340450863289043294918518476860767653999952797560758770137839486450559643797692394471353995506467984704579508700748290560995845813905575141022688299522160733627466835626053055040626388981145896000023903991715941558437699288857905762172329401436536951656444469564013573889497827265722957285581243061656559641079699842606886342517867799465351131438615562536819768945615434268381011567939772697085092704019710463994135521608534071809075383392037628360600260937054527213793689902966036648812893191499406580867392579190384802565890969777982471344479875891296298740883365056067592972919766741329621004466156787263469979951651693427344151710878741216086411284943233607718824202676743076868300380856908524717117381826069067364425912359605434571971900327581871045567740209853088214794989660545343828113027117947460736980785728965946720863169886322588988129015336817428568230275392769201471291036940893764890995816836812381884728819815522819322706298048638620116506851586402089014610400523789652165324357113241680991691821945782397265247378597529053772147828131897554887610733236837302701491527389684940591438967716262197928085878533216412190433054156344464073447063287861976956791934365017238620458766962288997529451608763778199529101279666022647286623734350900875634191753522171615790621072344925574828201973689581219736925225779587506960044429601544710489770206645771711953270009150226310085824747691387172832570874677356366206073469338393976892567855048564625467282039793875941625660362617966693834932200313950591472508178470404222201391704623732159498741264689794441074768876407781019546995487659088930673344946498318935066777609682896855721917786454042824040070000405752445531200741169442283938800262313479370453255907930359990646701329223426190567530540089151846618090924262221733807566667614728126006761030653478028940312740665123875362130048566799655723801180217983744916160171640278356333295028766688484141112931659213653033076314067155567296014220933293117792851868687104041882768158627195728457725441485803518837859735950777532492978778277631744557716197313477939328431770396961102358868288066057271580938423703839687465954823609453212753677005088453986033389962201884101794727899527743540203839449895043074100929764521208838669699292860185401660392491849226342926212156141394386906727091320775305098213145604025655667830609878198009425574345386601617469603217369799739783889372422602535126682317165308744986823002476083513320880631661481408453707764147295887636352020255182811140391248772908834822585475294923126604659411301215070456378168290800346184089497882453247907193918766748308653039431482934213338413876497872230595560432748303875933156939477926369659209617395212003932751658468831497882856199032639330595379106718876265065103517825816013948605970851553654297735946253933912686727783003576880684787736419232779563028035286678807545702987830111806063424720883310112428442671469864367761046155665850892796810467376481681969600159561864264984267287227817019326899620554707485698036435679555046957056798950612092413478413854181662143910350880412608869542575085607379976066955246181365395172269418622910414950379431774162904634370221896114347142914830432175769620796033890169416249660787387548586756728328228975897324762839585317298223207569304234376101619973264955103093991805147546834024066038984042328434943511102074234962933702206191434711958182009018602388887660500679288194597756207812298285380506898198455073931205897998049534698501636800194138543248255828443657753368658599020163011241591173908710258003903905439618838442819331218611872356621366298216848441771132745248210163098980169199808816938791322410687852864517282251368063019528928483657602757997540543320483575219614532798796881612290024830117121507648365823345472430291301464552801787593052719388403096001906009202221556096668243102873643346782479347137253406560998094962162156280167173743643954819758877297929168117933995019807947984830923781424297400110891082982658707944043594464744250363936862669969639566270826568627173496380968288742307788709825537460169506399775096594922410586626269385483690181642587188690691029329311664200956680903479146893716822826221297763336133304428070175059994781469739892661179107240759388550686614798557087488207370545348986660687703087271502773711539058983022415628423298616922006722515404875065467605980335710071509807682419365002773020900986302687311976837342366600569589757062736630983103379351054337361637015771293731892219364093168304870562771138172524558662975772274685159065598310175446514369354657618336115230319596881479251930033396992531378475530290143662182136888809896664743955254709994641275661210294343337797590152069312330569994143094445540286271031126060763747827862756405571239362209911559966444278219337135186381037045162351360221515231248805920545333829310564215825830201751447515267288352977885688338864841267887663604570183080503940402908001005416747802919494184989818965989224494249292410228630830220296678244368764696074386572966687953407906452031462857166011132071312805208084549094671547894797343817295597866163918117598061447806073385884694098405664692136990474491595192514841515246938978553902006633436591447654374941938233926504035095826926747844850586216783300057283236637589572829736572501885603726593292076765940355425128834930554188558920870537908651563380056383774766487821577539767762431634110698926239504563416686000785157082761401023807932791924574957449405141400464945536764297104516250003899790790142479812165831643181013400811494444102732775272440677419171168057099079881339390138231510769376886460448340812052995798031929485546198388143086672315924240886252997711354542082751767177470161748504371393545782178053536634657617003704322935508715671979473561366619624761672953930398317248669671321174942439593446119657567730436538567172785646977586127631451367102655808157873528047099255888323072796013343330524125441916555469853259761064952856005412696380403763115879239032058544463459457464384986858733736176390236549789635143420670668589012339505905108801913290334164415469341907723444908904390411961340320238669396215092355356994926327782607278746262608461658586114554676097423894543951418449940810274314737191115233122344825392122040272485936312934491241512757949606480363443883472930913947660671285216237750587491810959058741787577506791512868689537503617000273029990105905905151288159224834225832122467907236929952185448920146282810867866743774643670709546471786422646645286179508410508901509321703044886480161976854317104433470252142736750899725786971620616783257982967169277923377111045797168752628987396323491819621822900546773641014983255903695300861071101919843257213821894374458553932984462827225812753341640041105410994278233476587925526935180350147545105453197201534990438746058157239327796718690927676290989242727716519995568089406858249817236073979229285818739370052688787925918075054373032572674147256329114752454302101774169002850707342646061972920748468966212794801724399032742081045527268668830860984317432496062181386513618911599249832582154997181683374704337411737783599367198163717158579606377664366938057417595784284708730933597928906601743451646854579197364169134463426445207637709842664355401671728752501456815768281011474553912397658787118244345850616522491299911433861750404795504243839587480063288691647017778621470045040400229121744827685789381424137055391498372199477174499755399792525705684793985171901266385609387595403375170082656294730904496063606284886249693557006948861171176323859482181117614611697170046989512529355533386152026696468846893871171165580957431130957379917731098458464338689383392344033448114020347755680337421581484521032823952764026606145312058686896324503540970516003519987083257355096950957213762422908756070316917816603257726154194657565205425182144657536563423806952996474478542615016142709324773352429998612762477775487427198154086934313503171428687786136140387137235753497551863235105874981052653498119195345434224600495149560442201120831201208471623716002758155456211067241450366869545596555310260298373952649210702797357340529557031161074213137461527995074738001896563946526077645745143709998920987313807697831456734662597898893856394530264881741190884712721214150308503586534556325883561452162656894407642659977360349776913786112967595103987056638134157966845477572151320271144877322686023827218072924521541418100348250217203343121077117060424542606953911872911451767987053424915235441417302991502157513994562284165001298482122342634610426860419555815925381303455618873875951969297740049923823014321879715452661727390097316196784403184186434987709297027686810998930022642096784931573579422886486065995153538711686540767115700249874003645068863893278769110957595972171683151808683523250373232397700440125167170987452794599272558744730039174894481450511778455407832121721343612345933029444584814106265061588145307363731804541420623220808685012436080007601981570453421593515779812908567499288754452981439404840456897571182898474641311371662707920918843240067576112608520393167262784715218457497995316122828178813425236148482112353743392732430177327064144016260714567294615616338722794475176791419703844223521474667559446269366133794589736362221259115457541314055338012154502422868533933691218910240920301157311790944393586666229677259721149917983080735791642255620567910294122375327369175271903873737448171411205084935527941854320052934245624777656027904354930098805629726077040021819574242213278388018078910044421508666500962278920499769955026009305353849354667109100736675039207264319459125553797288101053883478900798666733801755749884395870932484950896352207019934491018855793096216177802093978324665700279805522437271771577077671769176974099939550332255127101778641022458558528006403047968217949796436351726254488584179335233923782523900739655147973494039026398898144105077387672552033088108447811922587774847638142213814457429192061076051312036123099446880720753416865488820125295625854661609501522380864602747594986548575298309793462141638587524243871244281799540833829267621968580200017688722384622864878784615924706686273702729672139705651732913340724156784323592553380570396581330056723504822905097680562029489555206855126612564637906810598257022273239769651012614817557128019485637479412826426496943995074732719940275649973480893924576666614387452743306462942455636980156333672002056337728523636268827891787841471843418103339613892772112858118002579642503877137969372182552086148791413090045996349641892138078027246739314119957282391627563614428304005282525945988493070921180728255957440633873516117705438955137727410282484562633837698494473329778504183338286295435474087013097366124031686723272064975806379191002626722592808815106229498983952834571087163097306640299819705901830836243747050420650391209156829494265990771570340848854640250853137058465549696134883967218974106918431262416192500948830445889593814982636892476124908668809581624019881111420521359307822566531446826392522383609031567618045990961564931395142627909570419247444834466902721692923560229568391922063708990242070872125804603702940961993281653112556257154645545282503444735248264472230849328985392165593581683809413710429981204443269203407660110481460591845157055680649585053992679188228710115259187323644330599012505599289805243041961164470324170721797716500467151679380097796625150521376719962365645568810745419249277258714029633234531069514668428318010247932100457991158305971815215067741694461056766908911603151697182221289961047215347534905005430114350889062302864005098318931908044981513541545734364721186944912966703031290902619174704436840655075687895700754787678394737511574227430374072936288231792110504523610990192731190519485707361978324483012506703464931171859717706787619612350671795449230495770798353368305535213391253907553191289851245085746941891541726079124767082706099972045332054936269122720398671864457171383136961804640281246579245565636132975376311374323548457027750964782835459219844138120245294710274866809714934445667870741073037853866722109644985390497769844170386906839143649634458408829034261113441183371151689098051553904301150925227118594505806349703103824008009629574208646117339195094396913737914937423019588185699110165761376990243317056365882242830021845779661446971623300093174097756345324115883417327997777053274310799350290394854143013263935134780145165460083417094792288990359732003081013226258015070462567285892595370114166636575626273588484000848201608159419791860992840671178719219521020754201799116599868020603256961731319833853598663374188918147187370481724833892258025456126099274269720241061610304366883818474722086914721409596243644468454675287458169178450048387251018412770004372654673637225388920924877437177527717890153504403338077924967521902200543857245635558992352324225912652154875303270945984596631761057953847943327407211076793809392072925602830524128871194383074281791821338407677518228403873438641198796006369348885383177670428436393528116484889577370702845100178938739777170640619453199950146958989477454346430684878637019754233236870139034703292634838856602633113691327967168624822854297601936333052512622803737955581724368625968379749256193628293932878766801583985145428524595117268235948530160852845688633101245318576028588161407983753306025510444162400459534812534257016203662128633086365556977515923461007584875480924511664427983672689293504924673285871498414513170853095378228155626631689729301316545232097666473547729636086028921840386062385614893030046378255576118036068034445185447247421893780101277661480174948772210343061570691170619296183659993741552117480485395396447238699875984683294200335796911814575223517196094571492199999573012491854674316514904828518582203994989003693437177096788424696347049987884791556989789789921221963220916225887264536384527473561841585623921053115932291431735861150941225902706477965003344773840146659564126610065176071560795451554352948470196126662579031365989335813360594034248372118923196633126309528940311921559072372788447196431960019670832434711908220320048422174489966680381880181446938394041067754819694118200820953867559488302898472361009983646539080850194125213883598106826984620097869486485448245296272443209039469147719334768670362403423600608621742988377453894654489040447253490754206805008467778458486105492435537511759431384239016899194271456284337517355621155328998408944876002935272238583433084361129475908611818270600198394246093025894467717231022790592603281479575304901481842812759082025956994476856204156929085259951187228389700708369715133362340698059397183527870660127839541906056534155566763961346277691730957563527394680489406518414092077513456509946876787315710183073108106403528157076231234202002458208232558247230938050587426815026960349778776089538615114861489165307800355548602040324866408197394931192306472380394854325722393280014950437209158600431797587668780464906731269909520181231494832564160936852436234416687889716410816820439356640593182145842546465902942314824424880202609903523962900141860683099616040271372176526250955447778133867379078854879201797325042714285856232052820904035169476893940440813642109223978394682729908990785291933801539917527836941853385016343330322029574457095248209911072809646118622153769625160891695674086215395236498284108047212170956771043254599912129956154098776221476999686391404367661846975481442590184622536863925549015492376325755537439738160355373208279221504633381556213634578687003601315904253995079727564020321252409871275150631897899952198309893592448507942034108899622287614876697704574991458448140837104168463493866110652854876907989746539582667628285158986893972944576870934676438982554858707185477994863648511544717371801130449826670851235669710237900635537014442304323810141376351026894762486528622279818090490545260874618428001105858416909995427523341692748534658971577125681102436352569807761308066895325678424135092089695103193066118637572296102104618477235266997369095649349483460999254790150706567972971527823796384909129230892066644558638199148677771781715957144378328281605633265179137004880890480164449529117906609430464060688714713283046768320664348856280916472197347875438153498106016060396538886279898943604830721872381288965902713083300130480648884937987323575558923353863992062979564111122831217447909470387620490197936638827078555396496257360211867844808134350309134164518370952111666862087480774635630503628856223786618279527470066145677370371968811264108798219578925162006302416459825955735520443651562858265372517433004964543996223415233584000434977438572958339275798062355087068729961804437273290258749513007616463019188031313434392613353046435534352079427237846998634448746460840259262291389963853809689718055138193053420548041119629665287966443666696925911320900675773541399003947241617752602255352669427460018535878703924684279675110989360381692225546749585730350527370031232276673929573072434612318099751938571949901903795562287681219335221670829081760151983017453787207515489663184948610679885590158368642606727579043478535804489280512651506731710432264649987356976394398149594322404653420678766720187456305497377989683947748349124423846654606742144366651661510735807169224889942044180133877628949489680995273975788958859676506276044531966350487415302398108717023404711889655502102875643031628937099966878295960512615333910271113029912211329023550932408749618911449097179473744917801752860285834359362318679767858056812315020902833704556359843689964821434737875386778928650627565186401183623529831829929227519574734293107043019821812303949927580174487595175472312408927501858463280159433043753774635240439669643223377951401288617570545979717106626485305793509913905026894595945309558172922204655143538983399308963862039814564740891482667685150037518532380696531620246627298854369515153428771221357325871331903003620641356161552961805032981608688403888943003799066331086934190351294521035588968586511080839626978578844749695744238622550204971426092039635882229616993943938187352117702739154486874899458462376113310923604116842258584738527543708293076115065770493186464328069520869622809827523836789102997408947212806512695987082657784153147909859172170145786109105552407555873089841294169390779511323076361326265907210596723032492423255252855439345777113515200707502720611379484305615415246803001379999297299740249491345874869682553472852991963383673110432153914103682760972222863997822912683244616330714987316889299389540906585047776193007269459149988971480349161249352723658738271178396175916329751416464698502210080268843329523763354547271372160823042445296013870936650884777231627405730506432374318561648257838576454972169044703778006421247695170947804548127793428768592109719387225976993538092955454273121895395078688947698351188184787172803734627090445880737320631807779318149270703585510551619224677872866704467560220398266941297062987308822518711666670927235536671476806713262391632190315508347924032482357736814750531713332544458491427758091192538216053048518670831849922371082981219131309781835243373441479777293562136090833430071496195843321257830621648325456996831617801133521505764036463081857195250100326838196320961264155029614415456018415361716828861600000088762669391299865917762163323996610017709515054221433835767102370175891773455710181636034876417550034866696902580641713028238527333064212829211546870569652501654857073133900189979778991785679952234474617309456606564406875582848301527001674877078449546017030483783802559522047757757712022548987138038063014208945114266652908350959912323035925052606114430271640500206181070594811070323086598395527595279006264251594433298740439224265900899279304157833982816540453720521864427200427597889905551203432098704850339939395194538551541213846593518151548080504916436575189923898214357512803981429943302704063533103764943886987564955121344309494901000635601938571173500680432089662920030508731814877068637215191513656886488160785028293722297690855965529433229843967971591262665425763687284823329336664205964287165351136299928953803085422681860822848551578042374191168151976616803580738051182714144523947697459981785035135876598731406145379081963646115926507661692526272766908704092519796214676174180658559155256291810279467162906904061915543250333100405182067132245731433451872077394445855736632535894769638901241880303902505728202946702069164297221498058185173257413068167335603611930342356117517822738339821059159925979636514375431151770576699008892729236000404322907061837846191357481929546558577377503429892680601900229581475792978774243690345276321349870760506063341438642706590522929635420183921080529214201208161290614520464380694549615930921288166216839567159289138608419040577186603221025777246341705452636981139253041513165837456103211298525191573284147966216695200308569910217693812653384697229784454894677640226376370345926885814165810762674444552584092669039650484652894203593351786299541073472300019736186024587858510991182242182823628124685964013459613694831082949934822465467175602852932943902259920791232149667326230122713884719954328591956514753245367367618450084887440675873263231322354452365361348229439892821288522659708134442878236720621470281008795551420046043769535049530337498131868326708734958375061009070215988850177063235708444338460831142308726835887110815631339306166147248750984004943356295163423213402020694188724031973827595812508255438519188905483027563103257250135166178467938012076972260203725175902990405569689699886673825112951305424371430697084634744369560702152820371624319145086103891389996272772768684749177363052948468622480674061812107657224196732983577189251795971026489765207921998205534953386669432697385458989485622678137258512972590697634334602844566283159744098754218905912861462187440055556753352126099897271728000459392399953851082534735680895533912019768277401187276322199271400708781444519290901062134490214569068999298514415836312376505321311802169706957535342615793358160534526250518367033263907604094137726241804958340920564254100925786119527374060490779290578752081587075256406290234031882132014439431572360987729672392655347955201848454815825625116073234772079171023825015976509626697560501123086757646380476761353846360037041154155884203748841398076738743779620703857282132959772784795153368478881091008389201510988967403760744008308539248079531775972449267783970813725179076042025334616763652752934017120422308955466881660128768506083547288332804342534325230069067807418161772845429825246046592162595897811033436377095098292149036729662855097495415141637927187731962901277555713729832157932846327609355081501753214233723021367037198503032212470479712666390086016697490706038629630985730994928731300927598143324605347685753940691938297647509156849811831351406837652612052964596919431925524044444415077718612012223033772782600250615458004610430890734563689184359312900524269627700093423620064747226797161882413574677101317221202910566484174554784922415713381645803505193873573138298766529774695769805986066116558685795599720432664436108364703614334562203372800689171462028716362168023481094690630258078209983717639875060195688537419251282659788115334243905028758112853519548903427973770116267629347864582249249633566446325938112244814025113143282640651111476229892682402409464566832772822994818943774361227729928313397540995659413294798861571982050237038837462277913254900310616488372644354988079839777864249905645275385518274523797294807494778961484420561501219576130276545238724268880049308360762858664747540653148616300222771675891343329351181465133425334110200419443093771808768062297743479105194031409396414828811481554610533150406783643576906207275815078296712099265658792768237950065536898014800840316859321847703095427717269714678373813111745790338254898622988396140155366873156141280750769195955921884549496923964608695330838960288821940317210621192124160383486225971882290152768450724402151409455550550522231306171115074206825560928217567945069786093712701633963545987804562986907280269534582922801856375956373499273438211126555732670872415126816068784130948347428543966587776329552770346648716259142746738339860184636177830054730914282582783089691087828531757541334596287774139604274356618816798404361508187070321304342462055775172407255529369115693719341306756820542736259619579848356322794924334957490291413632191839567384359424360474054395213779249049180779719025669899571928826066574534270464891399792417698186595559027754002601885992998882633978464659408793890741004195686873668357607722590834767397860065181873054948327592121011604423706480845830622512079478450617611680905146631047916736696227598913837497945140806617727166258082645228576641736593208398602207988044752457188625907422719634796987702407039544483780723278141218184588261416449489764911655827718487279163786913660104303586756417555830869192132682769546676454375772359236238154107566352182324518374628702175567034012588738974532152148885926871640369511884305323935531557721479648610175118715040117138006004254182617841602037958684509229543066470419548089654340364250868771589034053226720698214750649591069543479127649117430441036488976551826857593743968084433184621993647617196194594159987916837916993726741774720754410282490612141644592287568262802800650000155985911562826354316793089711350386415922133900566626620084932259973218177719993715794914011897599558972790110589464635654383470698038502809407168171182009500163265802546335324189855437301047640701843315258434790795293770702866429439627411632171323060055534977158017920431182855166494801612617243882829510935696164688405962317156522992396670970121038070000699793301730206575429660403342060346048530507238884378200437383191878104246854942024558084099401548857619544622903431016581943853769747722503221819716241569037007651939254770295224398307067543547286811313933563964474906684540336458948531239606871705943078512106128803671711795170377266988726703801566487051039456938964611054056381510100729996350711196399706607436949487808181772936572764177252774811962423027431177738174364331052859404096345848641493537082637519787789303771070073847407889504196787364645888648764275244692234103308563486149173135244238426683232721575755050952931765068068859059362519124181351948520472086464910596735431118761530829933592991924593540021116544064092763297761389826390948059869501019326060522909598542530437364735820478117449469702549958057484717825414596646657105784558191025637824060500698976628169289060176205622687299068358088479696699918984457661639671835852479833922796454962792555608471187242715509096009417510300541403577815860314543851867318486861526412392237897911177432669033438462908643167729500985727599445046325023439697892871326414688894702412572646270600046573804128917915411369599545912851665086597866796712948582572160903363011209241470017439272080583975390363746287076195892296797332836895863172058919591160606104185257297953786287618926000336959777385217116750497790785894083504125206110542633267598021600154561911201532212999981369908689559270204051074690379138495026051750063627807160785305997116216009230316116741903279793246086852758779334322544085229760743901445370438341533518575031684291337724565338824072959946737015821575339934972040347021554870734505933723038331335511517100080292653663144574388817545414477477746747159808593540257241570991856114371013687484613699280379451036532424128629427702589648833266019455707563383132803724916919590386842230062131864648722062195519530888268344844358473251237970414893311882410175219551751795942166680023750581762977938298532124694643263536615937399855758275964841512658840232589883835633924650498984794945547075206547861338982345197299091405534827080869712217888378268427235526424874326772748748898453749140590383179293853766487712520086931908329477489012708360891879701311758444099213787994276750612325252851726361097845094868753160271434532730969420253517228229200141666917752855317011899594019003790398502983648196042398194533996110523530355860184542739041238518580810326393350994552951937403966783872975521129865645522937698349545797016261631779274164309768171791807964752394383085311082747240715196140781663301210064713711851240890965422016168907512412787922366618143279765504431793910353221855247000070691392758031068625113700912311980731580911422733887559350522102189380779300559669278078741713012537012738001276076843403546363260164750222643518099114942116142297885675307124462818332951404737753598358564925677688379244928545577675499323916012536349704120124067988641113482140470116487380454538176073606990513814685012115382513737473182087643494730376701343364037608685200979166041210896403858426001377593205787440898513348759644098894210122253142202306414211408250927743175568788828404093129031969085064266896196458632082640974129456618391577824395023122972481914397078223758307886985540952577386221437722934296081799419015212551026704908539648447100763206360393756785819390277784884930609930242335614314583804929270602596004652378294757168934098753695487912696233462520867726770970988052092361561917726313099803186774089073139728997240438889367993684209444311026429376545329742253961919485654226110214357046465752746390591681045142198775469214484157558302596420044450921133328493537761288059122880729669026386303490567162181180301866007552156093797013576531371438897371298017758147413685387488145563283303840471397400296232342211086620669974494265624867902100033373955460895310574007598195055835969294814154942169375780434962604053559306029587922381813650680076729168917678124830196726766589817629071701707942323219219008059824590196275684109478472365613233889995821996257709663148593570299765683046602236175521659079158623893437532057648303885884074327249161323305655410023788752692336990813975811694602324131137210515949371420724999117736353259343618030710408853027171665746777271851514119438981754265370987056696717919917352510333264853180515428836772117843954774786125684900940551658146822966885319752618697587094630634364274256506440265560868838636473433954396123273687275718135703026107012552528794873357459035038678422986738724663744316273322697756842382625407862773226657988036969941556223825133434032948369369408754200477123692632433092552644412901734039037685511294622790280129417513487425662964779211103079073664222138504688132639327609629595811025871816931766725058729176041589682901354386045412070996621183980204505367511726509294663996938403204447600590673698616902390118566820056497960966147399711556735269725173660642867599640703867973609542783740843348909903110953656960034590101267168620230193310890641322151015255172442230516030186404237151122853984265841990075312410344504160084104995892806080163550361830797803132829331845131725433244065764653592452993003411789021325505922806343833612951852033054259419573681076770563644414015728109449502688456637920296859181166472669942480255793154096386160360922091397051532371579023518191475664364783124287406645176850815967233526585480626637285524313678201224783421257359163586000313924325376873772418350102948944037087751568278849531701622693944904610266238902034719753931560580125332540952848435523793621228921468179527844819533611721935929355298438450746846918956017903772780060499954427225641895853483358777681228755632458161929971907949535015352209082599642015792489860547316638722449797649583046999227114632698617866903237719788910884643728511268266457676918057673746914316929715147679111716564382021939473734365136030671005028778080123322905168035466895135497767170274753030036346867283688847720827874255578923462686268935859723407048683012923283876203781900909446608709223562354289091921908713084644465410243537483400122722342162767635018450053740734992955214465846701658524550680616128634277723806654783200426071908882548535384429086168416351191033785471260434813462596253173292620737053218878536720290904396010130981800236820908008336243223369554022982899393932276215729919309133838829493358796332448761822111947732738001835377329012831800110954060328654409828716927666908853751855957481033089684719906523081761034981387268962978707385910996818059973243522785556713575063344262935162692085065458209948543882109454709624281957490574038953074426727355680394443454475718801358972950737328090501442254931074212111162722720650660011587301998384659742766460891320259986118948017014448049156886077825834733008168390235934513593511457480399104344127566054928076136863250685201948071038991655099920591400953598992059618430578629868149923884562555031985837260675393940068126429794844815165576910333457373997941153966768098609748525873425780388305205283964910051085870487931779362408895147158819549749607037187173121870208077870260162313559441663908370952207375919098682130791191251208713122242904300684945376201760096937095803584994322541464939169445104783433847450549027073280302719362810645079009154145542235780724674907936494802852160600343801621709697028315315815369296127392268411369831389506937434318491365657647772644713022479370350758601670030616937870679776382144832739716909806552239388666122850043429050909179208261609376252014733309971519753703518919489293058457218072835004952294764042315664393623949367622790705260268283800279769087541662790915488407619424393269850089163854885875072960954064359041285287444033178267657534960480228604836233841160591377979851859582284512751470742587306651727062424638345818734043341772647122559847048896462871488814752834775658312248205745679511594638830833542133742510201726655273739624989785745733966261447228095020330759087112569168243079926519731469201827124706796976812192724039742472121968129237087059142100515310203068597842821114880098849303268736300452439738187833487910724726570589019669801498354155392257167546023284355167528796843063590792430621031360196298116682332919771630088502960470993920248409859532225586418822528370110158000014997699909886773534719517588980577904802690386873250771856065454834467714984936717182615911468436058970898516206226206342901914475926441025931386513644298079258142213317413976660704139741224900354401963148282073206243329612904927004699077466983363771973292899283911890094013486937191367332782688271587192122890077211689319472088737155616583345430350330355723098756129428195564527367681451584855965335521620761289659053228356721578242401850587412057871254287612804695672670561347743134894177072456472565668084076589407291241422306575209588612245546667674344826668477952289431214252739515939521071316302521409233822549829789209449134034890493473364835597928123000739365772875825634181121545874026373489815741285017112302490545440041264308024068123370235357403767142130120098301554717103516251284738792189830454928261105551885835997941355936241321688291070952602143227759748567910396094888015603752007986975949012632859820960900253480345974614638047623333173995605328560275624223527027039941896346569998203363482436988125409354495858864410031773045296332798472092163439969460179100709093836657844509876110513009762450824114625036969683393839196328391415744769589418355509093893159975610024680744770169307291771457978017156436151593856116219153885721237597098985841851098440477824594875792420165874634207789201869520581041307590328320150767392833878651379389094688398348533312233882243160025841296639772766202992029467215664292362960616076511966735299159490218215432800503153543748876553357977037811725091229521883154426503345716668459492160932841259668619710474076375470397449470350772424095032635139231224253221614914908199840145302122951752784376512793762464096471725607044022039788496387845611519650987179237141844144144883451497201248576541355404036940431553212715278318213365202548829269017027796984241411890307786775203896249711958364071365038157983280922303852832720716138006550665343493909740418692973517390046775197500095267961102989247525758185040597696792640522713643971233985966582115528629252093611936431045964141661648509972830473768787465818488641667188232757224674764791529851219118315155525336504481823150111675327828536137699738962675237773824784414694348316062548169442687095170513770159278558501977517174507040996845759211349873060192576448152579534186541710269214492369695637071573495645812708484077481487887595652174380982279913383164037601231369669889968020613978333376921688397438149843535862838701713169412752675821855606830148603003783364932827646442351788480971788704885280101513648865427792708737882731755016828238823987381621395449465873561271915161639403672833577108376545609952117572930614705688411871237338461760751398243709779536769114570359279696018435883251045709449155986950988756643749840306853361465765800541510597717088849149195413225289286630649349785844948463363918766860959074441558566094727912239092540430094159863662943859472101816344212064003449153284986093587419862128604572035092355278350510793354587743625279316153750404154022471998337404608516161970863250399855767233820789022922729324344457274987121140046050879775659052609694722658446574804766889071806340611067735837571067953613731035934350474529130594231456159346425198292837048844091342255142504006318166510048496728214914351426679423268372150774323811595835777923754677817474966898999361880168941598708345664706578749573181480461527309992339583581395689104582522971404347111666002736966243091487340792279703371318053259471981965452472422902891885897823762205078113425830815040968904684570655213778441299098395078223187745552927351003256575096764364203173582000755579941034873139815060783047625464392611968952487945205374309067693659251786361113114468469248448500733380874468739483940563968562990064706165279260540250521775681649206909089659266791874918248914644259140089006072476787441703681325102768352332219625506008584816652380650014733886518673298255150332190965658389794406018958596397695886772526136284769961208254999438332543931513150884470607083635133705234101196665962379755325038213493009117316150038820674958544599719361575006828175936276289656476458538365450207825547785960616066446166290876535195586363034000588529732152988635073875780263746029390547969805481732640648059891375579733714991875802945412063081693085889003348175672765448781573575032791440488721443671934996485143968216985385148863667132294406536715915552391133003357959619995765046687785597360224326113627791808547738538440119644442551195378046142719596179388945514233012072087248969058522173571311328917477403388085475376770209978366657010496154663911563626407990633937964352061044690233735165720448024826631596715258785464522213128543010559766781805586285375420470171199811596100662632123553105833973268483118847121918056371134352737195141343139201755649175449818897490884433769982813171519589367475337648103844524850870973910694294897996422907829182125366883148621789622553882939050139467127235172967380097438553207970300783441525075940284443193748469971275095644787130946812779230297792238331533657110128211169762789255855875532515551949514863629111650774450573942817926536858774163565115128672633461766877794820868106931464109628074376493096866755631266626370625194027940109088465524233523459836760224498283412308292865569826203426274014495417858085164738295472924889951087661381659872034411890675809127319048164547438227798626498109930602573258954694198317031339669300011218766319275325963994175048289429249800174188412342286039186823597189294573253001729602484033591965230119086173128278630800228810274629372410463932806536464278433987089035509126545700154255923191790526195522630776095529956211645895318112275166352523766055117024895416200866605875973434657843359468110408277940135936963887598636910748301917302425168211106026263660892902755925194194021395477844332248946132752034205772660966623436197337189311533681600057536452647441400025275350968708717113798500268076300075969896650717305717632328174025933741307318607531362097868733480063133998134544252394242950115495277053438086293234666952689143184314850234888621924910711034638217556712805307390757965766822211829465791052748590493453757534757201898575794420198578395189981632043082643434125392868866915233771150259030453076728909346554594762949345377734149771123260054434854007657911693053005991192884164988701515668758213651241413595058803347716723538532789110873241844762334809907831125649848687806256360488764138472989106321933815642802627490448042782762601189444716167002724655578121262690952668052662831154019617058057200174764649344524754451183293737646015226917289295616381765460848959688502168306625924244830412633439503291598951086784829422050093777896749732140483659759574102492372524419118499916826050108600428332389774560119776263856369345062822614749049086889416697486134598881169963265582503736674998878023493746749278604783516951147945438327125390085159012694264543696245985506646106354920169653172607820288461091125445890277686701198964335107057460158762081645017372681222362581176576600612227786459257701067172664073656592888405629874336672384723303163470979063815415001433708583807008784535184279039242308708381203601700564722481471221755713976473093052906985135465664532920798789266906243279399360952041192655274590073584618554168960067453334252933003975600797408037365388929608304280955222321917771734785149972658162519730157579552335449129705691540660712668845915800203702885873099648746375730529878700502750650192235274149845288590164014914724158336750101591416414459649961615671940714969167092433252053622251289031308629270218460384195550556757419752015636911715337556415290627028291896468718853179438752723196556356807821010887716625283610099047547550269816270860128740542158926657557213517421876367905528475845797756455623051141513842260323013768479871948799326581092768159407038262575152828803734387272282894692143846130357038541272262429517180353922544045753706639006393658152932632162435146178249249716973368138495511802643367470489303935512615309753059855060585044111126744250907053133404661181330842197266123436333029548065896440511323530928266254063677474199495178911374588229063523536156328981686548518686786793646146369682161232438760293294812169465027559614680679385188147166553319457851687629698193741060306223871816784682659006031324958109152333443201481724190153964425897211780553445818378601295033308498322994108957430336589016435935064470892066767372051812259177485885033382377635468745033422708301510508472221776395540324401562707089478783039130220739802903639035932416378808009316021323503498413944916771668783459101677652512191205429473704321836659875371211467489051429998717527581456428093483088988008537319067018238942830050472859141887903387554045438288826324059511655580809826685663958127180033068511904680436541125376063157497468193018383108987785266879186729695182771217215030112741281594243609493354436663369139761256602209126937353180382250325574989140717849113996675407592688100191293503512987920609576249649502430848247228632251986217406372807711514923054645677471657055765614126855197850461400608833561189843848803367772706667772527671113943103610260804946364156501082075515498225647949376615411875760279860330193849103679114399082955101554083903729843319892192413295321284997505706336228234654968717508551885731246648088854263416739019251200423764013241010927799637885308540839130363443189320809334405594043052305028651091747564396515165970711745804115600691725554805733167807421040431933884664185357014959909559354591658619168478256903441843086758002303023425954446075781062388726959401635269898903965512105228891990956583676277741917759415261291399322486732795462082406839797141424064515886506579071731082692446299727497211300521548403755257058981325720539112159926320950348485768730985630169040278704008430858095062190349805240044957305241144373857961383843968077024302303560970701226139339294743010718295730789497158927523353950717944844517835404938439629792535446480009578890491580713401988886819887148114707939645749847124006199037111547873111833778344502538304251849159042336238798580381324745520055934184679471813459717933947534030977344901037984842516143458718394891707558047517066655644953809440440725439480124578466973595204299561815607349477347253598605561061333585521319028771212266163942421472006706407852392001490010679181495825756581654554625218259280973999992631449779215890193809428450228253659969475755217107909274530555149268694149243394161779167631954628360413923323522879356842371028028278411628547538445825957777665097587964149436609403777748487907192351992120529858740025408195678166782603843487211948949873172104069992812202790897423868478840355256873043266485183631859110876775369151182272268102123498309025612555657901487803637819861358522442356854585132923566532016273398828720562006233910734019738626907737828934877909902706363707215066965408952923651322410870602009577076392688328625946980051105894193988923401900845301491641092480265552875780006277916580949747633540412960241966570954158670493154639519683100550707254106429360801086506567876912124229433471938295885953959638462287719270970408356015039138181939243584780763152709109955740950465077508964147265435689319852109869777044300143547797558408549996592815206413220810677584088884947026375004112389493488065441856462759575351173004815203746188171769235162132188204449499714256314323232999972624402049482217116923727273774428614427452651545385587006791143161418402351266441613111532400326934303888507198404116711997729628425450083289289712199011409488219052131197758844230328581188801442901815116561771732386814932806714058120210802677585837051834249380902086201417009493150341908437030552334351746194330521337723642257843323107907037714481980847164757409684907780603132334895721912046953517570342592095639958250792563875215437154706573366020371348110074150557348668167203587007538031468475282839943555069309511973393888075307545117885674879308880214785123629188178295301715672033233733709207105472202552308508624453785222519283225912235510170520234475157263246872750240066847059109634271910446111916559938338203641177174931891240140339164597211946246604341459834283700146092111127694663558949197997949602730204848624085594980461477947858837683014814761275529610338214518121493338383250880523188734830951564564839950222052179780579113174918251649588273152970405997347591144877267525436061622669598069675531855045513375938631550397104344059563194140682866521147522792414620450206071153817995358390738445192874598660168243338761855512196598101241994284080620378353394082424759224367700313623575553348716378623638745388731268308458793810487477552149011163605461650784801934329236392057862670796159290453452247580119265707453759724485790255194478620433855500591240597505990096888995610577792015064158999158882330209151632528730457085926605213878967125740752907323412536208785915592959626982825710644914879147180359529170625752583743891206835061847259756049500511469445083960061514165554152902430411500496720717209933467846841462919233516127664324606564006596396030296367638013514359137953569193602733490121827741609798159954672178764620139307738444861135187242886204554989842451140944574663336154520969563466083019176960600437143750745368822294538427590860143029176321867111567317251175566516188501659578935318970605682050919993811555458491263370102867491642934581286612914712029694471915119876639096863583920385681330428598117151573877436883275070799475029400339989078269775064220825251721423766341402337103579833806867488503185294078262754089401934009169454354010048708631902760391422453777999719787126518520680259798292207022640478719685177334234291144797150072220589036974878579640492017758475557186029871019527545908466653387584603786797052796582602840097749361749598740962078509624185729997879028007979310657201250820988916608371231990420656324681004651110707045323490292158253352928810795727530723202743642851532074993675125149056506965157172840079319804084128481354555640383443525993488847397970967942508685981176859915024376712737598056514323744123779603403183357297409793628594996006452195080757165796416256960830286196345986378485597256583055663772262586341992269519481032787120111040597473767979121795778866855207750780823295155756610758963873843723627931850696877333578733578715554998268471440937365233587280050212116809530310826429204825819405508890257569110389677079690762652526789971416110138806313700685061059004345551936901624062494130138756334024495050079382802967785434093543975000038803104142569902077561750329324529075189631874669395247734694415622761810988315968353885310401100248948375331217227545920969066728388304142270218762613238669814222181233927913675080026462201725044995922586203149799701708782995250666806471704954201095344581396181674452082460874216101556773930866883548408289125217020151134486369571996114868650221579310582848561330850167645409807894810401871762704681405493247351482959745722067110101655975821316660590191018464418627604382587670823478787175317540289961424705847442611252107772800641499414439173375274304270438432277761721818116578844082546865838086476391320620558416311771755182126294601781693008729491031851160468871829239384598516450636030308133745479131101062980070987261292981801904197860368797629567332688743459478127999101534018558825507664899882940472098296602320334883564056023565799282077528219620266962026660804951681428684278997614535820578814833305206905485593435221723630438400392279169918990214470302113141350571983251034738264886083321878646438812559594330076849667753713174322616251970395722084422843007279782920343906297072020771428624172648325152882972527594026804826312295690719637150042142319177497693670269814088887099115266181913067735045860839389066619809395961159892543209459323813609106522678134850155954567012471481178319793050834975399191771891267372787408473343645421863071690299368540256190615064099338427070969686520432890209794039656613232161170074057447222646278959007332716454568523056274761539287379558127543193527698222028540528337816499367205009138907735333563533924838291324917052268360786605276459262461383104504461106076293556125311685669864015953037262814176502638925484710481049467245024279373302685977653659863733730446843013127116419912824847183958915714206742759718985823035075960722596048434456940510588118796413355220524734969100704990396954141169057557468351450335111976382060431950249871413356887671610672871184860745816378735108412401940682645350445068107265002888771969082946752078045923154940379702973876521105645276733451185577557490441445997671013102657159512739009800179592025676714862800305847105471745588967743829890552365576423497721198063574471836466483232838656921934781952232012718639194676752702620715915168496430132096689351449029384769470980981942035420389902955479309621021659221533729810058822320938299739174186195804106374298741873668679658981312726916361811859595809090230214658406497725963086822632237051271298919934960646310438881043913907694164215348629883527647250412547563086497369404383336079186574730090874086164555116697017445510691319143910731219342948932040444293621777611782783795894464374787795765930493391366848725854055581346752057443145954886219823238668249363160467353226079522641977156803025883446225990907678450467796642522511859228221983604867716705349818033226040762606162722116018960068012319476283853950559846137999480601909828714738339305054214219562258501170262313270846347371653791625072359726283694675535204260398930747513644849539176076638494845796922320586295678068821010589819744086468747326316093773371878559966878005168184600759274205976463035318147659318951825566792658857003102773974089046776300005705411947778300811661114023959764206346059953542472219035311086102232062114850419660838321759099393986995529064331408142571777089529046608870438083320498117816161500772176729975725114266569985900721366999595272913416439231455172321016310456441864734273024402789931942040466945762359624987185305441122559543920074838944387507110336078553110981082390641477607041301978704812649693466475668771531254588735882860437982781776282680038514241964892869825988822161570627254064403483984387486110538786262358664816639499789626780065176167130770874628556598438783072621217712994603516774689660795183372463877766254595594147748104659376090919270289435549516601406883552996732623317810347071902308403764130854699431587251389340149304793953104148974301055539013358956423176496811421845592676140923053255534162501237891451794437502762170083604689222415322577316604402356117655791541510548429709726874102895918267745785007286899545710785374372358184895477563979251719774605761257359775190825104833286643666805934120761095254993316970395826863678442532844779027335378025962919614302009388490578013166935115289665368318614427343920540438967819095942987973347070181840053097222316822759776156922408443421001272056879170889993797403384849756278480822928603703979249227130020223557948083863456370880170399941628136692261665889039852733826617170648338932168260874692385592305314586923492377688189395948885782865278104302069253909895728834199432311840169109875420530235504980927344331276691876580958137947058604211873365371628294080656744898501167512129706843583904155474078435356320417634869249076792313955408645043930010743691170382263895019263917914820409544472810825908379903713871699293003261305940811272718787739509009364933577514436856323762438589411973122550655925740428647320507174607420749827707756209277667511108058274881015486133279149593044666524175877744057811424981820891154278042337841270977889406492247076956115481448155752389401389958548094183133595327845920778307630655071097320262321517592337534414274225386522044159225934510794553330074157596020404251617529907294828653254274740046736272383242248889790096156051825269741555930169501871295149674752421184957546509250363612315553967832531622240453072806539610355299679826409324729873150410706674166289739144298724629066614866972101572787617534246557610735393384525172645431554250181469655681812567758646875668332825705241851662432311416919050638165033010892601210498555643798420524551963795211530966719887996748652923434246735030342327875100279915656006635456546144174513204481109755157009264645985174356393701604595205533815727978658881164291065995098110196064305856612353499948049637244790328624468315319466561521651445952974721150535942584014879893074295953575056057852122455015983199677061682583929660516054261737468409358818931019548600916749254731678256237781128968469734426379711430042136846955129912213779557748537760616559576224756279893740045716315533019908658202045719691765130231913522050600058826744177232718621293602643480513159553638901045720980289246265222977974286566331663534959670156507536440613463568028452359449777600479261164863348978136788719485143688599571026294835534651675571842531902127142358704705333125504880802301578043453968457308911656557263034371415462041753725590398375671754145214382677558683362572497909102329653767268248648686489364631862462911745145269067735616439140312649499130286470589044385856718438491973423988429738030125996733005263967612388659516125733397320908510452616605734485791371652616922772799360943495966552095887352848446384192762481800988562847019744216943910170174666174552747643868586558014293074219539464278110608570137163194380564930364775801158463568077328085888192455228776380535014248942673509649497802706663576090488411315935124372703076379683469362820497051185495269479717494768569539929154005562689554694961602732692187665743687608682748396681142608928208686511411195736561986411410490355720529999997981663554201662477070072384674161927547586239431285342431379153627032826342795114772847343470476039317282802614103468599799929972237287725849210571592609329064052190856818415523754795336713710173485971402623386462335535491796533918217508280406596250736942651086259264977339995731127950984148828663777836375492601708342652184525055519083604924215578879173799304211415739595466949170267119938431591193409777542805010021356285389269519369040471290706698658346391054471236773328727674416633963305829461665023301457379022755328098013063539316888431984882534379534099252413213338563491573761268166879324992948804802937147802325509328478210969325567106421496165968983353736697166766737954084415036490854166676438055991597510902561963178284539771353257720690721891859099016061304278265396750542175613184454680119022006809436354728914157061448576156475115057870712084913476508492164049284456329862535442067380726669504405250150137061509716038372555079292405401558098067623570306513666622257939515232009834572138069434339600921479962773088249609081458178311822464440801837994397218403947387618792981627799496668868939357709651840039078556819503573812031484844201169298226742132411110722954036058635246618539564861942917209557607298076351254770239321192443522791754621867083374846545022097290297424687518209251874635852136983032119193949112573553960991420286274641909950861064526421763677460007992101262981939831469280946874223440090146526926596990602781967564232747917053851941966015728976236308106904198622252418150028733709809948253480761188144219385997504272514948895410322302768614745162071900763102925007773039934634937341121845005943585078367858124722200072792894223031261028252124333635647970976848391436876743252525541762940431157229826303244330093639379251947415891850539631809292842381925482781713193133546631450579435658831496327407262092800189687352227582308125137707223639354944159936113551119706564161257354945059878358331519454148110753886849366572388879099243921642595604171103971394234287370534750155372169483525170912437858749338569006379536550621281727705697331176586506352128938651673846944411711867632151348961549999910562981558974599049460494711444873623864186867598578336496941706344386424392146914845117621806596516936727439728827625959040427275689887473318981794970376919857974957312450273475228458068229057639081365637188409746663902958729675354864622004638321048486736886537149738095880708536239897832255956330474733778374638932802999152196289979934495938633084987311339492600248788493648235718645486133238739092688791088936277400531107841910215477538039004250177882152680323127128176290156375996862731688624073619619995427231709880975225295471420282581130955797894169507901668971749128590483287985937934353556523923464939209089727293873632186770913816438186916902934868790958036094436853193155453911222662396380631469009968570448484888969936873466804442425205436795157099505332848894431497700966571371580487453224220448597116582113315292150229475279202169631238369233629470862693797763450705676238623220341378045120923436219490967251157468339060214291902918195527959530701759458774700164888557600389972686476945477089137538136009407598732220015472231448235620567936447184606510806294535301630961165201287831799646416996954612218909178584514800761769624138532712081070146116668852764959331689743539527786335994673161663513705361107220405825825875179185368712416636506206711466887796223845491680675163740735657956609746535955865668190461166266830945015407175106101920233424734545265125153288410575349244163658436737938919519670246677855814616868501646662623646645782215260149338919376601261045574250562194425011302057500467072214243503841129759664389250868601165034541545427465275042066473886079469755847194405980163734833563603464141896947502720243781040371120210930565414803323146205523321583735893609470497213813374039740340896449379289552646480858475280903000857021266332556320723184746649188021655900490401939942173961832317971448661978225510932068583518255129348088782168091949266464106688925212134795335750255847000918129166319678145401206753983284128565840842887214075502782217232578883669201289223267209603039753188206090381528478797007557552727996532050992509175614005882109131666362812760425839059359595601409488296796940007475017208773461619507606611581988236736705664315960714068185313377413905945012433438520300595462611093331863531500488345333517610708798201003943793206998651690324858072137999348657296389206103811289095122092359979496675761569608033241855087105531585735503886165508236333798402845438279026837758892502834529158155880348026968419947150846954397483566641550132548499693906288999512232664129965260747918679112598996433273653018188599841941529783857495334608363717457299478510681950216707703548284646921523982525059626764341092307252145904505475140519417562281121352908034243654701479231959557073884073642685174147664198880466997009103290048103797452254900044017265950687183553638704470797457836485210498938742808763757184589635727622945606478674495656160618924922490923820413125755852092545401908207384916622893562633002837021277331309570784393448068710093204959424849706201082839987514432850487857011047419405913487480078411244982525418822977461306096258856169610041712137912084034686091810799670294006919730361156362819461425819796845300892229604111706569920510283900199315126177054178885544350380610245258247809658829756060104515294561425331068943355844683044704414394232076405965030811432780852020974199007382219029249613161021695153330919804374398658378681349911057218777447767851280145677758125953291168405624332417972385456242448218481438289598099547671408415572675499974809490648939912279846746516889867539150162887560468327050556116056769201817513724672311952412443438492525277910068135968094044803220348039989911549686653063450483148732633013667712060420263535777656309263491702860995401840272393724203666478852901589432837867078232751189023620478486151532169294863246919346528744877094499636434130515136333979620055759839110620996365112577256229975698353335369943369504356733871236280879138455146923302763546186027019306831796739506926973690866933655230055690058711254171774037460269535383549178426035890352050062553537706764165023145064511053037566176771258011543282730780353665672676763691192550588972127506295314138764122412738140265817284416862519190395310472100247161300571122033399005375187863693124844580647435916404427537212174301197523853245907086074598016927048843982892678784811105701160072548509453047835110318496576479384166150750898904402247758437281054772916263710645015968549001831831607595198011799013413484849801855127701225037968604693113605862575271148153159159612274330137591473425997956564641347970421431887626902327390120065084377699216798353534370284271910187850272230346712323689554949791776177075088103277279966171394615086512891160107137911627794127842662569387867925512024956418929427663355379538053529641364359553798113171995967565620514268414173624699592825921832478909627990712017811425375079479184166588717836663571697608334439330133356158767211633051655463384022194802916571563580533703409007229954841313056377015421088053407418692046776550956546268398291640709543824442083172159917756956832030457265832243491026492374878549909063156867976155086225237733324885252336701865341273721265866445758090670152547871455053252114475837916751282260848696279369092378727114650141777471279007792174920777349422407886229810364790173713441260486550968737872609213246979399158200361836230269290625149316894747108131964083443166285426905458423823976204497453921018393024894154803136067958367912923713822372295468313436391601918365353958090717296781198672026161305894563617392293209681107826519249131677334382335984198281017010196070036261391856579470447544686590123461297002886191303453295842558068736785962304419388007406850598503861929413651631289226039748775957831309286827365208493215192801649036128713141832176118923300473380505105127565486575707478576567920811827356447717299432689345496623318432082500629244524425866027002518862865173983076523528785191504280087001968587325576918223645921540197280572160064150525200512207521710043324430405592159768298597499053696423007870921191559932423176353801367489242949378666470176247949191247095998784896990739494878656654904007490694966939612995556276033193421224423203845517341277602235021533002217831130316180572719574968527127348641765117783600303829312800859932253161443162923372489225530858764536995997974014118281309817398803027097538355527102009779215323919915671206118858587676713678853560769260280439079894889222504999858667395237851924634299549482296051647166202351889658846406122926920985448597348552363691730867088290076918972205871147756251985234914119488912383028870892159623210757076789671184198903751353378160124219876882361589967169610672700319142453615356737397493024435515631931073117016009564001319316903582957253396462574211450343354735627172930478096373192518348212789495038092436382206886281012865131448884125309846937680648563668120523099201888554669085295588811176029899411102456641492909714795829695092694386651696926279599993094098095488583127207710167541802041299456159018899169445267535251897462872820579232837442520413576101620202318092998780115538316489153115219789272124132003954809433306014678108330671331367164817013446585891259215815233116167396076761045022774065709968921473045912200936438904330852777121406945301673564866581747990492696699320383215734662606495080718151517152499838052401434286796613433366729764588439620572335759759684900552102913444708609365848767401864948173931915240741571231015168179362759239090902500755601294736007470804867638314176253246048927136931019086809581576539456354474258375986049624376688226130119979635273296514798573315933075435034413259452609359443875268451836365349564276550164099337064954413389483881510090414127697533653153328725879329481611309391521062099237009559543150024179302124806698305792387219230759035097656775478044814463958018679407659224129304265773740976942901715518539326507846467941493506355501921258919869255958547513385547427643189080638402317027346934076288834498355147990623062039671994057245047949582733363871890999547181040188825800757171555803715742216985931957237870754283759534278481283198443352269635642796004039185756674238360129820253024767583194482929124859837755200406515738024392266784759853323790228235352273907643234319908645287708796757644325303890641676897402357525027567412845296405451864712168650508121067086771972709478304607022731795945807257049803378494352441265756639715081417116913193148877424085480293861525789390386711188645288683569815700023117390665628117231713326431100155867011757819481005377913966709715653107912906766866971898703921008576357494563674203806896056875168970377928465681005202199754841632534689543249164260252612073484750157016258722431863441072006349068628776292814866605584609368367133970434777793693330745976082117925121615085576982338230217995149328928163072723462957036017572027719485522240978628044937189437621066094701856894990256434363040783256328808086882619241080004666303658005247534976868093490118790370262095451453351212322032796375130281592879144107596474276009373298780366675900925830660921018299711882275852279097595291841915473397946229404247844339718364795932943754926181454136070107146583579760420432879536818750958442337784945531798357826049716804073432270236658762049797400837067561791554174313075959171617237446764084889359963917214493186676933622518289433705559601236068650012401372345479273607963434185109101070252902997871677096285720360528938668780832315587174198828387456660206055978762673303259292263888282405257753443655972646155515531999826689712317959194124099177151854700727350859732106847813911525911455819847632082754025537105243038174871857332262025242358193359837847219238312481764765576093877682277236843638049477993801022331768781732142257505505175868688390853353234227161358700082823662001442064767511788502896303586593987858613504665185733257340250520609496518370859922555436606479531827111709229415159721751388160545817892821174814275039725019974942375229885428073199055530536363901816567400280742744203138480925552396505022829299985174169608913315407145383107134233186271903655488209406948642976109927959210484126512403563184403370570293944948015159049250039587526703817292764827480489145832082749939829488621358589228767078599434298848590558760449148267625058175120985207733946546457405483416259108222164276884030751329303286279257300831678155277235213352424633660721457661116213775787491578264005460098191435434365543118740817358809254647246379454157842431570201992612286643125066107983676559263327090695764209709705273383420080165325093851526925230697715391159044710491656882307408066402078509290316091925658772413413074424982819049484592911319675600656278845645174457017337220250172963601547544499502096243133311354358324845537328786011977563657827314033636701269580784876544194663471317428942989663450195956234657453638471926991683845004922803120654769323704343674346557622101458836792989434511344429330412695329601160132849791513526514768719538442063154739821125781806616259081314043069673799347760202504922916186781906218087687055259278096563857033152436304397422193261725597259861179119316178726652754021133598904662864532910170613383048860596190580765406630928369644183606452532108062721767897032884198826594505866188468934089167901754036954133549129679155036553116760637918453523046630660540147156924771088576108460382446744142837699677949496031226113130850330447615825757152687569796305758449846294456100456633073945573300575564792098326703059329017832393613494085760589086655673337573601920439038468351476274699479554658091387852662422990143284084124557529668086473029138035264390651597993987592361810887529604331667956899448158945485944991477234527335759562581345998812922972077863760181882072249923451063983840970359090542201805977726478762919199711396398577540093035922171968454011572294759630025531121704498467177694449934902796303771620809683897492005877977583695356870797389001774217181659224160791092056268483463334107753395524948139516712121022970215279335807773011442315421033198459046287307490024834583828694863672046778380446050540262955868087787079946274047009643600781960321469524182951009976316168377437369881036956530355939868429903829696640983787246096654401259620737644786726092799057960458473331904773842692829558331342164749143725195560968019264048272005096941572969333667901675632405710884435802320322278205991699139215866946418095409124546759302881386140827810112209402936688888980517103316556925876701668398619932815417133305687588315387754442497256592260601037484684467268399071018445927565070610092982233068692654383930233598801462969191560194691069523130201261559583254245020163512373880645703217596065646782700580039516606856291519741367834653343794400240909981082976583651562207756368647004803946931249661193778411031071433891899457009308335715567273023928206654642409889405434017837319475685988031399298987876171249352799686534117055500649127401489377301140155235582606077250910750577647809066293768471437937779406374938103339104461617090235448001710085561330787501284239511176594098808816000941565756850280115024714236492847258753983733500313865980903042597935732790413518214007522020301639273640290453520689145575246391394535257014833867093405717076631297414443633580505923595957191352217291565605698628682864855227820718859481061593783055246225046728501009064404374878934862865807808324297266624558471861432549112979097781360253670229339231147502089034581731257639354855778864589313471662864887058394282446654910918211991139874901015723244088590281852025736623916376587416563654565635208231028526376473431662548343386663781675620060942691414763798048766944378838894077686031909960247861264101160297706836199693005740505486140329119710135638302341786065975633702198888848912145759426175121124618103950865580269450013768747681633767621515434811889493935625115659842162362001328752605466804431055245216615336748368283023432033725167212827062036309948613963035787742682127978631196181900751639546070178419497586816416796608633122924951409469648235607830583009384564878540989498903265320149375609684601613288678236804575194148312439755146446207807747889458280338546712310188551021937247759140635428609091961550831337009430071553346841815284847777408599396396483324687565278371856821085950392946750496920182362777066110227765645350107636850363076475109156162951464040569313448230786004925267071242833825368967817919584538911790348081188553455403645216838681315923214595031380427812806383295989140025732879711951825063795580795338269353038193882907077044682257271250271782843379035021563470314565645367308697450352901351187029811312859276914468632845364788738864673427244665221562494817868101196421987844387616839914705092808473165802308750500401871123201483582641058036024857591646983235605978053459350023687798098974513262386730403032758810435040069459856024191122277522212768781786309789863841009041629325185231053295685342001034775802051101592214889624275757328941183953586708685966197097542969094551899346131777532545504579664299208940582767029036268691837615044367396204289825065447022672239045921722938523342345036782490471678070351460780028345644926286354903912205200545638517956278644540432655781183875229516774801065119636914661569577544908870945464598869101979109643399232496189407393140780746653037234482903892573414600638488025172099864945797605744013709872257571357381294121341826489312811247726867145874960398952354963641980788915086019327088193876331995498303122870709027456811347081254574283313950184410934161707896327186932898858164483563247448670827093919435297147992087375520820657885208034459300355594545410511482161357171298860205672833834555635841293123164334719770996585699657073702610507789306348224697168560544564679647849074728541159103933011276659964645462320413403758882385101630853180218203819785979058704872560057017075157966452098176629743268287394211523732410461474970931817591396156923958109807017864508908280205424976037930050084350006263886875276619060234851551176243035878028851898669372562705823731860119497079899247455414328225347015298301670204055280661401422623678008333877011943647895295861754538365093495754345946133897250054027166809916715339906281315710455022631673302319633066606249875632384203906173400343459607435654547960531292049722814824196411056501841521384417067403197701803761293862909409530843471429739136673986035894127087750744583631087555941013673809721695518711776452903790218022801685309635487219890605945347894676889344530368889473654623266715697513361889953661867712694792636313779519174591577486679989051226647213018085813302316091486618549122851532387460057486509881856410106610887165212714908681499452043383142626811127576750025668165868954219118738682699014909206652066367695143966049219373472430209687920228318425951496860955241749350152170233772270976676998522661236843602872151160497741335285065292445275661897507263126366752225313563379961713311490291388704892744046464609627015435366013094988695457148247535383868443984597111437047090084770919753440679812122555264762064238181068090925239168811503416695947688840620015190746403095894602408252320517215023343626435513537146331517323792608222315245011731530029566603162771063643221147083668096839904443223683114392677185733851069167844796970669213975577006177174100995850309459869384626237476694493940466724003313835538993007370301947050605532636367974929477767307996577564871652749438202344841398294197782298494672384091310553255371286748413567953744529193491903973004650277853328829855712554305462640637043233419984290473226476611833609842454233189573093377511587976849567041902752517926533232799199108095364122752059976071252931712723975470915722480746619443033848508901252207606582251293718908564636269675969746642905460213631492042063766068623841450025846215024818237381603541424332783997444040173540836730322324501380958224867123543233736742670748701401238294032613905077164563603647123376361079374421903544731798349130623154480103289633043783298845543370678961079846313525628322901090503272558532377445063057887964618273735003445376226053612534736204475527170099043963605537410549080576151192950937194381659697149451078999010126362349140930779205976923973105747980939331180559238411464005019508675837725529425502344896292939950123904144148617122359962356399770160235366684753185346422348669472118912928241473677999620512745528323273878054521751189400244062639437299492384491247314248319754751693272211663238953575974830794566071864885309011605104042298545030752272849370682978241739216471782943607327523284328224791113427675262616020121820628149883186747447950983731554322041105403133589019306427518058746282414606988954094537174151341803537596294415803053817186993321452720872719452447246917765706306000260252249032429953609620213833214978040099262808361165609678138519594574046103351211890013198431014006884072322158872849100250278779472104750191079249491479649125955640067503888410975858406707262366719387393113562481910685530611958466835636208245712539745367873625135371954228075135512089619935278447713509410225314557110945952452226111075542257035327600083411480471546346712444117603122026001965516279448766141593016181064230246983243426880443084414421280422165376794632182997688132686644744825442620742088031806414818669015599174916608098322626541006363118802954654361081303512033451585032738372850680574848459282394610397997600772919689260264956954373751928088833131584224534743588955409525567506625850720243621290552414950599289485613190457364549316945551975069553945382474108340363265550947900416546447734533761342475547539718517701851198090869409924055215899001751535189157138578218810945504793278870635825050210265926281426766940432624117842075446356705129918212779150218354142458490293999856413508835667758464850461823069567000955082572182373169964822482702154640362472885052337057707425470285095157458257654752234931615571363124196207697226646058193477619853697829199324808874451684071629494543005733757573448823212522359245105713804064112994166980410775769690225858612728377670480601497279685314568876775369964522650410486137089787255890978584577737106669707844999368749592724447880148728000544787014460185422799110900869520730815834589627078066698614308766890516301097787279721888178585763938968075979379963211209858793341376900358309269927823174504628307768632810361867335804123517009228163236206637373968718082510342571460445856504562041707753272560395322747116877549966393069192352930750680831997335825131148729566932025124804420970300154847173501443036210605264806972103783128591310831090045362180940711145479185237952958054496415556154764565870981662861013131800589354737703520994771620920772337039097791196085034086685814418262243424633795919817997677058287214426512091007812445477444887873772997903177090286103829631719761749433408675193368868399147147693720275905268571025954480545074751408883088672840447823447343596296905112280424236734516923508152940386868344221580035788057895314498326416454283097532705606727861760693782544094702457902498047644995010071525499487690712274019000322238597079776887087619945609941847154412319090472152122562409477514240178762995861557831672356581249354945109533730705827399317263204765755478868917947378485011392573279248807280003652750757961401836271313660265168989407604476024490681351357908983452045080258794955426428845699098310051819259376964132713053777750532206436381212816980863810429441887787891669497107870998817896883732221923113596504980968540519370937501740110332942910139106944101480371763251561719161546795670169645724120548012150340410640520474662394055569557928647025052596852081583233313626483097957604059098340161364531262325842298562359798195959710370560317645719712390033640310643299673325094504505241955604902342908796876453813280544324509465274812769425488033482061812252960667595012589254351744565762581039058340442079507813084789224716709295026971572582430161487750987487344475666921186954041289041400896984376077843183882656827380790292196637193271086768144399548720005726748712278089184866457254158732953535681441913633109050096477530500039796943328999257960511079426582346755756901569700929004600409961237295778950840329286351771377014771342832718463825464072641777121533165138439148917110849167322545328618479950384192809105451465924565045031290066427891550166261629772607132749783012655861538536060257267860748800196130437578837576635682932721997736616638232787286166750151488104999605666911883034013017369332971402162135488229967054763438454563687397575533820071690453058045185312718483598082777765371790071045059085663649603759520787807232062899336806297499030736840212613611470345849036309242335751814013493657522253567107427936283708050516151314239457890308958092184978392962842487981905536717489624286243508193878875611540561654675305333171262378684201738479331280421722292987483399058709521456711857752041433231693582474447415360979510827643038270876858582549175667223373586551052221977436917137190655858813713781093006086066277175184273947504260909020453500781708546113474937597217226606761347533289237955949687898723003971150509969538492022066173721845586995985783095042887752570349215828504288920176000147715090910025461251662622403417224498467161952888741812867442549095200283548482942272685203442787544046068355475593305785234375879488171467985050282307333868161476939592702331918004822882546742340416640547296551243262919218234066080608979866223613516916169551819331894394110621061955553822981593932678937434869457117172392317414511724278690521803714188279630843321356384127256604759037320595788171089903948760417433183599788958886086635325736291624684074138016157642838137491430781500966265603563977820762895410436774565365629554781794033556753432196696461310317748305941176738999524995908660333010700727619967478398323136696055773072216036759793465941625385445642014236392079826166432374921389622701704500194974726563882622777644738903165627181431232175593779462771356942788215992186173087805132956867960729240346452131960578252365411591497219832960126339559440712309980852879567107403247718205068828096941060752740613761648494921703992592717079055481291132767347566867588286148577030659261148745599240431183689970789771808760199242406278575213144364075403257237841175502562711561684030775707463170863376506737052334548487894496402604173161548429413745228290829682443893148909723782602724362028729297656643006009542405412792791581476819368948453792151204051236993191452687474091175160484065864348959407924510353867735523110400028770469193178163161453661814764865258161733121754754565217710752535469457596871225345429239573990185667319972497718396968014533940447546355045184516812609388099073613597888146369448962477251809294435672183368752404030167762065522650745007765035107865965103405269868545808186971912532461882480604538772068651843342002985309395741222074000925714248705364661854785063194234879945612981146446806884931453488443933838857154353781750565130382455681671649882331442988665675364190228614540965032099204811699492568682283939262289814754948331444386999586942232726972383193964017723091972611004360719598688942945965412023226314444198591366141786692865323560734676499735041220436060621861607021969377556364961536315440152128871281391475468212179470637904803908036579544559172268811887449868127061326473910319711581701071637187708267187256007877734845553597578313335041312793224622651217335596531105411438797006973462001420851998123725418552217966845497691292286996665868178946268383989746130139863154052071504715855166706213223790798848476009583768692137705942569742369074107743120932355290348101417065521209019037370718736603679807374969342817530346616921865469482270622282934143391874074342241861483367318766399945626653384494069563743941602173116929908632383790247814152495208257451476801334837577654124097130895133356356674225539613932925200683713573382187472340203575088053950517517492224811934019405053567500951153451196552105168554028807784838913703579328624316275248044096780365261459381946121781452074191802609735953236840414550085867215003314537423180962520142311443855507839578229386992450898030083192969418530706517433639086944530624160043847776645772300241473256610094961391956339554393935373417150617286249658530641026828647655725199977840875261790716420161802410618489087052939600232344826281162584504836503060223837398950738832002928978621442611771190256618736726535285040587706952707323740436127579458449063924376540188530324610976701677301300610308302578537489579939991094002126505805152543168271901970929999204195345233874029204070681845188068732307613856198471459344050902604536878283639212236747933298126348838777905597375835210685652470951394052342931386244303243435207623908602280939707749188335481677337627380588418583071896874351155028304399886972805199579983913258133731422807497519348335210092064250386027234528827690613213351964645235633238478838250315410253554083638582159418414629278477445576921456707543103093653426542749056672366572000918917962234229713921657625770697909256146924672533613752272274430219901652365273222594708338482320629677862766773840534065325117099951921727610280668084512617057345592086013454897213386052568821037554776619728387407549196913592140756452060463996336437843280364135494855501236010008818198456297484992130877748487461545145902010128072983022426029148309921842528120329313524860299339205768909110816677593368094593507077387822561895817473429203371250323284543164287372009218367482860567496862949285608428177887717056063895084786792788375467297148887288636140396759374422359255194575526087019089533674552908241121191778484785474409667210374814244016644750311892104533016601302336262910568414346665214787957542598018355652430111729335658002209739034015020514075263399530374805792394168728231986951923229061367745485891864476455118608468025635950169785830457571418962131246920497874757005883168842772718638539140623220007400649830836448140990185592144050000945867760424324689092653914556643437174479732797248627387125528005869526212481516177455119291797498588245438085766783029679210887998737014553004766248417061017336027706542877965911050124010547122808963810816401176886126416148832827699493655953559246232625708458554060258385345731517690432757497431666805991858819053268463566608115304145116139062815887619901826004386339096827233607002928955446384873947054646018028646825643202106014370032859705849507673570842411126475745903808430473418621839287769240636223501472418107590132608323193374650468401815945167247815576334966334678508973360603318756347251377451713292601067625320094704304127253264141356704980539043252598374137316526638643194550721695483642416842195497716775769185072918719423300061665629846513598028342908221624339490966059146515195137711967822053269261631997956305232223145130812318422870821096609781375303290313469218721651832424403412708247720437727565496098717703749861325140331523492509817373681857654217809879503699450976455434408991704969044153456115618904887706629336006843913883388522351834860795923678917556256414715471620636707134324539668881984087117717116261893876906476224845633900710706184936364077211085816699349025619074847680841333593661257856744118799529699131587385529663205253970848516049120664532091372822779939479404808495227981713958932776006843019122303964884304395376714423287358823685238977814173148375518626389717101341044421179931982847737664653435060965605752967725047600491169759136223624195379431018202749502682403546191491888349261901852382391007322814939729427186277471133511604492827932975105941667929443898676632539477661935497280282446469041477798171636085341358329392699911143598605987780511506121447459403421870991028833962735601750113271032775330401356928200467525106735498676483619857060233612014414829797358548134285047068220320071763077226065751755789432256536371623349574134230771407362158734421398783286373462978769980065653629580949222355049058945400908217419988744838146083774706219551049347251508959196526316467371863883014248453176485283602925159473987452141737728121018808137129910952158016439453786506905385031090435595875336061880625689483339379967450071743555997715127209590755576502683825586736532018964516591112706447858305812606391755899581746215332820099074229105092315666791102445544576295862573062863996201730954197658508708964898762915281289707531159311103340722865290478206667497811871634626577081204305515064187215180938407787354539861816394049592147665049534495100662237024172783243693237087205457763992043164427569464640201276661760709191380655251338311040066583263693529519237155592604834689873139455517936025336058542954457617730876367860136631752378015591855910801613101169918864033981005919080879738630945034342503508900596043870525458772990289384144228749452461654179013804659208008535658854096084317041001118099485056365069239483886467922978224766935310377539115459735035640002699528735563213769651698983448128137855123961776477044175657545194535197148224569885230294068614002580274670486138486147647651809255112587523021205328843833386450614695131864015921389200639456272280334445301125934037047410711285912025566728440970306991119055129364215824575838795231225580093235578398322518414213862675141447435639178792209991192998045082335164596827690882051980035183260385905028189351870711885296387502832260182138800908044222598606315318492236028180218692851747282307028433138480113453405201453776071354920419134515140794146063340669462101845375185934300292004157468687204522084720865598649054663820539333805999427248561098129450235169470541161570055204918454328303338575902333706319498843901404596458347421621473222497950346308588660862933420927101454969566582083291231655820559981981593188226481393787554764130187860509568383150580275332494950292962635258945710137719017584638808534035952164949584280147627087578616290706517317097293564430861809152020052441603495895804341638911493576412865065555006734310984131494417030839205856244812188974506416166863818244192723802556133962199801090415155492537646806286291085489013988209599440869062900252782942525897681408873818934197820651169113549258402488914971085558922378507366132091450698462728734594966497943145573384642107157976006849690576106505683153695297338153213040675668787644922451548901824738707175199581028220422760278945439706404945981538625629180767508201637719242509292627631670538466904780412350581473628249852127276320685587524675262513337982954752470761977705712679179484933142785602054107413536186059507112643523136506920814407717836805522861108710329866183392808045452616080900800157760807354576623410935008348399997878871722191287303443058354606276241721819377355347373925146728492144717597901581153898090127494525800701048411569881043711852992652221362100599398161400741116435220672514306524006048932800655473468087273099205841950245528809957682135842467061926218312693431945567585808874864818206261720597793462150463791105257400462503022062332231123894782525647991675167851435600437961723924018024835263300221110872620160396680447942277554516213257570776357161683790054781454333552386268055716687162920806659524129905672934989953292985007875353604037294028200771611390462665710202648852887889098729261252980235236417583464208230245495557293677313863763479530241309512612921897342261214992967321038767146752888870475053877882948774155563240593592375651322420402649537998076230742830147122081134917234251581380224826558309037499475425178469659308788246986351138547618776910328465791372754217518168462850615348526162523954936699683372049301685926348805378141260517173127458517264046976963042779780594355926165173234309799650833843987885542675346412276639449514980773434340359467782918313073216563658326765653370853338997439028328269110723958983124020482814629121659145909290567140721208452202839918467477819802440381896348686604727482532440298041082271185638297169815957925576323255488056431474820465231182551758758876170135586501786126915825531783378012367462396009570977805705374253316855301582788624989659490524733744363475597395895981018577498275600317714661722126370480107668667868267415833291344946745547242725196779641616578175035905639520740473547364670508812009052925761874985637745850627247429025458407887380131517789487787996288936213456940552118710962262483658202893719962371569711750932235714209585509530991944967843124517331919326172326256665962784422571247334104766564653560734762659657210664582102899018241731496509602248613589225564934785857557529482062098535549933184981329796254151319134154824160774522739048844143024341352337684706980097905986120849184587562728880051419151908264948644147555542245397265163622988839809720177241988842091719083581520362300391971705694490794389209424922115117101487031591369197084497277602063818988388813977879921999888350145970942003388152527435280189706330927950789275174221140093525363407069760581802321539172310825946924570991526407603500629028360007956491029654209917625451059257338960688258733407171281654902781026990707083431863991305171074582662542659644851967477742372167278762380694093054564392655289528741522912822654753210431339983968605869955830091264490581062947966120830012525051093396833925714804316406487179466372912157663735238526769436688202869511264721595546322507075346559940951592296565993250870809016020894026455699916958183153741781622580197616850777451964447274225168190455963152069911057818586414314209456247152117959974076182293229576457580487629975669894429995604656709925277720617963418967832399892727325684056402328182530600473726807137052670346802413807918662645219886460458721400405551001431347502188339281308887702622094369200860901996170391996559687085163864213951042680632576090339379589104452601879081839119873845367059572436658556437629963627058097562241379749398551867409991439844319796200091232713299177674679193274506861343187681109015289211195439514186725079582099793708819509525342815796369982650501059961918330814988743270897648387684688091547455085148567471453696725166689677681495983746075961678050769121304299061732264571937944914942238096553694609081322151362391394268461209732798197320107969420717024461988390376345183955922016622953100922801858473376650039077747187795455061351890754412471497180139870634515012115961738249734544183717939296395588006755824019358367871440541400604992411372531678482155581704710797596943669866551749756148473728479328703316893827115487823256704448180917673866041210831385031245876829362693177457250408600113711757151532586642237519886465266206705586558257242114844120532748816219035864337289721719802284001227398751279106151416746320663191667863904390459528683682045440935018511053353429433335527261493860583178478555338773562458352699995086048089733367004032476126395569824653872604322198638881114044796058399772544513514310115130124539553215319481712703882161788827750133427913728801226028278681056405286908132956798750967162145454868572816834032843991733653364420228609284866501051134414942902543536704201970085778868963488277132931235375611266171847025772526224540418799582462440901404778534314859226420439056750492439510284475276532067523749098832927921246715906760633901992698944639331567528286876458718496899204055549952232129599801418046198846893443141080743635968918826234192003060341762173158622921991621463578333140295428103020735434379242356369967914484923507503881742608221010391312785346951787747988887993980536421178229476655260747364048062596111043023997681739603010590244185031475154428454086905189576042080685744264784253682059275098918386534640277930230906226316135856885913165219784111334497915285574693321120348659147152098644005098090981742885175723764297241602074622080714636592618186066931991539366568774379904681472585657372003607838192084189353089997906768223952695085278782536897122951402818714376137396787664508069781555604065630309137438605556591756548621972126360109515321679100018726538118451343944805999705929910107458076958856902681690431051265797139640458150130953312314213291219086717861784815700839215447234654743257653015867982637821151996975683021562031822449119774612822844079561040437802038715053245651473481758962526791184304983754400202165354152567424204769973788835761066970944472641423470159318324136459492793940473930157420945811749508169379049247121665010381150305208591424700059405477111483655006459628420036463051561818438065266181294319431863163437145453209166960215177936570522537766821909999750193147837077265865294616931444731387713852724077365736546402145857218870778340401719077792285165148019720362173852379887046515306650669659670374939925444460718775116607952846158425911010824485946694373022452135614454595041960504724011075720508916404801022523540858098624227196198120422124644231390478968841042860233680241808880975206067800212350085064770203127448767866468436448501593193750258102871028596754939488373899869076029954453533530192843152552163232198347657387579494730894169130622893521911275094625563051998959540693742694993675806308113896536161330541391138424241059257628710115664314488643945843623872343436750046509301317846107944228266277709020218508637317047053284768749672205399460479038522416640352367593771032263096087974051620653652470621420815368865290348504538421476301407759806431453066108453635249358097732738784507412674335968032028033281892475829357308886596222213023697851950879653824565235735700950151380274606342855604945828398642562344350904843206837421658708566828129606346679794505886727696898534587739003107362139039074492015281643771666743263757039701664866440144238273989157299913673065406718682265904098352485271449553749086552346623216013204526649251516674543259377875775435332421057733119793295419348982464903091503406234064329322099048895165796882605350149171176581548411986688248074851076445977557404223999600184347055243736746519190138928482142970953127468478692070811518310394357364715816119162089049517437312745176942195067229345229225837608609708113605919621409702389115338664503352484275662329589817702007119260880461353663390979994131017115934363304159293533630165712943853315172312768098763100888797145987837884021851149731493768597656808658268802341424914722489946557305326540246332768913094001280017302616681040726336003573996859681210879450298901339205115749298983691381018476648537827193521126579567962495215785302994126407761842333042286260766191423580819957260382541573183618134256811297213647333088922283924599504211780244316221924812771709777637831535544112642914403904206187753564049209730604210170586600890997678504139758866419029157024728311508090788370646856499052339972654459182874350330372149051884855404887337841103913570074798049849348228579328215565017878832366410170260105910013148601071347682660262313442756068152084808317060373694344457612051586647149097015974594794107171762607773841433649914989893433723204727340566229229106427691351898559208545847053271755044253938632592487687285894913683385057531784098534468311835007851303054043301852184129134827576861972290956486584869837171470869219616276976092352877555946312900504966929296790590266110063802089875122176192484201316602633867671796427711438875103047083835830359904985023240249285849219263498375704867927269966972685308003162087568401815794651000239292746085904589865717987245374666445466901535388176984608830087840994705427059211569462269253714871104966660449543348582637311297777498455193328013044017871222009885946244686409201355996644984663662118780199818875764099995670696930279219553171823088489208623699956231387463314859729081045217356925562447615056378484296017594029214566576265378717542004723849374322165607526933090145844373753065067822130188744490490490851731877316612183594060317508941029106278604294344075220959676009960564347105425310774677305184507936717721066643628177180217297678725576905390932478965554706497919941698517941326545406078106711104470882838637184337157658847753689248591175291029994863639259141754451601850697497347599557756766147955147620404592310813161332429045882250015651188521671082669162123362765665862881974914595665886264076304060775926586327428236215915386611089583808633137372027302200738249833357558421991051800692293884992572623490209775847141633396916384419856743041207967412565408263579620260895676498143785343868301257960861741322429608406434395806468586280519895906631240144894851803462285516342906309715684355707440579301271715971212955646240868199209052861152482605324085340645216915442346327042055799753179188947932411759966180854563207493701069842710411867742929666838156815019866137583519125073035112011181385006346008015559690972493118886586401998810339017977994989977295564670628294199780137170211110712887216883796831627104523005382586280244373450037337238311481668386303380950990084204157583135502516416477257520542589658436634398776874008583769160402177169269151914677552292930430280540009444691879852769378287572764405556242520484141391434010516519371801555452835883158401415285673060755156551051172191657574328886821713003128719875877162349802015751380489922709090620089057104481332503636088276537314759652830923707060216253702669293911498517719173236151599818796464937409557303260397502767459892835212973633689156347832386175030407058749420410982545581231640720306300598943604054484381611457857633799119074995841891542612922640258557463446477447070763691483703889725662482049211403636283050374130165927392023279028124476499528512326526385929001714539468958735825798298767552122796868826983125119104361415294573881666154752185390129813214936573948347922921425573222269683552445892751584870589977244074194752979612838179073383093711551258269818269417259388301217056641573885516327073849296621331982502855158198012762608453171489517854677170174133380365492669639764056009061179590741349788043213814747806716195028709316213799318767188606657642719703866801538541732623916238528407118166544743451663020487278719113115422746210768884189921690926575166847913687112303587165407992667618173777873363850213356325859400957156941568428055743597999431319090148615350534104341922020473860071421628574464716113909865330062123856310128372022125826311002547547924580488002873261198692128260261544200920296706184135500385817479716453412528692086353173354989284223814590931177793824721462573306447571660990264955344742969397353184407922087527114050348491419066758257784142192805671532345494549026704955095139454748772485350660927265262197746708861329260103590460809969151300401579360621955364680098461264321926691322412490331863673429088501528916188719422279223215903154137932798110733496337840976400049506214857781411847307219071152179473129370070234590486349626670454294678829066057047067020615683520750193201613200160776304621042144940134700876373533010953863468404044987872049062632205844637930913161887580332542757116342039656252503685238093756619244552241504007752083274508927585636612819989311979406365401472468682993010487713258871536018628773086261866315405885071415655861726990329150420334977496112959825848264621526130322716290509030344104363425124655065489471228168651113211169168346158917698347909010278372935477854576886673800816531459952515745447644047178319280165270957641458904938400780244167235757248104592561453849776946359360804768890730893649274824191918588935620457585347764251410912337143762917416755334877650911350556175894679545530180507576371598568042158279262013731796074161768799812751999243956546962835323093958260609550647695016548655669182492335270719771582738080537502221539737123479637141455546968463631980154062972074455465341655350764661203906808050471127576208299962931514502983368671331623310808934036886537635552338914467043563430045164191320727196650847041521379198723138922086438121657295125238829108114048905038773783904776241027377536634662561794088005279741010376926629661388841599039052153495325013608099583751859097772927983888896016222177358811067279348661268995897579415379128990080089322716091509108668577851310028967287755970264879084021595117941622852649116500581886934233257404737481355966128242224517280228208463823796861829338478410689069805611896888236860881459137692410120236613419986820128305329664337444464723056713501876610726739641128093255776453433744043332836529606833369223056650012103108312956795613763850907626223593402793982782359569786169157631427803464747078311378119668564215925005106419201398736197412429298590635452015705736264404198018835218929972775369641766737315476757816627059976631158345256098548266074342811516450066816413199886195816971938175410048922933131567148152947248083081129702994588504079053897131453066208082082474579101854092073063387848031479258376392098414628727721938531277047253945759656826327597250043512218586848063357433191789513681792228027275582657096107000675984464313946878134608334002438029010675942575883916021568252588621024859910722252690880042673213898033173073379977644812988470357615291365742206500953546769388958567924613329030939222539860265844940303903425196429349539827741211324884044124933160734349958097957844873246656902048873194622803088265959931196824191665311374901917991065201283269118054835302773485778588125321980037125731815521408487806231843508902074450448171770113699617364366695957604338131703163911478767999873265147250571653283857653347441242862358733736326562481189447207574343362234658882979962911235838168326749440243688487423149205724095811039714219313141872375525795352520601375745875634103179613314810656781423613314845565366196018889084081317170832022995193985461317781825415302419970817455026955920209059338979972769963852322268936184542536801099787427530215744802704640964442303296969389051077775731413778501727637243925988889299147113900526390276693594934158157018276446487687308548910395139998909911212957415862658772862496984939565582884053225139736841112824907817445721832086666269323590188254284122842280182942865069514115022061341077439561574188205005873434525937669723344196241919387580313613664719092868235965035574880087465879441412090963685033437252563611058662374191318473787369723156401778815845035032592103583298420282021982088499324757968124348555896689451189907599427861188629510288451894978215713213021735178836510712643057735055654076259252583925538794845865235042525298415498388085920946201082721464932464595579687898741167673303244119605743625310217425035606746533512722053241756030908649685587938426817161349909970548770960128414037506162853920823598532724319642811728788580440053818201902006679163020428445020718349020781753142146150459902131324114121460960944155011814849641710075755987465594686558442713522329998172362177605009560377905741663423163826384368528986357023185996447199869068058312903797211604772395537235394511811817832999975356530980434701539738466966110569410540743296432991516821069389284141099618330450933218655705362836202069198210920105930838918259338601221444436553266330491495936397079422557790016891417716046289137229961235221498630374638629811676168442358404524118459371842456372459030694940542953672812086363563297006777698749967754339599495145069077500563226129516708593510302293900413453892621989281040001255765511305711681600118334726134904208236511203896583129719464826891371441847714782039644181701688670468050751994103108464090591027684235748518226352417173196382594580286239436634264055470948229005770047709505018340052278092451577617602062992177265572988277651843160458385151564062314669195634913319133387307543632056726425756502364469631030707436997886433219862002811275345808448088582888929061739566262374249082720786715982966083386159085430976929740916474519148951229343040220101661942439118247770292640333728817336079151943331418507441973233266035864379983982076414913823302164364477831693993282182175796782852998491638713914597811754632213275829462299724609585552338917890563080476313486473704947854831517928912325036045244820607411137199487090802690392738596112479726482586585289754747045227674528146371395663897610495806603693271796780300308669883496183307604407731699682252848121279025998887173251397531405820231459056057404805256780474178811752211135389212804378410567335285196691782189333376872293944790235011494642676973456655664018025680767750518381905738419963153548979945728512265229018292241493609491186044253406598770452765208833646138904338229294129532307343034281576667165259573529257651007898556367531198707599344513309067751169792186117540780592924896002927017266594191567763102937695541740294620312206328990232751018575190663916526988105763120590355519332141898168744245689930897826955756230610132033246093610647787474416995468644688128898759547754843383893743660549929038677782376964361964309908995004326655750344496325029900979234358018093920086656929457126336803725121211817341431416404594873921728701065180762388300685485705394750456495356046203975721004608307747214414351859114972733382956782425638018418053342714243685942779483851644989253622479677609927798009952883842447989244940590471609903583572835804198253142298216444693643136600222524762565966774933811387321633614964317634737884867706242532491927286088052228678740001918109011027911566923676681427462618740754485829256057049278137149422225753566785837228112798445865877490948200017802359750346189169137417414273749411851682154332134593138979683893912700128981545254677686737781409793139228705362983241571482674265160559921182441843704748801506867011421019697211225111680621440653321011942820964431620665420856416684005179222276905911617881275811542433635329639098977515922828897336057410271448842526583015163604180213743967308418768337357278291169927124111196606429385686558108603317040579362431491707362350024065929129157204371200079114881661672746407913348118614115441524555392903487121949235564454070441134619222998142463165954478594281452012983644959284890894309545585907299029515342668619476151899831469680430148834644368194742916728939552112472118172867260302409608521059532940573911105561145487970714901966285944421596583766471891007738230952585279672805515830152941683907043111230246388191371956087883216229310922146648541898090723513146065396841478399225473971571101345684449934381822174441611714834566889074576198688044030769911848719427912506499650163548978369284623612551664274450280022498760914434449755633152333040411845450111211755989726299417101704291565858414691821493019223733449613083716330874625235952671659958265769356336843248054769216445672318125492500916405650905169889294057111622017146347416690177615827127940829565682189856496411385552965651914564907838858920620743595437693966911270647266253132089419243266163285020010259692893839332628390637661412543301246741516214757085622119628674649721791213865939078033268667179851166630083849092849783257787572026128227585977192846188513312041941524218683419688982303318861946263343908270528020175718598384940113704856749756963559679057542357376235981967381719669808307422601538484529570884694005394558882740931904641691490013218778876399867325950492981900884791377171999234558340536098666299737993880887044191333194068966039364775995038075546870040215796612838250135399364521368518428449903016940021588132120923996679313524163007098697343092484517382129335003024011478817971596121112920166436090160990836096738742234460985075136390857663664571144584464982622327546196995422016855420581912615844429456141581361841415813316369545486712519555616183005205581028405288903861000245540238440415489880513427983805052074775349314013098974148318758425787324666724851871560928515996749428611301543500349018522174806036289141875855369854211491793957988190641011549904247040795451158421681312304744072344867275679781894690576746036402845394386351331311680745442608899690841314505116289649460468664886435145474825104196181104020978405286506620647284963536910084795471530754465648676177656460366041044476493516929243023266757971854347866193599023089042927279416812794699500285247588241686259364896430633698551746934514682473298310667589374125200966072349664406451838541320010078774514790917210940816034479050445706615799664040782869256814664428815764103189605819635646195241479105100451499388524148244780869991291526167048406429843874164367968428230165437813321540630829764595288844795203400575882776420407145936905384755568146584039161464346554891263920440497386745724129862838249992820824571761697777693100782775409449894375452081378345096964815511908941591966262952192731321189469869566883105980099087458396514523281265412686275373344112952030727729359532414774118670524785670108447051739537617914966534315421462420342527504989454945620771382064990055213130150506798854586597813662828466325151894589799516944638068899098601777815752448481340092562965095509951469317713667601359695436631621921452403708060442779805777453374733533189056142050308035452515271040727840976133684953013173001077854453260535454932894461910348547962875913906788537028075955464456832998322317935079583006627792083195455455109116769930312944087149324843472418105250569033914079735756331338264239878240100158558797976233957951361797475275495582383731022584992895212398928101889296261949959196076486302796160363393945261739621535441263188020398192545462817434217216782062381711897993683421063173638805678098430975981359318940155399435873763083289411135810244274966001848246121652204241921058890760451179635281062078793051829301119798001148390425168207035899707455704475935080324382686327035571957196954095830151444129985869503796631156147067126950722858959820664476304005134934728430411306035250869978676720531079386370263090911818409597985337719809308460847613524060248338891826932138807146650036450554251396365289892740337088477169923992860525160288041844654803252352576288625316610853937282955097070859431984139187968598539879683269179008420595607228229301686533720225180097122103036305414357975881820023667740821624973786627830171568048905049814959601600584189592440320251487342784631982458718833544677119804553167028692852804989411808674346892878672048395377668280412552364670733800923658457831030133209621063151353852790652333433422441937081739877812092487618063105221224608091740002560294600275110107944843858266316186328006795646151848139805203505456131891019259049433379556297900929673599082599724007540311133579789920854989494610631873167085931094949202971205557521947164237303675454764600280895838237840650635891444768107300676918132897974334979638559636587454155672156641514561037740899048235130676191250578652483604195997371323911320790310262948062232945822552276281238048171094563413773631983507188184740207927539181932095309771218385356778039402304036932260185215524053821527208148755976504954618935404332456090487896852194388612445601012884427441108779679428160876499248954184119327876679021212479173805907127418133735112074970741536286182219725759253781159218530551324640072137162141442889702671814187532878463317881183601011541230104205533757402635936485593047141490250118870245364943773452258531162054249983958055608222516839576155265143434148788418639486478919567701228783089872809166691063143348659432887452835525836328506344770555900203363986683790856005072067370249294123947344512503612177714433099189630457150252269073906152917553862866702160257256538797403902516442725030919663713989097093262637119187006308105130235964045471583598378204403499473070432173588183905245043721721970210604395690697637602796796064790044390427714884810634752959985543194658129995220550143774622920170777300372862399471715552502859355126600041129327057803825071796656763231105423741248640437617004279458466606666740479590718851059940762122273174671710305028286793632571875348331300051063297533480806789909880248503238198078669875330813635542655706054175707030476738887524247388723219046461588146922804984464108753471604241068405538692967606031961335645197562305896327399099472235322608281625795398363074784989325674090023059654139508793353879172159929969958761267771388491127060895874400986499352727851057765966425922797179988588835229491825964470498689979126710473204026611971113426677099537292622119473344597000481567403370739891190000579541124866194999627081968688572291775722909171090756992431170441379407893584371552395429716380185242532755569021055929904620591053942264702551192127514985634775758146852610812221151036175487564453031480482675054288504978668645909113010400331430505908953548056070924830365712237820751531203990853378014608264842077919373770825680277665978377157605678473643457460902591007193956165581209712014275358393660307360685074205251435243421853938282906775627465665780977533515585353735111098489060034963588370646644288087071186831256333401792823659245481494933806412586098807254767582492253766545872485539008634370949673885007146929751851696367284863472866975877608430639580132575424107076827132968430768094159360906065973277668623624059438931907036235322084146123543397995910962777698522841206116275560786035287952571500475076210794642983025761786381098323917606752584666615530162051809536518895488863352083437529480469878616553666795422675433969098775369901545309915030837104307909606505350445549371353378536876002443864975872517640070468171756547425777499214445341509613284549296402220853196366932569945316256808629979785699538417631158952929091532024107561967526286776051771819864849835244446146527423130611457289235789436695183319098178439368641431938492778015585389151455570807414419871033583320062182795837912938971558668619809026207922525578074459038001243544930325703342492838322205373376992939682006703168563135879348005954792313707727158959063700989685999835360244544860250797339270807602199968342018620310164821383686216382416145243754999560649213728204973468237454812582896204405217040508208241004220553673158141131093996907767888292429017449531883280913787039476904810093560963364356181439509713334694739106691472126485600767292253607206084767436785214945917909883438580315777395313472151215183102535455664801147238072801844812990912605906071011193814424829690799748126241743064073554254251359174803428403877821398685411686121061266052158906199665335035649263589364057318452459102028544466983947536346480078315224607776951297535172458232902717198070954028323245333608274001100071176646624889659898147173740025915520780161461287734611544436431162267948597550608516821104120831980279411334840922113655149124434945967243904961139124755035282313268233870147414317618805092634921605906665974520838247181860119845651175776977494538558423547766109747164365007491874329492508032311018143973058272220660856559282424824193161115344982659165473674413039407867149505281139691469742760278064726647794891862780076069616649687473190325842305190181776895065060647127438901697237766018876480567526245366337030255509885239904602884112002898649061723617493708781521783485345157719898821210724034939485257388532794787407699266550788861161069351044667241647947203459330446760095786118251032203914432788474869750281761397747097770014974736395574370146364940688500487923745281677080176290575150090770082714408266877332716566662640850759093080297983917432447635415985808225961380786117819100053301772353805226313621436843841624873086949858865283182420076518152618085770602756354846538137710865940331867024213929098835684347751285973040153399783413064324925534389945683083462167180855275899654258596973094002013016036664342193939086385738759268179373988606689217113830181501846973931656209902730007801091445157364910241762160963999979052125664482988055291729140914671417507448184056295128472582634981035205100464178867044753156597719998309557916166944816315892501967167457291811716030059538480696880367654144402444386214202476974857666585677602902875522075605408982311556050697309874837535438072308951776677933383009266811433011047914038166731904527824044678816075335303431201144239488946931688071895121713187291892347057277022372417926729966627478178660521035288256202044887838890626493487033873060028922431011710847295623452793844774456887215042432183911596643392632501605683421689696166445756465129825831513842588172671072787777568102306962652049320415473510961683533416775284811066274079148173730667784708852189042831918975511670022463828129747186195982994524831991333608381389989738768534297067131745876510954051470393697056701362534619832716165808816378928817457599918922282525767516423461644556819410916029008313321478960340562951365712302825310593867051235641160020953237209825999949853434625203320550772664656478453917059480232999916756436701071532650493376103190126977106551921379265955270416689380642963837223892874254579467963768058486415494606913255595382142859206164241366551490561683507226833182836743307353054090932249831655170071587987222330400601955664845749587963930982457883869145882327104844617303149319691615170126092683327542622524220643616447916699901658724004280488089688244575219289015237387417804036275272443479195971770052890493731338218627352581196452982078281408264843918662375374538976659708848583227988076508148782898212149992390438572215986425970164309308361293952764526087836868933065755146954531166133665170965323461619378442720685601597722295172938171921717678489213471986968563207391891778888141009386722621094454546719570558169497993286199354859507897291295789495116366868708148081280197216131410259271721249554413267020381436405982121439529005745999813898187554918714461751993628155657995822442218615474840341966949580492168853616773082322371260068396860997614341522813649849624279855290030290067894596803708457741605322349753866124511453075035970903583157558078959662957531868473046534374213878432235548073315360645807387222185817807221258556817623276946640838107118873518637869616205941427370204390241065416068968909033779550660274102748927831472594408447828570902785811751327532530776310291108408717617476266010248244074970693597717426336159796954929245619229090885985082275265336188893073043376693062660721431464759695804996566593447852402404271038313003010663007417565193594544537042469874328810661071790447969064968729631238711595276017526941244699885535679260953925280625866080798666754274563494077393177069616640151124297915606154770277287681411640778567926309177499984518045270522542027522014340974617217385959804172079485205522694708834509120551161428988178358990663255275441537568241524931029198135607036118571515954919376668527286189194256766441900063609212844232374970983510278742106567807943113524947717516161164381860935476302968243095770349482070338279859022910286557624386569739811656775869127755417939912514766494224861013511228369593290955795378631468450218420280920836578515222082594462255065508055790845534954769157347759632593547272136181641023946370901119821464480599766074704141498697454270485737968281878394424300866892279738340402686879395542045144693847707707902853559590950503151282060812076590336056296577376421407988235197801018061099783372932155146700892211442077333878054263744471736034726716827508140309396066534676632748689736845413101648259285274897203104634346710287584285195483544293438731206375427406604305566592928011878035988428004844870467180554313091989140800127481417978449472575110591710624530778705054417277087423136320090838195756683969299478892769898685680829714585505489381762682137803200179948874573044604388348385584049810293871142664593832580208178722659293970194940454979897108849681214739901803669717582703517299354120371289124397909280029952001435021394377148371082346234747555156957422050132017735851342031035677056658661621544714050806314861871869299645225396552576280787095961763502130089520004969765686116507522820554303397466848903122750513603243750826407073080898228517492666940943737201081548231749932612624271757475989522919978311512255894039301880339916991083151635835975472237967067560129783721066917324820370062606157094248012329451167339928701831032725160014484073937644207706962754876215757152595226783835418605359347161645125321110512315003738778735584978599119555340950687661375993520351883936065672038317865402055786179225775502105532379934822131892910414358842185409081576165552015367613392452062748327405663814150752915763318168675478502606566538229413046996926186209391271832885458515008515911287484747647475237820669891299067816452827229802766669213565569182878334480836872949400715577702308317481348627015178824864815357774466358612553778222526114603438282880960209049187790823587852369521659952201440108123712231448451313454163729461323563596644631147614325067187748826198117724402755212340786943030728321308589961062578174055080128610061591176159021210370090796095443898795787511454487813503727369943146758893553806677267804733595333136882006099178879528101330082584027946857504045772134291783281655821444049807041665064230269727922711396445746151030707716056112799402775583188053388859655580391176342998135195870705896900367713668015919795460175385114262365289012242592504615249208435914539714613095259155960080213224241734573366115251528600695103386483870272844335144519878564092321152318624614073944593012495314853899171042621086970094562743215836728696164800900702321371812842439398202084665943596523590432486095068431331809826885234764950683255221651952201250908530286464239947633050769433923473159147597408577813902237016730455369258575982451467746368695924304069251137157124791238836966413436860752177364121721371571152809849453372176453222819279004995310715223023440758911339922895042125557433251900605796788400108597061744096212328705538028461074810393548719777281806347824612086049790820685322689430900363457342095038875818320867763866926273388094470919667060341262959781087218176739570038677350614190279681612013179970962741737796443735005680932022915931108955682042104747699268370859985316147994894466814156428949755341793227540701798986527389861662508585425783617807296317974765403943575845842132981585578175324244985399546356934672834908522121510533488806689604442572577276894184007042889457703126747871530759328439380976888978012693018950156318383891862239009139066700674323755624680153230459131021681520939700032106430551762069429301997729077096729137551783234763152214734608655602153860662270532590676955710632811680428489233647115535958487047357143303858738066437748841397289718882468733634298347558311648894854705342742323296473616656003515038511391796815850759359518856621718156230736445260757732450324689357460868024489010079728842906697359731781827299235021595121357249575364613919781167761668074043259276563575129755174415811995746784956204944658492056879464932640294938005704641294203505329315253926601650799273622731129366775447761099392741197609514956677964470141063526535810383832977247111623747996638052051614186410841968783322465883073059520660867581196206348607870488265770528361339410727327942202510427032722015764183795849388828867026550298713677930261927197782055097543316075123203262435977221987910079171220090848230884195518197004670999301604099548003440752386415611377982520496036227188102886822624564889610369086382671210762815234074310962400751010978208973697502586458552345104787666126847457449726191849154601622677538023977683523819403697149357797019736700686716879398670860418117524953420704245067896653650362056314292872979299443343566410780387707503961504832603346858098887570728782024173293095915690372743280942939196571417236370244664601333342968062245474198757512295492579407957172199355891662482120285817699368793894247988766760096634751080932261457632266866698545150898528281005313425436145174242362915674598689531000379225838661799278759032976455023750065511532610771762928298066346437490671394379336569522097361754982654673697489958337505029403778223859332042419414404102577439618375086552253703421384041858980726855287575744174300456808753638800314590288298500416758449976736291336675971768534969071964249839260782991114291058765588949584956062206040591246362010704539839067173401490403167974726816428074630679884492890739679112507033830709349217172265796058982409137803697689496363041760365401984251584642477190873778008439678329819743621427038719342376271398286042344542344553634585390557340657949356525949007572076230059052799647171635053002080937069432914037197911977418116901163904085891874178152946008929908959460902593810494315944610685631038263121443522814075397686210321106836268556002329024109306724671516933789845901419569608680302830072123869278861169562192103049218685629101538213074464585534331129662728922541380862805444695246703815145020656465410664995873593751714026327674944665291279106709355539028158354129132308717147245913235143883494428694113863682461088150562864359538688671572144481668721039270553587028456872377059075581777175019360074566729804266520742645701064021901132992092095246982243447126135180253086897929776616953632682597425207981026344794382981623308550815768013907093711319068887338305914207824110694756029648464929101851890981297571626597266793686442002282186374906518425786532535900564361840827411372615178867137813458023113239041956896831945677026391330207043980210996780269448157804262531512372606391598419562276525194070627247747412791735289481573476865071425340876368297020859906561361145427641714432821395651527281673947195664152757628600972549479803360797506994908571398806835118449375778934861014820641914072632737334898615620705771608400284128513770698186101884820098554983255665560673655058052406861235525614517416516385290798198932878240988651392583587289609374832599148386364098034081342663324790598417819170687004636647255563092068266292853203387142716690256719298158563102434744197984175642537300692533003337312537418025151835512279335309732695580927780518869311274856709069377041763135793495518283722191962047773090689755966697018785845374476945020623478105365600534319579766584839429809702904832654218918847736719540305893763316362467186971966086593111223344219674177308773802688526930050602712314296529062559741115151145020422558801677120236144157208228243979541676165898532423756880109720661089383762219404132197959111663162323081403216561284790906523113862875461056951853043561565012685544136879388431310482822034716903826874085871777853465869113853967415292755227037330657095840115308446416867012728020483973449941161977758787036457438581637239209964245539876340977790801743810539773429778396999509262222486946630295766402408582002885842172260469718749666694655553274061270162760971092463298340653389499663688397779787144911970994307593968155242213910841627232653830634229483833000471997268450916909711139577457317901012724723009115822696465575767441855633944781664902490031729574219230211635077700203975018363760189639433066541111939105848591759246145433369513216016396246000199590590106612007591411411752987325300796327500319889014389324978711546556361234387141459217063014827463058513066282027741964962115563199907243951092832082887245278731629090643805028475891492516972118552617711607651750118509914315083312901541671599004885100364213894926111490129618994236795601328408890599706816059100001464734497161729381915299627243124739643954237840477408141810740033455808542826641619663796612977823323719780670257660135710528809651170704647316023801811524460555917437794922978962623102274164013111218092992451870407437282505688149259034196465622061871300359835820519836101779453935189604324936059102840068244667004920895115227133323238895364043239826537412030801879899292968090022290127063366213103195062722402555844410255666210751194253703979654629572984869543607442553364501935087191426590675941420289967574129162204531437621482632948087700143000399130138839961454377715964036361214341478271853468277548673554947419656858998411470858950435712894181476851715601636859858796795170365375845491537773124745213083252557502627064433043112717981590776034158850531554055608954269968379580158709012754157129320024111252993235559577837429772176998109331854713592607724789561058263875214453193071383495537306326007634904387163441284450657023957673483768355210420297763116500707904133825455043299977072107787096881469500859378199977219986606925713433122403600055909518111289517849057500724360597679419149537173287428932685979265771260653540719434567829205298027246227127426374604440982709842240955657240395045659508474064822789106441476537763314309907689200078413977127652290811689068183033952538918310482717787847852866381449444561091172188129051341943553338158241286394921197094956760099264596229603964790907667853116638831371564508114233717951597144118074972103584113643545379924190439190190454268670769849343700443797184832401216889155707061189542992457037133686008426510565732777054301946192048896995238083361860920233353088045891995128508745297671917094483843409285102744836528418948724993257919629596779973725297325842815191608934346408951259915803233429791542639377362076131710600196925217881031145252917448065626845496779613394858950738404325680457439885905466140698612290875084637061043392815108885556245727441147616822636916792699183886359341961715118792996210265654186850389248633966283954637702687532340760392757986895072624608689226190582076399871625759207796931514786073692635229990095703876621683902440584134253455553486063009426042898003607973457377289265202864959817383347351148524995753476303588861524819889255730776369400451284056913883975659866992811636791396647498849831949440288494892681362879506808961896705169555958831211035520841462358303785650130182073754034930371297048070974667528819136014705471125106399358114521228756531678155537740216664522009603803085354393443954947034271492040797054465689272605443062818817544942392403682420405937150989225579188250481152018842515547122692459116281226752866469609809773448226570143438361579094824170425210864862759917505875573249343384925278321887077154914857805121245269781538084869657137808056158505980906266240768387670471423791503671010427249976793601423063125473234712243029071537967476502398240324439202353292017994307790062115473843951297074705283502317807015620094615459632789879972372955142969528744683899094453151768351822317723466237448317321160445185058429149059373381057798869203639826570592479154962269436239874775138580537914306281992873076469156227751312135671385981479527499462236078462872325006556488099138657459346592200177981214781970204319638191563910320368726087981086055771464469576295593256806546477906018734680321856035876675530853642026798385796195442424380386284875767279671968308850859168474521366687318421228578972388767952339175217879575527757107041506896898161365801710085767556726044803740148782829613486297980527345774319390765992553385402083648683126397955938082755205381766512953335787634214394944393502133766021603580338262973256058507275809312009799232901076941655052197457685217467332780218458516970382080738092894437551455528720105529495274744254132835185518132380956747585627721353122887317473169600397412579009088696858302318388618972683145330722867049554101538365567152071639283458299089748436687732535178294944999010998852907162733239812952693388728930496121888662189472097957276030558215882807275293151183569149939579101059338504678139104781188564036112432720106516605300229620102257692935029030661399745344124970544323632678522547196065590242617743983243383237699823325838186865965159695172551804914370973467890447479186374912776066313477475751982847292154750097191795351140311800196558959152441348064372359803915980283170365084466816964207657170827251915595775309578962944058093635110919732314066337466625509939743408165696586895268949346714260291541283798431930029648851355244870043404078351246262995737829645153648655746734225150926478795209545993229988735184153847891179476886227117564632957172345471935380525613328471649203682323625957842273384173022391756355240804829133745349854576880251423390741609993962185302879279998983326961738509905568039099944895029095221522304361458791992141782491135459410448357454844933017594635377843492373257308798508767491395748353830240005348094891908880137168433903463461658181585377407840525210137140595415671183592726956268483455192781902547769002521376416736121849354593243079147709514450838263962041719601479147989968888618269918640619578666795116978381677745314018872025601719926623964134326401702363039915204798956966776937133835524072933805630820245717728979652964826625222814993304618638185783316710630328883883456553514875913337762208220046770885710690324206552700549591003284644200511446397412169961999017477419772622422829056449868161634672937057423710001779911199528637325178382667337123203866020779177173905831190902050522023602191748822772946048398662672232848608878359874959742399090218506412225687251278355610975809701673185887977763249062240951710978607311062016100796330400589983183651636618309240293309193302991322366618790624959329924953046713401737422970570149250644004728340256411010629856912998581003964890092661093722596817994759566703031413570570380769992081728418031922188017448267797987089518079129120107219148623387467149535484190396567028075920043529738310188463670176024814924356418207916305865703115863590281862223921461971673524208452363321568131926250647773983619970071719114704785727126712421221988471829143820938167315165459315930107150564787383248452893369566079902543462763806983057370192024553158903473971214004317909560276617373319039461464905284359694885916245843733987715610017175208804394086545096004780216963618131618648238960694081002958500574493020646096739177046855172732870690438727415368316030848975581595982583824345917823794538954708035225303522211620602343035706558008435774231368029997364345808890132815473232601486077248533384949550008895538774341355467633038736649577059340533041002404649108753875684435057219409271342669205417941322738834061320415456541908888245841285233987267520550031356412722341332911601614948478418224140984428559028311908312006725701057371545309946960856418607659419023280430985581413222283110294300097321025382398189628933835546576235974838246674699578335313533978032005457201992925606172412298758554482271156716537071737760792453411177823385923414057904731702933732228053640277279701285573982394737285613830938770393511448093260426290903814953810390958023695784689196706520037958167446684254087727451394763037506730734597446694861601596009596336125769363026982775826693420100252056702872932013632561711294749154728534098635780626711223771690530735352283959742462206954786363005160765338139977885312304432872359475153216578119005062091373264629999808512865163171134822243370897674665752493852050588642208799955611731169065740527408580433699692437831821607896515424382185114715898009875232711804676363885122449062298894423008494158001095937084501541223179767907679549599906420310138749186566472877085843590240336012757554669288722648468765935235861081284825719078994648772966724076123478496158890803756647045605335608660546481465481625895959757308061664410529556095858822239381150399780694424114586860057274984981478274063603520380387586118960115031414224227672155396184972040490446674357441137654600619495293198492331031261754022898439833250815491095416781830864819641730825779821540344724185725571476223940313077510443820643454188020817442681937548767574759638924536649397169755044784356528778562372481566863542892110161681515133646460202081169301741133757316483170171831337988718342341443690613408984172320502949358058805592938906349302237061982543146637390184183275821473434741949957722080712612312365623933837793874733854848380567434339516283720209695336924370506551557858925842573475151247070263950108808057504548554287609915101153448610282641351535050681906238258359870211959185730556080741943329412527645660592945771994275750185357331410372030092211981035063549330187548227193197709729596555651184572828792618841699226084235288328105891979225741581765618031837839270900787372458753881373502109717086823630573671046838365394494007905211941782449226192665552823240823890377634941552777485583455349637864726804491964828198056190595857060922488128932234762161947911780642866715474662207096111554785907646744998915109156295684050434105645634839585987820200857692497039886110845018411443838393882999120928842173302971886584739973493665963068604081862343069819334745009468949159039284714431442954910840671444187180745485348426418629539804441594834617257062932258565597198203080738254185207784561292635401081529894539868068866172176860445404573697758884463586793144517618174046124240750581990532996069503000563276189587521921537248719955614885768618849288473256403872187469921383752585714089276759708612057295069176097170636996849832695168448777482091636796234053256297492308758682792630522061772658350868047831785038806410746149251347071495050320770424007709528139917995050046556193619260847007205617602388538913808794423899278699330324659898452210976040774158497526460828901846601621467675054195917780814329477436548642272411254357009756750650312095245834210421929585058432949393461910920495206410270060621409408268020858682885819023429118530213898480982777242865741553782542853903240772369117347542580918080851158988898614937732332916885778851224359763788452987942548224189066880422968582182276082373775705472628059436636448538707086170774454512242295105745385952733501452900251592529043002400729664021970510421556250169108354297458898094046273245468537971117770344399909638633982347464870595833183007762517698141128742632832078098378852532331115726716977307474370412650939016646143849918820185787448337586600056350237239366497619173064107930677900281540970171587195142293861902509174874526488612703540459881750942978294901383543940458341133621770119125635648252630346031080626083601074007732537917599523140440167107467374070287082253198543333966141262558737920370902826273483423660805692966150226219129531943425056026229433478078217532917942679465341438318976591981519942562933218726258516687805508162770306150220546073013802590491095404648763794484599411511139482449746086585179534081370208411338281220206628497494208520825337949961339361781554372611109684985843077880870183709551977607564765752450463644987633196870438388065756019433406628641952371892969214949946444251079231774610596166947592581409143570331624065956097231565106380220993864119561208875117013648503265676882657671482599904906651968603260575053164255314760735095390588372817611506814657509959004271086117402388415483384518024201998393016201515258076558926635706286175905921003916294100702763588635451629649800004876875839898513829346375516313713895452031317277347376122641228639749424921564501828848470186315296075554432989010157962273199414315402166784183011513100330210448828568042671805210437826777092155801336081490658543250673870607942102653878404640738855214691897137481366926865056269880310336248967729700675157247717362190906581040220045297857838743577351108038656608799781525112991409182793186679816068106765577048342810143510310987077791575615861970284398777356374532477960462466596999438145946463117019386439112898377047965780320607065035347752975346797381042715074539789915322164318789703352995579306231540933661782147153680896119497482116113934147604494277018121937869661858611394989704888973403163240824798857245199308916541973912248693713114367809746713220976318574155330426980106761337560848938746024765025374049579465005494910355631654778985728894441170561215007327150294763995055271865716022075133374019914431068055550961801417641729014935023378784795969804287105988609814982544202538579482691555377129336644226480397757308194832043911131924501069859165791692603532057585484539139847171998667209521731287547378585952423138299037628809537833025685052761355027577689759268914036946043561980489062892208252271165275204353859281533428657854364746835363386515805875234006719239688671394771788824583985899548811932229547505423740371222541319292233522647554124551165220610517780883697296087814600524128415140629295940575765328088333935115929630011336122581830684096712747740056512371197418127067656697389143217239593939327789054257366487966764300581000673693681212967245092812855723534206035780006498550934718352851644996206688244678001564140735662164979353779472639015453352538656541897612034884511073987607623611264338665785989093336926883236710941762633932973661666955026043150192345774243193680202971991963621174473806100104642658771621979533490456945486322849788002401121798279830335506489629323067104971736190577499046796382498776073239783381181731100124673183093349626878759631438784807787140928192239978979457572832598434587405653974200264313360767448101611262329436264734494049886917276227528842180638821000520196441901353417323927889816650580085335807811283969965256800272179314012079884678124653906473033590846949349907492765913392412179864086176772145794249686158725633417256129885354595281813487265911513186743685905495138302054718909197239959835659891192733075286710740360604221757974754350297919742865948140512919770844631431942410964551247785011764363826111733957247635972366046990221925962116132816713231789343704842519028475866921041648283860153796232054478910483675496529723150288421113254453706994462367322287290584701406927147961307312952055499426892336867476686307748912672716946021909585770072689537458825431380541850182327583534804404268276432629710305388764949422012125577060241744341467472817753047844996687603014724238433264305627938268180471610118867640378231890404798656180691945184900891619203490202392744617811789348205210561600457114585841683806556301951650563429978872098529095105790143001550127338483077934622780057476873964168251452740283433490992348168840537928517624812095951074012967339780533230561536850395938379874335261050464054869756864282135941906158525532370719237992188891161013805007752564018663996272985845939031835844604580956506190301053376999726463169360453123096759869785807958945349973317918636064712975351663855800529995306647812481962478432128498089024439054347097640364942094710412447861608050417711339532348769691437442689834389544833649428245700317693389123766977453059160172174707553711738841976126032921060858147456465956427429114430968962713233653603502650778218036873806890161320666043564275999374405137830668340266214368979316693580168000410916219886551314526610536100129791733613583425935214779594890742971876922649505513218722253734112096516096813502636764759575872755361083895637651639816618810080199919085950339150014379822664299981335355883359688300964979273100224866954126862691579153375985211588898058951376325593504224175266465859136340588703156552555040789992315784031510029097673224290574232692452119197355619920266673432124893763174382618227608538556264041669085545733782905094464117076379366270148900444162585626322648614377497701572718212867173111681694189028304537399342617905905086435867823850602848873801588882071529005611486923509582679197138419884115605363430101146638708781163318456313821965980174904405695901337884289722253753407988983232609260709300294221541907220659609383113190433286463787087119968791762494379831396781493427892422066222432845001469345622151584642731516386276041709485316940934152922972933420279862039734303804701186624953575385388251529740618585213706715130711853588740539238838748098458242128585828132186270381809070845652524381863867780423592736407734699578549828030074141715636529922933486683108870281009736744706278975191972826033534561120928302539160798301853673134748661923881755658619827361179705245552512203581638806198019350639260797559782072962988891636112064626925372971978028320632167025267926691941784502700252412216497590810157814878429745933642258625647844454274243210348798331067873435038143295476742586041150395818431067918790955471902168759603098600865192772553054913329601849906800705663038861458479874244371517726704931337464828241998337794254772675646743114619994110074627038967976598262430924093365948989923982990209991198352474984304049725608294662067849555275662006911760203126754525407916087014259967339654444914691421363307362247776091620752070012869223260081438477577579716735859306593601631426233897994857115233543951644544185418177275285651013231004179152553658617558944958053753112427783417945103730525956648304067576474643468203807333822942136446851521087852867072762763929054105591056681959853218393289286133392837390931477931109944674890413290419529199055677219660380137417881659128327652801063408301700020378963264658598419950450451099981040258663016146852609438972663334491905159790753235794796287372907377742809922557082439018413829258635633724745787452531260958915716354806101001550249038419626935109806550610203759554850567900506593605419939130341757175298393849195609962532549481472155808145414921533912154680943105946981615481810557051370931638436500162345966493289104053952715399478012596622165933478139369106803497907067889219555878569992773891631412628004185436784184630347321890036954340668404997489982590409201574248673045485836269544692359423855534966242435311693629108511768054987075787574978718986506111072404620370896950812211341062077749123552907215043612982216054418287487441724749170713913911521120300565745433393060966600722800449641230241215759991787584206641618014405079161401942098589842658544886354782383211102595257782078876526395913565369635259842584867223089587913506679518512822389533558336425966273016992210428399427612447821390053334092497190090337564899149279603414502756750011582274163394210122279798825113224768559215712551579116903604932972408792145318983165074421635030569150167604856501199045326669770574284095762781550259765965748551208233534816826050766581539551470313580044605797828877893797513932598743118532819865291793857638107047563689721666526824046616473245563650625581958340022608831832770471091708013414664130058721720857961774388102661984447983792880691931585184053835703315801947162216932524603174794549520713212517805767705672759865550497577701481031926711784970933765578056478328832318962174173531119518699271303399537333954179660387243679574355847210135367658661843269360005181217326572943868353670362762124835771102174982842717603413840506992757912305716238035378642404049441125139404335317365294905572688782783843849812825418656077012420189705926006401235999931933920081754764883581616506712291356483588526225338111711613578921682824283286436898717434923989351138439234840590139606692951141436304691232353629634683731041001932476932068094312164243406210760313204621147086671480766225845589879997338088230514681249369285177526172543688705560550088391651847119808142970493612727813272772433260825704136842645133039747525376824327339621660553541968901937164372337934761265535656234272365994342688774859473006008147064085000233149478544460571075477890210724183743118237447133539618152024779810689090197084089689878492733984399281118713927982363097753648450970344008850853533608460401143455744938260082268063860542260958551933213980282046027393357151771067679180395269816619701624827582931692638881403513490631167454321952824450559379589928722625498449823915464612558603493326457148771882908767229863051317708377642888344814664021569855681277512559524399096645265862049393606194978204371000629924320367603012422167420227648309028975440630921755940265063843068692443681597168885027121527675620506444587162244627388982631840896931169613931190287839257908440939027589292259755352585242326659489059865535297117005530660416395749843613894146652268836525058900454137891728553581779335086459722677832135950173700394453468630563422372908678981377519612268490289738033029706091377748207848223188733682226352469358017546071570936063334277166278545967115960689527084229167645965644538687859862344478337199766459153694557159648991161777615722862525856881068511011550576678725933214879713171416108043983739300673698394089831320393045398743777781081973635695667963047921238542975105832072106012863247044837738637001001542725811433301590640500793942426536250800097049448457024375017576505794455623109232241470875166715842046890541652397508828048400408049559325123003638936691707195193458682255853080332735041077828772915999751107949909315949381356664901996466727777467002909794892506713748073509054181849433007984184112521329140242609079077106396592404685903174736192241251635794135005863547685527187903613300363082218664729465679453120799954432361115866844599589302180906954528669613183764592187968157530900034910253329143468448277266414930675570353073526544218709108097453055455809455397318465023492790745113062396273881825932491516447387834883326103185748598890250876489848882145722895954485815844455876608450049396197173830269690784436104133231837195402723504709914944792910328368381932674062808122560868082498182464313687140471949313387094803681466982108199235078438297339394312360791131355727671932471948179835906140987923123434110325376973375304327251339594295159659496066899702102333468702986431291478884460052388609331003476826566547004628824604164748242968947412462134887570789202177029333903801534861786297781347886560314838426110368648396897680410105931214114106446360540885589839029799334678698905199973582401746136772545042314750580414680737493431928066455499872788642337626603390233132389411133044299516572195768125762538042506456063057392208070550981859891666241840365051023325520031357434679705155689317675093281223776937332683735422086523395263490176609499858579199032448338638635738274471504060512184120816310693176602078928981894897298029940931085025499772446330774843772157050176764712106548908198313405348104456600186834796574498535356059641957691418195771827174071551067789359587055868566228320021877441105635028030139797422208406089480073217319421164403090197079206793763008845194024937968910251659258241107494612333296885772290419971640276673889123340003644408747365893245910008822660235332580742201294164309162841611524161600866168809904098840746084813512073196112794492301602247057050901965530207514917753553965178403890627999421200839928892536302781574661892304057288146796406721406177289494108951702840138773521097856505179944055393576230253909548995609669003668109930884206259008585661650145936157846585767758977696484525183894776430529099622390767994725070538408244940197026949621458614705575615491893608758851476420672916139446900221410512785682754129496955623846749815806870660320808629691904591746841672865609549432063920570091527500588872323097453898001877899136293640955917784047116230273838123548640977234705904069702864279303273312906128705654580602441460345907159599740839664608641277282786384150761405296564624594695731882049086194195787538093821010238368969837170926389995221337181304165595810124483708592013024357942463074073415583458791856768203424605521701693822038007837294917249899309389723220702686712918410051954320119602963707742419018507202443556670900439909861229890948257107098199224453131610654696188351990977649422541910571302199094179037977507364328429203645971381611528217666065293789873782687196895191880520489935444425020574414695088815284381912424223438422804663707100414338535579277500524075575122866770831443700908636150058989472021474810911593550698668878141068031198242129857374581555674660006360371041704258054045376245204664577187925714489283730837348836747249934157666030385495281227623504522194908072084664063682759689998398018927307714018629546905142166553739954964754441054240233671670467689739726123510904292135900374039335926465769523475170765424852746489383822639300764053388127240313373208701387289049293147553222955853892014572566761723908731919344574691109938840292981726186466101251485306126533794398731143890208824750519729014324703669095188909247983673553752670466425308677854970430661230426782627385950398214950853933755009466658488551001877400063869799292614011485452592057947766130929255346993186567896287904958697797633909240993311166543541675495615486917889744734157314333771776763351088753501345064159588809676626848749521014175983572761562998538441890294563645302643624048608449570106570134360630448298259720908516242083338444041247119730074600752193096827380837422800447601213980930775544299565270894650436667180564587695706213089506313874230170138056541255401021149170835627583738589442734889673650677427527879065669943315677304434975917239321552290168962006486538766271107032942639442663830374364898919722140656967714762740997334955583068650133471341822415423161265740776472119627703554978713709695495992367217698998467869197237145130652708313670491436732787075742592047508912736473178042506701638801838546809078159059838975276115436590775368047213302436261223003382775783704152480905127565389100931574810952238907185816939958738215016382638337630258091556043600991739241215758569528009928112611079060057969748569740486340152167850666329461857707482551804262412713246172928205907142589328466593285328847764472721417939350112360646047735929930111481668126333578064393124529339095770359647991927228904044106767698207805983360444900797560386017411126381812418193984610128300450884285638197567492285831599104715532447390924724347586567398389682586418775695765773549257223759628930541351327957644037966307570198265388014422784772134821310959642847855436390142431106555135008389078651386591264211815933199799884889976458425556505669717933627119261837756000239282140842134437967257244928507399309216683806235507618130563509214794964955969653402773426406576679835911111718048927306191742380333723911513237884599330604723600308665345487560730015838271973864297499176157031723336060616572011785031032083744679122091053706207122581006674149884443356251574151292708050853080140866743914468838399475387795678893475375357361273143014906039474871064736031314703387015251305526622117250340382903663024588149309693120310397955421537007574168165592302965302554262113462361019467719181498950911389138130756041992481222360708084011138348034984765800264078781513414858268669295163356047049364076232732692529435640205217970704882840464883253794278290034996399972544368835697242674268153017303679638416672274092088441723927904304258444667581852391181671607997893410562429175314537613472514213601683419914544240353875198483743204135206315468362490867462152813000101883707051619309303387466546418163173500183404982356741881969058492734115167821829783733341367424507854296906410452548361328767758285835155737046155068886270921016391658501966916251091744579629478609118638872708761566339465453201884577176629345877921273391015669559235457295677105548015087915321950420941959722110152775181774475152612092444790302316915805261449168931113675451220120819308679615855367321696999926636561875576902621892317998258979371811466598558045127661077062157413969478858274770341007130272806234943448517723753561109547788283304278144004802204939373341463483678124708618201925472034156869894611159156517231166304970241991237384451498926543023021491973943993507461393576577203228247145039736164732424060242064478603603117200690647108874650498253587657478881147067153983713790583161638688491839646698806400490236962973651591958345506325684693414871916331006654958056805683521483041656867175738976976247285669288890299807688426997308817536645718827136855059630120432851225336117874240574698716080323162004665566891418657471920106310650386210894129273897079417298936735562657975844568781274617197771934081397102111256516782290711287221573829665376522168728910644287721245384709271357543642283404456312079098714877815692996445050965898463715006337984480981264157147255099457824127931695387054717737474239709880220215828649968427235909987096389619378712316235138008711824291907450161817582108196328351412701388351202065935920935636234078723325204601544166951956201337309475725776409718406634282901561073323947842341014011223685384548840948279253562906300737280156527201596352722504056840913121118043174444668411725456506846387670173239193727549962945400478484839061095791103738994378038842333063069193582495105430607155867951372437689945247317280617318627556249922705502364156008186498327137317768326123364620272919649536383863995624079623325018117898316149128531559992039770217115311075987202773926976832914794924382623819667509161268867029776170275379675231085965284896628848402637305518116715653813065023981967476481274867329563850382117477984122614809569339524106908651790483212372102674488157743589978721724981967932079857806943008175432730465562819450630795957850654064087402506044719697166839309613776510815500349604961200127076796744426042924378243169134492848696392119562561642143064263152570781140414731027766678170401576124989230818880478857282564372617419819030179149425788515998931630376788436253114872061212954456382359442209205795263341371699083759313555296048699483672961422815761266490873767173209060253240804682846675864522893920421008594945268654686190121044237668897407325445370209238736584714655308794479015979580681223165816084644272661035516992961642924590806838573869000984463467885366448647440645408422820531479962032739345243606711928927972469196182493343364727479143470977556289930729978050314549723944931625021251279340438525621577636842464424409968846845726993618655800596899798805157077848768865951990999346724183992646528122022345921656205607310306754946489812275926747729756209619369652843793795981603962132508007341979417066788968942046461710670233319959227921062078991693853496380371851395968446788790935328262026109698654548763471964356691247042184388273562076613446239206290344221872342804800563607748431686902430378093696198993396516478955369967373910221984783811618249772131366097819343651200778170752426889182426521851468080758984440124010901077957674218259892631579094539006225652004522909930108102237637428320474754514468766199691356579137308093069210351286778565089446107931893596065603577773043324725026135876317480481294702821240385072207475129791444886749184832863296122978550706890749304528132007769265578131865109070567191912592381797455282932020613471229287807659871526277231408916736567359160860753414590668895321860441937697375456294391352322689979735038616522738583730787280350254789079062313000588092048218563015067437957253449207812554562757091050643201883704585711638281114148440343980924899855909171194394610479660675300396697669512894393729019453976150747847701950976917626972988201460556790005945370693825595259702082997833680068076319560337683692260638216272933885575658168206231455353825011228410728121591460291149810406008093290177303578132927167732610009849547691942316243941968233234135165826116937970516124384378638579838383348589324986639444747656447731440995913221720384320526486825656381435212005699238216635927825765166151161976126928371118918964747058696756399203675250866430196415486707619816904820910827350153181660901550847034393979963532541778980196736082945762826402196229517142798423816479374031728095511264693469116104946713666931708572104417678438787988683203203736538016466276793970034156757303896725876070098201312728060191691879711018323588454963821113294848581228168575106770882157112584546494104956709619342318419683462616417808999753824834645066862112020412869681444567568403712168677236965618657223817978054489970570330249289255956727220638810400211831806314235315121288329456648897675050278200787009783407231149284061450518873185936700397547706093178135702998164184091271047338976382142185444282342868562561548324202629265937484730212618962611961466072051393885220632465490983592435969165823910184114493772645787083558748239349349552365340000025072793435374251527292621045608365129259771272073540616331326385570035511931286771558069476558797847805562468696776010903263139186605687967584571886598072743608437928384564511633365450195583278897724703891695517892564642905172553359533651632679710029148205463272798460083374195646530934856291999959434200167691142399873073822147733162830332717414034098427404809234938157311293219922853035396670778502486746473477002047731866570784645233102754530426966859456055843654222024597759818779445774513198841222188525453549837429573438398411270964645778978695188544816842799872179679503108861387003312650755528531557777495605009020495822395787580866428102862622803163033476013443432352024019514374825823436421694381769454117134367578308008197321325270803455837975262441326413021838085288542768622475376780930180131629802236421433007807818064054749736766799274436454206030721003068359027129016326906710250082444947875867125864523547366744935139984617068470023960356915399248211622108807964369749333709703242359210887869742626968970999279158226605455539634488115195761713014599281913044471582534015513309344971792867799110740647118411943491388659589689908613936543979774269134548870265596991795150452260058851804157516498270079866025576043159080111043372506367578053544036074657924671963842078440851693443217045588359753603034170069847819815255144613936512792144762370002850986248922027415664691585571107236082211281479405950278803546813382294804377674219776610134660007864357218820833650415858095344187787229940485008918853148463612708582903193081085756844532271436439319922549617867999302110516253546216437978644408373952691066486503575095958751875856553614144970084243155599584077645638786908080824122997176322855779996461915378753666872175595890920323075087549972907582832256896431921160347420605186075208215949462245026441756233284466855879204068541373773336472784862286982184646615813332916895847828889314798583761400692826131959976994315517702210724514663953711730533013123811364037030639472911877771488049344099358653811035305037024241480347344652030052193476573959476626830858769267883380851056567105965268756316700753915235942702899231340072923076156210955496390665445967222740038575229801991135660568929944387138989690313148063163274568215256479685732380657474274480473478485307778887032015815195716682073731420912557843813463394378378368544690736550592040693027263497505015957775760555013670154005947266540041414760091900635029277337606859413500647305700852220883982047801517818673700202779246872299215578330139420082050174498336982105140488923853483783630572491943220735240309015179919405805910377857653542928553459317105694687953957337123694270208067633494728774023809804613573283025488214217591195344101025201697446826780008916721967146266250051129990868019112475573836218661332886784337699054110224119867730804474356421233892043327210908592485023508667237705659761825518087630969545535686264006462206281545933951667265324797912405963743595872760830091604499118785332113641605156774930316560067840772842775033679620512104760372969061816984762389640070285358854170877095138617675578128233015232160354110896537790461193701429372818288354758266657876879094588674923130673290194284181032545245735087478560023639093443970732728528849744234968136393023167925125193118608826287015776299492386455717588902867006123085403655876780052512690539889598993024979637479526291882322736682056687125850679532704843260099396546171832537142785258868715294369566038534400141100520598917316711138630609303405436168765479955600163429223309366093448380477785560684262113226184345714130937187896347323975293091401150037825821739065708758665358192407674093951283995033950961249734856079436397465329169264362544691566647393793297105030019053999481581877161233488758288513100582925341261098746996738651090938197740024466800809703416388642182663128797475473351873542327372336232042240110760101219100454996131951392047186642943620563124763030310853277462645068747366319932738788892364299376036558478041119600858882174108861140978390872809551627120929339749346835328862102339882183342692227719143118700159929127723199768733359966311394296913560655295984237939090770117820969211055125762353687844764390598362164000135132461322815296762000848225312626211058338865458383474844108062686509183886170903070678753307263839763119585321307243756780906192567908179703183604793399968128196942436513132453740448715922698319506691240832431930966839691197371214604379597827818462649026473461761636578646648542426488150170865886340716417759194166119840654947200767025779948439244471740793711194539337759892874111757913658184072999189515864678629857674577454014733320446138581610691051931792405182288050057034696362798821020697779460038653939639944790889113670798388587053331442118347118589256220600994079166555521829034181689295399705218159357601986944458613057906604644742045848564912314304876527843701179631009761102530466773583208880658794870482000052911095224806221362421201126797535706992174019305165679566011989722459554798140101675036735327450518196035611067763355727580656409562842286534999346121222251711626869221499221407747930578018121175585311989314758355276208901711702858026920430024406663390770970439693790967909520562025700625566547975729101968381240627158718959112388856726230980459539924983195844270265504645321693541859219111244051634213250180568280578653557090008645676209324517178968016018873600370176600417933135725853691372384384945596361164572581035993228743456565514007446404551273042484595273409234091045788064028132347347192617723445837678839111455015758514538876158891134834069980420823408746008951171998281261552854804899588109230183053165817042600059223637335276685410457942396155469105278835730414915101778003183027784719532607043951829880348860842119711643754367177373863896028700727302225302564013114462601431414759125591334838181883427639714166595399192167814891448560581029117508220907775975227464403855709977055531661074457728465319991199485976395110436115625879847271746439233513157729087245984095448804454707419653047587283954420165471165539820969094928216564339310503057818697614875450687188141072124063755987695283491895463313049174960300777200766400654030826672296585599779014978471205261046727410710408715957405402315774225362706946770979767436907013759088665283988242794852577104062166483867325622557317862070646829427338216423937172987930807575975401826674229863084265402108919698179479710647264539289846093785662466806342076170191397431530056968503980285859060932247447934146250587524680905318346395800729730158417421571104674187499426120295409729740997633319535820490430790944117763724016323955496871939993277963118452181573274778475885801921989116852973014403578279138068045469548187592825321473718918690531381781726345571593383540478388815446540694341993744496561301910466010492370725132342561732124858299731920628088479969000157066318227125469400746021361274346901729218870396239090702420740111716373252878248283107853742823785053824271978901546282309663048266989817076169921757119335244701594220642342138592726304010450174626520276050910013210832845924564150845002176212426069916503436637852367747948255931467953170704604227891408220480092330091450747072366417966579321244469140486573818654957013041705868607862118127609219786690131858305515759632718824741303241130291201226469490995008330896984333604226103322383757915701769248557040767605568170877002808544440051683341133820689473585222305782356540582915990219452055337954341469890654521486377820920175416118571424377975543683443863498842694656921844437865479214411230777708573766412007658788955376653271856430933111875444926276794274383380718555739624715907212356668936878466241097207325450193340070465680392525195117850345187738280645940226988213325343154299536524771963801523375171262274815485131712181992442617844335448428649588650397576735601639390140710922087946700787359402724714154045472514865821062307153842805672111426119565483381575684000508763386036846165630404288443796379156063796605876285817478254164198049857617134300252023825465029704168082180871531955277403603452091908046065315294863570827176944227155041536235223640643942767995211456650349081322953478580417472502326596595875042043165807305441593377664633964067450246810714164927244806690325865400361460754508670843953853665015881245498079651198708798272618111863001092886238141736032693041832195772003586715885734815288372230674456511613733865638119935629328010619159642311242970011826077005824763124404642251495282828883247746132454086073775872657818699573076416812146580403145867762731437846024693511502666777183845205959717086412564427620277016827785467845358014376844746314398389780942712283300039549124354128266192204670866956955007378364228940896727543916650962907568065301302412683226568358676029595956562461343508620438252873482159215932940675000985133405726099530557303334616124269497349297876904210256163525059666964961190592555987656585616522364252370396309420535301841157856252799096116707848552672576188867504310523384013570090468174072937293633240044154843299454775571127267215734136489375705972732999361638684558291161549029933325741107107693231372974097809227263543425716551908313394202561046772300858098745849424702851115659512686023048812274781528126080267501113692868994578630673223970617076495259946514598438370857010878508381985246829962146733306040997050583854871509960213950793567910531778178896698340731658063363392461438039579488945987029971218308051933124806978504642950452054331902648676851456492712821734621439191491394787199061759198319057315997067385678971206886878492243370890692392918439856436901231138674590908957416077107331429722249398492806790344082462165222310471377369834712131461687884457128945446134148544790913250652588487523497630001164359999023601032621081552741413825759771234470166071732029122752686676640037116307444411539166835876849573215263181468820096141411298015884080635356381572092836255941206777887749747123067628381194564804168101678848610555209788443056766609896974762918707653288881592362707740235730806762579081758956320577578301372656444824517527546994242676501162894706683580904355114564460717290261268838474196079831881607331611220728650672258756099961560666617480625867081331576102174832725945971857995292632329954996411325112693870804723359767270485782199631972991493464599898363728887290607178139595339105939015088302596725915620842633511294608891978595573248249464344199146826131732009119743772773380136882442395349490447902051371017020749026270499684669267761760698688938387644590764558105591710850085125638906868775247433499094361948311641910462311951877071329251008767757800277908630357263605189435608612800282790392766512274374938069260437055874035072151413072911703602334144552903786450212936065417584211349844174453983793439471597320606712696012402083319551082682999126150716835888271185547050836199221209935685347077855211924861926635952215017110420665387607741262247861465647020013288982584467306414264479177470302040565798357565589168706494119578148317936528780979226907218925092932761383389879341081022155838227695215624933016750002515653821199124535035301870377270243637836042815396085179459321187608588721865223578148467807539533500172255974870948167387610893025938931260395155831872190946654421599954220814243564711488016324779149076394145765752666643994550887868225279982459425683532997723105234829211327765188450307847854463486066355887333844107179543404980991719761046678488617949853044913558249176909968126981664375807533340745826934620831773283432003548928867956218666151184513324024869258372942873931379647635245400734766580758385038709630859688692409186549788564049321905696699003603984263517866921204267875494378890429507114039049856136446608581741118267141453896440243088566730781507129475621638458966251709306710901828345283304149182091686667204137333861465856424111677919239245849956840025232091512986459912448480732020068024440826869695658694426805939471823158418256457024407708305793926586468634338991366713204898937134984136421884051355273441338815125400231941467578686003652209397553962267594412535232114576137141295285858758552439121098706277391215234990413328560424599485203079856580135831437866867412131659831051649705225261811516265583759935922610138517757400501400537932945798445036033584541887063880100348824574483974350897968425513415811023991993163661981723709600339480474465156085884078034155298868548234857415498160744702839806444289773035798362481214363427229590326532986314123038214310247910818384907218232226462721779312387181437441060973262125137524957585157771925026465394681913237355209795197688134755950363737606372235046521454341372412988656561021925971189936221786665328335046796303586179902165267869643483399402021059526676643510342713882452007058312110629728500606336112851625376305880905854143976975499486265298284363543846566802573983351877044302781993328049346752616051444106811974603642917226197605892705106570887837079487925835835794722016255367818313329259332345118389706712815394069409719087647233745815391072894754425741487647760587754193393089323859551918055773742604030343428097490170001759396149730841486055784961267155686040902000667946142895510164062045922937856935390515745473898007613559968062609667633652920680024272720062933742307219149272138153775347780430060156523376212703546475720972715828682128570048395480439228665554007718466108472901667282471075869444893808093599225318466726448600192230691805374608057524589222688071103223544194722676624566059121206193204094404299482410038937986492790519071190370609390818698677201227303269701014793863903913735462702490043674301571252680767652585335112314256915031332539848507845312987494183028388658722562621133044096523661866582194288599078905649334305026723215077199526754912174187868347132323759181605543148869785718922785789336498099201190650918837312018270354417677157488005555843511375445512397765143071915816978558434949542987354090323851443382120214234631000304576866888404524039587890207443980809128131699095404839092143322635380594428399162426974014513361867342112507478391897688199146407578283529872352738569820543095194991859348611254113291536120490605683740757996452728994901879668766713402482656748952500149417880974679216935226388255968998911030444180503461205434169877960400323113258081674979456731002426578835675882435085116082219996721385807817477992084870738290735827538564225915340148955182199787219538350353725480526421490238756772678608316406274552876340911248027343744108377493304936580052784557699519906247714634117084019647340860271996079582851915159032023857555007940061477319270609643134130032840980769901277459020129269718087596921453999936017058698180145254976452707286797623663644772202018649001673795160918021861933114283337811899681373511838674517104533458663200236360336461478016918809836727183667068726323998503843331965864130980899306120447358755865096663807512183612945372033877680662368149971519354257541483432919087131586418502192665081073374328271714748623029176610827306991923285843858355856032016320845744803616029892092739186622121802468199695753989187173793663314097273485120569689679680251184637856405310406846250959835895516506356343137162899704168620443548451924839661796070429793571302791045186087702282326542027983899419728966814536969655891224250223746890854029508127831492627464925193762508114653856198384564313600109528100063942055053327789828295687538282701661122259070417446657484260856174291819572374877740071792998850253676305871136970719038729233880417701581206901418463217869850952559711324084311319181271858383286745366187049234905414463114629407513165822537811690313093464139376494869883812691348095893955149086734228618577748047020238029610350863049711806416508085031138018448200062336830029094792419741865695653070858107050107267930008606743006387175263152256873222679442418435793276778618617245787912364818608328485706732280018266709009170906771336797488364363916822792928731167808806860884067842542620895917977239465142907986736612980822397358944275020018167122543938340895513893345368730295419082237856404092554027539608608167243118957333314695198577742377398668295177853588127996496705586619660134319569810779426308527130337694733665115569488888900499424416573456499157124401795440979498863041883146320801476963219398766494448787167826801268978665067053665484310340463993381405823532397778486881239865218413081292145569795353851299168983940764608603269258002863720462808936212105509473420097230814495040051675277168960975474555259184776227089254639861316575377229794270195702446416992937280338264877362769617286454326316443090861948049427237586177835108482065988699639321927022012421435760017875084465157427581522833557812206792486315899696873244930083080268499636212300745230334175469127910913572749123534381352431690210442620581373792078984366594572264673828659588992227143134591339415536364134324814218414364039206656280405290870225975054828948003106779114013882114644811939301645237180053026675244847545729513957265072423264888943775270080427879431635086345983228886419698499435082462639228998305678046513187193083527504402746930994964827966330239817286306771732570472581302541125187073050371539175757900512445470882889556052343064011665499450593842575471310664790551265152157226220942438970413610946966414642527502112282305330061761355960000958720162849684996535010395485936484538169109814042408591922261881732379044773126535769316263535815298864054527950851505761657386045566331033615392752012275762853195840605001724430881059501191271712327322927372020584965594798632679053731928669474047275617745324562307443676882520740893047084992386231832656737614005812724941511782656044430263455151474983442567833215119328237266218206549411378657150801758565621521587648932144075629875641569882342998666863521716578152321471071292521205620446064319839678800295249994719764721600471927094715768277961978381392687825875890642672307065322764615144605978112715590675041060309131582212714403412784188569080350077939872925844990821579830757701168471577447530023093351849410890064159806096581070325814263045704596132612089860320005455574789465642746985069250639432491056917080775333952031322536480995880104653953225646465822505381523690890126151058487600056011734261626134554861197869669562504806367787331642505155056993032229483100313580943158481804291601367472210380134938414075168039442387186597489849748416977076603297804074692229615267203253424819635909738117038489151417683395930200177828296093188788949975923190879932972489404202702418223481112461474255033433927165498817523616209789878942505162034255159121391319391764203362229399035942892886507485154808790373288712837799011383787754284089341820134951768131140814606397707999644953560310991063139724641716604570158308184257020556730037727613635606380479467138783227014657535025990558170430400014226106030142579384756509180809666195525032751825912201978020705862459603579950313869247125214415544435557067999768478833525521244954948268028726712782862747647310008703779230795355196851653518920100896236677321484130319127093021556327406902172318113294242623730975472039195565509089004000693845306348965644926087991060048302613648961653935941099250099433091424288170673006489190066376479772889631901905607915584827099286092944807640141624494972389306189922113521523959671367108075995514060107208349058959879564297723781147786730419079430253673407843118168407539779121664140672924980172120097927927428135971608008541071384848999972826040140907013384376856497972470387133733661608137996762561989419226711799543792947179882188649661735580497299088328113428037455771027461164501648497259919435101870075056233079873599998905459927882880208641584908205153989079245277089318812367987008796535489921123269985771065099729365952093854213855352247266255068007641534063399356484345454556675405562808361893788278672867542575346786421821526879809631304482705967902408062945267973327475267757414727828508340173984237188142898502798566754203960038111953752995077535522245069805074398449246504642520223896458257736704824604241676649170448212057207523945619744286303196648324492928781468343136772018793630401698050496771099344663295536642987610597432523074392215790784864904557808557261074484423561624339784311226106309729313974447740332152668813804648046790859120878170031827222569105554776500473140984526281821451944720657391617968380322271326419246504713624394044631109648930119778877121396088636361005316921946307761088891848522281793314543666247554453934925316118412558023206913390380463347088167062745398326728988577943017837347696214456565595304184575912955897600350910519820828804612905392094587410634805162579882451411790205852825122161517994582667196009160166917819085250138383318342488546160660540178077826081422758899825518930230196774320254865034580637693699998314709656962022232537371183356937269953624239042587810033066498016411088595273822169438069235608533533991000255678980935614881728774931872429621972914104256491987956211404035641005480100211208431772917432753516644241517320896719500610385984077634781671800798583038429520764728926694042916241213351060874469880695570119384518997574835982054863300093090291284399249974133825871392047566218016024346002155386887168748900744291556023199309152611487905662051183611117783275921356170179576397649559634466340204324539872981856288544407853154938036680789634070247943126413697782597658790421604425798308910999326532679486231820728255466033913176700707335899745534955205824356038646736648087096752414258336280235917705566258341041556635124276992949766490477346448454277710365713960974275067315243731062207914167288102801663493114025363722524867023938694210457100162774269164805674808512498107584717945169343042520932529069979689444883434005005921868562613804123234632078152630654324072073106398509791063608173828842928921420596409641428588732418784546326796208396959084868560203937067887480743021791697620740915328589405810627932831054724784486338645225790554352308125152008150845221102902199431967998552396491826331590428124615773781055982684895703548764347357468571006651806817523277963959089702286784320056175395397091368193294348019484680938401213310134811373222941415477269156107710824562699929209691196428227507458453139931728293344642440165338621355746357267421033121026234991453653197898829920522922208491336285294278466823389695016234486884112768547169498597144982719737990382431621318184500495101450652131224578271493719769303793007741805885157469700487083744235328022858951216938568835802005643129780317900365370298610504642616104725412275824077202866746043492359146334278257493328481323030589861462976915723313580361881892876063190433230124310861655368847660412285857986411348662798416658262913867957738372809714690299147433974389196048476693114449441941773088462032350035728408241306905257942076730548380716579070510727998930200698854572216021216226143952983935596127055473145918006978460146159121153908347389901796543840277453647250048577297827929883820515613378933544378999637484877207894085785742385447914620970827780633989140802920446927388575067561159999755798993148521287000532736321212479178580771022465173952640599991618028042185861967706136376157177292952242927033986542415732266968299092464034625934145119936603360155665182751465064588330372500622194983043753193541651191367100806370392505576892709314673826390557037723508645286191164010205702010878331543264961230118962623775220691009443638526250486392539646559931734455331902306593812460499873035525556480692682514090850266990975224314721853136654746660380494099954094558902566912785737390556244580931684994619275239524031498910878778604749913125512726073139085599004104313783618162442193645775197110939842396828565397403071637550489777945550993065590584013409784818493995609202507241309316423388522476505731872193251594424701455139552861227299286411598844352826242165944685161589369458607685473905988158675220117039963433310085947023350484469192040025529751145572177114528594633015619245102824223411880749400612607049333180783045844079213117173188867454682290670412215179669865739626187695868219452117497860951272551213180966850817955661619747826799512132570557464939229887774029989039504494499372282707928010492582799300340393561885181385934992489513248301769334610088728382742731892362189730525986866941933824973085661297131822350342101802873175490206848178842928600808340822754410892582917031845722348247433569079437445586685693148200353294466263368922125108497715183117577902856383207833718755845978530176511293907763705930019626887171266817368496479465116697523119773868611615860223276904032159329510152497895629583924362951223205091954271324069159857258593152266008909284254796791246124413355591789366855059714074324557409848986296738403119372690363145931271650233335379715922420852706613250729516042971280692725477458833709736837969169171590245018944495742531016228022756169868194101352995957385624404859828311591427334756372149749777009491789374257279888686650002574950427392786320325992871068230194132033567929807357456968461061246978674938597398714290103027366469575466226396289778346879015744967016442050374573215747048056032899737563208473315412567210874837207205441262535994897405650964807895718933436561930153909797960664820690754140452192071961753710860158439040167027996334839572618471280482745832871147192631205332544722815553348632207166785327105783390114087791875782395907773152439909954823070806343161454685192383074488097853641568932374238495087971187787345868922917587238967662837350794207612985545265059700108411655589777543644733546758737801388713676473472873821352563361719957222815444504310298779441442959306215192608923807535163610753324904969211530865064473224276312813601304827614824110914701455989996642818167486756876146698962976309744816844024965536965608964859262343182530172975787933328136123043886204028109672078594152493540586137400341303459666364266653624656164969555492204265369982333290242022745722681633861572112716071828994912676899790659699772330266061529671853619084730625390442280678465149250710549785072102472789457200989464501059772928582017527964292850737193786441530530012922810018266673728875966501056692968514310945579329052411982672065190970854738152057047990374979508954645888753091858133702448474164117416641824396263968581623539110016656705634030418744096631028452575392757309693346597508664666720402535677144879182328400802689725941816306109017411203436330060185240905527755436263579969776170432741606925574791967199331549760062172214683837038089987664011011765051533881375830416061090524957352080850135129568758321068623966183465860651059740619057438263121722915756452344346031685028004809704200219896334627291023685718128857059896449753395863945732716624571262981003585385139297117329910913269049100710904779461722147985639565828981765036864661143364814132136943734260430339329783894504513340140860879813870976703124287868127426067039627781156836287178017385707808259292344432997114138956313121412033469909225068387001823087849921955351944787657106079989859136691218966677871702670487153023920541256261190403286762543314116157248604509938439316504846946504801649968435225093886610244009970837903827312585603992497060331288726024640200604096060300618936006962147787726446883442898509514535882989649519123340730851338060312217068051414834475723283536990250376463378881749746490293137158524334364183113482026529294199922799234556411196456349876600040436972272908014038384550968866751135239401155423846070787853053063810306283503175647337806545782269220958516769716938735933515522995008183562368158456718120168515658613832283366932057793060754689836566663385887310925700664367578437361826504367948718792389744679219723721055013746510763407206582060428556460844433120118927039015936102033800287158064362827693759866857366448382074405931243596954736400794481397578673684135671635471601583562348470054663615548058841349548373199338480796279164344332177303851182683582781254297650209464159555752426218601494647654187932810738175653428085349854025071843447367214053860925470415147333977657118785693663769909733535016893419026533338082231979595548164826567785370363933442974722854115247463308162410932721865243874928644112101777048646857080220689640577853169863819159962286258904663132495361492047372700254408128790705043336812227290224364896505009679011813123974056438945335663201691445812541523284852926329683046323409921691147573148477511288755066689315931112685819750155483971572675462971829382867557657697633376146540459598269578866543790705239511785113468176245107059265314901778104626938340661796727507129224965332649135113336722987117184887203060543962130112133666670944321068438897930328928511493742778904040307867049043222218023578953950995235774051500569713744150448351424653577856414899758210746820275609502792221231219655527167575997149419881611120268234947204610338006544274005446409848748172028320833658451621735569135618142954069355286450221527596716414401782533862351633312527323120669368755139992143542805761626851569187752751019566688557374923219109200856415139376681465923980937605135858677215087096049585509282403318914144246862736811453763223477884292387302942381902506548929134061974649638921439265575478769729458442566062910168365967356675853110726913052613723858177456041619526098164668764824601700961872180234127554381796425727933237392083366294010263094856971734305180654218681711914635893788218103982570316310117181630065797686569896524213458100553422409429864037394965906189081387290951527426924370018569139547102727670425883851186758227418361751521490648526891102917619467807555198243149720066950197148085975623064997802286014158661272636853317504091835826262578295774572780602371181401578990550484409550843357147183220947541684202832531184581413218365697034260637055213692141348962087070708756777418397420312516642225577962073565754812640659360612264254598648311520997266888627905012049055514141799418216429375774413636697679874809544034467223815013128767303027935530409600401915936825329120939242359438288506553162297423234068297384266980517797886955234275279862252521959624998127443191946476308408343263430069157191994538529660915920783215254142150436462586480801794541192277367701940103247411305359347462811844722513856216922121652653712638622095312233238474253888360866649678787780275945325568937542909743189773792408175391108344271565251798298980622843188138907783067893513122615343214049120366627240389640272691586834227822733834762648990069316532211900962772495586505406702341083616708848293003118014733198153583868252040774764239935664371303347580255385645615772334142421948566109983235164190608010223404146599147426576852625047318436862308035678343391062883937208212024377029726487416651641917249632783675723483109045667269790162654377320879172298474245435163839338629325761295042251227819305667057629810028676448043375159001549308050314640524968135221714634527848198848610647412636442721770755302208859769966923859309189515844468609668874949416564720741476854849310853823583043691128357249014613611518860569575763753147774891979252043061588199299289660840243252798447882403813994544494352520883501543351805062225645517728424508426714268547161846845889406447419501029856826886779862495948077952846824533543032098772049382981459852434060643494922725796245685887156740838389696987860601583140689243938703734897859520470576049887930389439018270616721353222814272292804699097204900723595603266487067395862739392295686330878388869361137194164428776298876543838272296883326202609502889223845421947643778366761514969539921579929895994260130082326056900754602746820286746390615021050459870059761947255234777405607105540084979082412323154167397706275938383770359976623282791780637699058044995722712372688388303011050978588292772831878944610050921798500624914901869940592109781647932954239602199510969944815384630987939294019765270180091797873535035125241587995094123331413377268549955379656852973498333401117178175418532845060620244969602496525638572479159340959565470920198023453584865176807261429541380223254566431738893068558282046906039016241782344876431582455426993633771021429307905833008712585074352466228131542457358491246488818211678695251610008810613341028093775218443471855043584699978387800209578914503041464026416559203211437971536242111649971292843464221782710776818641438131212389064700280641433098951425178704498994596101731076094574975333584546144590396783086740215419178902725448092662456501948769244414809713382823594957523740873796792473717136549621244873391161178528965890846460517570230539633748991675133750043383530857690634541848561754577101096844262192791321101545286526289478366967535929115990346895992355766022278977305535119463039572814202891710914410538794665050091735692923477291885834810484474728708337271625007263906745329598459730118739923407416632342582065399286306502032815134400667776293963439388168178782881864695627435305791776915380767338634979134458986811203734392168285240305115582165389177662421026591640932787879394891887399241778126322858768915112246153839272901650592711788365276925064841967562239086691541078728655971696789177833335576713993020295499044559604708860694642468371919721215689875347057020079814867997161051250518194053222805349702478841096422304184123173553557825188925201515434614069932011521176280819600830519898854234594543131963383155085537087186831253418601320452623949771381728908354516854732224676755399406580645815294627461326903845257149363912982173273411154521465174283158369273704210878162771870295727978448486067530303479532406430939604613051288227735391879930360424488131388702804140071192798245354219492054503605631724309216583639008387271590564046942842640114904812501708079674322542500320455557667152287848383122728849621361240930099470512878527389094694275045969166472669083060699613278255627039875332490272576912827081127128071597556147959071005287475460372357686025502849278517102581730908117653185440329404909861024264249077653495779037031262168315748971836928813126880285979654723476331928412757239294170852486120712820238542553364375004539058477459109147009653579935803144391768858776120968213787429626877312411150600330732987279914846660414178744642898161720966030642830550571140174809633484391669166695648337882582679207805802526247915304342163645129661345957099819998391392646944771071681108861125888771413316856500138339708601473925748761057699476362570773192451701433947096546575364552535787942223915404922406183902254066296338856872751710933967606539868432019204527862102524305712135748596567529806304618203057516052005941003666814145600946930138826788122511382651612660216106812147888313999237762076570680833542522288194589314906531317085634585935299435651923117280240062403747104209884683946503853865411210564392778742118152304475409533880222951518429651811871851939384814022901477829182454518206095105168703680539667274533156733755539082063766170899701744525164439444603432164647943153097784261808250565752912789314286585791480070461882927654303794502776384939603217636185944621375023298947745114210721660878565266931124093770363124044246582441821657487382162711031319991317858444083598627823549201427799448692265445424742072612629914314638514766894420672959397920517931065053022292955590081364382731849651292141660354061239276482527576047842689145860779441636945343651289872652946948433179373728825615337425455910921498333937212188690711721472140991465167499246574707455768765130339722804991104076434434931385812114765828284312416464418666307772462883117691269687816974833384724668322325790062108547354119136616932962433551079608961341677465126526361805837760882444500333799873154388363211122265659201104957157954505387469148368315252653307433815300169707114783628813754323176225496481512582081965696939220759167682015570635848327298116786370600318551967019654577308820378432341714164424785969125922135697121982477910565887372264752090072236305673925055437739550169431104122450635241718014343567467905850378875479326933119446085218800726907120193837109329223559660958913706081197458581092961432248425394034345500624202041022533131527471372430157387812445059457151379498446461795857869954356000947142922981567229817168924063744605374896293881473568170499184759412928426732542607288419010055881154831236077866815473406331317549016774988211472048569202008375509803946499429247895118257276968319467926902217510453801745875874663050408325410289428578553955434135038242350195086907052377578601223196279088151116047321305612185011873067481607320826028666796202176701259107267281580194143823483393114074209280705233557475921148753423060358297346215695769994711180537685707381565225224560008424772807494655189747211344870338504659624378956511630473960412014285775554248773398789123703478756832940878397618932125036095677881261620355346914370927242262713191393854752859909756019768682009537921024452044376101633503906604946287785805953362682135853580622746632842283237840491289489321284614693133377805414144037589243826029782817992210273026282707165684395040778408930881251808014762618525547504245868353267069733114938169744555913185833814312306675969909084225464533663545217902934107928663170395226103002137536751117803535832408278430812639878110197747796131382936156112442639343840239177036298623496204204274454339920198053543690321194501824034019363884701748772922110579733707403039662849661273519756922062428510348387044457305149772352877038204614320267973191386957559212343875526327480303059035441138302513924850443125326002804631652766650538439568210748670979116781688107344766934225147158809732479899334165172949490639715294578590983532978352933671171972663800269969050852307308231551217217136158971930445932122497288712291069749958247068392096849083039389457135160763824125718287272053514498499938048550576183852410704831287174138809797292791045551127644063484468443611582353171825114935385908131123479304104681077768548842770181663100028412688093085476756173868767735618644877375602732976802432665516160350567218900100380764962647691265967226782517731841242227866483227036009864694249395633357580139041058738068017843627987685372141008675535700123350180132703315090683615279301481755012094812341371254741265290872099539284044085359595963563848376161470300778508720414540862806134619509947531565902976122978504385937060013926608810938258327599857490603778015952278240526828880532495193792440431552023815267048620032453997138307877572248561157351024362695829670581027666134079127097713642431299216834927441696132727324086452909750871553270105235632018987059685034596662784654025751192905150317338714268780324573936288540808768898921507208351650774958611888718510302293656245706449972727849367863455864656073881583911282551115038846165430588000263713332218998623829422742266141217754829008964637230223813342186238711394324704200787111809709339131347744473462100309587485119145366783645917455077450655608749613280594433820898199002135931122899551467130896401308522361737779924891126466296977708265511756631647343938624346086952842133190723175640831636667729003587545670197128444782481550277982348419277775705298478097950140721540876779101889556628270812314437198654050370813450406756909907250190779778662224660931838045947230134478775429619436958681826058769281221641709489637072702505821982944121398412347748244790466609306024673393000748656584884036636717868187084682557121117769153256391996449583474605685334681123633759161100804366491473940053366150951985620117148841927533490366154739343509139576776892351900781324335500868009445020539367227848919637833638119327089032823919271855259084972055403670358497829646312306926351977787025309038538133040754501253323616601972498476284068381350710693879290149529371589047275359785090482609836988108110109605622754187884052422574248719585099689145953568742291070088775024920517687396682660615023833081309002847108682586092244752287449570754413107871979148033865853880795485857456945521357903528308054817127840002375834175897540995754624191394648491997964391220108182199283391887437679661375579267499385983764900183424063513875446887251058539308295288896959252436250700479239312668991528596092838754029167369246292193167980231882071956220985286590216308571469489709230088238670006387769255049317863557635776813182440389987302590262981176399298605799762945202642899724042244639466926916838164021766683613155867280318969193368538181309634126577144796953698834879828353420689372392180807138188713347995547096692947878881581017932426307451086752058444120024685895418838622240256096213909912664618108925806197921147962786979560604292641328914464698054002617524915730095838722683622179912130919925677537294530965082812471936924554246616491230630841477509074862965493482855752161269139740224898493555509549573213174149961608970761520970450994353903304261518130811830728003986178244050997071121672324270624336018478997470564019395919610939174948559832178969949399435432119083984303011617844264414443845284145773273172832501458504806784359553735085312645159122773701492509804923777178927158067040651406693075506511890377641125494805315930824598556414357264047226743209219136869538444284210639438259270524531564375261763723743406697892961406432546231857159535600148669625310439154905487635129078837033927400343885365373890698872311510462049125386609718627483650267509394614737190164796403370404238338360463902386719867255991921848519062884047427997025382994629508887900642703684135701357196484170709307034982268020876086684518449516509103617199760797354030446730090786660439341807132254369826712617093490236946653193565021356385413289053600669479621770884481657586966448391901961699132517992972526228092067858750720593107277795682072009431066021474921441765972797761772186447798701663590521730677805574940471583347988636798680910416443226283495800825141284593436261109986058488390933855023584710641224703799809589207757727303184163558056572450200717787586720557537789979954302700429642711410358450954660012073618985737710427059867676977915372586857426039210642276928472816279195118562169262772857899604693018154673322643563107227246205441143829511244064371743058663314065961704704885556092689856640611099849604151883376534609379781776650065901245233844249908766918947153543609781545422385185953929866241229239774900732484813098657676251038596909252403491286574230546648659863522461082199706147321190684413860437576403589080096748784786177377119069281232266701010274795047661494088045088524050021348453669134755390025679549133860504569713599635701394384854431505383653193013173506561231347183964601437534639101292742226438692719638358951314999646896469911708194879381095644984685091037189615067844655780868558790605722158263579384851492926147207742720294675717543038116440418167967502426795515083408563796712230561199958019786629758332990225219224819089809413931494824308442047499119820056767585770917733022996142889942334694664523941675223830050743726446266181167385069922459355525116700601656726892199780547983220787583505315911666632025876052350780492717070714929032729462022082493125516230204213520336694128669379856156418321100160343400988297950016746212713179777910761684714859705771838467945256705259706406316828853100476467588827815795564213200251709757929175013325022890828344360306180598938628199326132326679213083409685435956050892921582707338244072999315196316737896925649708419711865893018707543649799105177485128715574263246488903446801661837616258270180382862804571329548939376534649409460495124691591216194109434684203761457431667416950992481814077868946940996269521660017593435686178183418323190656338746586370017710137947306410583474410556626042378217766219978619863143064811942567213996175519607841215059410696027772577848749851198157932833022801937632522002051540739976197222026776954494945721966462186929940157507811119043199006300279481257256264256027479857606946703087798077879617983043408825079373188414762496933183657600492760587481900233463187611896588884090432804523797588583263845311015299901229353906811346614455902532647078602536671425633155789242197517701924512268662497776073824948086425648682551314872764627900114207749562173145668404635239031725125965687435500644873038443715072528586778593928489913029575113986686903137118502180403746690190294524212550892901037370961773782198768282633501588731141997640767794002598965470436514556074440719211424463854908584250869790461131761421873249763428462116257747635172572213040268545182054040265208556513732319431550020441401414208098997475721042531843453485232984629057757150950100081261849973925645382223624233148266616208957823664912395783469374183136978606418805137620974582881410417140604648132816667581059310028620748961260830963135910763862725492391696336239279159659975809398962945003691691811080350475742006351820764175436872941764593027944376914166488685377242435404740449312151977014472408811707245951742086691977738546541849578361534246299826275705036113435445217074960599706802656419488604085884933293338934193699226591923993150523021602674442408234200993980429529628958020414107555453525067992901956006652582012788322410492501635758888353141675101115010008732909969596771085460844940345266852295487062863155119255344660436053889445597710696480050328623638259334946431317653240812824048438558241628972623560052551892542420041705728017374470290031822980816944649725002347644523583439085113142138519101492026685486596910945518914183552985252029162365874084914048028183465870901639682801175381439668463349832995839097838921786323539060714267584717819344815752976639558524293014985978556470833714489940227415290106243343902597293427632312505699276925761870243600441329029519132035284192458054105737026482682201302465244645505139363053536072098707547917269341051409163986432501883148347563623556973665133308552622107349902447968084042078329002403618943187357881970380788921555618807486131805375236508811053228097012216458581966575409734861508735519151864623925982559604389738711469284188928613991374054540298871059452776914044842988724380190001894362874856707750037983222915960716640228113624905068677304930571386294275304230184543644428852012263381828932798565203765726595656230553426314894023604283300998528119347831622896422686610565384933114017073296832856849641620038217194472027051491480990105207253157030655437913281422097797587091463744779046525502182064941564529608634125192531012941192033176680961998306923055383145331127355313143730787460074652430684108427916744875827788371873543599254947557479944516447460467007389326341627878908299008879071706886920843189878573988513944993006985789734191829466984564430680673204841219934210012308219567005849470754697877362206973643508735266850534489057041273151396771329832794556914596767035945673370139837792695543307559198381773051555677004717931790975163802664351530286225582399190872926771262758520177536199939643411279038945435866034751152561901130950100268979391835496312259344989522969612216457163575538499736864056061772884507901334962821838710772449069213607412587267050723431253309856630137881888518540093480048699039203600215464891153416100290318147906940407931140797024688924039423586697199573574607861478120312289216182568042615569838957463883057125923671661740328144373630036739487356959750195883552384263712589601117755665773242230084212024083110552919125690982629475361434916037158781608199614177630431895186345603230311295318425498352808426495231657195320234926022720279296444819963449500423520387795933809764412427589367447021724223108466786447553445305851102679839343136310791530204724112314403461881791197696430673120666637746349641430168359658436480665646898957710816747267390633263621031249853538832911342005003983351775689315771627162640352830461538270267327096172859347480997744320000887029125598830388668834034105861829475695053010194976720733665914288802242604554734409123305784870066089860634998695744221612013418931555184525909541340704981446410298092742623039865122335689892016376042009226700055733149183827535450350108956064123799391207873455927808820917440966076547629598218987924548776486866636967246766852248601337745758955174900672900723432917052009367769165647351231137525257813928390619403118405558085304257359007410342656563926652994517833314551040781697967306440101011216219791957167782065497009752163114161016716894692739705427334722577650962261609167293304310174576304463546932226754012806955146415976366792294293805367200976015893803270527612139957031245541759408284067665781421015384012131178177581083791287264516060498278149635112418326717057035108027959861394928028570845311941464397216523939451187503636423351029488113910866955939022732285364890503874063994487537127957955921836334593714434765668770740133115671517213312885160823557992480860628954524035995961644650478355181375947857213962395998816787688039726636139251141470841177514938192269820572506432349909381329472863476656287773256763084843531404599148675661860589196804485254751432694788968026209949908267296558184359210922186585151009408398778817791850882780102840140642464547793955954115125582864194995355785086715555496481864969414738318147600377892148654097673565175967242219664526229217666731117947438886689906812756756383733302835323797851789771990598461068680398629814649122941474998826717396523298830201250999734946215924821639634692560245423505483530902232364027115564990633093724074825271455237333666083995101733474500476931995915260476317066538482403438338590949106864220629952367849791863067771125190300488662860961023501145329129792418658695332242459104993186579093241933568025508558947008156888915191004301404640621298438430486691789232240458078918170687912872158731365379958780864689380322203172632195447090170093435944160648127683107670609939633066625864469098469063931877183621533587350278248186372660157365408677674017335557004288854662246302044656921443844336587604577264424099872415861560224183318733096542957910725494804032523129838283219134515306014467039227509882782689304202219161889806610703491871425580022769521117990991164289641128940708077136592822626544416750168256808822900278421208667423215902412491859825504210821291180373061663392559717781155480686467872290681617284631537985963013964482794066286314091395487065319176519002658687402257082912585840909506136443213995517613393572331414120981774498473454960471044542763495629092818400437333731607517580405832338927061677009403333993604547222595874657508233962591491113084363137806429832994664877122541261639983582191986548700418081546812802737758342129066677501043055369608294993852392339067024237975865372501374641454414738260458858562431680475899432949969933543566676307735411744947347251254688221715739813129525869415364639216250129622647151775903230955088326178882440619970193707210934387279421462199742274751073157072143832258309058691770329630374517959799069403083304227506644469019642223983960053281017360158191490462766783297756295400114612010369211397054665824523622342043633357166222926233240366173636378404955835283950745833717927831532834146616437804924443362360057008538457297095396764417445701592470800068209907073104060858363828171200382660780783757602876249321239211144678955016876422121964267893515303667042486591854766838680051988938072824738620270856711716155050520626419845467152326695157672844476350251639282093842222913311878669593635274104637798717739805358932029738950765028910548020955525823648673261720039859316684497773274089091590166107326554434151369052943883779066612710234739887083411466270224726753891810181584041518625158688972359518240859550201967284711295487109534333156964004633592064949615574895541890642845717494707188437955368797546133905378642921729588271435179933988183137384761339042251030821391401420786528833453866994618270551148704059960651361294350486374305369482623559452480577811705848761968147942557168343669480742476666855727739023516319223724400401297808711035206950715242352262901602553745627593393109987687147334619526896728481253886502777693576971980830653204182567835628180637736258533682691083406627851017878456581564995322400789226640603078300695181105602208694877538466941439904995442999803360812693200724493443492918795530104843353816125417559700590897015931474915408267654245206727094198821892300118466077066624176588538046749930965820959681477953846195773043083443359749092040238731520019467210017978641683434048301783542344382210438976088931789949263090955473559495741148896550244203637849623223950418068965813286477267593812903944834430259351303596418865598632349742915089894999550116148375651609546936273378551901449079618254956794034657827630570651822649439088021191734992196968002278383412570844735516877130913063634282628679062527513611991733862062712453054525261436143354721637449139210416837360319773635089501580860801363601646232042160603063656342791843014237537273896701186372626987322909718616289173304116217343202367919611118459817164560223793227134812563379328637631404989424519273183989434209463979959363651324723842748454426661284055304853124652287374763207783250936673343511800592289492943175478391631160483528262307755681543037737236953410983167958554965779430413183694891326787791837772588597737724656614730698539039405496152828603000182606341860147666099400161494345844651024366750534264139965099292686769267755643459637228373769485971758508031111059796275110363364795698706096353613501072187816536839905015069339203942130111518221812169382738322953117555487734482561928829273605578633068841323685654810071549651132041686375599739875566654065359304476345717939436252975682047189663359463748874026288890441917547930554645910466224189065886447099063580717658581547322962676696755179135215173372217178129305717158932854338020473218959538279106036139525333188669670718384859592808997415262717892689155958484617084853907948562776268967493541018256906354171209536803297146559964174784528972449334739737761799151181583080902852304258487785105122742340848337545677606845407578252254172962731846235961274304623434633035395313378557252043905840445656691538316263871840495723659352771211853491252586839695512322400990404536831008530997181933331558476996437382729297965279516330817836788548135025257974769567628555189731804580261803630723962836768989148276069748996530533734625799418698774423781684365543894196080104868855062830518828915446392121284041208930467681336541403117448546412655404314469866353937128991574996766910007478102969083371794380401701581688298141960245301672676345910466870243017126093331362617391322802939433897306114291938333217406055991606691491965381949714571114998200538453902882311259467917109798369215632642312911092146163369197859291947212445559330876787110437962394512809242695675284980869929705833006986591968415342934952622106151506146957652955912462562045275071701277417333971684417264359539194917033285456243470150803368475708998455054379724583746573647836107809626998427260733917233284655102726250592193398539762907510750096520506851660237184691919415066167310700388442591679870221302206306225249581915870343358428444660632909256339180546538267798805858066291774225084390755033755934267253550305804665776280500530784608766434229737217524235600442283393342210358154277495960731489517535869276294489204139172916264782486001766378045673842850328347425515664104873361145956071627729363197939270825801540558070456722269933452506617261010076625849567165596514339034661696276214740821246099998267165209969784446677824672588028130776301128294759123033306040014223551335787782674604719935296231347688608140952810457932665033199592480163612505380060601570293707636861424748507381759767495026658269717142529746831764988439557667235913433195394114380237895313935169261030006237787373692266856743584316156479016977418775323795377445800967455811546214556131621553528356771281230996167366441424808315796871583511410302225351682173550509342062987370989330087480891481721030787386479611228163763991728969634352869061234396107473020063552644643958600765312253414074263192594029070114410552104337196921535580696218082320001767102073412686774886057991693606567426003138872464343866676551563929617833119539888875436810403260710866688080368316375187648138954164892317108599339347745525647098939340315258001072217239041307351424836971863792826336660378801907005025747039239832000008059882359440550082999840301297204171968312282639581514244967652421981139553670303471706199138469071916441870398601566650544276007436603688547455242225708218318661744816487823498045429016800775720624258498091484733744129537897179228365080376329765189392343859757890733239229963938830222692017392384711537943021993697646745860458443997131752943399743182264700236787586855199784587723260299738878028085432762140216369108592630427982202398423966509417905664781126630053211234877126351324637987387093555825174235065393778663093936449112125213054296313484843616801362945377074186508906298214827485991847115441777191291380151149940723937978417737902906459207031271603530133486993789204209634084049575382143936961072094689305063160024549383141239885229889294209755491362950500273308188823116978724627134567185716799335750273464630576876512001978746904336217339170436009198272661021713566232018063986650176688263749942351466328114474982869212951730148629756673629146138077233981643169096150928029304138057667360555735239592309901158573719135120096226162350694114590189891497528285425034121747429968328593480204136807043958932459393962893325221982568252911431967380652506778220177275427656842460734652375588362727537011872302424148489306693927470714800316638959280609062549929590423938845013558844217434799380966730992925908734287523140039743055455382061536703287097985284120854802070962440438602302961648760562604369515330564144621458396302776611398919628657744947170376775198355917643543194236345169506953323286445723157247174380982619087207571212550172679260967335669552111879340673306507159045150283765463370294822630861818886922646172816660252343287305142044545954760676768342214649947343209946801638508329693830363378584270655682794382537217952122528384158634306472835077892093505142151484235120464865532885290465323252345427317286039791152424494373470054017003229101552860951332673319761703413348002215421779691068252286831214050185282586926524164600307897830525979341185113187704885730131456267391451383990515108993716309854931991201578444087398137157386722811376714174617484457708485464872662571654542807874534023096636332202923986119961554585677086372273317113512849786024201149364778360647292235467814172837560571422480858010931783023064807898803995631454536479407841112462541762187206740263423834209229869930316976519134643981094701780104418159660060355798366867656803037667781233206656270663164779260153953567954141687282626579619254718242085593883934145249615533598241583030936685313474742672414733384681803386313263621140335610649939541757775459890965016038131641573538881906972664376085904967341568743890002947428605686685464681131278724762364796670214530227237548121007534049716670735261658182465315807096918567005376654438929582129548565960600810287232188240592257878004635806209687373481876178353881928704131159637136328625834106810067138157361487341030314208716946176315223627890617265998362819334821493318875013578967113993607875070479068716325773965720165817817117447508951742977618877683136305248285598757864775868255194835756798590992708646340420913857558094741733191192634476815280243073980674851218868640650210665868675286004833505938672948777268952442628098321829839684929532651551919636916805115958170970307382665752089456875279598007285722429579142070197272022808634202753077129576541130533822283229770834937260876512065686950110995070937399821808887909675182989099768910669776131918309142574675900543806395047482301794115040651000318865362916529957933825885185130006679639127647257583866482023070613539613163836652586919998967279656525025933664816846959777547912651431387895525970927156434374298026912577122651311319544380638380433423613910064844232055384971060910565225500266550682502511743624972901780020142140277263816107883034340930008444669096342243041620197274207652334764521077973113681718869963936386075306330321854202522679742295013233587661362003594725547475631968162404842007710934908912556444951423339489851173296517860234975021876460292671355373150507977786786338505849009375465831739824837025849463985836665359443369237109956047912091376834828490222412462566993519572019979963998351860236682377837596662866356380209519131863277908410276561533411435018434957538291044298051113132035387242254495455255515626999104942871966444801710144510668504198932776239358290140813636948136128550475336327631438839476954859522211448867071031787778420916005999502409749968065973851277743349601684357190648830255529318460677480295208975942881357133153099289084026546384121461167892875916624905569179409991822397468344348867801833809997178524678320976687597177588306428393543528652734192012061426831421847588750316150595976014098026625434434454718429659406930394389090883828729531738162249703054470706958810417234056663283992885724698505279528961937567896726744450424406681647298504444219853223351416127485574198339179076199942659961083454106568996745785827773804717698471570421543179933987446123538686658495592122981075723900707009613507822858547748808820143000984836830988902397444577022872189216244510028387170935106799574127897283692275785852503839129673222859687739389685932290902907303109348961943409544404564801683545380062089886938838551002001845001928715075335256398614107263252400480549337253682368520987329793426908586419140799043362625661961632248789088526046841551516910332341317525911486853665736675374715094350034584196663988667833143359403673408538579753803282908843487336813280790217930596393720468770504300332941106441865481950304868229881498922482908210948416747057645167134059947877537741578649751261564503240445800598798612066908212651610457168001523670600299722618903082933499957381458167139131211440660307268366218841684252872074926797461804439673084724456983931815296760906960314126516296057224206970598464570912467342984465242217169575628298347228125809370468241026121880826087621535893200568633885901425358192627095379141954919019472602363470065823448887617555222386333132699848522319288112436141665214549091984164562519449014440388775209948614692908746730289615588006153204005909435743977322988759033061533605246027408282715630258125346947895449639637377714629380319920502730171120516161525486497380303343108628678206180290559352546209248854879444760230102348511508573844082313526258865553889378209645586700669629375186617934911147531292763734139806001111309675990789416422113825531992271028111389383454408317290184835463985557787674300282274142444887579065231598590766015312843732925431306075663796359618106037418407194580959183330381113967037783207677726166846730328488932124823580004097765168937175922759533562066508182645954706021636229484877943447298919730564141667132141074698369133489232120882260605648873043749752764814002485541734520902549994548072892828834979530050293720436510894286817392213685139944001904247789095013875812693845569682586668237412568212044378439108987750557834659879440111775203738569452255164231197832207947583368507997718558778298063613579819494721102426682661824060690230392687095413012519906592928636321007430425786904188171395791258580142156043945814469954956377479771073347665197099104366179046249315130833716919185712714781937073965665367507804423411129822389578453706587401633942410895135859374872145508266653406655126997863936588300568193904756885778146079181546754570764931706154604248824821242917564142337939098796790905928388762326645331404342527959938467328767481134327678807516086528015415656115127604484458402180661390903989195285834705313797567068700433374052754546120375716704815568262685030326800911161312646306954522463388532528895264335391099964324691681645482185514603930319682942664578762141095428715660758876557384165848361002492624114212744106854492881803087782457155729258526544958674021020697857172164835454299974875347574032494915464155206408590477657329332505876538790997156695955406631650438351840059447587295535353569602603859167977555725829771419274124296451716965334518689871081181168911788522856854584509479387973858854784656508954902288164881872562987316545390646349709155970120844541040282543144972704002936527601136671881305996817911012535219632516717964328830863937514644967481309296562699787222358803775441927101844040840727758873385786521437728616734484558595315764423715221191331400332208063028929568437320403377303484790111131109658908775168534677373194430971090913416996762993700800582731067845470676312774019225248501811814541491350642816395274488609763210071881806248709393914881121323328925024784474961527859248461001481881195634676956929106083293822992584899857317767371472292094264154468918461344964135342998519755767638083046154547531487871202988297402221562396154509105633132932099538140709958534405001678120064588211089275894896876931471900062702967910547374103903251118200466333821143664808209141128075428834177337450902350997553737929101488148491780706191109544162045672317632666063257223469985673004069612130220747321921447063356338123338738613980576112452764315004245354317858833280973673328734730893250753348787268326103786514749276151060429864590817914029972018614333593086794314617798290957598842448797089635263544000795937793748733466972441004572600826624565967991856957011342136962741448923867332248216212462528857767709546853330022918718385857864348109187274449372500850325557608246648920093474750757388777710821797773779357673765720506784007968647877623391628102984388141242790264320244318897759178841574187164281896342376363467231812341621786748152855108503944940934590517731893672460779013443908713484802344719524646049546390445906091658710534938259339420677553627705428603504384198642038778857337591946758100408927016446753025310610274240463989324758081995470339934575823640610082089466729300045842818486316324506343865836178469652481185634622950385424043310576501502499161010094239434276061497809253483985267411581426112685666998606668121559166667729123195784807268271978385337493281572317451556575805188462710220592993978682698225642896069683071275137594735426673023350677466305884520871232203038218003901440421648801085956640550935701022326131095526130838060675408731701018338615242856720789179587267770629308899978819121140099459954209981799500860325914758478345643514378098013262424983632105761407173028807353794104798494655900304810767717121341399343652485611858510673113748307683035165700286154975010029382502519343284284096200528719645898314347973988262102910494053322150589763406983588563612189500212865924910526796916496632144078676229227798461387118208435555681751495811604101520127474077222100759382855065581574578581537061414252094608676793979195962772018783324822749080985093486451945558607077568534564725918995641967363638183019479599087637317129793903547868356485723156131525537578894503295663409835851583833984502335440034797099076258719355014223843139838061871778709446666452187380589698152941747545054289530753056584887079377804130988607569566068073503971823674057707759553037507877162849122014266173496312367258030421877167170075698380533741458965692961865288835755018066083857679368844188549801295675198799386191644084249667056376759190882179080636213844031394385486700734793009591819013398894356220183484716802766173663148132268488973097325458927387122109441937999548066113785463652175050168493376544212728684561299464686105865521551160047750094676961513263143082536767974153035389693125512525819320926813007703611590021995017558079753989969994671070810516280841273292305666307020149478711489589964578042247047584609830630048594683538025140454957733976768783042657364808987361654348166878023151340901193948896858185681541098851225044752928691409647438217815016014224085953318129440389684628482730088257963240063285602656774269776055392509880767372198019374557096536615239520503109793378009282628671703921799366189020440058365093802109953011632656650464145941400843878716119324755445296624677567074782668085225454867589717537139119553354956353066356497138412444357292306171763848833546029869572212625552755915983779313181257804412493516508418509314287964082151696545102643554309760487017232424702704527039647527083484870204420087587578422942913002131820936567518106436273458780859054712423098806954649743336836729685476023231223315023549946712418493004255934921758553926092480368956226649190401343766727413290471986767856043259682154099511610914174950036723746116314361420373764970538556920927908392053149737893537472839638723477208717734170299331230791105584620139983943045722649902856906049088441427263376691153902690927680506719373036717648266805422962189752617787852170554672050560245066956742082917725618614724741698630851885018386177026676849508293294946458463515557124448555281364257035376976582022207777051269835319124749356493286459769254439791376279162295002396900691398857694621908919066717206066282432412195316772792746939900995130868580744020102696258329797250086204419399624203937763989359039842627014644300368690055836977905810969461840004648330072747664477233074494926922297068076572451814994280911889032872799625549337737307159734685377059559280516330315168093698919552206314918623518024881620212264174829021481198014549123008845059565399991385578336834737905842108976847994984325875892684491623479492460774603654794858454431037547684463560082483666044697773319265507057790495400909743274153813046604165927023849519991100389876141888379676915577007349178124460686630755395815176677166176616027187636403714217172058746300676639120410831067519420584490658218628945167519814347428811905521844115846145866789431069235075828925177286192859305533000067309065339138685996894835361985020132022834783075122468781338743575245052593498890641501674271389000624430181792233457240939289063627144562973342208773407352986156938888873869450606479592793080426147274021283978934941701516650905701264779821786521117044984062612780490351558460013219531039889370047790633026091508819936363148398838830568413197278120505597576352719931484658926734707574567230624227389027790071075572667275881321268562545669462714822197932527915557358007041025436031147966714935783494544114949923008838251758763160124179231432380926095782991731890106306407285487638337830745405829607182422070978471537025787575502153455067515971228188075328778399941561910495414321571970916014459663356163603379090632903654690326838735648086591522100963180320082951483373286426619980240768023546942665242268893849985896922642419169695724551599853287076760978156956810516435728285892209419453915356160515182019968426361248980366344323354226804070656392442338880978122475778768464344961608842252501098586451789251363207435933243618851554440562807470264943144076057507152302202586151827344392688038665067347686487124902743390627965999498123708718899058453845548751290805784286715625259835013550172416385980077352867212667625665239270545044403927102313923888657896139425839342632769366233634324213087428300743021080815532726686197282568808911303553642816824200913689973824327517178663891770388415483878895413276104325763687463842834539097515456366524012060545233002936666468440956706808433090727644446060076816869956728348918613226554475727265364986344400816416998134511399159330180185875109670471541208304600980985728365329181745324780978050351619695392812792074929401334213487677759577218822019461496744892898661789060761642768299665995971377112265038675890593117437642809736115053667158886080444209586751685059969013387235470871917591541661626035267135039044932510877365646300821452249232608569316707417097141940435829821487701387543173044878076140148450215235051266560935922240802940637058860502225663424721193349263551980076472068218296882758934229967168024261867414004206032155280410824376918924895757225571824553686878266613745582662952732096629333374478311143539062886816547395907389324217585789614135436651047401210446940435911628745021865516199618381937176828389758589555110040092270673011349716579076465436110979261906058590791174556872445747291190693018460607957972381605164046772730549640488201565945069996211083735449871017642336861197652846093650263049457458707011214938758909394745102702635973110428046706296558491300931990306155290529500496459172980781715950388471733643657140177602933414493124885970999517307772415988335323079487793456941200943066933970880625918299351196904755597847626402298234198091764456063255174418622948350699257820364793913283708056144941796039366556546021329642691003598252565215846687692812717731110023235153904117745953111962113317216576992512980190118620104541685170099533586841821229185641813378039907804778940074055466438184280521447267578469060498549250271133900653753966625598368202783573426822773264628415536637155838084797801446670272597977936390460549179087479119457554340873147494673292251713547847246526275524070351710150765818355269232204070343641283849011878383804435479089367175183966162024856969686814287889921848501747277474951916445661439747537588598467699533846274280220874995202656694859618840475816531797382449954900574681092676453721446910248792829302017640100464336936138395457608273836850235302271495180114303442159151569353010575858571799128359138281837510220157613019743530189472946411769517271679699591518114315805422629177633411324280016116225765545758349238330304282769587724452714988327595741072340867682650397224450272916949500047033937463790279479921867481269791187602089461330650747556492904976594585921029344898280238432062726036477233500475302766393092397080213960223574154353597181677889244438585543282817479811747648012672944299939892262440614795576585029276876852584334074337463219522670316985063457823047155409961083888442074123211859174493475689763538192235849836627292897393124441332754682635220374164059231779607065764196490487937719061690064236145616103750038426210466805220133225015929100509197222200018888189909080038885833480118238583499410229516592952234175856736169209872439664082146969273327024804035109918978968048561597891998955028833672531322483607873710181523400317620688046679001799217313594300780877078849808233007651648808741020401522644875357933454437490648138261378727217723577354456080725149706360535198011184542622783296765005349731359381247537353557047747386812421988873498124587763781820755157331526958692618994837762421782340056939111160175532016894857761766418131705739081499470590914662656173153036677855131765157020740803335843216935347865862126285383613140737841337991549706698959543097264517343741684547380430387662267379331216498126779083836520487372289753836585525880422838440901660597799834656429845256289624928265074184763283098737431863745520212229128125491464744953264708950167049497092098368635866869296162380462106341452371070565485410547553255074085458690629347463115228154365492106914007836036963079955842832619758869033761262282875466251903949006547961629578015072409551642770713534191738107192636697192243546315257538926726258999674485003470728521720160907319962491030585916652582228457755055091244067349853529443261819526049241215461842118905175581523513455105645926613460009693243918011804200253153788492603682828030611767184423121985788889848886401349692034978759397468598405747820033131647353605765269741009087792779120827804967202953051795605963588795284399491589430667634908090211747512955893462779874615531729555154402015017039846120308700365328443672714378798618825228235602644106888506911517334049998994031794280493822742698855187156747811815153387828847056743091743459752824145613330528210622299736135725722689060899775216685328811203826013998880154757101646889740268766533066802297176976281961849158935920983496248569027800248689828194952846646479273032160825358486639234713888483896830503463124028232653631002062963518240089610415339917797232652625572962958010886267367373948353047154184835191752151497698042758971576545290095307276401525165615257812662146243707237976686567776645701722232799419524005375210241572600710570945844329673985659476626812763908281274444506902315758685660716402458207049175449080555512428127790562013853506558430145191697768501751241340962465980617750622746346367674840549158628896215369848319819908740915601332861559825739964813843827118255021894786386424450976963038032049783717381609340286762642569702939476670258110444965972849897988784806901280658506147633807086814902408256147622420883432560637042383839259449935899158808679610502323082525603054096881568411573865273890340421856975719584561388732490002416745865600672826612747033500553959925091066081694414437432912569760716432659101568330897999220126259180360700484727706209465500969667917752096455553627236536678701697876405524536049475922324223222273988903936138390821786741556772229394528610100841366222368662208303361086466068734136057928739727466971512804157497767372488600681971673985240800851313167631205466934735765928786671910209634441721807285764671342696944065741360688703092772218244252573015849409452872856554630500909239591173963268451154260167717583704950472400111843300953916293456575309125033920484877318159963455209437716401904048927576583642969620524024350031876333334289576924322484178709454424836088065720715936452242376227295417741979121541116822399818745500742378383500535863886564451092741080019739146612115932190140171580197694519581142927462459527113862741011106597764840502694979907035269783186273126048086644036186065801150330142878668737661357040522777767843896153511880575414367650767921425019794018161840117705735440719222238224752709305996359154659215362076632339539954013936388803223064256541975516354815201665948072744246217027332030013851858710929421874916107795739197031805612612004949341866019563629228571187042705567099290231657861897408091462049575293718681874677434949063687015751106771452133895159988899073903509741635412861681867084174336313954131308441713774578290207015951487801288598417868944244000439923386401078103357343314732207907960035392649143871984032005860337297966693221341543001148273405831754967835863895254012354971127193975889435344790648039274833922516825377667453653620628217115926979557451990061507370602025093609373238202514400182187518528464700794569293674583741551738212693418628475133853514592592992400920211142950850491901502785822313153525884106819814941618406142724340468530501542985379621944802452826869286318062788196310334554187710322799631973821484459313097602067908127887141440297034319936233586816126494349587895859517116990809016703471090223955023722952911695453279633495911457027249874719571855093592416401724202457452144444017050356448227361245068313347307860250721097517339097417973161734506806829279591150197183586565202335459435033153342814213349724727443049484583402287974982688427674561144480602852908450025653012214182946853983507551852804715126905218440371114396672921365494001727388192677864055957516910040042811773235369684042967569865961247124374323693813840662860002697090039792827230540888211547775469664934981606149795478854468079130422989944250885120152245789692813246548635233417745059611837429706320209742020283832016743900535809750741429644187341242706011049822240070723703192117946488360821106963332289066650503899867548970459396530192645345549880747604433320538383885167147489867186112438258959137661335143951684309946968643354646791994432156373174966550776062160678777079469369921881294940132109580577442624273541103521007609654370905907388960933072610287137652940349413250328726537148762127246407993754174245113774787367963589854050864355079099794902446320989749728262412363626225771554003011699334288855602954550492024338679425138208996695491323766164024631726061729609169071211372907361877828436416610452330737604448934221731548723443677796610969154401068606418596336301879223948634023432328996180901153464464204567759761709495766545350690371235820865500264743408811209336097268743702137448411797363324864976952114757969124277558192745140838213744869196365447772502184750917096857959021806348492539468931603935119808795085812745718537363408156759812906719267273398276616287833647517645291078553133756863899581496555699057906065988534870315621741474933342413112345851495510759522268031167651368167319963590630527679727272941989265919931631587155951731731734640095035908631454749313274253473288192027360378150518378747437773070736142316367590417489351368584283487000698150547817742815116929345816752278355157673014934101043573664720464699327696892572620000128289740705190431800461532662896190021425354960851951776517098942413111904416742822945064530216514388221821047022489003320410179675863573455270511419606734700947461968184102138552231246612166544393868044842727206994365767754440560997011394547034028753312656388746149079381577912497855059920831780829150296430119337406345292118480542531466489461892020985710305914381854875232979074854704934850270826569445656450699909314771004110531538758712714418055256163815952921590140707473603183363632172554063800661154528516892749574044057914131297532302762227492492774282806744205008406754875265125540933066516285132513007435896317320354766206394003999525045553616604524633616714163606473026279153678398734922619922602037555585143625011743993495647992345989200967419556990276992929711699575985188124840997927793977229396912773807940607170630822641080625844166584266081687909301881720537454891705762227715510210517661042084877888606383530936719395066804567211091483254641236102037483283477989093436699814510024584676023595239058090566786986904062695639998943241076202899804644704672368792696969621892831697201483242551193175864491218882796526505017136598903146159889690802563459807799777274846999382469420911589129116870170792214668042038677665482494676559314205590191894714805718219735831380353581598212073835305843975199066528885635699549148337283355044613728225818164051249055404066719974363205217663438140714432052102531920688479478651308047313163073487254314154824942557841766503274071093642098627859113565452820047575176896099316070232429947087847337925189337783202352613078346878200474840982836700526019210600122496776370066188426021225572790942224274473244321325543448834243675692005280481870005581940029595380020026928938710449927993790781940568033873266598342630923459024393853378863574911008283580269252533109740388172025967380874054720116643142760003938588461582666330523314120983034610882183641574644267902024659268625437969585549400831356835690534575925468344492118329726965052203544600561774173625011764159097467549840512560415305086856123227291501375436155917473699677556389910286597461692586027825200282945277280467096356922669478544906270519482841632192302385650753389629747774169560622777866631037161388467094453466075963860213484143272449659008442100458381399965503629062324234229878168158101155919601399012131792741726899980126384788607115156500989273421938745086108259071528918282964884014838670005697951893305606163425584601695796159592600294659893108438016057795754508575709227602904474497795773272527781348252111261098864004646503870026667082628693513690152182152359707075888735913912974247432706214617536382700798696043214243226541965186609428420856243268132750963824699604034084335225404523678819160672706788081698458394015545546654724370096046913873463914155612457859293064645850441862993750128873099528345055197909593000223079247612066070142733505787628499493753486288764453637341356128625004645460304782131299268062217394537201441014301771887491918736195396857185825515741181416962545448647653110592535470525807118844497824216142856164432024756719372590906226586079210522275605367718003685118832510293372167179544421360575779092063854421816423020476023342661955495870622481753555016052556979725799919126097783302267097962578261689986536085074753670185572465545666058327485695791005337449890277760265443960738848125732246741812931934252363194326955932912533070233387476568187048007597090648112715092942233921635876410078122582367095908990651844317597805068598238687940720413079753950473433402789976380532040500340375051847516348744645274670161771066007490612969601635128636186785008060085927141325428314507071590694502268884652747228602553447261120974745773364168720800510127342193456130096186408165219609302115643082452044973085603176502222972894605525732180827163788597312394286586532482035950222405330076495552751454197743596069253129411625222140109264381518576420697063472109749909917636443829291745333767090953740696828509057817211693285639025241674932537180927468439023374872348896157870233944586684251262282981087262150750534970109837149853097518399199651509856337425713898788946916213386817427848733367096663488216197312093456884344529977721364647658721159250291808710742449727580789191166518859633632898630956577044573079970942671235809340061480682184688505106937150050354197361314132730173818004281892039457289677337718826792281203130935011134420673798378524007835871265908067479691689475630362400022015149979912347707980166819273924337734679352792021685273574007196610386261397652574233353735705637881905175307120440630583229076211342956177812723609580638484742600234687931228873438704762673941073499562078812494541262725320844684325596356868632682373271491703381577928850620620688925351834033590081276257058475489661259405604656708739821252407791576988988871364998721029817935374402283007551529993464953574698502399851091859485654550187172284511521071478808040691654024002907034415685388752608036506986342942481785004485802711918470227858019540342858661601092949790211243779519993628589575708905794639773017254897349133494254326640719118956834869939542866647136459742956319369686007781754654451269132806551756209156010655625089508149003982774759529717064391734635141020252249500323676968767370935650532121104505784653784825010951601451534930736642603680373592141096469463033763860277532790578340649848660057882608100127434331213159453561901739592369110347638383653740864004181944872081707461842031659023300473161148881520049368917092342175101788984739852523426243851075452689196904449109040376741339242137414689519280294627249047902286620310192190370125202149508513209645163848160945559191651545952460190164677254846816537598203649988328431680864023014915656913967584574483066392260305650824330800027814722833043808117110388309958077315792580798281297514838265069513298523072994282825915821454058285505318769019567406024380545560344259026980712181461163114403226551624681809558293689328642907423847944073850804023399491903848565866565923725262168324633748023044064471884971575880809209681718823582202045265166544122426087993541446632419584034404270702778662986058223284560946640283856997441173533147953786589754766962263786384432523317631370632526743657578615669251509229380738331658874967876083907933763023011579921259995409535658425354436319593250242037395196809696647774862960242002636672491663399894093070036091474997443750673697221127171185051659226419705288501199120274228460115227339148242159763336360702598602508883726798274401852477353478081679841537875230450270654781018450177915974047136941264616059313993033595089110831359960255870902943101169708209443478879424360516486404635510529430837783966061676943636441921544086935846280545182651325950999755982887889511255488561665773798630150010889415550172241671043725241468779486564005387864474038059116366983529093537523511516543332080234075239832192198331499011278654817051894480751714640880283900901429874488515244889742391684181971578497464424810650656109304485089168130679165217932365422846536037867274305164547279566348168709063310549049474164942517663463287791236481665149891130199854686697279201934320951106220214828354507904826310293815920927381432982733790836895238449536257343409395921349454184529865811527732720711957013882714994948274503503909639177092720437064874321781329453839640681073596063562527892564921014061440728855945436508356394605767687345982314868545962197593689667181287406345154935534113793223807772475968369076973519889950169332973950201122264092857917875210074650295851972051012151131383242614973488226734910711810219106750495090359995178188086144037338444957803691699820244712292291605210404065783162550366716841094405445452992562836448701843140494761780533442873433755342170171182218434235031887198438394772167409649303427265591797052362965706775925105245132627410912817263118574341417770008305807606081826953939065792067378771635766184036857096489074409719840034647207045442157101582738311084296900094669051403803122617507589386599635392046577109943997024092763701528188878536669995247948729506535237303968629398359757809890578457260828098668204521024777054359813932928098482154585045715383187019240526800683858037799444273462181352030539697570934524162736002361786104921552103094410269651262625267004451284098682938323357674424402999046967947084724817584431541751573184180594754561536664483394958013090084264248971227329738691368465482258940893455909389009457018599504506857880891134869386211267630426279442353882267159990401175791778670612684498292728779955675011052456223757542335952023065914756622969200526900063846440018912293045593615777568493913773993542231426130392613120428424572042708542841259592551333918293608254761575134580246615333891966174375657559259065124278770490742801862965931995224518407640413739213357166986398103568199192277459077255074684047290654117220395179863437883687870030041368736241947937141380465798629406695212437144187695856731164850291177468320323476496246907414899178924668159918091588521817405023874778171716970850932755492095058443713887151948815088708626911639732351460973671431555811485315004013608013167151727242947481956200645197582880114365829189123910582741205360895960797456213168493637687540906894969983018023698247517500617264164565975174705876789736008806404804219719237544309863300993447654813012764207338974515433061324071080603343809164901500069749698378994413726289749085797811011498964522573497410125313069318618929770440767199328785300793246507773389092953465851868029670909247347147429155216834545214151790909887534640089829007744646857954628296449494717881142450312406396870816761493282373330417761327346752721404633840811134382217584677580914268178769586126392330879921771335567742403516410263716283515017112945717882048218019806870899249506408177863371771850692599834371360578643029503241563711998863455532494687592618313620544016780761928424697518503905241127223520685340323685693624930286949515567023702426826711342611776341574542919538529785609352702924286371950704608844343040785614666839957772411283682311821903111772607943655858622193786102514802517666093183863923601223247250798669981403086935815350764109680473406829594525177217477644251978841672500480977049405280546020656803212409653114930824401857315699363395286565689311144764550816775919753504825338100671498865562004286151545011893941251589023359411827426935291263280047938523353547871692968787117028375854761802013843867435171738536787963173991897596291500348452592044856217898363496872210894991434462407947267912297143289457800018064832513549740027261625386018667424897821256033039516213493854835439636846480754349686945968982436258745146422207250436508567372410407096578867716498707950705447442953718528727137214045930006053201951682647678572608282506009770301116484424819140989197608871987639440153648026867925095523921101195016623505102205811907349747979099565380157629997393867846115387626730861146797450797212862319451387448579358049450158075779827567260318097693981611648614214097525232638148035941893809849187747598270105115338357646719899321746054709541482831889845377855451201194716068583713606837070609302047115592337997383750593097094824366019835673464643533025829026824742672112989925291606984492804498380208922033233171183268591999494642444991478792808737621332722702893418091011378979508896308433555437356692744296868197322791456090570743260084771046559707839892564677173178711899179796639775781679600867752905128097909030388523507423297443081179479205075003054086360395362856533371184049547097101315001794769942722497983107395877211565279529729603826351551805627864992566617719811090966339108524716971397646380691235441856359863598904958924739359227878509683192356668130809573239512128898751176746605389449773039116246795818929453106506222062898865152100348294157780524947952527989821299039539108138878378052490231229964693004801056681539714202941740782996804577552072848682758138436537982194998569412914718791850063669945515406669829684220511143840796281314626929389250324540546670362932467426241979058425582155873742018533040974856208467914299458163584735657008839153031757852606371110775535261537327305842088575149863744448198984345261685737082081763883109595395181853750205357944534452310519305504819117902277723294593512944298579394252114951334343360445049015943315951594517296947708763582184755921555851972767033539203916781179193015456167971858837474399118347374613607616799855172729438783106657050493239433713502219829141141475029837988711426145929659043043336372940653717188154049785695258404770051400711050815301072102115396247424368159668979306581127522378167108712417710170869490484094130287923417248506404064229058998619248428308821583944197429157564668694685224689214595766277219807876369952610791867648707823015753119473408241517892989776372938357181392099218226533332695222596307018473672125115512369784404575216639093156748678166280508375862784051998151307355098683049482035181736648774963327646509707056287412374814211370558346707894717898008324323710218321677494789382731387853561724472227061005757846816234863160343078444831026162694920656980862584712709042619875785016258691616422519121986862829687408504787150725628699159749512798516705942301027499656635237820296574101460259375945466628586153880622489657230926462175805959015387871734319872418038961346117508022857053863547854720817495067046375578124791137808189987474409238938497690913084879435745533567427892460064966394294206404943957959420006216127400606381375044827280293005653616214984827466811007408695604055600633784172826717079947375077740681413992762532227835460502210877609530050050534246900317028401199573459754367398667894702538016837375372966995929320673573689868719827052596162832903147864374627868695182976293225326816222593232703111776644006368226814591345988644660769657036524833391999581758571425162517413471007239921113986316717565216302481426588194754472500109293416504588829708614625483113235943595594470218904725336370087754996009947980571194320625913762318722823870018234410719417108709568044702459267610309702724953980818253662197763594541931507013900552556939748159285680219886080615156738611829046450782885665633153923167389417298814416116702087940531862234988116796241659942448271934591560588024863154284198909515822925211088926282377979255337494928951443668128856465029591542803457742739921970533774531124718487001732987737761814545296694623878743052771787542499040855801173740544796983630230240931155270016194019644333162997054673902280634126748981499414904200910883115822978314904438876108848544479467678381380529248313119844278277688334548871011409052185776229706827047568131314046367073118493482440764967850741179197435733863070855012327660165973931255087513178701389372742814132366211292365094701899844963499702646563456703345603715739304992114653455044426224068812971480135866957379639536307746791256556356072735872635655992723978365142339136291813909881358191492904639923959368417914327642357466184116930169869368807780134954474737305802649744332955093138424492546096884133270113113859805892609389485842743376737144729760743683762588017044518588593953108446413609809794619784448063606941572461261686610330417592071715813924044279786810682307935101382862480207297274666069724909593337022337346934147940541205432911312252875094224313289793819854839644335112526329533734649664564343841688804903749154737962382263759713605231545787974635470565837670666934817575064219796105278442818549134911171318218862695258804737027723027653405835561677553046515695646749444825438149515350066616642280610690785742274335526214059161121261868229362519531779059450941943027194047096008418336388423493523473679132213981290341682813477181891085614263226210979216444826571041542038313322999126746935717510502502337397137015384213464470897987669102278775713155388009878613633142590262599093839345231201075865032313089742296184216647266828001350598603523102097677954533490394530536377126360978054499244923285495430130001409790872674369575190691569155172057866985854598111390052787886714134665270029291117315548956794197163808893038585991057604518467502667238987419795568809592613420669667764763527240311727674899206718996655236432503746640202415124708119103754695525162309860752733916413115467851387979544458296161467131843342658639361757632214015225516159760991509700522819924191229474927363339764602702468832220718007345330904254555333600794820273466626019401670405600116920549470804609823660378854714869507223904424324934391152169375053056943763659667945648137067571544069183072745640656461907529205777249895027503680003958483919969924736110947686387697464520374226077904988917816693222034159940832456074962023287295962439432427011602534517933215675718114833950156279502551615975290284316782411158302898093888850275290168688383213021294101781165525739345922009300508023258976461909633045898359543500644404273526870972832869375063890919391718308527411061259076340567454317231736228335580774138751341438552327995786626994466718803964067951955045544280448583200678385314282086899362064622542958741607917440054431780069786818546824403027811569249399914368337972736004580515444536283902666993710653523862844634796782334783142468558981861989498440112001723014560561727162065836151523265341145601893804369609900717010191149023516247978623180678473969916933025304673170287040865758461255786577175276663417438008749762601078998507593241256896067772638288842659846197196575312139229572039611467392222395034782820102925229357425794326793522677979994205609625000010343711346830831458046133585521728575506840173909256661488174488605140340607937743799141707763667879139101022806634555057641393866038334336639758457513007287237030388472868747390375080694098375913008184872068969143602743398721342478232824070410615427805814276870289943401418620050411613567371916752857942728698600233148007700628858667764589917162187012709814902031267142890990437588076715867369413829809828875627930667180430678193625680650108533931143588265577848032897411472117495425265706090651653948794724270460839830278052151452025978865888012416916466812491726229274123265127811049913753129301310165405137812784954984023677763630759620632467963087264329699683956828636093122612588948317308355588332448356006570696412102256276368218981666493947422459479707752725118052127702251760543609175783428794732496891769708516793326797808267544640511667829365321085234233196897170788972915102328315306675340154838841805375468618803274138391259478439003107743442682728222601707078480542458514150045911189467807875310392869849602399684738250615128734160646614731548660518346228532602147662241436740108500083158101801130696381538687604827753771885142663621027806918435520140053867816784146918049997260928591434676194028658453922458698233122488091989529541359977880887111616630685502947793130280277371206408734396109674077760456634684834563431236339191605200337960196102672474663130849556499885838559932013050570028591237862802436122784231691455105043134870236403928772189191188058838286990154724694857866673939626384317279137230599642606714403879713423292731782603359458935395066652757869519150745762532803863156534782313325552178272083666542639700117461536768092180410341235821229743001286996569872683749213265908273705913164277332679511288557097380042258922879349485550876303797469878849526322037154608961060533604412719993518889266857562503270367678012759553334616224468456598427716292578061123092558412766168405373589471789098070110189717117907057038322953345529065382427820778540884026896623685485611126093387840649151790245018915060578185719140068658084109204071060991820379719491245472510594215576023397608927176630846592004637724542363946684161372977917409666433189623690615619084332926896012332950012756201641393744511800115120678492325784713181209144234085621802628770629751827897403993511039380268391355020253586956222825108188075889338840139165854134311393827213429590739133253092027772306051570096069044352440464208618261546079450376406037084662675472894537614715744196711310547676046598457694640317512908466920132956670727955004893931137487620745514138183010214089009625656008543787437108459098171795027894761026979718297200022209908070376527603434758159923722748646501148646565526593267342785981226362482200070464785128465357998860135831828625775361304674466064504821690348429931916356430427473244038494022255937479337285840389770099856850822637145255757489507203741391223896364230424832186316343022346065196088041928221168219461511151889790891066359990701754493657509648845821669246566957205281446491406869629553048168620885268345475116122862411882243236636784502763400085798145875206025862861378463477507608360411478006709080107803022002156277442211276622604376319440627382561048524825292391141915253751860995189428520088510064310959333589555348688627768053757828748007190541154444627913631175076346227391397290058678189196119165747049155884994972211753379738898333868851418670023883114544902333944769288863803663730716936457278872175104298932168057831573699287994418653886451681272615243428504917444525365780352401898964944858345224524829401397055777031234627701118200804438987058484828300743155180971936474586513278272565319920445292065954527653267497837889728937830139913345165561798347473709713588867407138645253319674763873955173712966603579756679460942556145938382970189859541734481413807093803682065900988652585595264782036099751282313225078288825761116568313931641400748006726861255977052033882985493018723790940647694353065645510868624133053040733064477417577009826236217836678004929992333045365071903962021136450749235525293704109177802405544861980504687505524165729795358332428416326791610356562880553972136945267596880220629432515133569412999130049635542758584950232020702748033318889257639830991172941810993135656681134505576210652283513806110248631834951289443591733746550267202965710956684586563266852645334389272993530182555031610207473215719186338378402766219727852909875591463003744188049871676666872258570357667994042352944325657566621751921186112615725693236887306872379600395637794663915031486926232704372501669091185007096356280880249160264931913798976441493856513833596586601185995900422292508444327822939840895637430159973646442648153548691180436754091194116611848446155110293015732754869416915151684091170916850081636428600817868627698845552998503945563514332646679998769590402502859675310395459079965385252590557444841432860747727767217976133287783956972483425724813872900108939511575863853148804339419163074572486142870069483231835433070034790223447193805602662051907706489955651569739392958271487402404417310483930013653135428634878234742755139078582657529240277720680257679661591765579869092483307373929257858003043009641397791581507126404272436937744050365035799518800773089045704450560873379261724416735204756255403140244155235249050191173215336282256062132592760334693826657520238781922476704391452037853843361022768810118204858749315846442493984329263779979371223979705767523423287031495896216664758121884737798268194649776426455494747434621819980514204898602209632993536886248424115567384596166103619340916398876335167128956448829695622961862216329164947522013070444598522912106323483782315475201350797704084912596559631042338323339344858363410111971510302484544253997008824941924849103992745741699194322029859501000649276983358722545790681395395216524648214451736250453501307383863966046591482142932612397041049848952808003831357759792424906061021760805067406403375872351513823368656086616047065269218807001502725042054290852345100713228370211901113574049303082837698078850692023414871808897223069174695168152280422351294586812733422760118218056297547121528015700135618244540848720648688080947141109393397894142462531012858402094655306014245950018075480610618008387329826333339632277972449580796098645963445655429273910576814169022977450698261379945170144689327543792885825595402384390041148586810242213000159051326653239669181042970702106687627446995424231126466976076355450255418571242839608325883178357337749114917254632966417444503262605562429814106315942225590284274510236461621477924272668047345868437069613028729736813607414533287384550581217033125816593328743657954261677861660192265262421299987217786608567846292756980363591331788417108672599887115369789133212069287148970030028820465791953263394204884947660290418970793821979102140238099779290080353963673059103394683882902722827196324049652678185278820449724034280488721310221566806284673414529685562836144856817895399351302529414944934236036924263717488769800252282192776235841810550065006195783040722581658851621350053024733447912804682073981389298933935505428549556303492329865888649136236763450717725023090477091430670271825434369723224297171926429827329000467914082107232941497673130939418451205290654962657103173736446716337126517924015281745195968495108748628108260089666240980809346279126051056777705003585037491108930632522501545747722616291186477554950437232656319131328307625826285959016252749041137245016765678210229199795941897331262795407524891581116493850176960761133817643897011656986280032827260170794897626052182982180623503260613888798349796263952801115994313362902870180749995827449407304482899740390654113645024009962622823801735935287287650752136575141750804458254745403486831042706317970226602063257765790751387700604253615487948969412038395170007464432974921431198393255853437752996973062622890246109892862398387192254461791131629751825971551066459553825081255806741051649136969956782057370411724316678512414412281619112941669241171362567838208982642352317289427617582948066032495548911578747231580284165282244365562171228484783910018606018469474094815239313579069221307730966828225486417412915185822860575917959912512810403208284940434088921119161155497382376820617817607950899647802470331249414906601377967774633286486202262781846811830390937907414761090604205741062779799896816015242954660331601120184924262331902695130287489395825003086170888670099668007914387635755039245874411837311710931817777195593738857830405989155063694428255371245308047744075584599047567045987065183638965511086293956141321589382052752326761265857636230187098951680666732199646469650155916536441109783343123697171509271438628423212703213934379011972842890840589116434706611601205240466779484790179431985758486268401285183433855387620264676656534884480599549329093763091030851147195150872850842202322008147701599875761528059870405476762358849613622451907429138174068062188264241861154435104309671101116306836348655965469329389408172021303053639615531027548782911708872515961585013856877214805983147403263590808757263393719204260178667825072463890345750355404425655512344876921555139087885695257912124134033340579405175151678671991251249776864759314295876494706179944742977749606364644587742684870889149757993933298805722681965217981739203820205955891439168816719376249508377099455185969420819696405224558472575308834292693026614571924230910408763800922347891846967318141595694609020452793192434892197528693136830318895809654989651741590483179138824519519210772651022411015431804557648229486863319729369250842756626254300924209839954700163640463133579607654889734290076808480220938851689287206466982757404888962193891060166756601966079517451877347240718080957009358916285517490338873941516711516749638723217699616344623623837382648183571013755409559645471241506716461851925719944213498643451914836131084564586100868738812810888991297299252944685480210841244660601312406589044780040593685612191820675360121465416264024723713578027480053250771369586531582613950226886273011123811121783412763168740570748779645083334215542599057145073215424691745335313935863934831476745429298009365601814300475515637655086670856544928511148540704625438234562941371903335724057271646919868855504628265590712855739245898483817969282226531532363790678962872763380783475201566941415541182278886880813743132849208472659168659701653889633808575395635824980897155540849717751314702867514024880336985863873406908244819321379413578864765658136272088230538268694329029215088885421949165985462748460830730350203248379701022069741194278722842800666695681587853640118145071815084149875771399344275760114941192054863278204359579838415376488467487723509936460746793292019682118643717455121535766897520030367458677551598443544122525981116057608411350924561692267094582906487800089930848492977400902956622970432619339568032366474718985224203949870879071664760508678756973636989443699594162156606087017918616939489214476652167337345326689121857078339882746975417733890444253306850765458155396950080145900758794313330623350043125393596153077738317285148681122076925655392803062533871668378166163809439370281813821510161480387288324413867233417382384399327109634294048442053215077621374480036184664125093899627548661638979898204235523774609284364142962965683990140613599895274607559679929652019584945459969907258723111886405332878982865983242491332444601528956337009009425269487502326098990940424496538579073666277178574517540192917648998166037998801632706340794371538593748428575643098849460676500234442031857313776121562465721137680965185015039825642468834061507960909727501647757820163351836890975075611175578047123935213273076601932931578900306275090117085699974142946451537628806237872771880168252512547919524704674740586641660199228372272102986328225202457199354421789045323998272218124898765960280286980178052381102507555878518853718540399871683891632618730357969568708976081259278428984228907010617162110603334074244009318817941849230556311397457464747603171402335492712656932791817787375390034730852956612213619148859598706869225935185499360734824187745897636399985992861376761214236591474977042542243924526793972745460366287058090830737991705442609077643688436671619056056485319744078378066353502394005064111149174058613390717552389154667978712245603012105947943059572619808202741438125015280329898922926183562513933480486171745279530605129975772565067774282880438487170080766259575325098591172581616572430535568666574021820357989225638002959546953524999639321928277629124434838605592513441783169414189431078712686252078662836310558476218124225845543223676100426586071298013136497445514385686456216583560953127353039682181041362928395954762477505618526668730283186167732301764475188413183407838208963332098262894853911869624515712259177371116971310525478783440444137872382889619392182464817807203579290508197477212250617762959491980621535387686125105173440317958805048459266072164099351979608532758237350377266526743842910476794636057475427196648005807802688531323963658725778059466876528783560351302873785892392618872230824246947600400682428344866676155552571453540241185094022815667683554757073222141201537372181848039175512710525102245001045897434235178004880148104595018166846799535603274454576068269140712340160904992105166819628913345269948861811426465386638930573368690399640577104568655364244266197473720369452521268149339033851324087437477853272897183498777430961907158369979065722807241106813807017931530355445736347782486460885350186938017600586003691451186537424751488732690498888340082061647916202643624671702019808865387257703131362175546417146406049090480700484507056212817638236750740220927467038562275148324728236032834569086282974805301404185655870136932338426778907611697659448374175149958893421984268567603635335193487432767279004416219071564972259368920490153055481528265387678502028592434172534362381729346894225413042952902615332807133842258942639910191197519447107253067979858815826193734268678277969125624617489440525682063777705019417821001406506028111049931570591307348090284701961148097455645557449687895376801192852427708057172473706883235591658238489171339587099957587413710578347345703955324415111759550678060853133034236564257705900683859481475595307543820728919030804814041732819092305216516877722649297371368729175256372617778997790431644759427650459356121869873366933705082919075844733060599113517360348009141500740036640290543605775788735678903669735364243026689382491201711346381728290672822796297531777824245640779945034439067231838488824203250992142847528726878183288778591369300198454196007844900101619951325467667610850205961822466244216332395828057556229572905511889042918436771331439043981551786802330352680129393809355055051638254853668537584446219585711798524305206622256853108608805539749952614236926374819101137409004818403940408731667516297934295464195601456872952315717141192474652419976158317721513064007942163893605371880347464009276730741177067603764108047421876662141993880452055073340317384192424385994140618079828877746996511104610396623682023205927498259416015311173126894841174048665519467583638046625557397073826675433663976838809593951728175224003339382459546601033140797040037013369406457424533950421364734862304847545668364096742079828219891441666477749620310730792840951784095238788676647118119889241109260627624860793887415797024886819740050526180455295845450569633313055348481149725367539117609461656302133964641956367929781630524401814262830043615679090702762413694808181741923343184249696690299741634908617902008075529140292800337978481338332821271049455548385912803382400038073904125497228451874910644409512744853344525962048786365214943475498195523186001349083505884564983754425976387221060542817320863320042461195288831173106850548267396692824021578892435410571993191495046714747653064890754640124015013153061030431560312863636245666941042156863447911142268120898194799228090084950533333806096416386781853878288524779654675695307171629298741282227158526449363223576603609060208617850690717415895474795423863094648397501308120430274719477996062250821718312214243344876579377894128711974695253549112300886827917119285526011149530477107063232288556151689323514784231249079769545688980079727042464300861338942224918880532849545832740904334131318811681302464238672285939692164229310016213542291198954372816885990358953625354535806226512085964218763529057769705805606186196271792750821257398542147449233257953921682311135994065424762232870144444364961020049917499851326502816069685569736398597881099236633424536020761357786089611923884241702705066914417660290496216250597430803885011416312975117057202328204145734943872263128091308091123144228361125051388766513147935015267234995545666867305294694659383093383583117358065831328929645213947046823689406393004102104969581070436599320766272820394211055673140575219657685394552900910930126964536654930745618809161786753929770121925279726824892936409797380341238077715364640197491199137020426906296049939316410982584625710001033100903398854924896085592050392254202968936431260585183301857336496731346463821252807741937888978477584133692258772857523536628163854980693942135122414752438157541615724453350297241144545167629096676929547263954943910870841318256046738565519539141726363723607522737036820682507298772462112564905572337464784799677809228100598788826667264086139584439292447121267693975197554640093624025199738729060508444535065376774323038552317175445636714368248826626389869435502896573046948782581074067875447175570769620203776218579994350680578290802861668953844695618000891276166212950300759267336535260168517719925950650357360806030844425870447856947204794810772577684520229930364530696651896285274633430003358967166501641739655699393140444214077405230343224167810982963239738838928504583818660619198861997024057261320746413704762750533473129262946456979554859349647416092294132532984988395821427353552662915705417775510619124142778767324493059819757396356167694035372408235629476012736753183125668953198560041195990968236920908235515246844146911482625893499042401128358586638428704120093157409651825959376236987073326372067832956815849064968919003754856189141093785488947079127927847199899789453511955288600113927686744997687816568733416695064784980233530796095354489414759890548854596002608283388821191658475355973884197323948789072287506973567115927043286914795008116796832121038405681724146815021742399009566531303436269337915408020040772883928772630342184610040569948691269616863815682373466691252038131997652934406155217676613451835123352808561146343512122321305871182204309125285297868416956886533651114839340384893064381090050644236715081752262933361918941674977512137353339376061602388173976834496088276640648208288793168601937667450434521636123081466241105243341695531782521288556674402775143686480307464466821275830200840266504177998234676507677638454291442823380345902662750295938300423157946162167363211444471323962633432210508605268372987606778200410851085727219471686996329896990592530951404513949100051307802108358650546893870121958569408544565007253132538568765047936874566559535589997716507402551827290879689654114692400918264537081792095409631466844656008857262980576570596951845435498531278744715746467365280338305226867548683334901333644313767633511705436808597895835560458417590368316139827132132426672466402397555216493001616707827185786231897617065353080757042624857730480650772137010930826383580396425642892907434631605288129677135721414107151526683908702504651094601425675853688608437246447057656702417848485216949671235976425034042359539478567280847798186004431932968476826546118247594030998350535770055452475439543618627334038832806918370645236132902646075054303297004011143417040649903721045076925504536480983996040630869697281588910527235299184222876117793637516724282061793655659210496228599399006445355923619727108102336384487552523467060585100815068086352645798124195508812964745442827697770978947771580000921494655961018189096084660188973603291292547219751330340389997784851945390178655653055970818329117194821676259660752433168290113321417519665300506571400533546896885604712390907064148787691891982625275051550525489171530057039604014400208775880615888707044075834552355728492682565520232887555666471056273062708394750140665325673487273029775527283241548008800099896647141204935842379140881789626112340825656623118043726859638885387426641280676926768652606895084424546648273078097831133286921576031178120294387147689157720483744446898251290455728888332198874680357823127037755010341120947026324656051524496265473166298667512756571468247224904176747101310494907606546619928677423227215347412936131402967796552021788524716540823699733277453437375273871781490890707716621744792340303654625600868169586070965865900228811066682936381605363063865020364427663246133044486537935830325652248777686228963872401192665807565546895520242888176145175540170784815494579888124328722639244134404798327122513209042795386708660488764334567468230257609462347075684980726800772973261996794485072101907091365816023224152371529902882948029241635644648989723163587387822922357088326789007538784748995034583028499233141129136748364518415610538771034344004173864915106063443741409160547797628241458207602651187166905198446838901874083627013072608659534413413746577787340027153401954582449663624631324491723473103648799082176912665849031742674551320361550894482817128824466562925556266217970489670501419814109801803478995982763635794664191313137218880942255777868958297797809426907360404865631943690884735434054106058985274988270568744466219904751286722001258422629860888245093600243482704818954216295004748807692230195457731177637023668529297559226918500623113997972888828271298826302449381080268896517482254739550219035445356605618235528223514653808125065201258386635835860146353887841986004370993477585820540834349725946750485091320805283587504775703215520736166346409415276835775629634735886217856930509223632076251527371451013302956792109011355685956315240277234114516117182029830219797873586196639434951578794160401246701538580934040837384157675093184863352688457005323905783808782136720962956524876847470422445585258872879037443682099993495605081492034157477159945521798758107887097626031833271289414211829000318533686108130038891807806349027968602351396628148770899576652543838460007477684372247027464123715035324554373468676920958861967639748411765170074038812533432522680883136930791227549695005082922476412564973466587631860325476118185177916087200858041616807435761788784679919863443632346702996589838365029667142114895411420921285629463051575678266417935926738257379711442529894264530848694084585598887826867637985295772349782676447567756823239052304665712584108584705246270206828768939840112743713565934904064588649617666840365785375169710967299053689925663459501077451662958947126248247639875073546594067255178279514537034386177912924886774431967125072441982464879554726214190525234878503377208122345012694212384404678109590961181179395255901922540991124166467144670499541726506563798290145405896516983200779780954966852753174418109126875542705694683088094849202213520819947370568528585926390848521746288651498044944997483693716761807966683707721252309315919585463499562196811291351493287003051809465543459823318769791194211685613279317199281769071881618530133685751393435216346644038462100974814849025065456267309852429810571834475089216626249276663386592377982194485931035290801822326593112995900941609639114773671127845446940671806023725919677221640418427663443737032790374186783291222507788732238570788319189859661064787744379610988286375390899215248669278739929923107008821063857496052183669957486368751474847523408770542109180479263585916536889061008923069741218118023837106721770830725561489672849387347100642061538533895630916624377288476789489583621315044955462502976624200285728168638622165137446748071534382234810480124213758131573213537736381234944787026530450683665273693173939097729013979574312591532362819966031480831219918785837993374361076079002090817190567165061989192643380089054155638119847750346641291199895150543619800964080597736695638454790100523283933478637704829599390107028104875709458437458618005270386377885250684679257642818627281249202033280260196652314103106737862922954568773551268684551910027463357739266249250806321075829423881989205655410789505418175346018348960473946349442500954020988270835071339586507332272592131153389236195415928423030025298121358131186663497765209146337667463450944784503757134095236010342573196630511577226735224557056202719269097000894941980368785243135105391360254871272574736760464896408556615302002036258659221102873694948356947747688003528202870207492740178658987028839102143033341485820827309441967986218604894772863409757142265495623728327437300101450263447015078127366075298156105514507823749940510988213040278064499796538894463216167287642214112648508991893871399545660309510195503029632432167340368480283141375063994433465498461755896514813559089221767035761073607748889875806904302956885805283069517113369955975003577469452761584215086734300336932598855236892795494744574678113445104414191476920158056507010427807639448233064190180299524680078874447983528084859911639373034395264685864355001357814856749894829703317070140208119626002579921020603029283640444154091189210163709125375812893709409583262170631306650630435451240513729702468805577006485863176695915581805010729821781286650242623380538504160038713067565489856408898610586583903991649313626384768070191876587630905135546312151515331894987395610969834450284830160960961288040848901558751758145225181018860619012076338136772918057248941090797933077409775246197422905421252568319014685217737084426582170029572160998179181856328579503510672672711038496208351041671126378122883307393999627025074811427015227685831400955411817727385469901367916982966613405084312791273966634681061101423587370067886131078428056079861148178725402456932621756549141506318096905826479246259705001128242963754465558605860944970377021971239194789075054474943328149732254401027246386166680189920233937903675684433037380128024273126546094711960111963035073341704617363556557549691142785745055108844662906384180242290407852257909147651620044954292149488409407154201646894403312281268796873193002575708517203768019684479339934535845236025998455978533873403165820241162732423538845148068024848297821722606926325977211350005577836100691834326735356060708858358322664654723066280330198129483354108164495307980343859637429125878912350051848694934059581972993650890083501429072974516734690404146841428396164130616216445666283624451538496500900071647374604858424295743703764124644261828828480476521966068682735527928108355601896205390229756625675337811299657238482648718214416666217665155927521493515759189254560420599786733571074869313797757068253033191537475341703145779142936578961036277933614096727016193365859733513577037497656961196465570690387725299157927143895907038121094877838784927068464545093207039508450791937658602339800306179937981435746537714660283398108577736908790739346560230495486155025614505506171508368363587687800514913039959863831455945215176203029973973355827501662506704515006535725044970466936518486874983692853798114465416976507879084890216536077073127637967854075356028579362774676076644855772934393699876943225879216189809580571658323383916556667559779783002756859534142983406182185684482309473252798594832157277136541308632282364494313774171796547490332791809336819943925542554578941517152313515453734050592492700022766054519774869217582023574743636001688869239083829273316627603782844302191904525126230559006465218352507892263079434224039397783790734991513355335802562767096871217422542361364358400164534685411191435166312717552617959974754384743398548391323658095844252053582567442233616720805014180715288064067993716002249982697689453211892862870409178354116231619455166177044534342423043325605203959201795774350702826227598866650252792042570019300538076469952963074581840841346990535459861367289505977991607424645909389525492833082297468904080363532444811742532725170941450427088292685078496893737139226861605216844393756484659004911064154558252995299800231147428663966147424615945090180914453601359919125351269945296939358066315046796463742453225543687146513858220214149359442148326671431953334726708709624300161629789316538328478257802359384361410918406059376428929283850821514569826580730520773322985412103161438478698672552402625503931760306382389497389179650891709209269832863721248630290361195983859424958534897583280877518373069644541453445504930929705597247800925214994212187000987839568213185869403995575254478333235092522207644800777289726902734246181241366026253391115780411794589160415176245194176347317929557901716377114832306909976255519772139217562066202277906508091739920525284562670545952251905243306117818400156262495946243035921878525760956028214784291363586044595079017444903990601400857791604785176868545389331790186983785289883342036415854408234866853489356252261405918019655588370907019770567568790164061725092409619236028481319958512382310478986997637171190847694104234349845061443444641855829742168333734610996497514679151024949276378597382199140915086660505136585750959932014133090557953777387138741048710658188686736611862771878207616494666442315901596160555695096531732778064399842442423729193209108799322805315236498968991526802121580104189027823271699238195941113664757259315487979988988163338868370399002492195726962987759684369051812796164300701528205519837228376142947917599980051029365724004834551339044873182496750041164854627752702499288087017174512447767741956935825104347564863490110658535073670253045954011491530032739270682094660782767659758794865128639400062288322362528248294165390036997980860083997135011983301973918118362071167084824138121920455031453928211748849323126851425575801128847348192977281378496012773165188639377417545696840143741882363398925409319091100083779086649692348900484463382099012786271640339174874264304373043870909154716679564438280722474920211354900185243885663054145476515299210045100662603438533951947717739190379581983964338538469019167007861255279401203918554575798583136849394500904530954075804563173814925787266400758743245283780038552391821858984126504298672040524489881280008628383634318511316500621376856183033943940988494176433242297465826753353844005481134516663621635857239156411468069269248679993839167975145414812134265221050588811040363362048297965893945792629961639271440562892817861885169978376258185306857347165021505782273313738090461796092989685645484889767210055259214564744187221380058047060950683369678937913118555409377022290304840333465008247561680577268732993217202174666951602126921593137376821393290631133559382906279323127057516448314364383814587876940646457542083619749806347629731829521624910490659311407109585166281165918532002493261389091259031066900797063347234558660166414482958050207985522313358401936077766110990666854464262658646571496747659830061440124663659072379254460659070677240501363462375370071014276638689948309474533667485775122576050375011662820106062147639010878017399567340245995910999587498861895154317401234945556997638390674691485695704760107754661302857890013573471862355762050693010995063039307035477505378605873448423138231923997200853326125321008250219614075147514489928156120244116191970252615946297206103039434686801192680053515208074879215708754516633394284546397280725174611372426320481478207614894735556341471220576951350469528659507222071720836387844585687121970372686377003957272923179929831662235971976973176091326648069894128762247062131556660969333642523261746050157321756766791392160321796140606963810383262573564943464673429231821271304316063771433919490278647862978246965358980146624557011112458421105397409652796075400936548757357081293080989422030833387633386248311478588820633072332142212922594808527787894302312522782188390036670284815772677423138753017139419485747306726864235652676759006740274496875018881727328527646542627028613091419008332237564941071990551607227694885374855377090404031291073442472636632943191952678440339119986735487077772531608756457190050987467009758126654844324865060961667281417196602166164816649400263483577243065267725373627508596922520552135216345022445261879011362246941360513075517869909872629041299359420916695448402879016012450877454113196436745544868520051660944871702648672417172488138764008496812621374325782184412205164880350509615732398065821136268355700902568675114957099455316813970745840910221563668922195018848862492972397233357686705764072456949818470220806600110366671632040960980428148751267124049947496112079445891153293504214742409413078612882383348708722664880920525610953035456803915299353404713512948693565001723851322073309258774462510036043041931889894109838802140963039979580516937708581507343634108544391722387318917267984668266650409227501358675418418893942341891846368547994329676494727265212256088738388301550051680615964365441584975939162387808117821146817101617820480343358615477611481064709990220215566104731607608966091427023663139883505114193769220341583153031492842547672676269031698588924482466596329870373953093639189974325443111355628635850672921931130561037948571110751548965859756725786318865146792121910341408236592239997428793779504354465097120894198430492334441125730509870323022506406210460422006109111066362279981279616301236201824833141658555082304313725588366328007330435493455028974264457198187807661118751675893270694117677668682724177620297804543426031336469673702930209689320143751457031659174781742344347976316872404919290259727506567110024841470146175672123566806282863969564252250240729142555682320300737329341227322445338706566070246377684691656785380577726028597395001432674537179741955214388874540075045032299195694264501511915459659474640831424350895082666620273392790763468345068247038683992543228338045228202685926995234350090420984462728488663468080289966380918778233459421879270332517992185813402171279365913110980148905988109805615854076802706379662572060200968289255819414518938029063228744780979624906545013373469409948882745806259511946188419618113597958382786119334562043525409039459225238735932300187946251566871361959380864212361871127338262195043174165059790884890441513719969105913419684375825366795973148486687247346977775617915348582421161801116285323229601860773588043172562846371130657891332258918165896790957337965338285122607730002613770588330481575925692379245321283485843528374632920858696545345302494500167152864698553344802323935972917414303763704377360300758024158319721604996859065644261649898333778306291733765520353002768476170458585972835092281796468201682258706052244246217652543897864321014382838919474844728589091997042093928262012449217176613864254168760362961416018557155881990263410772517408182545007050724694537722077190566007488724438563764979030788721933500918442007689936321828648488487541211674261811031546290732468461407530088003519599365830753646934462071352919250525312476351693621950627092560423186248347121924433441794839644681793348819798636867977598248353901145771739061133169686778179904859170593028563726595206626356998129822232346643843911227781357518015794467041869740116530478414631188793184606405601282393771537985751189478530203812491312463327137144180611668871445161728944405643441368813797012995619595186090406939038053217599936359634104830876264210590920098751995126883528467437075680247184491012959855838190034850659485479483371987421428888515768503284421484120929183293304019372663143519449654997334594762435801879931826286718253313919748198149091577138519661183766136467951882343601003365571215445294811504030579998292859565582830667929691837630296072461053922065242956261614450986646237553555088410014575371801483637385739511324706806288505214258216613233892021409892555008793233903475520408868460601916848679390198330034541877718140254673283244850849159600070484485929913744646083693433770532067238467565456008593576764470449254074888853402845998790445388425990752322163666697970137403499951322954494186305532252433663156836816714388760133737237031857014738726025265053557043609506112183081059918865057398562072186880631874536443041432163108672314722659480245390811653590144068796014328515694820861111637071232988409518024384811592644286721092277117573561172641491310108579059250738085699014153486482962985163838829515860981019046919444807628105401105840082034062524851182193840910415609836721872983257714928646430403968311161652990017644228246782376631327981398439765350912908466634899638506857014497962901181628912301201334600296939090471085739675753825485928315370595105958958738309587608870373591583042843410727635309871524512657114048969669245130124704721547408747415907165420001250007926819231543386190981162706350889865013882113195030822778903991853683835365390473957460973849294426946292285106717525414164440989609009752491606595324793664339673949687146619094436460396653740205504849352960400410912867324093510996020322519950593106503102881685853649569813904953290615545883303307042949532146095172549826402074967696012298398930844338375813995007092987112864692997045750750330091860471902186584074833514311536480851147421210356899369498059810603309395019833522963408778674181608726222550888408840888820415832540186707381633991007720916617144076162343292964578168668186957603187553979718381171650172214113651303559356354733136537145446903388133887628516189898654880741921257343124426165149008664563966920973057424408724216807707034554271978477733829116388382743172754926117705727387918536875902341392195822826409109370417891569199002027020929520338823857149576948831588883160244303129948387756479063851407542595736001200059133531984783698344132996109308637364513509286563169407304057126512915700279328478538274510028024552974917127924338677890332713442717923067008963746477167577529900643752490797639154448780533763994800000503580149896624022571907401530756051037233019593631878749686693226868065627536133838982180703189049742274405462209051747312409031260893285028996696663333054923661859453991996040526251803229735896268600906766467208679483438422991044343280980570884905489907138668549910327403630818422551113279527561259174261269105706867418069474344894869723642161972220288297931799361715020045628645712331604760690290466414728488838881855492309860121646237559102586547006866619173509359479294145040384931615762399860318684895487207757359800474398086685426303946879915983935909517506638452198342993964230057802859305105621998761601288994734733993593661359234466365593500051329645588198410952978919660712960207590896241668273549622447323028650146374029467664201479773539748407662543161689950271672173601263470893760310487698751653316022515606855155278971401272128755055259174978675498360244441670361469235943276616174619150483319533561377123479872342672127365586080091505607561461426319962819279043192154828290671719994408010670982853990701485894379326683145173740856628948161275269226967289153711953355836816304157546498924158483711297579057976422733447237461805613320843617876259688404171812582252346340234839043301607544174602616821643886221813888218355193954937655854177662612176331485836003310467865970352416867672796682757602408037166241609333928010518140163925878509443651512652739420243680593805696751995343079154034186777158579724326136391643152937774424857577921317087343674899912118329132036280911059725589435802583644807120122638062428167041852946918037528092745109065669302931253797865432486812757129543217889592207412660904701162678188239666511195856984899953045312545786176578774482424053227656849456185612549710794184816077489090251059897783427378428324241256042106174356089739968043539144081465729125357389959946759827398801561077397406374060142980352842653765365422260870292283507477178273501066318471250499570470712701802454094947508113548998370331076356857851425571380917452931384561092772938305479187943023608367813155003524438876010956442124215312868795399826365463271301468557786416682937909396455328178620763402987798758264998229116278220592945083215915669219230891731521884882531137608925668927415024214613002919367837132503538347308327060575815370553963573568343421148957521093769200011269525595120679783979400414441626024795718848887825143421363113692864352528134824118574296836287155824391004510179809887135023154104386559767781854250332593485491751306322433332973233289849025739035559048282479405478477930799470079545217469174114488944012561365516929840732244624161805164604198994008630598498634036950083132823953728578377534024166753004006395928160605039751254546016301647605940018576249801124317762611509837255801783173854629468404586801224666836101410979720061999484639307935871107600073197528570339727729467356428981627265539833380152206249185048507634496242782155074932970846898804793201185080645065992756316643629576459956783892804615651015688797075940858213096402793576339651320921402044405618513132955694138374521483136162972038794564014444718751694766465871075587446675766815787421992566466875742802790984811592303948536872357087196332463272962822239499464057744323951681815802060489615305649833264518781481127080106090177599440425619759364526209605177702869435801463157835579206972195113726712610557869627620726953985289502985462508552507740552813805963869968736693702797840655473998192548342111930100124712994495797544277372315152039474417982761827664409429756443231713091475074367335226516562742383084690038700147345286775177568343971168415507346415656598313909916804115958365907394433173093320261376081681972603153680453107219502804771749879801966921640953632813870118767416817723424461272052525184899610812153831309877765754585786858274603808250804175725635829316795683541070166705224502267776167382667929816337051140651717218524486843386594083939374282419362008542022517067445022200351653092031095600634799881032285430687573162219012379794455784396355557811111558094911683490937096758307031952858000677240317588463625577758604787588712887785498940073262690134791404287872679263015985914546017261675809814230536384080363846970100593813354097063358384186909290797320988899612674109884219836511651342496122841596093128499853630597342384083077163761489423590805883219778915352390604981917462309137662757955778515702895556040369061087085697805250496104103132227265609787257103686109228773142191704914667825708762036222794889590589603513436473966809980930178832247793560826581461428491060830246756211255692828927723220638277069526489097931236028100074936324029197189656782168394613740896127844560946246787800307041781346201904077798331190062600483992202173326897809912346109460571037304816588330993413060904410106174589230380787554868045315679315768265860208202438498153826186320231926314129937390790861252896214412898370407746999638987438002819677926325958415975088169536480575875254896624645912053548625114873078273569518002482655507391326690910190577166771496267296001448893496848377519878771855465176442385892372605622586882355293121971538506006729212184079018740953766604247729900515379216601066273316042574873186115134193409393671159573134063372686565265541585889111013659589634232327359837930805422246330849208599247527345391009927685393143581315305231775156454379075371237564616701894157049896652341504308704616323829303686860283889332642214512953998566983003718776815712176166496122126356399809413593518290230878470350846842069271095736197008805559261800781451259664664139430995686808407025028296035224444933303174268390381052071298353119831287832891286398510885389850971792724983837433407173364274876338742568306596822512751769896832379507200292371348881615098903043979493605469302765458356884645888298465976558311787390002878993541582463518894879689395059673152435989921682261906164100261003117876986040168412984399059581014359120372026544588427063430607420038047158082058719619552719550678573657027413615946139634565933952517621752694235656065583623777910414841130587726034738641372718759266565896183226491764510930007530081360162091367709570757613435780388318021953538100346738427088837026859318142413848067814837408865578364750152607511878074587771770976810969027697325899715978633545800922247702882508688776441670194148435238085124869258892916307954446003895413865606774628527600271956277978591189386758869545550752745986390091606286944892782735824866335231496997421041807032848425906508993887060962730598364245984333999773254829705054934000660343845111262594171290248397537952241114828324758927090329197821003783457143968284623702957953607886774273336714734801440817224327523710146677062367732185453015614338969320299681721248380567618783838356450194532515756984708429876638712725861208752727688708129131177199648513158472258294520460206793595289931978041583299997248761817416693642294267187389968809771515023457592591893594773263417096440986263350590739338323470193351841444515599976178065743356561932311747044382690528752379355919379255932481848639328526118363915335767871658178561192583014321928540565842427480785410867840793232166762789754555750123153976484080345243442458927998944074184356101411373791868622389266299491360283394363850689917376757763831294634123752583959827737285139164826256334147981616346106021436208928423173701156860773056680204707485271388342844102856818555237497774601568411833115739533508422034356089950771688085986899511019312543763813168624932741044581810592852674347863022722828015693086802397977883246555447640982826780644339153925291834681693252139989573724564136282113176013914795619486533524468814764586956653759474015175907578471594996566176209247628486079047632656596325138110328342147106434936843843170713891677200626365619964163153589427283803115042969191280156728989312307158194518498239101907266270708844299291322121645809184315727448742314558225460358996759742576846166685697422443761433281304268143723895373649653884121198319066171565456137867386445504644681640806474422832140273903873847382195095801041290675795568117459072220125392002416305694954325596488550600232410352895262494955173993773914558190159798254482993950868827751823799090148628867352175305182332931950663458032685830970933833105141651532438185408906267732608082192187554737012912714603079600830963562285610651031219955800355056457066520260596655845674171619597074303876853373941127047803278775078577922795475970507732331278582704910433933562002393473277904395337855887813114143469567815011986491061963999502612483586914507882698585718058088935347854974331673353742349192585909420941309101773612792370687403551753920895902226388695498394661097849962091514197778420101188684952382741383169313897113081020955948074019756704955658927600655809074984168988488036573310820456334623903273720537125990531423246934265307745167738878864455971078753757140431211523369753747479322096705465753803453001433899402323088163957515903129093941532249965749785999883680108965758759411513409282880895034259376309177693202038731932222508209319947905669807309953685620907554994978055284502807108980489266262900568472692415450321667065630926135825230601325639182890058572612385455956895577192316210805672168760666410251077473666331945171587590087276323071024126029692696018581419903118544917118746864577813398052297667424198784313285973780115864426699584776509021697533453478375368593527056794234655323730809946602523236047890141623860454482220917465949997648619671739726041394514508061713115619702615063336825231826956381038806914114972133502571366235924570442678929452618475786475901574645155290046249108397415512227563222739844597478735925653551147263484579130854166298843343634907913959427485254869376550030023216512472153094548734093086076866427665646157284452600348409879100361419568563549978732354053029114752907620704473980630057649704090866823471242538256167817682387210447534254406373976962935128451800262167539809176314232052645406116375645560289185605424104150922855809198173694680267387473954138701781144899779191509955926184492694245933674221669113111461967159414851414654035290390942135553818256512838290621717238598419161893160569524379461274753841332486942765647084481381795179566386674168654477682989368024433485812072584046700966706084434197727365649950019556193733362178008041664014273303953678476603122740503715529737082878780968328808328091764330503613236081041022807409037438618167349580295796008601695815396686974601074053344899108457988662270857030608254641593787313195812498489717697255010643224244860980195370300412961214055142337265977478682481940074024794562311457263121360008164294866113717272464372555074590830912830999675918785196440341764579830900589141311419722249336030771790947759322468819170343494325571963871058967912499077634227271356360840911676449477438808307134109425840952392401544436788661590503161618458347008794425708678820151203570181501607992993156704783003988181192015708027929819434278497731149023954363087328601411828932551989970599225869847427310673047564758950863750670030630400446311211401769373489458661011123616796350488776120613176062943307281066032607828274358306061228086508724015711772782649270520574137398395084903811129791762552846984674575389540558499671809064860550205288147019852881565529088456301750149613600945035987412504078022714513218401285977865134298222335995731493918074938379671927352584565344473787776571504613469679119310870273803634978972311479692147246595434651924227248073677782923181858602250530027309592849102734955953166849951694288612082539292533690229634806524765283886784293780443927565119301178851970260036073509838158838289267758864280384547218141383025042775685345804108192275622505712928965589537052393483601252517743685717873566682380951235990998449056265947314953200656309494807007644874801870793652256630540843929979666623342879242337598123234495714110541506337628387916699608134648944309495485811391353328575153076119609864063822272228549933873045330257801009026212881260334234493155092103722877299687922839161592346263920612229065148238972818177891850948893284908521381382900944076975122180465593385401532216250057649375849489107230290310197820208427603337036485772588104733790551868399845466459037964420370807077396443927536388925796920490768575780405151663777854590173421742434504386440686833084371158022274132130010504211824362948057665428834615659547024581257303598142096380985628660441769366650661363301288109371670738401236050460505798028471060629627486509711674343772913020677425382147103657055335675877620002295652991565443287066018379608749352080180967383734983635213341164024635089068220001078513392366181201218268011721828279839447407369119703495341467731007641059170739929845091457170384722046097119113348708350578563512745338898764017655323545560163844828910197860953782170953028423424808466357255265335593516735900676469197984731368406939291586440586721503684296323221999253040727715428862326080774301605436714103094222857033607145023041146151266102266619497899448453229555618300295685589776996751740337961030929016308500884753542661073589942316673383819999128443712110454689301144967204962127074651531752888735312138299244684084857209052034798410177736680790437075580956359588781011732540871681177927091998764805801442770384452618612543202337956836946960230118619288017801653886794450975573977776654082880392444884143591068576268606288185944348208090292499848871559198255532219488001574074693749916532953905692876363489143847342508199862986510531860538456732764811803763901997687049050512897643523657120820354500971605785395131371356318200149593391570685088573141631967144942381743402597526987649043670234844400148218545095751583527581730812277335969302625528214658944625121873112270304562614753680225357625318024519881275154568093476243676022179578335539716818612204763715936029766588843693446324778300688426674949752095484965130047303686235978471439825972623372458316662899181516735760320177496333907879623099083189101294688605612812231951351029350896016637928060016142564659711557225537124017271874995125760999987172040092453819138352874414776897645588698224783911682483381222420944560497590856552890158321512586726737322486632302783298554743497694254898218197385729230838348067105526654445490115659056122490508814216169576433024543254478210358474744908794725378599242783769947222688150935868314369268851208184789875414260100306126312250829492736404439344765637364369458983108621701542999274604141028359039836700708552998071664122507089057826454888695157297914404069169846495351566248121136950368736171909211410910080597523802260299422391520188999544359283760655446301655519064413264911532868506548242449670963761821581822615570688062255754453121045552913122311472173004995955603420776821805017932388302208496361441533402737380852413660565918858496729537876584592994310297164785758043161778005405534715845186208021969733667166811471167918192162398571797714557780845750803390105697819244556086512875338129576493141899417527389697916799102815923385166946116043262436691005457184657082269074622606761187460168545428248654789888732429301990319163980967623974011084677689765063142926077472445710599029831397225260092911094454239414726742074595912883006669521341636199349341808767798047955004092795387213790332099278087849169237477819986381533741594983983773413564527235322992114270121386378684597360079522559555286721472771616322770223656964477010525155625094287829013177289253842459286916059446358679110428742872012326473168196950145592551010058423092954180497883039548703033160178252639694657436101068591949152628113841354085112731353068316245060714849633837903433634232226088891311990432358377029723236343828355480043592682880757300454782101089247867566885862665322917982351154681196347611367877565533539914221395273712284263403592712961095071745608069624208849782672911814568986966617910646786758741799421258785889765628416414578977117018747861503962222383617847490788668213753854651638420976344069274782909907306302214275361549765865393556259268457536434638453633917237726088425026257989155324302649787668160529413802763481705724797572005987732679588226394960341298636063276379382928523054718136576003595078474471530713921308395361164459155300985526075456851277883186473964179764042990505995874639372795017114591313703619137410279236371038038052838771141879981851388235464871608431066539545376254577554891102938157477498226453651125564600126417340826073568455765426053645002886095265196484229429422514706438407105596631265601890903898239132850975215589091534687906875244509479664323269137839741292682232804533576356023525274922218208727993070699642496790584243247699273604204139859637831766183449356981123926680692615632910616344143343587821744293069234084998676518563076800052105228065187042535145389664766224585480863431789047191412758591989057903054348245649735393510589819623096739732175092556337859473266017153989768638921636859318066755040704318104166143340008728758672598554962455725672535836130459151898040022517657905838636751631448098553993627230800762747672781423373555515629674181828516297926666238776561477407317093199713242226208733458644314249508629506034304235598084269511985499597112139632205159286536867089077476395273722047472247274536285643249971307943281177671814475257617410971267202759232935243242967165154301692151387919785033574272918065781185575525778035994779037642023796292960028516654209734779414205243443317618393092131913856878585946143758727653131251242111890313439111261707936051656349933479110224216671154165304186170364789097063340383141377214114400781790768500782158431846883925053966343268204792266154455026101878466503580808238182393922400382533572927756787401675702802134817356687434070584484425227828246882684094396376793282732211551463162514207969533028813542546427734582274797231528034101533504998593680961590822899461691029425852335000852273688011210721763024734598381081830595686929051682242932223743789890084665254492699545333953870929864781604063946669701007801770309232825038285860263351130196660738484887668023281288731867899031224595035958567216721202590610197311141019272691541226081365741163503558966025701856437364847805432198001683294179972188309915341649822936607203471850149698308933716007486275932344586853187614697395940849614691042263936023568752863772486108809034349322818179334335196743759488505456991450318342585172594303086568107738142224787803057528298358202625901196344368042484738443142234755031016813593941705063212625773657437425365870361180715199048332335830760154532599871109212954786818697267304719551052924551094017292958201154902233022050930957826533031097403245743645602150174580837459314428395535131273294049266726566529216993493266474333573139266958440211403377160827886758233768089019102299862600543266758286907198052553441530139047901742286736217190477256479574875339573767931174198710612792792187240320792561834035705324704536436488258444518567594199228646542522503962435962865754108699084358959058344538821492317154791145406458650109827336830085726129401830491313617502081701688744780728511519126295569548974692168719139905676551402486903824109938022045880865584034690910402593417828934468480167234177410383012415866334386071847750152755772757023693882123123215333276977903801009497887150377002216186559716878122253367520519861957495906542185652386176804691317043849228244013851229241697281547910456189830880466013534521262350813150687465205918059527556948708042515780096358932356779381427080826622915389622604181137678190355043164134650554393888675882430476003879011869503790866610846428120559728244077964886513019443413886010350352727660954264953423409582383248099035878709350494258604181051724427576214118099799307751517020922526069104109078997501324040251001291004201913565425385496204827109894101594834407378099209553824744672352281881414346518353858371725510540861944083019812764156649234162266503533346672540562480459621082293984192133603325489885987547576050935996252634403897718986501390594147020846193147019580681623641993256923646429337188759946574532927230148556315775414368065875540366994342062450896483834581050203874813882344219759785119489750326165801772282141805231213889639500059578692583172263849577527128689637079248958034838778137929847337897177684196877952244744011466368077043787128786757964374146699198009171433546344189017969908196294047591976215830750170979822313094451669733481478016976849713093484794749088757677032487238098265762088379721343175532388247208035970005678207192836589846809991536484040897916454739405018171203594748709317788515050753111196991500192807782477732548148659961731630940988499758581784244793751197681159678042398587318400098951540783561830619245814581084765604725451190245271722931839187804930154060773863320885506970641667966235505208149429539808731283188105435939597905323767629542769239413478477863424750056795102190026083027339136395446972309171052247238846969340706931804870846459607049499556671409146846332215294514481632120267869138834573480203247548710252015477954372709077502434609561128187022287240650990349181934153877609281870599764201044033954574986029267882783203425241651388738536540668062780253199371347839246793889989621510829962210599249573659169765253063265182430055259910602738107334142424225084676190484638999119031511293191671415522900541861824125136109776033325928991016833303310613378429238313727374427886555371580332965692271718576830788391505394031793042533669401364642392614609890193029196303161815172569649602902970979186225424035424005427067217724380174034323782952305411663587314319569079282073514346622068638795833120099661599803178936891730824251971611476990882240936168296171869666611202624185893507758003360332691083572304236045913554409612028009781471825357736268593320090187722848251983851089120138031597479951128066500108234671134319516913637845942820589307399542756173359199611616066715420927293482432110939107239758424191317503256511371976412279980058924740428818071298590825973437302934645853112097100162145371454330122112912443273114076675338798771567314437556971515282870067743060297167589561480401848082893295337115101698012539748286246199297893314336153624947031954315801314061066705919049215002774163776740625934074110035515568585542974264471447868361218329472623011270938693641205537975596991018134115593185779046296904138596856444347573455881564940565634181894450912210658517864452934514740039260534975242673790061349700799629819384560746524097351147677612171451383337803183630880091305667181174298853744262055160654300929092218736175922570670902055033619387836554095835873179953064199259023343733760230261616346127107860523663047326909225220972249208523685884796048753710503606127303675901462263101192762295590875513219693272703474905036116373365465581525604266148254763451887300376765606448339392754087672604613369689969278274293456492371719362861345400445222492018900717949387630982013762165118997933523001809797857400160708277676998780574022744452675156760359236793798608098920714450193345543652034317568520029562945094488349339951797213950003983642220973382193200868732341136768180096764786802082140022828780227840127041435240028216628590411888622502711915391112688294061858994945988789555178356771926666757981726045064746244302876093284474846911663208129976551817090592085871708079375669237896639268277119192624295605410824679315343834335376699478621471465233493117591210058245410629862876478708563126906947836104729146381760918488935560274491038239992699237042176424269441470236705984634386118566031985518330752404532953715139665200167728017286462141243894118130119706351676810990239615001973412204018449358334871683012261629779390416085803096454425545487200709510049705282304013646643912104690048279366960372574356887031912137832788726269520859345057981489866745601413348350854108385270804349847412462283915509845133399654439330935548594599593215818158495512616774106370340764120159424596868520816334761684210903721016586796695052570428387708602133826225551338605205395683554099284383211153086578785353733981785784904753456266278401005523903302617286390133536604338024117993388815508368845692487304706986813021702834104184643901320441067704128313506141307256885434253103557331539661372158127422622162327701961253208821238952299395676897298259796134424745288369079791574193245227555258902604028872561216495614859072571260055058051574425278727576346631416776654727439025349924111174367122404173595496244424100524856596709667328295276806367894352038159704091301778253403224415546706003542016366148699423542416045100653817522336977489906984231526916319047231634060228873473492072764099503192708188843913223298584073100905290735276762256573506330627170630432198543151424430342543709493117398947774712423038127788988045252329875528288078960697102994085556475031208376836705285758486083287344400014649841858267117442106250752497893793055486513210131304021372395898009918547590952994424752302210556284648736111858669759929198933211114803451649637157037836198955860766366895787460652455068750405399835972262947745639955278130081125379626951213124973026934624327330666019468796135518572431761672033283233645794883493634566439473875504951968685466383698640721130369082322941229080676680520655719211038466842510635779209840832289182723348809855600718821629707828144251592012090092839675273268584272534585161946188899774297580640872060074862773540911053553653154021899506958676340193461448319677581805492814386715475050221847786805757163107957600498051009440464849106884106199623018379847921922710401053787390194679176845340215417229474891710914155788283847179013269906890189658089495554968791499651289426818301940995933183342324652262527738899194640333074485779382046052971837611051248175567115927290290602405285061344292058291087292070992761369385110108411260228328945032140650219081416465502279100321468328374810124318153535863799379131855008562218563544542958028584856683606352396538190906166850665200855286474604734264868293497156479257418163505271897824089180878766418163870505940235136030499273701073435560427421315818606902528047998349506258182274552894066586284189204448948881210149460958989291211415831554077626843068450501712867206606413977725241054946144548631068294672680900971587175522535389199684872118237224705628662712219028911549619881477514820783603673906415660617699372142901919365591021736133508627681296420546004538480601728480628294846761603406507132652063351363233334508883351070501138391511343306920503257690380575993341102127385729763492397772803626043540719357357688225475828540487459794614042277305971950584144218681725768046373733635719212989341152844172442211898882534261735694635661560068321577721522447298871242100608440942115090088627665722291092194771709322733779970617092596888866859997171576210736849474391128002834419366053710940712598417866487371421451446863281578765937887928886333581487559017582541088200814276864714837224057753778958716342564345141881255781285600336070483128091474936253172918380577736924086979544603066299039729210303699262992200840697707154722257407311618371257245414753444026801291565145010901663370149061697233536723024929399209441879022359294064722888751967067361126189037398905784333380905123074486498422097926254484486287544468923722398566737731740502603440787596406319194123043181551846358252677428015341816865512313635865354430230900845665513142554539064963432477501336847983177271127894949542127095704749863918081674152532105979560347968793536902456166113497666643478072121943312447815335773824829497147412215664657650285898868918601844735670500004343104815905315101934219008912406793772131946541663805717394686474626251537531242465352079764036280223778577331814721163546939571124571316820287683587678111081409023933023684961695773775447446901100889652708942731681933660025577663948291886924258843864735386023652905426229155138749539154080171358511594093868866107246607138096363653253491929162758572286973637601093789778382521594344897718619825348974533600908862733706612852242567990384354068652794619089906969530604669358162065572357641848118415533833247272765821838647760017834087660058925774962025859344797078548996332696874784951041005333164046616214429689186568148930079773576277481300206422008834362724202617850781912540364573340148659172824677235810373415387881652539202979147707444830670934525365031269133735861280488665360408732080550707004720068470841163489441950244712442238698418392551942936079620819493853839090786673614262136900995475286690616616549271827173476471137365025372646312095611048101389658129124372903838138226049945527117404730631581207935712380110943594790822298357613443013338936041433002338752950180966399368477114123981673298353657529771367350671200701668425732882515182574775133657367910925036226594599181983092800973622631280549844050567220021628776395677032186848909727067393281724755855272483966256974089805238021737091394472592206092941597438157021976263745754625359944936229994140369796738310754284334205136834381106015241945006438483819118349897198676428160608034187259447808030600960519435320249157940753291240074291802103037466235101825155251579413906546638249054387983843353917573323308190610091361507554110290845256853381091000450580103197601208076111513411989862903173713124974830541539286124863756506160896428577285744931738918563459140698011821375097150057862887989034032766306424050168789701333099973473020781252036283462921699876270527092289289134273642227851580598888772196297214729336696081155153478561138081406763489700626676500931854372654126485045714312065420327445672521623986189812651818475841682925732475824732737655170182263647618516274055257149350747294084137300012106107702883752095601390171380041532411498655383433761269586885024194013237817616390852426767182714639370619041212801886867705795236226009328938754593922653351560937118687460104382719300162036211890969984556563402398361238159624786601581836442783858440768743951825262094251641233788149364326033405077678028466053372454431390235269400694703310219418029524973614104349535350033984977263060228275606539027768322502300113967050751741459546636873676481007007784840281671004305629934183645116920569476670810219837033164163150177873101942955387594445322273458806780851539210118628961800765206045460757918602398643987603713447827163417179061166836441996026714199471969195116717343251318092316241558857150879602301978434209399787386758310192414258785938870426193313249107859794048083376694150670025162300046886064666982626328241897032544627792756727058939581912551666912476719271993122827747824654214660213917744754807322511665393225522464518522138671024048360431851139281931048571134648044166793524337697898020643881188539468136657728190495578206757251694090095365756919120780362566791678508058697570540534682119441165504260920738816099607670492495394345502679552340677776438080451751448473891881138276067659554666298793628765132391108419660910013330943374230330693476780819903177504577432072037603564668871435075320295014353111276330177220712732320112656818962625730630778883434693656508165492353656629544288173999473743228373736962246590681946541960941839368334326736067254364298963425447622609753453487095663176070887004130562077003729063830453316689289007988482043779122820600179799594648211106872972465626916292083353696667900045980757224037975881726386024021298622071761804829833829440482618090317827489814467525866417560664788232719664292859733326963221808463682804179236826258299415335255266368377758879469731237526750173467596004884695664364947114198435821190436300464116691099458308351950218580838883211181968815293849488572076956297786637108650323376371885933161963593892773436097505115281953927218367014882902616038755477268963859882898718807300627433803954847120132487422381202041346222523953414625555794361604110570872780993170647052347678048480871321952274537232133122319603804303790466681678367539648271634113811713177837805090208744517225471975374137689863251613021437945022926187758649848226447079139837857587419362381328493989814863288147908687705701907927813319471250713641175317751025692231681565763075183010848388027376622376146743991202702529424084867334789405254748437453769119035583311826229676151601349160781310358060678200065732031665186029622802446501589177977829400155212990872180916358211393593354542357866629810170549051736663985483637654859120480211814269887516234114184449373635853418119884671701171072461919901906095079115705980858519685932569965233520975177580436107914144357352199971033232892880543066940254174192269968688935866942056264061420389650987075845806092298381432757599192938649107264849623667084218657308832676463353573978976497960485297524747969548853729099563733875778270963282719575285212369593615810094607629518634051984623638519232074937021212962710601648271421626787479645166941789432223742611367734931593907688336384353252036858945245951420245767911774061503329861501398910222276895859889477565086583718921866909304904795839142632038814993395610395808915533760909375299301993048037528759663621013310252480019268361304006552761788699344702159852051107388665692697196756810347432078932989518588153626335954653582744480614161071750315384811252921715393110310764429183270032608624255945767557477989097193638725257677376688434442599491206761657961141548251566141790904569491092558067930299575621034869834076548855793175406514885221177208017360546029272057802892778109458331998746552085341620393933092857021933025704679515254826915240709260442442948704253475308001835813896795591510541990085092708856834392159329616950362470062715850005596113928574973942908557225522788911553497124261872662266815722249933125515502669928316935179120770116365106657438278928743081976404586640472376880130815268071831317000269250555894481704106643921579638241548860258656788549336912557132296331794683978509325671388548958844621264036833349024993863942408942406694044152949222615481904647179521706442848180444571297489192424249908308409646157515245391658685879691668484017575295818654413436526820045443435694297801924927782405767607353722935769491805036219572439846049771919008207337874302869917594822400222932007144850964421592797719914819800954386512628987259336088808915197735081904147763305795284601335598983556276509519257804773736556492316591055512338797772200778902208861656880181988323041147808621843161104409435142485708037405784694613398315764023191945400114844140954273487805915835214109697985048524046758145399181141553279789013903838728237156071161209081095775268036555172750253958798331736971436964481605364306609547627601217749463887420192878632432101371740415776282742626039069722188038300186630498110193735359715487648053545895571743847602252442081473905502419005929999726984365060957677906246289266453668275394363706524635973525008715097375101099268256259328548332082952680537163644273089109140339364228441341187028479384436481745796889586310981693325014088996347847831693173563483486404405892304080040210220334905647999705173048011165790051118568846455858282527377781585918122432041650871748257304025923314284566857529497887643938305664723804665862606438084801234777673699975662090011325198750097018673915113998442645440191646690799222799387095980361063212825973259937045379465053164968134502035194805649753559791477345522994290909155415710666521186249917635188511061599079902506090548623763615519361129088024346107636357160451204634193539598504886334327152508939030857356282681478996940085101282001308080505989156474578587824107576765211832149130413153226119842884681020281740662329897626785992706534600801791911866442012845562799161800118202889752788288380442244449212394993806538835596706290117633916331864405796875315699504213511730591212171887478512667989086998770623128735266264825401529106463334976802154606670748489783196511655365510596960097134948685541578689154711679433044190342775209633339137533488417178886690373222342164843417642196817922860855801793357776645619106975030138441521576281297587672433758116979540205220135057559862872124729141087003796302418487742043156400721204912724353422621750717374692331031149750210094013130512081175774730927978946986729866884393007186043951537129738887320016052562769506703826684014403502150302886033866569037293746325042263369009703476800421551995712263843275586528836472157263609390247048404355284196232580123294784183774146286135564727671462097706302607664658248018806944386731399056111755862626042229715443285802640339485763490269386315870222648975170126917529099821366222340300284989316564869518426950909982114060708763790306073762575869604146801569539775383318908982323601909556288378638138143969642813732757064600866429365859037545758559449843322372269465471040532859324644188662346236426351359003764923152000880265696057674314620890831092832257453146277336096177567392750378936368629451664496954693373195303384563508819268324491285305430152365579484639111912816801964890848194881957725383974887271004449862417720320018491531903574345826984415737624693152035585142402486200094812530924648130938860969212338195794473195647218130486360799424974508784005573782719660975457814553537369405767028551187650088019208808426557233573028831410411335195374723186851119484191138145845743137646289953030589139209707426386410646263234568035149586661281735448688883974724870032537106777747332400161833869977410397066361880460151676915158230804863745942152289332982719750193437818197266018532418322093890172588584226857704351539698045570549634845878644930866707343228851978733718835738849235959063897965634235455718755619744686344588158992217139195420469208289963438405755607546643443153209724110454450095216052279904585046579549783859827280703679511490522422299385164357461222702068285805561793664188121263900419032039706435840600788283964795787395565106097308932252429796803710718133039665954473515746845685317202611043049482006115578879718635968531368382805864020734843899833183587522494557972562756900713897846912983064372659847877134251789421388153143727535647959287031842699868689023433381780438453514984099937359459832317681035719250388886071549036206962089271351621858686069505538020671310792731035722487933818464776663107083958835718549738628669020464682833499316240448998091841123103235092071964889536066453281000410071973740810811218695842858143890966182575563579108751339876192204552650573604661183796899491644867918858856966599655681198642903289707629208272067786243308139006119287536780633580294736486305673717460111973682502482807640116588909549703097407483289163329321111353444945511395321952549280582696597575315695533269876665529057089638573460724591346249787848105513175980639360091175011808502117630815908302055728040094433543219635535427948106303113390396944617172972053012225660307410973131394562033316334962375629865273726851033044079883408642169125350707592377588572262825350128466961579666240699649089050190507526007441854568169631138232166271451181053182956772129297859915062149643359649385174033816092350487058034163836832378914013593848694200797085806670577333213747633382689949027302440175068077122300293378840327901954395415758400835809898810929128067450221799574935693781030385975269209489639333820103912442305547693718436489444295162298585457011700896773504013738549291428819257997731998974827752643222643261097917491163826424631893189974186386757815312699670728243816082886099793560700619081664044994593594443358368256828537413212075679233917577379061788672030389687555774524054960428981118322662054678184780679670964878118148157756811735559494495572374268388657567931270214656901772934311996837666787755033857013075148325743805898938595637369749373052910750735792273393014742060076560508029392790024207268627153952314677749760587788223103398275464874185743136290416697580822602167948308005676688457736866879094334755141530140015411067459248605456342403669005218525353878474055967264771278534196428082750582561186241563922219529148802457732352116217694986287779112307700224299518109453559012755891056708124383520480559877341154951801348884151929555273629381729472605442898149465045573227442739366578537799401906849027779826715799393811128410647897142701140645491105138745966174334889564495495234764937130674817246153400482936697562178286917416402762036602113687267372254335665343710664153570738081603320015145630727594035478057445324436179026003100925983275567438783894874003480716446643044036534562562838090406498689369229454611788606117663013475529408495994644745673064296874528644915526662651398863200413408496779995602127536299636941785310582822427407669445690686003590007984680633864234377528642747091755868177378416993056746586592413436870346171906224116088317549000910746309007447006172806707089715379988138603520720377053304066811791366583606098252891190607950016829810823618432683648459756568151148595876216015192556090610990463100534831537189996939938758786336521371939220230217835008431204697229336520945000989304672211458998423777949221508224016013919202392408372419444391592050344048156113166793556010157569816052554552320950776873665016738201059503460222574199109978962980624157481115064183840696294122052592696412165367306736976180509351085269605752986041447710195336106916640075557600441238757372725219075079880919810799952576007794569162104016962258925726273044003557767927815629879100776887797139706791437765431895135054555635979137605008193933874292148351988293800875883028693378246299134142699978764322324972420116465281828231630575411616280789276221288110653763720838016840868111711403696325964405890380454690993272011637813149961666224062483308163978975729746823720670209638304295592242094311833057938650746077091022976791132294901635017793651635025994944459519504821027885467953484665906787354945831275619900857877968129997404759727209851199672689518809662359929820241288354538306511660471307626736151164719535961443893283922824721808810969093738577141337194098411892648463142525962871920259694085001741151698332460879685905176815194822836840354868158141629566546711965843680459437439870916843553030817946876508642498756992094605382910918077650532313801316817833150264753864292651061161069054297574504621968335196157059214500627097397437687712065119403763879239724766493599004032845997152980510079014473352586848633577655390819461461050432851772720137245565145900278002957925450564310187676982715693141090882137733181081346701734220354693032900266790031080310786773760170025115406164976882383204973993619903274869523198617819551920489743514451964272362412784350345266435770769257908208568909321536560392734844202674103764641359353525389094495692571720207646536059494096835494931010425618941149169935572431806421834966039406609245909407727732009432887648437985713998605114739408118300401639134345663382906073427564081803173563747616436533910992064295758972328109628291211138989951042307724369241067181896370363939919348645262674031053749100014820378793883190493291275818314379363784062707617124193706924253730617779834799428532226245266489464684511042967512664340698355899943881174491773093229449860309774380972646176583139888815832830657245808974880560825370184211778399946597552462508014442544998050869612634235573060497808203530687861242128471173557182460973643746103602755702821095247269223747979292093235270448655671123579227464478640448188673108418239370564548600704556209776212977761355009082186559588782979856906281472100240916198319503314433660686443053809542973585149941911724410432226048423208003058009870380442310241886834165439219194152497879702098776121879131018543802538622624865166936842863730823722322401198264807945405506084258812522369190478700644017799412603643415564590778197091677108485364698300651378919496768460356868703421173177565396695449050645471162273098026947407726312643315907581978356262162648320629196859796333214666268569577610210099940888558337229414485379407838389571518292991864085654618680881748183996799605844723796236863614756079782656787669169076065036279692289825548224862554016627488898159230600754214258574033178296057879388192170031548980710847216159330629807567449160864531563356437851162887367377350550644958892209276029598355803795760468524645294291226605989692749337028999849305050188303864265515945053807751466233333945402357924691173777435949822529014999850441103695721704420657194684119843171415372095646336593556086237478734069100452665592587324875924329388553870681735491290934163349569346549617031914559253651634198310908414108228903637718953587307822603222625211245802736863287541951281182175148259562442545397936804241418094897420898218339685104569794924390802366077348383359105869966325680861858556764673762993662332669027639365478454717972498213348593602463182863578936424826943712776712089798021348798727935502692686232347660265153190040744048988854037429910157488215928821671004607513005634884625534112132729556992903012579702726395730845589818445918621486425107122762405178933261419093654553429163188579808715857401807307832359105176952489512685533275015929442665471332132003874987360661290871891393029363170992056644998545703572748473259905730443654073166866388349657377409968037326074265128022115057020339211827088963028973430108864002713109476988333745351333640789316740869391482726623053471399595018570157229938047489729160150056338145810563455130876824433956751837931649522189151313023606624201917661258953754250715295483546620049540245571605578114249216224285787156166032592100269293005816371274977118860919519322201644036357959613176500902141293473675924419533898417379851590179961087574117861839356538557588271724836886422814985957525580953475558819741534059338785413239631430864992019460748700555265482151008788308835039620147985603344810669144696577467252219476580725804146281438476178994826022168160456535888640735326312380432231926868013678823223828209664174846247458328363859507314427813072240890186346983759642537084790160666754332927528386784935120810687804688656984147931219000880971172066615931300523595287072145403655810623988136906727785581149463361009887592547543314518765673128039070748400612150216187324647033975278450439576209732271155646545409597093757984398303287352821712307026769967760278353517620970577563316145899868776288646913480535135494307657870649049142752420095829576330784413906938048491351265693875458361428896327043451610258484404318977425474983777343733030515734519401315411623594799726417906568514485784311021216555281919720480876596635245804657504409938913332001334939976835241258488890134094955133869514851222126155304496611612085579151451838435067039532548013432982045674454176381003976367058151253654577721565803435407461974384397778868013967583571787400728868520762334686216613513697633919339879257888402579419688266843174794384819843543285784733949608599070760050322934756467895667740021005749692610521341738970950952245285309358745750977386455732356330682226339061832128016756784134485716478567431836460843796891060478464465411568280723360885362207361153976324244088356879537368404580515458349564401001507041052651933243145317629946602230200335214537919294290975935456386761587923032364404890499353146407245272065658223061439809943958059124095815632422802779376434228781491878918452976039668917601394242520455004074600269766110987050184248575750134288296754853318166493321578574543120092254912475693536170935718187689707415975533849227618440502279055830436599907554482145983098113729856113543223231938663361167653194596195488797164057480159872384363980668332109761664133012029226280703004479022000349397834744274691998904205250258524536851115679305072960066776751223046838231054662041159512637963888975574221473580403317920382160641642616029001274700758027516772248158649628684875501573222251585994414059321263873356654426037588083864127761307923438890664402380466118302072358850510570260652157391440859693447376194740907507487480864118541694451434956148839057239006339238216285507627013902697639254032160663808429310789607725369507313051685706380810690764628332136921294572378387746775555908549836498782902679179602316269427809374661365030565057176168493101080872312122529967071724561771373309340413236678405737863943028457427442526620518965265954366473708649162417970250794957085680796366077370105604488950055073182189365196178407702408784430263147845708482337965879217461707475348091845786715771201959036366457931024695346514036540833525969216360134210817673152352307049376354487486725550059913564939511677089795070464293459340133038251556870953988208047555925276793400113155766784485193717658622860317398945178940177706644200013507167610557432425293633165357303144255267083663312148355336394506178828965056048137028767217843907537034776356296464896569820423621701356941475788385981788964134776184129803598190450815153907990799081655551976917018108719758744849108086687301261795964697696964235447937379014367122622557830569961443880861132018591628723075276154011144262998379466050438229693307946578389827243109886607447303999148382615083167669669217703374181788331773567949923984846600603316180239360835844010890525091439891821201674910644596449292002059034617366174679537253865811129487924719286715157232941476130079860603969417517852395603883177637911947158411590487618475422804548051464777480300834000340528720108900033487451611831439006524382846928278221392724958871638479308836828769061786585544282226567972262050216088621265914666633120023233277172846429046635645877757120443710689937622197567668910557255673446057008448456681860428925494088600972526978879210252615997970973092192813444390911047024182629539680848597993260343968594817138929528654770085444352566473767115379206098457378468826128538112419505207831084478579446810972491405940981525610475957046588064018113742441384040373625232420107655571399945148221795858782840503211622927649789792051585602263552886559310465410243296311095965666921500699923400966722516269173594184277262218562609796966432237263742179806728314509769917223196070746406678810344722336859093446027044683858712573524145563601753636679885291964153382225027501716972694121213465438300438408810863273710169262184414382790998806613337988403546693856188364886637840796030025134372028743866636104111062798099003088751485801479963059387829371930234989597131222891497408674487258440293617131622817755581352851968469828204839584616322576135724072373567341767212304936313808731435495335644860213806146588647391484262762592535438666226455272365063026794492099765988054696184365015214775827555315167802364506511549427358369948398529355651608314012848495108729263906445851419994280734701694009493642419180125831475028649355291357185162606231604121864762216874406189634844756150980188750729884679009257803206510430272722147362962553994595378398020915168204602125420102439652024643990272559046223109462669150426122663440760041150472263785756677214542250123666947305522852658050525824373879261617308537356559951480986931334683782359913942860655449406241027122360455422883369252010035409011133229315932620287647324339144398768093945063727044089207849262020595845122210723014868635107947793294683933283424672760341220444226801709928741088748390137167171160987991530640151696678330469413101884160758754883651998828264420798492174227596244022997374892477948271474558022242243785845953497045049306678909965207227218369301535076588642039990091100437950303682864691428616718891455549058212913402887139089770017127562076655973888281515106588983866323578131947845733754206541443370183540629550830555684573635078205326300579262257932526611642574533732295984764732020990079581083815217548775218669378174052361938659554117861056411475219187685217386850760605151838442215594294849323957645959438960860901589489694348735272200451596422060096342749169291577861934907560283868407803963255554826571742333808158617003727260587187083144506976873555206824627762528630134050787990266073061837807628164008597439703767467954450085963730338591790074024460789809936985496567586077971771988000456838051381871483176918185449260947090272083125637538457598659104082463414381656693059874785330014179582071095423904385555145795183725844014145811115505147823077212988646155385169035973798296501718106865495270587922724342449373711466251864895649576932847977933202179630313646298931388091333748572189808385748412446076276924282447547226776502478881586510338645251520185722114463428915631294501659007170117035218578729804431267484740738489714520610402782750909410452284448027854412224595635620107115629718484596663283022027115423407398597384667720105574812681285545776040797764806203584181776044130127682296459676084301820756265290378768345861822287108039259080267276284903065439937149377502667094787773488293629782507798190220652320877055900028705105570481946034001977165991898235056147796269274955938537202035373924375066034561545015490973506447764194358797824702847342649488529651331746401649699947114502122048834016334489396959749468496801529763160070043531183007905553439104500638978402283715241671745222401216876729577599808654831881650457666057854272213661604451280804083802666139967436069834914188341584672319180003868206570844438172805023755153371017769193008371075804640027905725118604793792204410443185757392878566902862432872818156860352001572271494553253918448903724722518645732472635101553070501531447728837007139256504565859476384357782697364928267949276364638011016989220350562866693740739390688297437274484369581874062957781921827760607828775455189694056925421436648262143119032556896395119563775349464914546150043304117748336230918089267493732946640949109096473949164946362315151023396992896218181348517329308581245176856332782003362566471697351733246165701670305610440893457361196521195461639766725489723760630832783585012170468947293916837762096723654165364210043054428019413868944989299966496369412133378718085042579659583634876346844282295815876884400964899592488827263702943974861925139493937212491726528395989692505229539594307668950376765044855108273084469711855316387746535782218833721372516313630941922135502978653837070376615113078871427016378725382045761198033219037754733852850856939638979386007517545386489150795366600837949620781022046079850511209021316658605057165754795247767668490088862114040753828335426531111913546938837535501367477967148236508143371868474075237498661279172990239985874288238718086951634901528944158403963712248070193900289800142793351773887233982621866092690330397620707301967533530616857662873048159027489288668230592405638494511121328682030003673008557768875824047358329732766457065794014262145796285935139277262392409829871403200712089100019091514531366678071679511646398676244706169012185592128558838584653879872686071832820140933103891317649412586118975162738747564234755917205930127995540155429400558424973804153733041658859752902546712269938912231435078566641638991221048450383582165996002805045072889880110802708129984577130223297437650969828718702549695017112637642471494686653059236370427797085906025084958556066093869184005811586430650741361883068845262989115830882223452152885524299999858567476648144051621697555425210108386269410174298709344848785069845550697304950135456987338251015518580683883717785021966616260519639725503208644614703406147743428622476378460283232094896187796634543706821759218511736718770462946815540520203542277750105274191743880348833134890753558169594071380687254340485753569022392587763789749584733123624260794683049126984492001236653081623172218018075665367586997339775872080197754079344525172209136419043037319288360393402546080267987562758354209634816471849297561038022255178071733454321594841889624519427515559780085638361166263338053709525775522826334752309155310594506572491110201128090292779859660721684511348470233923640125875058472494612280032134269714585511382772836179657254748952494394456883425815395864144538281410356803911353806173923109227113360625061227130328126800824042481530182624266524524473048717645463099201425731742053204371701141736665691602425226061862061307707276695450880040488110523477179779986323218005816168216794580779491591049330112996333301788240826392526151277853903587751492744333724908820602222089687607702827435493113778910797141575997493636556341491393630845298578248661377455482840983915591700272806071788270795098818806543352755315759853951001298237771472434248632622273201539319489712977937563613548465771326681630518212696777994040564015458113928430728557398933155679186544605634339171989713723777207736667996019578477559576049526437654352865136792011444996184693388220160177499984815934478625056890622015626035137878336584147616235361388834124606251625415022265745731110693669122911542636493942130075658673762725866963136082858429633653475153293729607055555647801890048273807081046532516924130793359977286634755660366634952896247536443455590374217928421287099404737513608527314834586298243332850024897994278776192528859362195323576067083092371285095426666748424224181529523905473585441053735232472123406459623217060057330751467295744323108730526372152559454913430583117339968536076313418705371113749745514543995957295741049396102407583317357773027681349402456144883889144453718232855570324347288523835778084832460010437323125186452877972124324965357124241863883517887550405908723936514949405442375377718572219996160216116928490910942283701449830401479489664249124880636277166330005944819283508298083698206968596038208673857987781482927045129888141336981040194564097768778303137622561704906310323105550224963028007837263030869123828061119903234683802820289827582059772392531134068569203312207789376117905759685426645800483452649611557612781082181843320147254546759884886875614090145863050259497438662709897790996770583529853416750676623468209503526685980719686781363846692028282633072749337392722065964471123625605922005656109446634091645794233681063033637551288981471153598385273830900740160486549952345498104530950188520431017850980579205154028257544747668419995664636503099666764429056167991153013334090879305823962005142985515239663306362276385435839984165963663616708750580300090243407893867623184267173585776449748703130956254954292983663283500500376837843764259225888311044544336014308330671192121018227118979513605836620928875147714013782178030726915524492724375936171835639473484813796671218971764050552080430375595601869568169902021256718676838058596145153700270601020060693138961070905984117561796621999452474335758022452784602529938941837677586729107327619150646659379628129920284369584550217001153791184862190650566685001484052338722207651937700552382835077824912159467979072925841808305022060385421796587765441509284014645996029136300504986953993288550435591199302459755955199648879431632702900069501724231503171562561975320638722779092318196657128159280029340385016481493912404353697740551189036620465459158798090615121145374629938961630267524835560732600635091269697854865764686442889804954359125928860163260384199814002606569080723160257853352156212694732595524228353651734736823767902637827083949049472720048388953448993782855017311700545892164009099890195457119829138339045040819822804319583483099217869148270539906632770164054259772589910323301038616875535033606571201864888235523774718561743905952204739943713042823778542085993216042696068027145552405798250131608196599148439084884118990804523273867317554760216742840868416129753609554083438363126267815105591666477547531766941570073983060710316985864290942466915551482147988455349623302719689840586316566595622924258726308217230090973920809002122826722696852960823202296453885176877577019643821999115444408348948033045256868738895799442474570923564116340827933443009389332013809152989795438401447546538968308558314944255298400403478927971870625697355945861177299124535936111358039585624514278341203679115853616253772295805513230359959527892573917422012958980486131956859427042863413226602827011422025117884636610616945924413909920210534071898773500442277056495958991348740301177458668939107831789105716788983203240605638286593867664556722292631830350273441095482478624971388618130723935786344019171442120954944732297036456378533445482584239772416439327871423141314033468094013712616326012095201772038305266407327507489556678343753177004936210950499057608469088793792219972092473051168248747156967240624859729480690359862389028368204693355763564626674629577618361574633292476262369122112375743547099856444948313389175629219359716930731611329805164541801505815692850445559884905078599542634101784380457022260007592712797520017986602907680703690639985102939977793454498537280265553723467019076329086203631736661116032285560874119079986770107335408993791468199437003915894006208087559960703486738442467056878885231685331635411617167201399252291409429252863751633152071201957279040355985887116350601329847368768578657626678946962410124002191252262716922484010931775174296797033615198205782514108455321292084396865002340644074704731506857644420835617498278808179756880721505245989785942432346876824499012736390670256036930794252217852705256883447341357557422643318425382637539466121138555107359637859936947623215536232419701296001574070250641933047434436336292568822076757318066911439902600196935414197925246351928544748633523597203867770753322557241626960579366447330151154930851211884695339671008806591004085448574330286916313012935616828892501745236796078305730243018527740287516136464325306710905571094512032343902822552135705498313639991644315336066889352461360660466021949324496771401653397014756096101108826783916535907244197915864789341171269564385353449147882523928482070675544994979022731002487026502660856204556239863577609932438496118500518038807373495518046327181319265535621175921389425016350491534187658792434944432786895478101045124953846664406423059851795589729650176507065428538108712389792923192847750985630945867493033872284709700024466130763318619113693946841837428681798451368200593162041100152560699952604512261138137170448341631922244543947451972038531006900338755863068024000140791915752528444748761567066237465131713374508631187032786809715774721765427757243346402942917150209084559466998205954323946269752938542401848577578735409397354053384677009462883346922632134454847487433293910583638293267382294544436795889451399452992994264976611863706935150547270887898641439394863262427112842671690704016810900404839159920879120045144307708236010011682346103002595294471682817313473605293835777810099521671130659608365311794922815573685968952844678366586972158951052503346304335557255158528757394503664730205536340498065328330691221567802734159032716957238439817842818687716353139333808224301626233307279146571813144018807317582788683436152232762258969142586451352450447004790045582248066579774438232445856818212422769713612962546406804110012725510985502254549512597184801332305560115323948592271274658824660242993282263089296724350099557180592367908939857754633209960078070215454413065081563900003728181431339479010570331140775095778181027906769088726866937383772093249762805044224265562633399851683459921915785239563572706582546541595277317786135944237126281340625962460625728246871543239231734780052603763799032487455694337455933461266427408069966666292602358689640168777490625107523733439743775051175587705076263576575438584540034564254825391970196593044340323561132001210508410309566429928003760653602070779499646861405883924836368192403207935210482042514560995085402408912699316673338788857436034514412626355786792091026028832400110486727280594129658602916786256096000760354978349791806850560162342989108256636343064240816878797635058664698114021061781666800490412939528675336512632325328360183640865348315697189340733561620720553019634188996230769503757853159204312073303623484981251621245501918286555285878939079542766660503483384538161970310054347493661407455723438418531175694047568762730373320793563035529621413472557134006569795221849670997439456687204249364431797363953708172839242545359910839610875974755412122097937351372882087907985319062257360359874014088066881196696309033650998413926520521288417976087230571675461556436416760516851627389301882131703963170588896953167327069415540089115254337473579934767270932308007837306218523970400646112007238023942713752814821130689971667557152303040561300299998735008829228241046840911701018486759874189838806374495512474806378249462016453503942500405535673058117469129807826699301748421573195756534503870482215694087430734609245742187978760097048231927094820468683794451850046164641932014158783246646003694764971848406249355369829014438004197493820784616563704840556138305528549774988997733970902739284412960425980809992730819468821546762102441284133404230920042215121215713164853781932941925429859827856913700059174134034721618827725659303301582702244369791685720555388863149664700624174431260549629970446129923741318931353743243131053400990521909658614710445069772843332591309423830844343442545417277247997509040479551730843941143167695286283958288308806865512389162410089338813437690074601810726927332189839137235385511533428101440195559948727060690467502292258197516748759500957312480503574124039407106064825097961068807308773228843184851104249570651151968849302334647700751759788935169827777868685936003735820289601114047998538688804817340852072323833227611465120180808922839732335717850395408146414397604656474609524322088012392248068738860717387567245667775283988582621319935529092971494005753755622397660379399371270129874689076776723878749947319372520568073111964900476172208786283006607924220768131282154070322931541449608763213897709096163944656393466004877623251782715020175799008502188977754309374833038546066221051197714331756668952474851439808842146019005423293346875258691326903104217971877393652159367914707691812101681601186702258213766055181863474171389869495399550601997765503363410772882906660595400014477311246408128970832635410954270890323390906591465629853738066432121982918904989445161648209258660200237797972681879776039317210278553321452737937429962213068543692820898288015669683305161618999267323144126441163329804399319453111424640865148101414648411059600650870111093201359485139029836344135388824545012727573654976830200151786279950484626181397866992377414095424300232648313788496994109671199597724446460295239833468863887508484422656304653603059283688981445867984885952660087812505654305691843216124650124748176456141049278704294624223858405214191082134074879641331270282031704325715413183472537928635664901937410349066594755287590197363808634093090004630275277908870393277988302850670404159799410494108014598763170116789345075346420165893025527919157240544494747441361508545439115967384428316541861133769140427019741550161928451501794395031631629646240798587045625140490922166628332670351019298607840074777260979396853095253289778257896522854417989895256421884407548676694268517495118124658224734866183723649130417886800150936841876469700333629730824761427837475621018298186666716253529906833312357884045970295653933922841949273059678626436914616909973008636873886537656328849844717278376988243327933295870958150554892917021493507873622301596947163456420948936614997095022931997579108708004926186762121109763750563958692175437689119453385021502275837729156189713134044811678345303123264832888805765098157055033702548538209483018510874197288684865598271867605045602535716192796827086965422153871251114682905762708924139336424742181146911297313081606540457259075718578428809632537447636581201076082048181118016293268321099270846338864777164729794233970584010489656255867274960965599565263835284103253467270943193980520968874498962919966087207767379595070121847281901579500534470147217803779640259696894620003771382482024695482291905797149296540104163263672351268068901167202219799265827372468932895973169476342571380333340832744176912498295482174171834943541155673238971740776365481723513206577988202674184147338550519703276737224903542571447314344491160067274793264139769103910477872356596548224868810284108136609127319818053239770544116698153758464991821825012786759014375434082780480147799006188285408717899718417352194877154196367476193920423549745313706768972318043413830814089614604020151800448092993869798688864406058449006788265778479210902850945664392006007871359316038061854487799254755007311535411616404508229248054919571090383243883506680816285233514594511656451007814324974713908015637805168449993833252287108714044118168224241991679393501124299028603700984481030061733407468078390197863971835319204371772518709839598126048198349442425841824377970759688519764545651186119774045851924793567541559765702290524803978544504047136689698763941109700707790225521999594560545157150716673029325435890706820031358933714706394083543606947943874317182902339584570818643989333901096061523488564963225152906595793415844058141807872485995133499074636068841040144616456785125189397127798363536959811385561268996801652380374541168535671351635930390303998084566730350634048527296551159149015500812585381089753086637836097190572324069729559294302976615261883684925832300179480728950838454034515953811665895980313165773619662434866043387537528039610570249100538786978762676916691735867194004511989711251080273362305167697625491524628281310466025795300008658687278878721186018019996657033245406208227455530835927040931124884508938618107857762954175405982503801162831968701521563057990683772180110567990600330267392593212980949936157400256705503096773385669366681181868065519093360384078411659505041831290909339260640698019266892335373485983982265943219731866629081391119153341405975992459261505341629367757122261716776265205403258005842793363723083004119652744784036182272287982275423113305598876286211748157423195089034305466071433186242918910765211748014600938533297453380567269163111290492045191067927463156267555790789778393469086497055255385594079575337070635076394132841766060218407455828169840850734921498203350506459462268059721820397283883512037458657080118856014106121235808033902931871089684306868852855416657227765835123705424892226450948933619245062821120320255836603093582479572028949782017675125598217245286217506118384250350772131182012707555457746877687296547176401933162453255043591999670826780502749003583906154807537814117226596718492621001662277267779880913452919804441268025058707065510520688841638595016809802123578397455360677163868933300752037388324550898973863407101111867530032670509560261185442433567674343269449861013531325108549655304071445420293682260594678910458290109529027867135084493410063856241687291259804339328413833947428848060831506599458165409801387289775802169488756962456909860349773152506704998534152132754622941738004686395663976550970884866104438025827303459416380466820629768860585373213115833242186404337548293282315352968684120749475687533825230730177647720468094156609712087459788778356905704936527925862457760933646887243286402017738226281061954204932892210737966781603271029812563515205972116857638362793485961370812713488144311895501130950456010059884852691839934217837730184795887398293979790493012869295961799752450086105405366247277862899431821230931609593150528781103387227254323118760123244171689954438749537411727232643474183283534891388801976638493282382400184094477287357677838464847269940572069195742781018916378076414693508361371833476644292932039065004322147781347658792275866884624927545510093312020352865073201439448141367136100999527370323357673338663665778709777620927290231463981533878748271744166075472865658641072246452800360225807876376608485968398763403059817352899507813364764053821158256681948406806297872169552793527890617283787080377913100912024645917548234932198918323615099197191298325959832540476117492970219838860460918808214640966391746311125703346556987654504372752362972251969504979806635121301179119607890979033759342897090621728809984337084549030858952221774374636806307908378009870786720761696937983185203448124687979951461795958224425085177989984616555968961050951308864029504643046497152641296919468476886767576188228647274260165111025697692265198043712797198535498775772913465183055201367849273399542583323018443308497095509160668688799182850486971798458685901559628006479064089053142406828009008569155977832768709939595420704182031708682874349266157825516832658192988991312460010746950036168425548020733596547617574261425839195315113571820142749496458588113239486391445292340435955007537490134720530689646908191601809672703036034803175696966421094221641667533424211699652533006395484204493480572020567267605179625760499573016112348085161097492263845435152874574789517060541092498250297324412384704154982125150320732000887275393181017017619509966827941668843827144885081826071731675389306346289704119603703649455077425535592057783332227479692217007029180580393684549211745190938426827437000790466018734659230767084165924405066659092792819245279167306553677515000978188685060331545090875437461275012561413700764964192086363387630588182947666669913166392176267491244211669523262638928479878928379084689495208216188171435795782666268693325111410123693332475608885373750636842800960414273944116443626150293838332827460451139560151407769201008163231599892433555764730026692257312828789488678131691028690811533385530619660707741197938405084667566623578049960422843097401377668645456707924717427388053655042533351712391738550628901406820642915424262128734958707441197877913599816666132733475265404749418101182689348983940155213849669873687469857132390493761743149118767078189081966683011444476269638003163717518930529223389555468569918907753533161669201041153226322877856981439992080940211778799624450244590083246651618485106353566025252730330929965216197742922550109417675182996276354729006870400984823698578568661866970975293401413509815291006902718760481316131794316957309089742684262082675043552316373449058759501979497778949315801073085527385097785787711006013623540736927509492566619782998197940432972209513363536634317824031927078970923706620589035361525340705731926704829683168191918230123955086390466287255441418529063656497010197241487246251562960853707254487276332376004845053643163902253915148649007400286829467932919828003646252498118821112306313986114619607396612494421247354474859270690041622972097789483946401302670590067824159944400601845510550827635272426364231086631597770145885459442017222923131683187625504650118482825360997629685053302325840883816797573526522939395139574186573751185750546152184571749711656148430782784590865054879617666371877878270291422934660365030950585947417171610116645348508307054761118276665871915501314047624768524384675822082036901899395838657267307925162770037277374143484966858284889553105980308001156436629242763380567184652489971178248651265639247405101501237355485063906956780127739524497501484718092974936847201487492403385566993182503489512586639363838137185552402199008740247834139166862344299549257845635291237069389704737551393614329090844782111751760076475224666311205220352441500499528015112081291964920752736534398984617892717359256220956174312916146433419658329778283494752654616512176596820401188609286921935030271274080480778297041509332013390004040188210896807168933787346762142545534526409051873284856228441884384038076843628504660219146627659346487813059620556916988596208116878570547393303878482749326028422946700521003668545633978542711148790819022863671946931187606850584336835406913192525229964228293768768673153415206672152864509139457943529860230216570737475954733121822143824201896449112765933432206136763398166413131117385225956997035814812920225631322379680722959121307529371573970689599151193840455106911715330387250882563284515409090644029035601089566880799110854963067129604919379061674528203576270139662645722727019722015967123939163326770853748485070587340757460454261169863998387571412317400668203536816772360591631067002606073942845020146247885501885683600530147116228864659833067149791680018633263793540937519576818146034141243107292134359937233849933662057952319813747138906531602659551990723553726408360891968094372492500820836844122388623911320050203489867094241138057536233940584130508854679800550939498628110455938472380354441294875176117009610206013782088211485004816099572348474013655505322171809892363527661177274487825941497436074024465714135248313081881298277512263315054926945745080654423648785255851419675811869302031921167700378956535108787232090709290437103252584862482574355326511576116086368438603864049656866952422806546270998079030670137742444584978676388291302836673459883301469760091536379533470394871938084226675009480373791313918782197400728723179688696833656727103900140604645178006265262582747170247911513891428579563066771237232073296440774341244775179017340758930831501752259653444708227187625409754247051519758425831075143528266006903023269477139701854959863031218247977290332454702422355515208500945814338214761631683620810896567740342543704348713044759256861907710293441213345794820907935423853141494294257892899202838719042469408636002506750616229036432003754083318337638401934984432061874017133661971025500595459699758419394034934609165343004970375825180824560279671743294460003344729262165860363524106105446605262439478422319400890852895390233601289337089268925755438068984584940056517975107430665821007151213540497081367181318156935440137519745615526979286352059049571373312690118858911853094147855119399510694484163259889083202051991799716423203923880732587155533506113382831015896640463572013775232065399684045764531246366929429223508315005887214418155630913581347499219273993766736471784341703282965183847005336880138690365718412136415424064980622262421211970535517228065779016749816774650060180322123014694112922703194571337104493231194234955943705451177270769750055763152618259456281046059227463664288778292283033961126704717624666226361935099303716734618175804338785188761793401618171202605675255096093505910178797848306661720271566863642558635658404356385227552565934904255842770293655165246928770841047482828000409350301728611438104506989556269819295004712391294785069556189092578041014626678160731244944728702218561104883698597615618739114017465859989052025671516430806712702202554848762718277803731793180782924041070837245330340441626119601414222834061102269776375968961286904412985483940626604201711463549068236536312026690480740277996107869924191801936907742464530205780931409381387345118474503606965692844509640939373054509232781270637340657054604731149908836916093440796647917409882752310195073776865438797395682938123609480458789388162755082253257067868158669273486356230818124378588088545933339748048886682356742062352382891246383475960930646454943958939389226428218131386015184821825943189487704242266407494807913473039088451814601782776907366554513700873001161885937220242825733905071876310128311254057360303658167597253464190786086717205617822584647974505327108111007411187482878719082065082248593463336893272602657564862391477759382497564825695212294225247425256512029286738939523371007652820010480608458154258016647001293914962063425121788801366106488761029743652399349904826615169143279530072943639368163365480527378584625692700161949927744496686245704935660080583848250858596236811189682193519103960726327771693673798942839067306931317255204092050857458803082755566538597096990248092000767623839769903804254359473568480315552120427555076588517653953264434982477101286591049760802291964234861063627086032170377286708217616268811506571657631224030626276687221519767861623908787410923061589087533047031342070211663710964606851894302663116997228593002240905639651320663281999727950431183220950334758572999540734241803433101028153907205422208017587725382532839538084680828797983775065068315467206390074326569190954809112199670963055099642934013707496063980529911273878336461550412279002034854625082019533280933907704808681852398911075343672857484302597178347365664939425634695810370244892705912449294458387360255473695874255804876833111108648155327882669661805379747455334025779807318780911256547446702637356880034581076783010965169186264930348374162113911682936969961182969269519260274459035874107382188683085007413409227624555678413605313795120459330092996281304337083173231534420182992559840140961845729015576812298997638693454697155689545278498369327752036850465317480958909813619935175902859176827123288484022277635785937480895604111682844151760808015868451333841454682756506428355054918032088457208757899901694113413806187271740617214823918612785337061786378898056825167135706682909325543929760003166870828506582124932817438017200469384711097556468055717143609864285133383714975545334795219507162066122909690310849537856943433420169881554449421644471268719194718547556913190949522445251883229522073005451140663865609514204704570405726606480886924315221972243708667880917604324202694159332166008070881708826085807222146747468746080640376688466666536952228149131739476048065348362496902490710652051723599508754995404038679749397839412111377856669516414493001282760524942639270728582174083323334519893418370910380533701870635546696809099330996809829651534228253390763367763570111320451258771838714990120314484780829170960894262624074326032097886815112017603207932229677413629643581540497086759867552232845118323103004294539074994506769771454505079153141501713068159224114345491936664936117552646357563539371656030427541891237343729171776325589793776500380399157120105670354368243983882523791094768650694293999921317751275432474275161070771661714148532281343025133872009635716393914042896665067556141238354722808684218843952249618627796470407542153009251304827835362105950907585182232740131681556069266407495658351903601362213334036624252759306318711683770405006473669116381910349067801720146704669427530324275403716063859842740378675095376809622184551892218988826353372215084108521775884207221001705019429341313410497811658749745215720987948180550989297973784251742338541377581848264212830460797928017467483975546502330025900097171187927900021815173992869692164084524744086043936197259720016759328218313751993121752707469760704213583389042494280423374853934906856039183166837428391555415840335916532381188408887554651072473404271339636934326836371888325492128136463872848460975396025062392964438529938705082322438753166045736004480613651803483779063796391105535517585517761113169173447143514582094437414686812369249321860701697661250152500262925429372030517538442358504576346606218611615562215415781172577394708230309805362421369083403609856353752545482326202383740731467448153344946567954317575516731932118231464982405666993025992560029467413566877426327691669880561017273129623752986676607708227387421941429220872711878793185682352014241478704830576046064484575464340355528241439648352108651060738770400516583274136130453718068069423635914913834172488716072224494687907656112468195857388500024499052793312877745082310100265287033847659438231201765635832768084945988441909046961906942906392519528223548541977066227428927008666408822399202204374515401764483165929372688093148572834822672299174563874340544255834208825593436732050999453898286911313826190925856798376400505530772818041517832178053965971549247808717972181348731834107653170513326660331958274175040717156582576899735455275616352530473600014865669418323757338044371145742264546078980589754472051644697069972221277623290735869781329320576689876882664868661622025572356508064292185199151554291017267768855800788664899665557546389534305915217201675557439734313191831641967003840914919393188661371190034572249690267561789431212457678379591174828862691494025404235800811251702846753614198382120403738254745071614076367896837350835352205876201192603106593186104265271678630650363472002452570245413911563194444337938568949756444537812805284777106306988565901547881950153457945485960306294657676159207404806009898700960870255717351484421961544697515632309499081137434620897810202439907856175632731331804445214367319108943607981033679339540618056147856781017524581038391608044688449061825784282847502079315165626929144258297048016628015370557144660976206447929112745528957773265636761844353432106626296936583690909895202080020720181567568349346393407814509760074580959308115692533722304505895539449460481537451196053848512212713993268260109373765045299856785264116394025883092726426946116755777902949713716201997064866587407720693577899255602614220812086081015234450996637178250851093564057221171257223500527898292776568977700411966443207539330743040809458268856726295451949055333553189083506273929528108583157795585371846178483234456944022715265044595523701639143020591771161363177554935246522902566758118600058564718928543532045234758545976570897480455515620446558578109739214354520173328173234130643458945995633815770239762227025841621616317028668022123123811909072700330108574369747900784045873501518508697626030169881096329288669091865490454951227764448371579103703010588923743435053494531232214455750717423559835705073769825934097046630549838493444008582279483543976642998301588553239020381359289860755893820866186625699593519302948707869719620095253946704458706432391577207494335489053472809366328612731089488979236070563486579709580874480007871237110905354894052442105412129478536508508957597862924047120880878734055165660588480021391070226017530469240591372948733114383848916655400887689523564810492495614067846989192992231085719060143918663866691348071420640854365405013718411430406296161389822804239123810749251221166028172477837362363801830257134754059268740863321426269682158264275708940787870671277368912616024479328851220347158184917441768094546095990122770392100076617509115960333457257706530540959605222787371747908791739569285905922852756201683791041527966535074068557910763973839627129758204270079796316930129014671481959897134450398846968532352620675742297593825522603350421837359118654195866221640775984482285086777395394072939373084525797343941247928232953440346736429203288412759841101348998212009939436528078855895805796222532495144048044364403822772742817765723007091016805670104658261010555577354021426924317046744583189055167247381985478145336457310183120190343804210490207534630888203195932757568939109703423957634410276310437390935544427153942576737784349737760614340556076503196256108965769045255910200092577492640410472165030404061092767181834945772997562473544676171694438075023586872129940585585079491713178471875803453646919600883176933112447401750782997846112802805058447806804658863591395759055151130477201625420981150893982260258780775360021031426275027247816187521982469169907461894286821616968655388474207778005020722877862998742281430464039652082955786156793144185544384851378023137700613714582847754892064987210351922081822517082992697013778990070770612285897210137613761346772811313557123854205930435610170019679862168560613966074171245640186433476264720178876748207913669177877763844348378134199996401988999056783840712152372741562093213759220480071702857568054052453872783115183373575943373304743904095184195945430527202401446033886304598426538758729457432850595471359140248784530181693672333432707173734194786081244521138423797485341703470740678741885807890699559806076356985716493419147727521108907090672860406991798026918134161072032457250207874192306647987524747786642621460897042922003461876820470991751470026551071694489009635333501765484771928870727020100257999441511112707172100710795706819851145098081835384681995131718287462703731322474788053704945363494492286358644801923904722961730013269903077424305204611128834928071033146031352678492263109957856582012657997965254069503567009465387096789857163140229524834081169072580255046749195468956482039993314067172474897632576874724400240020732331873171750068501546382707739699760201047153135217339804138438545144177504269654967068977770319169614388017949783743860992650238736348364407676288418317094340000156792798176606304571026957592326475070397144667082811510864627519205033273765187766230636650388136971143146684523720004352554232382642985388578351319093934612481645267542982174871896214123998910583254028526750464772766485589038693931789431332837122834435765746301078673628282827347320206982310691080840799018375462649802622790266898232173993034451069532023901334305637891150087007186172103603686885778049234971270360285920605220306199841752461110742465951384394239269678670664152377251491038036703603224019550510283331240819385438278855418443459935311753747669944438157359020350685100407937296428418622658102764150462566446790368179071303891478040592657851532747915955407680883433555573795682011884237547682175855634968840813948754930802885334088873389376824526626900691209072952317446081372286590331142549646216430126364946978012137531757644000305624726962679219948198989222881885813369820841100594762333685305997582414703054264924080502306015326850965166951648547591334215690575566467414172922682165656454938274871995126524358157641883456677310960363349493229051326023076374792338804814043271797506779756943725104495108598441564264301735627253635724894999323756611635911478343972279990981512111560189096036531201124719001307137880854361801904536026988490200069838871581868864108145810836077929060237185335051113230583727133385699378778809259551887236621368868500173081404568555450053771486131381999761274344782568048366413834571678306581402552288502407131906124618584883402523023428875851846788789873917104057695569453194806574405997325382986102021727126122875899236737419755946076252640356567548798816271593064859782209687624694352125856516460700352300790437358060179452163199904227184656948185078268497392376192931981058996580496615317967199933392865609399770053599256316894854506043755355696353013136494367166814925945513608094747655064455760308415538611161872114988924696937006403146794236530506493704544976582837389103490423044055091460912730892414470781592810053385083777129120433727967377235003920211402679842199883556125344703036348984067599787225946731423059762910637872512468820263236827775200282731415269077278921873375751211205621671948475190117776832573417569538084024439257162093740727804531251590652450336507915911040923662629387313714918076399492123368265798327093705651594080143090507968042248607897081573800427377143034043359872769172918354447257686760573067586059706911632479552026408107212278948785894895980511259931066856315130250292717556309106515763897366586498919008185318202790929581575092688283250886537890449147777549841866384351652440745307667761517976422658295095769227924502815783271387718769368588688444022314062326861145067896408300024591216701920055333496107636437996746089893893841959085405672911214503565994814272532471522779191694726663235567500031800668589971852554536404998704698278429800134141296021470706903517960874646239934410219646815753463182210736995933845432261256305534122374816270366592087213728586759619143523650761111404598743633776789285184666328258759818587172909910288159286447385165798887819586181815066359332827142720000752990257119520872390499637320160497706909373332688009964818142731034808892595565511378518127977299367797910048226768244508038185466662291803778161226661418552316522650340855530574941377427026255985624665760780754974073092392039614464332971866942011514780050406827667251216318975837393732271155252837817825302594873819340115999804682686494915262994171437869793552866645974964871721212990980122837417316741750160545130342726004353942389726149035850040023153842963320223847757449917844259191058009400577515312336390967907612598681029195859542088022147892669510904419028418975261807833860560998477210552663569366003733752899516646694772201195201633670809677816990002001526361069819315492994028084532886431308390905294867908821591387961435199651322635159174900260418280103435041456454665244832728107166026726008943146793472826858314737216765510380462299663645739089102455567019954451293290889762085855895093517810228844110446814378362330345060626851696743367401401541553655160704740804896747326060184293258200925937635826467862038163748159976632319826365988805137109025099636967778162069814351747585553087943292934459077879540279493048008932779249021994533773752885516163983420971098064829657485801196740579670553832130193603443893917947895149204894017501707925499496260857986179122355736697603926347576460690610677316925166513332899546019048880302231241471110911094119332670056685633991376351244595228854132343737577794357935343840019521462328912455247998259661607945077404078391824257702914580905016427746636217062886901129855624840780018057126802613153998513495697842537732632816544069247760815844431900577681179034047228717401125061824639019731370810905504545957852354839667502606023218524714407619230503325994537608603530363134918620429459086640026655858629190214249377868680137811167216210648858580792028496364169104549554228000586845481058175237398198410834206000297201749470765141828291886466643221835182037880299131714231008665042974436014988767661576873442527239155601040439950798962354555861626072362827077549006451887020497418804696696949140270996170507634713026689132708350254873623187001311534623988383113002484426183198959106326387063662501297608539525129801506467321655568909406095705313476871063870709337248330253947845705569731135401403040320530581758561349324908032803392110630740642662794134701044972443027836742596331668913380404664234470579207937342063995257850896568882064806933327737493412077426885289953914823532401319151845729610535893058673982413591917418958083728633332461179615942003661810829737136925258289901792354360937218696209269708157262226810976695027752286749631412095546521807117985996327293847583433987784616136097939442176845551190430734383858120197085394989491111569225299547661340945721339063432751958224292135273620328638701508050705434667156405698387165962056403171666269813832171252886113381814667217983458185010111593241086823686313761919224395292584087851954548966058664080699456496389475821044658993259236282580788442995027934570574721652574590735169428062806183935305714423762027649129105113951961724238699766830837785579349923790825476846191351018498953320586928315409031573469707790510584125596464249672425360822633280173793388805358136763214927496304532486078605348254011402633134528700471125340103558755832747297529498556294729444803352277074226544388847845229334625603682359381450981133584845901009740585807623729812704404187950568129249475574998292981825289330569925716219364658979454693352097915299057933767433927471879952073007001476215875996746546040423640292947483870392007725760582247849994485944644948276962270248287596129129732590637580963117155996975308558994328240165547385902049905709297381056305613674366184953199189148396872745962122197876289620733812866042137435711176771822095702856466075867779594805092775889425241606318125286574807278647053104488535038756576677250636171634947022318251189571008270512707808753765420300299181042602310833212582331997805739427367468276095179402869557976962491200618488733684389976545998919076686365137746210591366403812788132379229795898648770460313288139388106697973940354750387187915329396958737410798819978620567134378330536453270748903946440523080488447367717417581040936229552072168969718904040464550480871513819980116562916089646738749417146212650031247863460547670787150109977806328131740764630933351201838091101447790806798245956196712087889176889779576441184290372523529349667200588669957547559309203242681023219821983772156282197557724370512286706058870502860106624144053636053412757545510280233519080793898388123345593953428153981564391642785156790313865245276990197189173813712236280985278060230007340153900076031547572246958032002484716490989534351131605338420366712152125133377491372293337518446817577930703886662933784373917801450407780060760742211204551226330988195550161412827128614917699563407419117864302633851190667121979032526913168739820993760638252304941863229782147427367178676859586994553618008450671194314946059758520168184691596716892640758616899716091911060181144780810258233197341936104407198421324598275637288870871462353332344804144807980119120471069331195063753567819728070599329430913162868593229932420550046261418960179227766948661330137214153267925567346498075598957515526100745979805001882566701374570883986973081040586470386906499301017364897878892640267103125820596567992988170225079895836354428581797315745472486743424140783323374017668039614384663633501971836901312160625673360296593913816454303056894967188358349258866613949209039948597371403842869138596062498562783308526140701655581024910118851416521673600853434046417353621194445923802097986328783918983517584865451103020008691252122657909101427968303866785383377825381659025781942828029299296115985895187602936709703114594914122539295453005188407147249149378521643343639172026049976160501164075074223923722736026212702318430311869937739211095796025306516207695563531184922525741386282717587565916047733163568755955234125344168722208586278302273890879404283653660756311918460198651656370729510034553517780840565226820263216359901751389224283025975172736765025123954290231251461384688907208625075404183378856888664357180748545854861702294174826103504217451558901253118500549572396907084359984206413609040497208123931744158778292020144472038472496204732936126670360489964805591900757892925540896783404963266521050522969578461999785886111787596085968780082556403587481199587675160954360209793116407183153421687971996198524532476242743497071604253486326098543465878373698449799196963937500013798334568384819527175627719608382382467704927365714083473154471700259389328959250512812180532182416417683378137733603099847814247829533375130630295224422282887394677526961446054128385062325599333720438964731528756958849229588055249118831197118372343357390058714601906197234146712712787422906781030087726692349498875030139347833663059401460222476079691507570775556483527513993300383327774791446546255033604720723283748031819044526015586848745781734937662837103935500148156467449416941780535303973195062993374067786492819717647346857279659268905319062747165169321579441310731087167613163636657301460078884883214673326211988491170717717914094312781743998037673032774560939858193623725072298810626753186975200872335164437969979584621725617636523675198676649023967296420345672765799146137234817293888474695861094089044031174379920697517156383793538070717433507558800421420432251946904228028412556229103553474720414699859745069885222421892119970581445767406978731756901800772092864121411113864413080088751719065011708290877135798196087946715264709755621206166256355163606120000977446650418996918630096897952985800654657421149148521074941840432646822189552740352664891543829457717636911156823288723345810361778137530804341703070259274915772310792019057466634036673386424506857323150977892036605846399164144236357034533212826305127380714350654078036016936605701362514269157139086840724550458584722593433151325942530574414195746590253875671332518430004094603456977890720015084450730066963193004362160665989638147942747213949457197506007771218699200958667507506946015485186528031366860521290527223015051729973917571678196984427627028084868995443639537705552847596395157655560011209135793926424453838394047477816171231929237164263450158108960919590956897613362790833345829589455757657854972767899391296322056731719878152116822137524443003704607266201082002036278601619295919050222414451731220100097168554412648136051146455772628549281479636825250377675338075755080798414778441199775763686661700965468848357551295582379808376992600292824670673619572022231416979982507937049333642701215604020546689262726562354301532040452931101039404799599142292146852641757597279127706461111652256853209300671051953153957796348004353320682594916211461685890758556499296072210075449133285739807875872285833165004902728406201994536588016642650020168304342810689637313660713730289732440543892256076367880533642473487695693328665731189814513069699827410592977510953053819152042065228533717734685796654220630669964100889394965066985614197696900619451695035808341523127712870670314085027922606214764455300313557930087172419289360768081531827779875377848981877301734404221100814511787116631213857619048687034126947119032873328144743122246345359498228667625998015307197666250553709243277632874835940931916921795279866562522430229348609589279014586756474829198437976777049582845805156591450482944874308812579670291022749328681307909675213299168828249594092469525407987423577865254871869849937548265933051082603060028529560599712700031944904023374762109129877985831403663032303407143888421501571368940621398118018312578814620324411932710480798400751682972834137347861891613008204645741906164241816531108232595603790009545439846862571883551717763115744660643679674007096125097058285988343921980188459357013550148986403918321425162889829582860472840685724992745860082403596053572118677858736040989508397339740957424403409079706290793437375676116401816246637672788718273318180052094836756268270358497976700299438036227725354958603277028957975847281336463757548539939412398043055884550815635752595771675291720943027207807125718678912417142571517482885877908407155954781803605924903054894169895280790359453805018392201630549118924808703088202963879142934058230630757489010881148430762666494977314233776583819011632830859471464995474350776978035994504781052563399816783228317566516284947039125450221904720240523929579490416696709726790961434041803788531744699315777559764864594191493021902394570282684871997716085293089961262992708660267141423371183794769460530312132504829617955634545456393481367864212928391970860578191181257978843993351892066273200052851747961398322817409116882517144499689921106011013713973212134904288545190514389746345827583553541978965633224501886462708268595955983929246969259319070631478771773929310048342925555010745139339458875866432826689539319725201009188363677620229914906132452209198160060830828454758316694087178374767591793043697399417670252191877652973860345788434301424511450049063979925558089327561827353789345974179533185980606181685888671528720573965943419519232675010828021015770478073699901860695419328404888310592383783650389194680313951345096404570305052886600406679839699658673646625606498712441367965486814260561283632580348268321641119988163533533625609896636208406971043870083291863751845075988611052089977229873552318443038173815622150872973519817240058770252642583377018086660697863601711962383022439130788615590658826081375285922900961216613359354215556350943985550852367657364327187505239397863371948408049148667731918634905486870355122430712655687080547071379300110303349028355504943147356223481233354470996709865872834973625835892904334395968249565479168070166138768687594137876531810247990847264545980218518945678416415020452039558618704342263013205793001063604865597043401099210862337305174004484872243649956404525519294545123237893179735467466323502874445993533728869438530121408588456974369561699902588619148208259178121747428551045342219208464419801699149115513993097424174256071340714514879552009760249317270292893491163108977825875301132136512434007698185265823394029998087387323284677548455354387450957301864453775520697892510391611606471955154614794392325146690291478116675167310707075043528442436881522620361096450260223963039843231586255016816996189557253021188661550673861569358307473614618028096774356318377515271414381355694893147788421130881811898267149593104019538200469034312233758554540857796795487940797922077069428875045936853696312409041889774969170720489764249481170522048492583658690616963841012136913548519063939701417452750945384888696198376953098730510346776797060367237753441348910207936859598753647811118718531949600417863848225652267958191245026889062256781914633989095871711384665817592795339849458529364641840893850568910645091168137240969771612807594370527708882851059096040237506372483865036978797325357842842997544202790811328378509457558384361183406116475661549592567339517949899116376531590625334585439612123277428734661978311502964932081291725600154083118344965780946246527139449312309164932527028485171819102509627381551999439177869289634291673883495609514598243093534665254207199014724974439422392799345912772439471212638447273373739005456316354421799871642221032994599672400134215927378348697065187589979429206791401507182003211648115746424986290413566798018135883783351436842953724820949894212676785004995151623283862636010885795041588162948699904688605516353651686995351785509889061704049652991102349006936821693389707769233818692397973241048299173467481275425330344478055801376531496385542302938759920770049574044886016268588581562000010038784352528380894045919306780467190034491452043990699564377922814538903793180760118746499578008117713224208668183743343066553204908105443985487095290091679872975289870729945127011134471852789216555705977652839936502616744391693477538698128811943365070363824009363261730495170697463882194585140292035328416946891008284541480921800565076422203495293075032396532031297334046316873174144637960931072712500892103707545580108530167171573059417045650593702827670458692776637745081384171654761903029337563948802520324405707250985309748176564348597880683462321471502117972457125853524277796279650566458295757503981941167284092941551342964855975894401398237339745528391324013758582617402537365717639696655159353623331049511342518049797824402934724540922965727096855809463752018247054997672566773234839314696130856091935748289277590846966595027068052277405059675546368776895802631098016171094496160982915402078337043782294882841239024666777022603887383304332113578486065165545614281890561157872242447433264336191859890875899024757543980190792444951325345810095759644966963224206529806432292903392229961556787270087634645272197113149668751613824336984948330787533653992844208175016347649162529983896307895484267260125317745380607967741097910008716591548299023653238579640373780717519028526366092939109218614695405934221458893203249607426184571715445894038761196396085622376477220372529414421711626341710362972717404971329668420333839429839350535241882653674499224108176331661644272443869538240911771667307645217261256963341874661385601107623642860200931958395837544127001695821963788901998225841797718209196903326919198854669942709936829599785739416738724306126892546209875310827972075907613223938231811951530682210238931305095819864302879510885345714155390600065940054762513820988436566814146985200620484302606978060251562727741949010944660330510643023345248362358523697899517627112199440978645497295939927580397605428991893480942875947476917655760604454079128988769874406432724121757707735053561121206792169040154047664794278763461929035744690410986622504428861969987011367962662000241692222737383058289781084315250685315785389609355921385700647486332425713898694022611599905452487985680437050191184884757357919864640096412628367086091445769578561944047705247457314188795127045229569991635697879131937333837989599145520769695976670074344530906778742243470034163623401355083940581343223151706733918237779542448267374167219844109477719646751650710162651635543500008316314849330350443449558474741176245762650626512569612185358377893533566603416955427217993456357301245395265998622561944200482155824610630824921221141034945538283345911516784154584431215076409798348806247006418945336769685619446052611386933990818695562550192528351405202326897924681153611169750934184677517103429470343004998168974508745147777872320069936876461427460653195474422849791770870632895518217986397382668982146093739002638558097843717689203608451963332077295579864866927766073943094143956958505879049533336403995970169030786779171852212254303309125270158539623667033708853053945784494588059300902578974692716781670730887355919309801645640683401120969003115195046548804691219519008870333680538689508583525494566103545165154717759845614368991986845412315846230167175095849299007618393284887565860426856217280123444479167655255107300220127893665703055987345870946028934811813603680264096094277708269085309524547695068341797990056910937776961763575462024726617122063291742111850574046933190039298216994727399332938280588401059916285624335214460210979204492159041553078616879764820614410343449405462374668154878445630946508380936267484613932601749210281607450178066465087921485970343429520957106233035417310801890061451007639257277871840134726845984548936854811359299922728984699374102795364093646609641643033477978834352098055213468890184842908638901233599213743496327358560933109365383826890244411318807101974526217458071750614353333495691106990590755631264802241619246324795191398088069519852929299648539123565552622167881987489944316378850899347334745339756986200245010923040684414393291188499090181652739893888433035893969563429517327966236885920325618721126070953718369832842019125469682855330508853155350980065432852227619290071174955788953160398914627947922508661973489403397335987314835968952075399850927425959943857721912819193276389635575730771889258848731844832258466359029467623292380878127829406323372287679853218557991011366991074430203025147643639166415858704407371718350943669684050622786553134729958053466926534681489992176463806766318112341392599727532827356933331872951980809446275064429140291248479266972172064282605258496920085380762774386604852894427653428548730471347401770264438704323526213858192947974329769604831789236951803507655414649297690786783075623793256071381079948418985451787465675722212333699689009180431387625827933849844158783466053607901880778199429532157751173085854228061217065029005757712904026818159452906550114800671386802710702676486680911300156387286135977852627987101445210371671608197042130927264337929215051883108848646948602716789783695298051030786462850087400320847408337621832066156471508955022798812885232290053400415122244797588619682980436730264172453445766718043456195795358627035138728586141873002175056141852553122300688703045811391954473465440317355050203004655320212669825408490816831008993507426245887243353612286297011032556105005711177759492857732711153755656326352202634755086552696010751108758750493610948174907538394005291596435768122349439224837938407158192860874619242749895663346814889667802610051234720175624288585270441778221237929601850716673306567182005634719407555103878365649406500992795819763218339031453882201505880099507677490865681048043156419897524585337475623058514588521072842456115059657514320746003446297993365507573234338135404396842832718052813034663131575544320120340822337903198544530517652616903808190552785036819573979952477925185273581805025842316281297295067055564467887127892426762175063532372268160595960253415671924893653518243408751213525564889436251456750311465182062715324618245534196810891474852664649106616722903034311878211713021528129286660249697347530099427626863295807564942859516624545686541983860675045710923413208621810837431939041275699278710437873074760199276267076267334439160341354017784488175166626468214420906830011913740969125841054092979486118095877575622916451529537840182267549565014667077317794296304083862551775702559252968842161574500708168006283016387241365851390233323743741086601729157169498370083599807838179850790900763284197714747118951530908570028267688774107840274150697763604466998546095273203685527769247411905358438568562729417423488974505469428603559277263885256609621338225564860913689517269106727611801540771124829962786579190094642478133633208268655169363397922965462384195312036964614068207632691121825226479446088259917205694458650237757100976703519008511540471249283377737184260418059115345152640004833853637447793646752995838991703406598647380663426119576292783394950804077163292934233438636923742081172807627084756628760325956307879416429870822220521351667378224991670822456902622661915620924197752994622791490026925977594739138175611041083347689834728449670677283483361048956187546882173643645627686995358978682026554663399576940643071328240263054223829565657440281321418866504731159298564112961611159613162532309632685192077654198918823911755585010968670455926928243589630802942772348006879067652190924296403593883541303009580443180935012716553721495514513345841474489087189495340733847230202278523880853206900063483133654941713227174375370661403901289211859693771406601644370317987911251695415954871670383621355593706503270915324878734696558997225629746367045842752109665095425687060245742634187071387179309614824321196146232569908154378452747783790056746177603032050417807437562020109328683341773299558808999426199894559973713774486312551065726088327549916349660010566838963726001473566688295829346755584218062661175586035137443811874694480156213947664126403425747625248924511787711808733543133048105416471537237118030167996994747157871059103874031268453659083753155534833728791444550793605183526299753704339863837797048512139597626538300461545883860939672098545768128398359486688752107542194005736656791155335197813757922339356757298164537241400193594529473433470293497858178159698407994385316209947597501665660508973817773097636416844486394146444350759948171987195745435517104150344843279512097035615617443949399646996277186200108377479288069055388545975712038561029256230817992974709726652776439320219892408733044226934595576049359920620461464189356769016702114496332880225628555289438420884220004219970190446767551845876572169407424862783761015683869896653981832248773103178031431583887304739217828644126470218599187067023242482999791775328304268459150770716329133952483254251121939406179833171801524796219827022373205682312434449453298986168248966775310790360346392225041117293929089959969755878911046864454562691321301557559864970725712624092740462516639963468207194005409066361255966420992587155961423727885823130655180147403392184445503333895467545697096582896836013236233361118580010165392859719674166850526796998478943577613496493116496506559064812228396782104881857422900556570629012035395074818006254468263836543436272554066084097934882498748772811466437089782768841984520035947359598358211905113297032914200539662844038291168958043598101195939340509170402744174779533813955932771047074016640958684438682558902405491462374573752099639381817162302742252593868699146211491710408087351766829529174463883817205778862820482970587243071705524389788531701852855836056368437084225881027606723528317148772649504039946088210230612882123093222798532843688439376947588625835681476699963670287520595868023331682903106970536141003329590772225149734591121657319877533623184307753053068411681905324488108069067251888923858417656875292050029979867881100335717049298987352847577447225341088208718670693906415058682060615191043058057026608281473310661734088634593285809061938766198562384992289200491588666710895538266521797845689040551528820388973683347873468146988788130430936296337781462054142038583222964100155596543861485273471947145413049087984123265586065095601158095853321518984229333256370436591421170167545446046126079351379870120929860691460618634472191620488630908337156168989453098689517618424112973455216483236520034014940778322576146371529229946641164393675178313742524035041943872895562952109329951747939121519192839852873744801837717135345142414079296672128693566487179322472067354205052461951536521961342978539598590870790581760360335342964578830267386414095414142554163314335607480289501718998911121409650254631446640906477113182604004592536726674045735132318632657561829194459115513829912184263219158460844027781699092540127527343623357981906638621041678173847053511827603010996254646499568823719748329847700864077166149482328309623665243568627160811857738429537281005963220187054158668598942434081975281847096100882284985792237179676743340745700112083348563324410478141627116904668352464551904271439795017303466169492155599771798030565650384486395498161077421750307994192541527625047433008122397123377265909334762113722848187135807800726749548922996106443751135135984557164529224960395925695713130131811539709484851767783660155431504470688740972130862025116812143329920908543995116661332339389695175416253858863959196351482968795644933781200588608280800485510497961664194530328243573138003949758260502191328080732572982319980068715835060178053424450604788250281308253099236544792491727061534730010174984425345780039145315924585444418416441593567803504075863919758196197921132645147366867771266729729252818923075151438799149853545831831183880255009361597375914604090249971563109832488588650774591293319907841073172854435492603869577429299411459994637214116491802256107918604898947006672271562281110812921291697599397418589818053050212848246297134760035533805290270586475772820776701035524514817825343325542014240219145016742759256387652118127823331388505977093231336293833949706050125619890784937528206647892302196628351341241236742665352080348604958687036525795857652762870131967079376660770470373137369139017489194295746389141139285569790016751917822400711511616286723762256147045720388519494187736195837932694607124940805106782515119327381616328943447624226943101184109995633483617657421593603685756297964100415283817507248157769901608108012872375273619520537887400014875416912413072222641149879941277849635496439794095326342848216947763443278450872477442322207118746868673030567214926203873118254617752751417668124414825160356963260257182471613996338355567084373681954497779819618211706715416934222847214058595683145188759209040820215303939345726266752526065455382583543856751129260064509241767540419125216121435366449347963941277215985047965571794498274101229777785023831271395697116452562821234772783837429539694987473344574464220982691218441989714992554228029414944665164001824867096527588371087586901374621999559495178658458263939185386945556719956837089968942476028215929051704773660522731375724761450432686259826940470443756503389835495429989394931498730547804990883919805402213619945760997884796245026013487235516806836674561295976830384878109822212581512286481526553478258905003963838211346208433796024894704153174965381066614414844070426349118550752613629800182902969261057724200706986955523722676956972601969289481141207905514688351829483681256210879174013268931669734916701639241899663105499922391915510049617500431105652637947788368995147316942996808148378284743197797738620208246685219678385218488829593364500581580831140911267528427772684798514236583860060881855505615663222754137404033263895862350092314607397382860217259252486639591621028307052963999866315467713202508728006968528887017698479788338797844279741898850070216242729418061808685628913233625168383767991674263970921168742170102141652912288002749276530034863587276844626790328905106498519750941256894248334124494449078965459401612788438520975450288115807283414684597570380336800808092292767738049933182833338805580656618123807114386787305077731906948753716723176266046541759155555629641467139239199564295143325808118766626528642953246578816697523034877198053375350536347107079913028167669600011736660310513579355665455770061170805932217551258251857512237128728921524195212549999518839696327096593812299614011757073268372440206188587343846608533746286773081775592867815584341466973271468007184175059393318814305862846833857610445385459240789007557511619865905135645253200163715378905260574134424261384808092064224591456567734699958821063714970458736355655532232368739384405674494160284822775712126611879875546432127989309616376401422286172618104610423213081446953434972156276400797711554200719824414413740048450992763391395120641984849912003930454059603956542509910622281076256697344201256606899495112444432061552671091237389323445354684805591116258631773086527621689368892460824065547133350937043911890623082603959332290925644312705531721480667087034151746340740662699250391426575480494448827189541044621514449367352679090266535346195165228869137449820201748342643211061156997911339452543116794397815995531241377703290936274577568325811090443057625969294406603527659600643908250573204214587182976871458812865416622987907291541844792688766327590235841015936288900121604797644954311052526791916714707522453668126561281320175622569266018340706919811104714384016687940974985165384861061450576225196659282227680500441043917267213542463931259018605959007071635142470437873350937996053075842436047720555960558070915861940182528918539026422552058001828061676698013733723144440491702287166254155375317186247204028799358863671220238305679090021739655393872241082668029350915031178638788145106990519067348610925526869468407963128129165473924732244647024713445251731579091154531715183054754292693060002038023254517594727943513804987366973558797095727064941836207825666874410117956678173789693787131207372057507745812162911411174948463775968779886801332352857880614277887428622691339724274764345945088529245277155633022567985561142574797682482332725889502906353952108740340349616696944619346706516871874690205255437625484913263633876918043366221604020762826164018363794169687474818802847653307653090423883947950120626424167669438112633653606071004858284738966975979447676962654893861976751009008474495959022942907639815381654306218447089348280257680003785723785115349996155672317123422836759287949185530586658442525288655389073083794303954446317285679865305790268173300130480915253978912753720668242770743810426546324952441348128885528636995991652396033687300813761582412308880502639160660595222301990910724095530220343639386910175732546162075061937005815974132492305638352455259379948587271968949568820455394250475472058870680086870680064155832466362020028378615141524567716965790730190872091224322826831444370767632639093116416839738124313500587690578906079546855551966284631065584390413573097549053994110584338031038954897518287581951220836840434972894076900554071834017105613173670843906950391643190287233773309345029854420218982474535493244344943008979678118182583889844541755649823446782072578603032522331854638588894795714535844815168314965187184081402535437072423918893180299961045406043981246896164597860520506513383049139998441050199714256587893417628245772458836120575031723971732863759524079626618298506210425560814847355435749385002365354290738863563706302138885762524422289982346821373910583922696266043541867295078500705681086684189315199867895622619090902263584356335176287463312440087720566986969620647728608613237217503713629541630596124461607908085670624069756898310263405349767755649842507928551656433869068191912517220006467772809424299218023271237081427710662669108531321789973696296450742596576479237879749369584749309493604983693640949391540647734375612481891821357453650992996955095395361510589080724330599910200007782641261685280644266264488047974660815583809644271850268265132742947017269684518169479788099038449096241403825305693124028579043217898812082999211834286785259123974608034539375915452170354771785449802404611714545626747205931348606488717065837967300760409045526715405438250380809790790796922896786167781265034771566728145322841985024727332914549909935101728787166061586010492630617872710477984920494488081220354922808806391679670749992762255828462096379251821149237149292483404186564572815839919036482554876469455400413130385761525515929708248672601739589166135361500392601239203980285983290880383669823146026544004717012303191867993746024372608012060667110968879839931788259241990552334636256283749685423511992390632603568271957530709270909481040748412051329699040985116661093327059286437096174569100088409929647653374402038964877131747484827221337241821513010350806240824848306765434618356921368373164223609545635050533315654431833596586093358739647337483910915318702914583760598770546188557509150692405349454463727587544202885274436535301424725433613277613636863132300872069605831240819136119090861849185082962075179904983479803883257903748411041255529307021645554198999744571855300542334249847980237313488296539223515534188080085349634690214516035524697471745916365761213166577559186992657644699179956814626447690908812277593595549796368584236728255696027357221132912791498781539785354466366980315674217983863807173317735465569774263530952605060670675958288672625767975395830587839277245916172756738665802995648822736840567271382050503734503815115295674491010337846166469616328126538089211902689407183705099007937019116432056779481026095426796369620356254414631329460948713155263551452970586355729368847191313583046218484168606347508125464128559206100877668218875437479515147723815911598841751293133834835979133220291673544070661883351458675778330847758937262592096318884138472673421487387831500507000664535028529655972125454417872149624321513002664596315423637418308026272711895561556990957900199600448790130833166809484931058605537257166556537606762792691315072068494173307028255941977388404168545219063153426084299311981725026453035614542811190928694455707697866265296724656550790895814740265591129238578805734006974141862985593499057859083129266617467611711532465935753764055184824699572131434413286960952633515170011823256464924963380070358688367126010940478038760200551259687623125212916379774754205205961607860332275482976565515362285825683031516517088125304412405915280643532546213753069322244330793552252868501321446309354630093593304247819452202298954644702013143002396725033461032499483458849425240297044442635925273609153778901687860251796778297422564455895037314968898144112935859782519712852855808648853215128761716295872687060685853532112444139044366318661689003017981678013751191114283267448612860518134996170222748365173523887159720947190605124973996886752002527590683691493820157077792325200812951310949308177594916592908110950000626032270224391779937248901089192518755997413605227812211014971309418991438462866811910178870209110813498551675999878793190661174160855913316091799163933121247854945028647283566625001071013056778334029001168551191732777502882524692871929820282499642929838604282809917852778715083074378852166506581740356415199484967120006422398275356981539508306776773094871347403239310399359977882735317395383559129157274981534620670354863616373555960252916436637336550947588005193253815328577461902891585431190025412150252563527479358537610000087555441566863870150197048445682391794916187137071476224499640786331268578691329327202918275524985841059386706333951605531392549235324794516500587379548684051716593330417143063195780061091134271717635567569432470456958191864593177478775925038970781485017480632461872958252406676363583841659216087357601727012744695814672050002013968345564896055547129885892917724013398126348091767744063525310107723786960008334534848861414907311726031730429564393558479023792461433002491368110554477645199544467976240214134984656767220987140563808705377927710415744551894259640594819149338975577062726018019129998606173154463042947211843720559507302328818375239911513545677279685068108398992345547228886051630052065854403084968985986888480491792269324093873688976018701206473040873618349971482677615545640978908984028621940381187166431528918891801764456687564570872681725569691116499376431837929528668889533005565125824846732470310513740157478738297076879445470430854130349807650544357311262709952659691648512006439094037611460805800782902304076443425500817300796401837382722000069885137582214789173310472412917876790785237087884070629220124920255931738356218939228080561521257920042554653393418810507895646955571087913428089730636180396294455781873299501173924395689906345171138604764828747605999861479326986665333969358089372120376611057801408157214629574416545134597554351917141549834143008179904322656027971984656154688572858390479784541754096663430824329636840404480850440637279249037439872341802848610209539720338940315991466940467295377620791455508189404297113445895618743816011700889571024243655772424793438693935318112220005794521957330307830705690371157886831756295675788138357489079442045825598055946070929067499299991642033085311738857818298162910809246480870878352014199333117929387460631679215781914153811191583601660328564057746899867720886386935791000434617573491400895509628819943591916292741827276962571495225014988035673562885160026578123355880351268285498523551627350512632629280742362436824340357833290181520645802736022828419354015953951110179602796732915177930827731813554879498434101439342299126295188225398528145073671224656486077741422588615900727088146278893877175733183825072383274808243566196867546906812192589191629739133560073126170506259572375758847601900273698346553480720590259644807269892354540298045272244944846435642297455037127172302281398794106676206132809328512682365795063724383367001466471178312928837565966364154819754336174876414880144764560014607545246194229776252308061306188270803932437784047989867507354924127363306843645495361202035645608501761169719997160823248477700071719911744192598556876507735793132056625214737928352273942614650309450993621421730351633198681296370924244487900063776305475879516122557168844226009975076526443631099725025960890332956739251660120479904163758840898387460988995612845385883684100571048523519796531774586204156958337839317821460979948103232177891015384930364153480686125338563499088471778733687265039853975794975594808324831865217823805882927531274093166520306768024372500682030677491354437037232660207076211790062839867164427253033750179031399222323345122627650963104802044716315861411577674304419017635586299743365898433283755255370491978527984119150015033385976309839171549967268447021298637432455040353493797615188283582247431675527678736971725600369740390971411122601564684128675196801462049122021062245501047053883762845403647160921500248300692103788097310152687965183831245050456268318788151844773381078179438010128623355462985360353967479978206480883283706357336144183964323118912136703721720439323616538182364698191530349749170901858899583891450128943639817456895419477100479636438305264754514959931529690957955284876915367849441929831190939913230411737117935755638602093851607108821119480908824218203828169225895829350295581204450977562859533285830523771365589448216891299964143600778244093869634878337354209554945853759510799912950088683588736993210204069113678437190619204027762459981088360245416997807392513690117856403154625064257776446442302499361327581985578006164914486820462637225954511440205058789395471876470360008197859513358541395898444769489893369012724146831788430424452910532263782924931005354948628181726047629516978810684666212859858266720001827492388675458596066624215926081894690804901129160483957017899918493792107872605073106547825874615051499924037613665025354888450487918124081289573240439920857098455319474526666838122402673391052882207929383501253045010851197661937504013186151118077972474810464755365143097062417321262607448535043086674703157869302171526567537501086096363909996031683040210625171218757580449275825719906744302582366539551264918136824606822176672477015047754488263450482246846257724388784536272852170788705407065663291911932828166727230131950559550993189483639930553404155876670591269350075111173847682772590789697973801232773409521861240672861293233137494889982934222020010821702117156116005460756331280379054576911530506999642766981141115189215532453745508400357951705960382853539772757163921513379959368964910828720459140623809814066405624159947168757246568991443599195561801530535716913551691271400601206023896935662799633764591914246934854634648994644841530754958637074363339722986003645691664916961905224366282892704814401748114932415781994659186857382880448621210893543652668318300860745064363370391255066355986399431594607483362626048488142822148341394860150627615703679407824387039199988977280207730739541430517045204915916024393736471844376029697449018341328152841740205630541721599016255412905558702021329490399338500132137698537279626144624333780504702670958510879462389508188769900118601106094188494131430848042446803076250541099764302510688468261709124255024003248044909322489583814158951908441962537687612863769324800611907640409371275210111440188703707749351754616346803114005136380474829959093884095172385347523362568108119510131676714843749496621919567946344918444187863194784046921913215541239835236415477559032357675211889573869252182366334393128900664249174752199550328144112756082816974545603851346922935984523820167911447128820503722296406164823450862358789272560367624112308075308249031117327443624678707412600537034203625633205653153326222113889841373467777759988060645181514394827783085035388664032162370656421655700596219949871976053533121795134831731179013114079242349357242472522315162263819356389319288370503530584817328227559995761130241817330088854766600400127508843580262917144681419464684278299807936388112874990456407289116796621796554330940955604137019473387960051898348908512167820596949084921407575649664901971949085581084151233935623799809996817105144487821880708267535302078148003872955929164132716729332621319231378237747658577448325896206347436148007709067147786066292835649208218907993840858718650709294699787220193782489971160085399203406290024780384424100270964483519382118396951465696280192806526689690049348750265338628318778334869008865480952682933145290333319131016205247944101837734018002864325995954364845675987160760140827834008151902015665384253888561927297941197968086855714541661493255741147831845275690709375719883702317145753037546148892837804384085996056088428169671056869266124766456483653618564407064483594643214053473036052753969513325345301901400753288138963096063940693919601312981271885413640019505933633292246955526005606951974456698182105346061589714197096975164457266471744834712571186009962856174741444852808939975247917468274133589055808769188996048635998483536419170875466114011066379926322204223542185086722062152561416101679810259482584953381926668289556115409814187772365842273580683762492834415595761103285503523002794063386971006085558323429483333659505638836127029353564023316822530892787486905768323349707153571609645737596199719737608359651959513216987496562263357815300064736693368359501782794345572730253180207844438544166445209922188141969551772304155199693391161133976682972922746001931167080926623488566812498582487188297208722728837471541985972057542098039125118458732840254146274293461713005622818673371874963622323685118367230992059366203119314100131820935542572293311979946196307076553143625379755527331423308430851559913891599626233756102939793718012830128201741802628695002809839202430112259447766371953414107588155006466675297139706290008918036399654763607403410212189064541656877760617541172932312923209914107296172893533807764302236924329065228307055734346198865916211660840931881257720067801078588432192814222060457235912286262094815546327178044260788251655904750496464542427189438082645160871455606741268394043149679136334775037161971318731563879513718204950099489024932941372962710626266835574841223976767322516102444810449427888578139965539281382391523239583326936603923135777748295023020455552917561878322309523181414770617949889507425283072999692345746919088571464417448725984214724895073780783867603359643368119862956669612544224506656076253483979094023093172416064955914380194591059150128542348138419242062336884258428632431067235142604562041870700868956287499325654259314168367864511432279447681820796193826897447101858043362118231406066650639813681739471796174629055038228062400689260003311166087154819865021181625043091927779967676980492728908694191085863769795993149733981569389153026759740959542978262121916534462559435901483946101535151050490811390870588936737989549676931117412451393153406868230407695790808120194511833634507521291029188540678082677654232158567307339638250554005929469503463588066883168559710190111823027367435310299860885136807040888163800438900121749455559710175232047444959171518679287368904304775671286719316769791241595905962511840276627006533432133312943012948618974374490302059734378344309942422032992459175167210006143850149708708241919678270618386933842952629297472686158857864183668016452551607055080448808727695324633284317170146461165007549441225264480619329939781766037730615583706271615689403403703668528698809537407132826431660603371271654215853976754621184660859060084396149799866309523107507497873633318699412809357668739136501183615699953960693351549073894398779907206936020147708221848109993838428686946139441544213091535988263129132983926811929372985646113275812926345073642681116917202069951430054905357919279578121618041137457104343920195686544903108930258876037316496215143827542427274948274461582053121210388453842443798060827515284477880495205325148389476613688684071158532962079784974920243236604469825033364532153979308617824367058381056643753785549191649978443329517506378272076222534420902115263740097591668128108291326575384106169679141310916554417853528307232110856824810413658498973292882569872156599669586690933880342141830756595911791474290749387494666985963517185478240387875334887838605879886525357409057973133292364780687204802560519552844553201340311890664421158646208213579937869861040211812026603742839005243831631600666661903852375813737008140843611347391249615819526352983704781731732004242958498933357525504275092402845993698652628643465098054411742261778147040630189689713406224905270960424958511684647974469191525747280832002589846874806934641021955258423214971685277196730280858541440680571737079604374390825421902698259229482691930871706833950731398745098924984898962231883826550385108471442145724231946915292683745923257716037570872597320024750434785292496856709742156588897998164296811250551565827450308871343472220441457332090853368517070744109397605633315982225820861490761438875037052911695196327016251648303757019707475891619638140600079819946408742720257926090771692215667770685249214115684143133383216979107599314680873935618971077671642777996491951980042216530550271791338067038185735003550794819984269320552686656320769584482919973807241649719709574834766191871114600123265352289788574393223656875386981950782808280573566067206905179594368933088143588393905762596842363929237564097825446620296377274466809493604837276423175069646454381084847828456329623967949404280846023588609260671071627201300554354147216493590267879482312595319951524223962076025112527001201510624953240307146174523323138801973019252165565462436406020593175209424068182174005345722748549988756120439456910944683360552332422734180582664631188264103314142751044886514881438957405521183502827901540484259208625586163882185662308656489425638649430082173838847484614695797593656709875518308867557290597979680501625734045718462642415156344641728321867857521112960778992070406566893345230925769744498772846202456577866435833300193226940446161473824523445346109348544704470761881395162967207353520765444709849679630711601661097339717999766147289718273520282351147379860925181031278853803619777892472977368431764584172101881345353080411514647666441572727079318786832324421485166302826467606226539450599309649841640026455209324029046343943891992984085618016748180752941186656956469314809615323708914706839500436754521422785677397352807072216699683171639489611500542418564073992835045737430708025337777537991572884058072701465403856734864827898001209525483408213711492913171545421357660330225103054834853469070355969813954363575604522109335015007130555127309655247680656965371603898182804472817552858432066768751178139166916065486549618381560153491102153513466442880216656955621951741074955489305073153485756197987355588742176971420311052113259363518198252699590619500421811968447473012198490406595629904729062915160086872486852695878555058115296879790024035968935246502492594552401166279566183922189608873411765085117479751914759673295733024602288996105648581172265965517030543680955869054843778583893494927555872909720917609678211544767394260017607023350006495652216466320722845979096558208829549399285050636776399367943457707580766625782424456406282104433281660731076869894439726962999167233630195877913734814356313812109963849997698262329706683412173169289513348239507604364136152076033336485502012419353390160946852214644076959604390579298833333889881933714874745300166667163888547164686591231498564379261005974616710038447856815658631318386251630127387257938101383523950707736405913865936355352760482116320783802585737267475190899521760097879450382303080721887470591886160636031167409345332678303783389991916161007731310647855806296371265058793310523051870559540766744279980750555295098545383999075003110959246787540214814426956189154187870871902231034969188272445877316415684889107659919689066214279254082805597511110099099058261778627631550241973895293674430352883283225910594456599366553224888699816936863080237918668719841830355320202284602763814855729657881696071467977319652927149309855387243622522572616039483927352739020811816827057206964004167128195506327588279867957800743771562293817929360902762043708823469164758648862352282851062043151003828082294171880225021872765532963884921259335346238592507713904536041718770600936889580013199657170628314724121051394328167627396439836145285141236654493649873886276013272119064976569899652756593918373743136770630988822221833880942809023999033308995115080210087078169672853684512371726044329876702044561760794093410622613116394069832333896253332500024094643085444565669073989621666732789944934655040933287363316981866883349185964932044570916039837771465201683835780381928004198987533798731300025440722370034101353716536618793335749854911957353297716807966733896933924458945997514381199568955828053848562604273878120403688228769797816846762469731630809268644247555476804311612446396541485292568875761404328981263455512865546636440072205600106655091643483606234924978125981896379872099176040445876324208644909461255013689686077781198913955552690470352496424791938705852441460697337188029188287361521053075299658135260723372292311977900230253366297539997607224525374310823224283594078491247207076042841476976702619743873435789941960936139399419441148061625534262730498681286725741028714628003417477979195090870878043732457587418088183485325109049699395114871067934007340441770021423042861152230682584528137183833732181492438752823447652536330371172367728516189846479892158135650061142922426499514178121631678627721421509890835350617037127021226678955641457880499592530259079804559970334761580689869543393801024476834972328482015001434135532654407091096897600811490497304349418230797594643435222749667646416530845033105924838422605873383728747905219947737307425690907683361906321359348710828358421839153106552800128919614589081667609897943606413954994325559549347792301938379692853569118068360590945094718962180152586955870126035836235385516682109595387034842692882845415665205086932109017991243676566202512333601696907677025562058170012952196752363314860290712900474256789249838599660935283938617408955941426936169327285902449039506955250138112405805539384755209335219765597109722284453307250302629174034953173969696089251127042886655638514052438778181378477087020761819747684081348485086146003744574667506513729798847995454304314926979864349826999552002469745817538388156747894563224314311863941328746698432868464461875487270278810677862506148227013964287244513809121323050029223351064875312370641127436745727690158677287177386651008821790588939830127898824935287151268555251115856752137829885090807427242921904946722625421184489967633405635500319539091211816481069139106702098847442608648057161888785509855060028993667071125960676789462978175218633914363267150895067955027424836415300649659523765142627953915512015321294661282740337840995207129867665474154490193462492798964419132184387349492054755715931925440503518015729317719595019993129920173755240771851478546865846587909480238544957379577107929540067160029067864669242457078220140960226405737895501944232889311273488352982317655670102545276751524051784402708189954595228297445661831945193339966386737839013866023072370685922866083803765219598424042466832582090873759716804322208473786332803637236011066613090222261538815698223784372820070929394871000521768677935108855127810359892717964721252492445706724762209275938848311486983518782064117448329687824501670269782382896308397669351045129452047908107509783263098381743286859971237363066144824977992913018915415420355024609406246871963024469755862908566781253038734433953802801912302199244435706800166795244991511001901326973467250084060807809894943111613911432993608170653129287619098149810436013845216037613118291461749106196344000632664130082278625803222260927149756450489464225032410537552783173228898690072326570572430347325963827642988734136461698152254713262314001159224505704555984478182786682625709150736515796620113844552576487004539040327885629357056641648878966892779207096238201161554129702277575209126309186938697178448507215102777968972386775045014411616333534538041808952571703281237406792413724862140852658284145454900988943929001835100266125996207010363424403393658920351037269035674211904494100974255994574118317880524208204569490672110710279393764442744617675382794192068044349164414769593360777852424511504713003027796442076515959562550841081186153023842944414520356437332642626477354002899782327735217266318583386417504724567840470387700472135771533610631749291561818597080476604104024175290401626431717229961727330472689434242375907337869655458061230156750977996436912029839821749991488169825523074468435995574067567399106014399305910749422121661028820534926689866152396908204753011206131975394005149477949620321241125133068798718744341218541985363868015583565798006073097530302959319622368307785103782563266877618115297142351949656409734628193318154073068341840841976012885758376639866995945103718172600865074920678196807726637573423875214639597459398031994941573849155085682773324117579058807701586078012942788261261142780827194950809205514224011365465011875678139916799401477753062039905629569554897889085257443149800584324498234908105252318899408576382730145905689864054187524483787505481763986886760006876067960152433005591691500687755672971490782609147161385274053790517787190270537090104175353652684128977237603674057276485989212895220328979009959489249942675608448371438378629846916083184558502497594334493979715767414662793472110887084395006916684089643132834155797688398158735190707909325364173084291127858918923725015745944337443756523183715096737570502217949458373400027413396104005763545521608331801938312274982555483040878865267213775402562555102724888879942342435047679931213220423447564653843089295483213492446257986352849113807004646542093894678747996354539374257194465808751316737417369819387711228683462327285605747999122547681263856972299657374726734286466378486771276659074438900715543542409762400793073418266448028425037172706549188684140241554761416353689536949974613463728963024325828048967398913014513646916587666139597379408815519888757771622493291049151392551590631987248291275090371528552209065825898335984332584158134725961398843241926573468306283656943251344484048147825967149087309001224418769746004171996833200280647580259402932584533859174872580787964986574341319802701013552339985478076595887994030042423352848813962519887465892736372390060324460788622307816196670552573617143461197437778960813277248994862173124166719902304385086567856214742436914969609429482269357956934643360585356134589908168932229370821787561716741717432169935890085897752008052071627849355411541880906032547127391334139453607227775551008200690611095401758291101949276299737581610990321935509126810594532495412969168923569438252747561244370209296894054625502719532896121663237086407048607801278873245324989631366890998662235150848049806876771348009294123820026692976076776363350549094387672884441362165960919428411969891423290311639931028702130640235518147911613520331321242244700946429103796576949854682142543370276050318599411835406431258280549175726805099748643820332460645577553405801050608054398743718644872521486291757137689331140203255171075801905496918337316864416997742755261575833473020951045210360304665097125798581322043389581581735078848539150352374136302307065819045611745133278253938052312205710558877110282822818920111532400091087380971260442774823689247070885317260678480674333730732495120032713483867271566833889536041545342745229354353912671183885793461962223007704647598168319514853397918191887849184400068738783350016902549144346877753084632233785578359005128116746273883435035512967341766829262767822632478390049496421336818865991487419715501299139906726547033392411732971890426544161828586328439665830629799196520606663835625135091589141086426056088603659908854067804628861386088090329353273082128985160128495439292493831589420047235410679938909676108591584635182054504507115000976887061282815149269467224292139475579096167531532607370586943453805380320693409587084138581587002858565745020384003258408669966640832661047704848452475208934989525729790378034851220794484292335406555415023059628929014481192029721095166277585709317453942738486944465266709237114498831907285505786931869914155341807035196774964810140518504178859350287385798077942115161937187646698965483185526546211478278414063728603072276791893126104191073590742722017227863268649231844251840635470313584965010280711506555143454297984416743548726366694423934338496437549694526168445619924480117468145472219054981732301237050916687531001159449222609586190390062669827046466897702281451009334154589235172693097120744426580644788253705452205292004485332185597577540758901431977682512367254373594446885319893452467091020382924355258911842852414188202097715122629084551103225664276467834696046952046222478362327922722442636320984919026808635749297665307911157099652240365843537789303461398875259079645765688318748880617291721066047238470902224083898674095740525583483743392773185034469285269386567349202994240028262418563149252465587456031962589794488886558083073215206212209890383800566072310320658550610700756964164225225843611850203162263015892318246091918270575178717545408142897877131698258380287181314404370434255919998653643511308357373949319698318945087259268925132888899538797940110553430276289032350147734860000086488366355003518571352569362554005847784072843172625722513007992748711459322969948475205882277431320548010117061989894083913919488651347179028072299950834364247208985588641975280957557992490589229151150679690956964394706668684302816428850910405690791062646130236417187823418560419872492771522293741340608631492433793151230508041684781643426008737433791856684040044230952824789857075213766908235389396189332366556557920882581973652152701691723799871292997655443611088882711319501544486209982171257627733035873372948878475105873128148247998117781470624378158052259358961585428907728022346967675203572540297958557994732817223677583358057163014513571670805172936143806101646654447877000518331155273892098634915387907629662841251514527037692420675121631811074396365507360083703033176156473539649662636651132398070431374765695887456417372338648066300055698084969283913138499684244557457997740618841082880216543704817470143573321917930356543642786384513828498817546556524933982323100166997234969923164705983256286098150384952121355236204457960099073566938882645882586209691303238298546532703824779658464808136505944339772108646996607079471533223177239698318884979715588393851395956285542182642657638898696452524289955234319543893471030056492118715827896328956135907671095895727158758918950402440956884752709283495039357233582420776570389029510014245762697942337348316078772351247081283469438932816576844959259435988373522949158919989709577825658079451380153711940796908144702387767573372350679185950513678138314300059413340423944762623027381451721476008133388966334095996953785739561969823606995411236081438665962601831374721007966534437040019619053523959714039778879245960196272259517752507334637070452282967056492199007498532458884728105883880946329129539767578279591293884465322112743524376203533200462011535156140145355659058191402333491372959385153947612729974598381177793106471304831636297958689697613494306934828703266628469868047214198582578984995263993090353861088128731708032195824166233000296350058114116498589756104093056979623983386950340342495488763523832989911074752401798301881820946440801155669083350466051163718866663160353617755084907479530199716005629747020640147319154172172669731419503558245264045373544066043502000686709770198074494162540771324391409380714606578201563281493423500494402151114020006194097218268856345813713797636613565707536893523746733537103024750246165180899823432322178680577986248692986594037432373513366789283666746361467065349429590410433428666745569650666606021711975850724281192841488731900216747418192410966772897373708577334817005645123530876030050410487295162679926838207880609574161210805870164662240248568576908781692188679912735597817497279089505879083344069758023884245553223433102534551864469921070695583056565430683332396686883148122383010000246261906508581117228951013484455232765785405079226809585590509955231457231832280403284424306037626795105070719289859054803712467883570574857933440483841887295236454994911056368562426902241479199049852261562755578244806720790934679147104957589492407966190164950935584347219081839027430397686756486573713060919660600265917612756763531307800917118125726108448644477656759463005386749345799267676631083010813955286975691125734922949038377700854783718913067218907551606951984432860013397586225872832620206300213722924041750753370425697697281205047898101373467574563385646139316561124339373123952665163742937894095475547291772935461263537222491523558902721168651836241323171860100656906467631970700261486493019240007561853186255714655997137872057297355472863221525266540805496961011672805702348711289572278217203178877206158656026551813479082060629265637443544475015876406481284191416556852957982892136161931723126683928245905867709614437152151282427851333925560953299040126300134151739655346392368502667661704759187722675952017939723863350204958441858140303236784481346258507481625387171021502065445939082627267350600701234614088189027013118860356405165829074203954274415050095304423376570255959015863244668969006367116653004643841811878437076209218033405845036526305207672528800125993444905635797009588966318926192962186237031615127455198969149015696188549248049040964497966633936781207014170880732718069769261973675167394523814307598222634395109422757508765222701760059757473786018502273479673895612987076060460545328396136079214460792644328125248500218817022027460463859263206217673138082832602700048674048784848217825672170939486032350926071128860415433472952360521874933352467543961284064266504535904309620603424151351706446412048763692772558558508248684945727304005623443178568594914783623234700736687128422506905633536252136485452519641844719158561438873176420979438729807748572230595337285641774707645601865188520382336048116366180709951711555647669123957564218732426077698747614177078320049575633771265291169647823705144399931043606004369584944956316482698254407341213057447627892749879108290123786881562592557872950017067633424695384816390548830222251814908328980260458151731384946017575601058676092266328680515632812897721895438353936956954379999480163544489734599875929795261469165822788750970106099658750259902270706417295046736239853770178129032099630947925374157446872612883595960693632064889364272193683561213341291953174335686738070975929202336848509271985035666388731113106547546824691005610069481257986770294572215928077451378342152323007221921682772465852934063450714924449409537064969033395919720649224110330280476736002677702122600653724829564341421236486271137274456913683488100166002844866745166841319124504625050367879044789439998982384604343883816091906872211817313231572109448508430489419066003852782163146317264400854164794801295472863567155723183928930802370008354755366195994479136452199662449473226794723870731451034761015640574235527260893774447694425703892723467766393530278661843246865161417783210218362852942377008084827835769993900914539714320770473904224522999855858460883508702104417520124281326384744921482214167892735089253056210360906247611247972622656170638093802621759817371841814658266195827657497631746391667561184687133878548011796517535973162716758930666125199662831128776846385676239676066425733610712241592128291271781775144682970475056612127604795210965439777122627530345597710618583175342258545764728447328208241574436633736776487824037120493387815744547504804456226388411025889889219462772312153728294660118312798612395809918823414257640930448307207971796631546411246587061749964389719405798189868047848061288074566631286676144728368078917228057519444445804126601759733710490441606724421414506900563136754981208021852263718335433212304660621472983056097284836650724247589387984826740339298387564921345269165755019623163033030585326588991758221460710964482055600459934645902397398109246800668497310426166187085733374015816611646395405866545746377038194235579685967800637867028088175265768663586190706170707447914836031903220224881031176205374011401189979639869850295202038426346250733351254345001637287318338505863167610797557823760640652352746861014102038787953693930506848124039301085199496668351844280137146692688062954680063592794484549139340900143207986139961270012523616774933179599383066939142954052334713213078538568082431398430011402581593181638962591917179523653733180369979026845214582120701002603212297966090262730142116042426345522830743526714780835856491406963021226246536904684193704130307823139714170947860563774549460462052323830421803148515379911659431174862953907533994267869459886562530338602937911472357571106302399736674541005309093440821406062824649487789278467005845099800383098278943260890657020181534629961124009129224455158506133760959466373298070965940336051543882523948539041646087093927591934617591859783284965257548190628522587183608653825620610732699379740745121212844213219020605542765619635803147965827470757014021291825297493157433348372654411038600043549118722535906668496920719061221939632727547679886245112168327147229840028884435579052125705571428880208954659486686689814289031417719111577091083110267103580299798280184579787781900521542182525559663745537028708182038899350807545953188204803615563105879048325704062853996553546080221487544458028071321090211327128555640960165754476794926822945960144529959370919761784771641247213315830759413964075870526910051818512976547551945867450173715225234510691824625145625522930743707941212431002888915870785994382141095320691979262324929768314070717219473188820069764123796139635941865736679398333673992459649514827696148392196691833560402419054538483300799129071867625178512818547234706376952189710042329418495487035140378789546521924773192672118502721461525932159981416643875170213813134426020342284862404269530020150327856570643947068954131786649651274412493671009667021507976024361261463174715198276799922228023133213855047001267238072716091511394200378054101817858575258872558706036948572786453925781311351941880059350645441969418665782052233246404277225523197824673811970310873322810780744093488050997107728736583516449834374352770628175154773707497376551064014844650298797912026817108986164690329053718613601818160561285997157181530538510056960448314479360219033362125869579621491656579500806630127737382245136296137491361256564676198470116502050439996679263414568374834034073023563405374600347150179998163653078026846435778873462204399559247220286977613697595968493044094379092819650270558645581657616222693145104924383129968686956261995487116270638307022484609950696045794680168172913328946416445123448822620014625597994226462328673534088772449542638574059151186770974329519797112391933632834898237973939105415035902774708493439753073972076495273684147400361769456196701084815101115163794996533750109242594029226774516148586197933607133973867613512392438237495531644918048066538349324584322138098521125372609485974576256803806293413487466216863364844581101092724480580151609991465953251416572910120180690609980215477549284536385134345260630794909990504407360591848317715997832682946746266234746328785550185584309582023468526676995304296397760779387227926996732809259887516796163046589222885671592271161958028576024905542915802826633125562204090377022375916752685323017547745758143840401361370825348043981394801143849292694903732393469476520280330241770421343563150314245891863534807560555448629823069039168397128199288156831820390121306141652592996922117711994105961592589180763912157011327887871032992161099787171851362817031297029173162321858270545681221602449622073090462877878671651660716627700557331506494446276362130977630604376452845152003084231592867102816036998505410939963559610853368054407145954404786500565172208396286533748902627489231688376728935021927373531627635048303955220570186127014233945084421206346962237859200001877759249408860153312369930916600589307393550073991242736672600454185914122219927350722855114808666936331355201957752194797607185472919900832105452958990368993636190194450580046499609848315188160503223297296713331759457208712902616366573543931564988193549997381809360780652273501910655350520125952783162769763972901506991896258134153051417332068773224157812182916583698224303162525315111933848221185859086842614980640873115812861389409152950214491254768817164391921604038724668246885353952636163879275197330384935860592677531249732425764516293891419887274646139888872373395896700468187709360465542501364394063656785809038835435369418885421268448645778758268139451213895570290911174949254593970149862912683936425668940549244793605303547318933600859770540006038037096085849414849589221011678436176396233925572881694394011037825875251833086756829180276538355612000977038531230969017512828548582260459597056788523131953430396914483392337803421112714243805738298178415298291508284494373254486165833525355921007773119352851334102231450470678273099678292559811249675209215010682403154782103594866857241143688487932616592433603629430961486537767405496476450653197545390507493724301849735486583019050391298135813412355532311276591439585345328300899182837370000658972861352549464152362768764726268196984602789267620587527467205475257507933109416530449539352005332619040256443774869698709783344455068288117586816058256564688691172636988943220409579787977870936112523425592576020324962933804370494551208135423606079037794985014756119409814714080189308140526299641562743865437176377657194194167002095825934325880449025194956141820306370709519417541019577074244186381679816385474643141708216962221406709588929762053381284475202188934209077855959888636541537054683996908456838636884622754420044927867192366698881518329889613709047711465675838129969797965870542075910929580766904506199491452499714733928603705560789086567309410914505577696700329037772213080913843403255992012545207033578275033044824299479632389108290579796312858000045368376353157272936402013561651824723456953968462308971686885233841383174838111646296484079159597175183263821749095714766594732615223810873256685862935940165025991100810359529560576746158591690628696382755951307039524343814973772271062978507520357039580110297677593889261920954729933128330554936233449929026918638187077001013583051131558742600006589496353271408309957597604580261916073518034738898761061066976726619731976074891628329628596080712821448546818454430540185698142852303058389541846531086229690980325921858416774085221594252647417143074943223146375477224420940082949537251095381026744513852327583356685002966162731076210697295634262693453958630117426333125041518452635823023664726718608992269208937663908896445311176174774593301133946383903492501397424180143519249464251639220778158753360135022176435163688994777005868406188212593119395884529104569077387264007857974224545875783000914144937476605435507626098305048532998656023735340744344601624433603733773383521936955790693872950821902219764047748950321013756569671026038651560849303513460589540449871067474142439414129401943681112303545709963722251704916385363395108613286199008831660975670241808450459689760877229205204675841496857041790116135049632462453326563828259982705109162700311303758383089505333722839724157925690776854944070071687735883958175987283976279617786328363321193922271109148385576399056326652272459767707770486367346997691836303403854259964451234989459201615189673601339395158521229145999380089496091718283142204936232856636165089026464562518029051105434267928882048891699599173755752334316412718801947934101440034432566749707679881708224880613069996284085860018862109776982863648075616698858402019282043978374559200181938950528172631721605761795378940677824488664006243909077362781080218048286900290224452788341092275655292912435758165050532264609227234678941632453694984913030067928986313410760437089992140414963152960696224785237869798169102324098685172704951048814118474525283896918425786588033794881634893432010410773851115170281176431622306885782160611260404558207755066043403012555693538542310936824879863392356730827761342469498545482500224284556272006306891432023837716185418356972671854783586111488997537504240449394503723499739318454386588532870068485208741610305298984884715876452165147934816757898431688329557309991720142455844798787046508226678209559388244093390232973674903346807703186426290038361601919017853949839851404216710270577086651322960883055395010353549031276550481328968699442160586781589342713894763834735613256958141635301313482119168484968581616376365377045634211072705042976873549408825574966898845591244084328964800775364814068929752036352330772782916076790076553694449404983947838302217416484577615971473514074731774794147476377272301550177217068183098497854049338202032272714927753394182810097779366125526675781589042136290858468075025145595930186479618035471628938500213315602011783782673615883385841604368705173808983776208063007936644180172611125595183636154201015304624044322796272932969111920969323579428855782816924768380153489624831580413476499011056579737106060699371777886130171187880783534313973244477465105774879676347100193714917140976728232932436612473134636520458190958892012278718255099914262209248403195489733987773071045978381031404130276535156687220022196758574601218029951240943806219144952837550654850623595410231579214247470085258435107823796116972296112611803718671573169574141497723636241083385063486906289284218348290372498311518637106658494647805733019003378915859863142327500334434794401702278543388480451806993299889903624972960270638271509856839719739800972916400424227118858763237998490814639930064924147428720845320218237330364031931336052669307270498641282859272573424974561586611908687447675122235912939540434707861721224894705091189964998242272538673387574876326088661133646492588493812838025128096389417335506306068404489466737752684928234109696246120386899774057922528338950722165762200475193959040033821900322867226097657238677351873039341805569899478514045938166478764286783666040953335612452101017449383689825398026721658669747026699653617201105994959655448625236652383545603915051679095552071042979116307783892698777669316971157935345121483266238051212779558009407758338558727881505512681839038693707896345639737088269065904338779003240956816821846417658617957383125532424222226480985032957248409632906502497570959632001637376203280420320365030027986241930853735824692188567901060335513122312194949859442305341985717406927669084889180806905761490149265518479717291557607109651358521335062373616501044687629989878640456058665195664202316626743787683664636162831143407914901004678425593572023527224544860491085392207355874783489711176004508660237532722460381839992079229094222709317236525386547853743436863886229940500761411394577645604170871497803452990226076805884458704742650745753702216290010514334629300444189752578962975061538607279131397917684624904254216417116278055908558786349119030109299444611353298552641844248282788667713652409373761979266065390793194106411094964268585409983154222184849149375807979138030072361555084257001963603216220444824790350341711863657131996863322271016419441268755681053118025283435334053382886825503778867982203721856651054566779287296838332911382184907232467227413537364175336944337440106386088568678375645546143246169006840420001717397178846237002648754470101542371266316490521295841969399705106356507654517342097562808950705285882783937459761071052355619065511574932104412244096645016408452336741735458881372754615355235642040221823577684120985004076421944211996929443732654721133951422414509172822848325618800446320716070416562714417573730364416004725569794502457490929517261185267147429264605500451650680824704360113867565971649763376254135703210836387192060501195255110887406728861312632317344519281430745530384238802558197297031016912330235991838637494254391328223662139860547222465318557720191121607053123227550674352272888901923901833639637262122111886329640708686168173690702730521413704084887525701306644260739563070331136663084713453434341758285518764153254206276090060842905960087895183230250645963407631312275349615071449493318692435159137457136463067023591969456903528967021254297108255536928186407208215120397288795402144491156697756339617320308749059443748092829955352130542177929018123479936901052597003905516657519115379346861096269720222275390723042957140040436942372093844827376471581251844930338558272704670401663378915704276417100729671854985349757899640475345400297609445204237144466720226902281950514160439583689755404830647071629851575595027610699938273490860957524408967246465788088019623428085428474762452990755469661484077474386720697246187535482937568270439936491678802166335358627702278682996969935375386787924100477128520711380203630511252849821963911534574022653918502458217486569146606117845121871600549569215921627194348940789112028959631945870102103537380811840891903886904258645846294352154446663346250298106327313416040977181027983961153741498907269330333346694552556169593575465607764898226945082383041134923231190141873294031738374908481719703389697372242228576984435306784656878367215305347237867724917859694829242200836811320365742471936970571638860488100074426674913392360753113708843787421531215296678932994354504814942904068089302764841993151189614196509184984395830254878174031557841970416244283483126796661193968099408239766240587590631212538806236732180142707291862871574339595117192690210710117151896225392734057404137115893412153104143177138158908326077730478598694255595730202278253417045376916523830822828131044981307897031056282544272389035032870870339986823183030972528586396448958597178752696876131752598051554786930661660693349852723774354958078754406158874220141210892104264177405752165233369268546004244415690003358766719072146868997218168835234896833469892736136932262504526734840792500531378932726003047189669559139428031882843257941042769312149502116195545607096953097488713182686044149591687408818016260064082121757063041325490328592949139858291067063100906968178525514439379222918604402351610841048893867353309323534355163760356029996954351743565837730414204848710601555559912546056892563986345430110133704252838791885102351293185178557264454288182306267037997111364611445751559827703126995687634553209165711799099277039355873588503994134734871810630106664822366454229540481473204477287984404940818330041885205072234277993152978135016335005994830788867899004348820565505658521686593154024785700965318211119876902216074704417448011949584832247938545241062288239087567408597140755720035623642267343961133645531628157207981648898436273172732516002387149768594848202658859073721800225748581937332134957626472246955950352514968746447787007854784844566391273597231777767592300091780475238665787404414443052432868891332962284407216990676143719414834265292490922964057404267638378936095653346916781375548694096940290914012796155908915572496546437187667287664768353491475102851042609246299214410987704301533570052296377875482609349913081676088465153810845091747003153855583850351657167027793114611763918762281893238429931267188520883661288984654490393307252773214853414755592331647977887464596145464251007723211815271575797176627795372147291248978129346165756337991440886859508822054145188728998153542014864717486507383595074128387238261051253515054806359133206634908563509477105656024974363707129623146532753778850262157546676276987923488326035855073659421476919289238158803358523000881268256181398853698992390190133877822499626220998746513646575068675277691820188374954258357585937283514066274301911713415135738877442609185274439450231621893440401989107121361648219711098157424218355759922837503035631070197765712025365361753518063528215235159003140774953899588192858698375476281408491081174648608774073437855568411576009818650213152104519511433056740146643399992381794064100390970413351710642337558952283432647907195356615157347449430032208890893798307247400815514225537260933248309198319727391547985921397415520557410360758778194883469151186472501691234939252589845274284060861927408356893653768058620101189849580960418527868265925158903004989986696967299221117896835250886422737815217435414592477831463221797615621288565020921752461351680907392115424654586761810503598510746071691247619228952300413761052430861699250757364190863740226713269019133429103738862329040817634968828461063839557358255404106294102789371993922956100719151778555198175136986723699724089888876908274357874516915941976468624518016497762887749358185394684099316303719173635129237288676705429242817582900860330516509361741269103544838400498717020027684851421289523878826993343658232380982203342417986077319055272688382581118604103911466675656806849538301432350130253571443463961089310623191085538267149694231662544676327877400090765633362791602008226816496468267919347935192770159006355007083141091320115513177365374361414240790312954236428611159910708925267730690881243645146982077720777128476601234043686720199456130383149048651607042516580669644611196786456625859734578917837070415636056556824812012657488083820462635033664177962745040132755377716566608219950363026818764194843184805805018585408395525203375974967472113827142135357316221920149857443458962768060755796221792818273759426977850090732734550963684494334154490520570412805209281726434690568702086749969421408436232307553272861455271202296167316947724512691972733462514630616753018095005106340239480697122407877121422536279189887937754335162638254371486502219371180204237188219922267044445062707373180810004206478024330475402172774482389409513829287585978658449966476232044864914052606158442970023723791190854631209709538817131844315958502822539224550265833317723092244583509616998010369706144742393329793282932665777154125900563726730389392429194185539921327569284684040746714009505400770460981123588408760335190881328177646107570866839151343659861518734720131976731495242127944231116191563160826296066069236993981291321931568275206792152615134005218010145953514294075264592151988047904009843090138701574077143229878853711150829645770237483624233991186790365982819999095913475919833044272250660886006727998698460627453502803423709201640119989027163645282660153590045792339469979850736612287681564095509482251138254691168214885315064578870932970293815061643050307534805311555434615252712758894134148666398422901172309773433407371278835051725518298628888808403196500787068495098078192369414657860682355442913343410188501557699578950974361901565267662168501269912821359095585979402796708811503693579518624560649132340018355901242830949721697979202288336000131023401867292638228786242582644217442004793028099348039775822694033459789722122057279195559288179971882741104540083176165049545927452925028953520152985991781099301894627444578525966338687479302462495410638235567081419050324507745915712269039567863662222297067411931367137158650252367497208944731449929277804554696859683894872175278359782390482952526084877917910291009729628418807379224465440634180909333202216325467328199710869462446968935265544475226781900186150543104213484179487035965519950240211165771409782716651037982961686357746437101394840075423432284497394368689843190432304247806489775992500702960725921139067801683869800103722167138160068130847010500195396874057247903143676114439850610745539434117246222597414861236127463901700873569917703740498150617057809388843478761031820137356748188424549200432195197033890242706613512561651482961462445302343812095962823665579672106829104942067227540644116488717097769404408072212298930828354191816416415277194523158655243074046944117253469035926581469967716013966318873388960881753809492892848739557254785231131629532583057195265139786553840933144689285362348830125606706882890664457436599128516179439496456452675008253770762052457247949578045572622057902619776041562168587840910623761337427142777000247417653273385886957409518666577716028766436064381437384973188909023607143528146882246821871368832278935690512815631779236964703098536016060305086555861417623474644026533949370516915057118260340506608523806432798674587973676311518211679935453021539645017586439212243527299377199454127126215846979031409650888698532429944542589925575654028417045192904458115527677043692875869230360159662999584540611887219397638448420335862949577386395730998183871877253003288460909268086796155969740631979552040161766364656300761642573385974940136972481244446715336840183857790798030846074006836140700415518954712054391869582632077008283738205381863294703037645580970778806025312169660426462653350961016935642481611544061507582165022883628505363752058349657962204567436225867736145928164268728031175023192935404459082300584079168779056871837802620608707888461975695532543456415395459461788196130576048237559087462702735711795471420884550299247277610185867941098676157192524877555632974304518991272020067047905109249740478516897478914518656020318710490295320986051667141989316220931304757505179965876243753734942858572515583054323682878811270176277578070353364542606887095398257417801059985373290279705107110813169488135027417165841610675779185659948192596170730174416960601989094357878256007996752934570162278058823708041746823464801165898531499512249299509633466516133694591106866875880661916427309105624627868234951520338011348891228909261900209377429876540407645426618538907625039965377282772394756692221547984178735493376096994764673266741647976083396895439093302497937621196252631882956601731913098393113118677878515890925343999963342627530854543065005925904718426689964775422744234079282520712664386960867310306450732038676135511673233635856030418049650851955131256952559573032601764143306760952114991661277349415983044483238558881278775334186943738516721048469782011809310482435273122168770090275193065091138216539669529588380657198324340290095220715152568730921837070536858225779729271459852525807407523870083191342879397466195921882093793493420536747991849956174253318040670170538096581705275250888926086636534158492550948851292240525049162635586349228769780592747085650718049883179183651237582396124714626324154264259323406972737335262383016279647907583760294394514188363605546485570679915126201575685742857682380143304357488791796791140274516759834018865370964590295350101018696083085537319577437023413926831252476133790013485161925921843402820366643374765889745341015068979799716836639514988152925706091665290041903835835276417552197564928751684911145063264861510927138748910656078400737701302243642596438638517189406972990470040612408640739791614503533947726647373211926817281785934104723859152034834745039099972151524749179167346764741136537314421417602248983845037088330678011499929280527714770136609172108820441536645468164333331035445419800687851065064565387147446941455366640429322964990952405865264951040421295473417399853193350959589592344294515016985153560244971721087872933831150687814970442847840724493457700979573734074946923496108728492142542326938248451825275336928092125206012257581397946859784600331429178423485685231695504325173507617745150212488248196616373568370471509523917352436789295791408606351344120631362018261316472908127707104221041293183205751845512080829096514139901896631659705665428795584960370029634380004454654619792229750315406143257844876722388297939302301371155654232260721645146071164480557330764562687437740115139047993370905768942494178710111410225412041874929926299446118603348025100176462922987105469736622163952761345620684236002225258964785362754137657456296349580307391366012914899095651724658564806822677164232594383422638321759441229983765994666708003024073912730041528136660731634652497793135300269520760876154252574410317469902257317315413352119592773184998185623006026319158917136726618247555252325417544540542370726343034113909928328036461114522471515472876465121885657922906021266728028162099416464664594618465630067891606649348679649124971322685068110313292061152879662045664189046975997672541485545283696612046504129057479738599581905367095690676500281928144640311913137569600286521623636107487318814992255249821899817715349614161573111084653124607346300374084760898126484636471795185537573145508971174851211777707501192741428812729088216312656729837941011962514336753067982242871514193818102095032224476169004176158435439317680172327822040564634383539168570646805517415944637620256770975553100211505915438382092569607957414323362067494806283615753495294186300454121866388116627595560585532417663754335890768100455297157415943625884052105866838610722226839762369963719611272562787572892855090471102174454581264966396996060644434459594408036258861306357470214682570163973192401166048317500994491610997610409159174270270833857400518157842601540453634282156024926205343713113813511057192739611060045166938029471306069997167670945144582176712833716544846517480720531415620765989447681079912195003364407161486213129815733562669818346336891827171241311763800594082755686273380429981059553675784694460120522102399179748280790650564255561309845452973613028123834107605896721351626261598893977117170403867450478739396619929735757181980063791632497770128171020104519536030145260352014241235642893171648847880543098842415226777169827734186220572103912506042038587856403746046062104599445739817923824037549948793030150492550946507327196228115304012614372135585529095477512072105288868245969843626255644598625977191256751690058167653685347588489794025461905852241255531272187575726572576291189676306818426526223965161401227098367802571694466407201108113771165415430118197277310810695481149150858609244373364867040168661290258018153130889926457444269164492567667423504306235523974250423312905113947182860297327149816266916556221724767126820507614074859576450254409284454170060521968041295589782141435004896450378689563925057536010358402436391618681189773603659308801230061069178700164126349991288994255870359810485134763443353753455408195825390146717445526342601165933560952428159256432096230013830221580652739791735908334684826071060165489911679963973488183426544306437004140564630138205193080488372355412638644351889875529744999380395669485862760601106913026436819360703247230433566808115710790550818319928512859362184275410684120361364524062923709133533227176405346860667605563494479088257446088864526839271337097044928285867306011715326401828792494695201992847860824011248249541229261613422960870659631432189292814527323307687493036462009021603427948658835068475810159533115485910295946504012104968289323001448933955839494809759066974544535659233454817390607008304583851469932123878990781587813508045974757862580945892355661277645880169022234989114025236921140179642581966163133760126659716955030552157296277249250790906608190648801287799280356323390270532728371691492372800276535433397787340339484328155977310147871726184273039642555663557578384669681929177492422098706043297958260616648884230304122027062047143652164895280604888914760628974140673051029441329850894439572470114886550284907282226001497386252525267686311031055222542716226834925799571061040127841078790413902162121586670220322012110465284445459807692486982952962234461834480668846577103230260305885821942841389974779633654377761888774051404794566220034341619553066520630664599354034608139566486512395938325137075138059678109143043785681881450628395532982850456607633085831263813083277403248916708437881829084572192223950177446987852900959250383423819080029796937998717559081008635823584370697171465352064567253233093937376827791946972368307497120606619049112457524596620568133399202372457602743855448205769872837884789543976043822312672102785906402681657000933213465307461395507955405998615369787847857572823700891017467588926536405002094757515830569287305733448195190735505500879528540806656048688484037900318360860521507272639571952429601746409321107732533460244398007270049533220321076265464355613439097259180909919023489635850536036650904562171618008690843726866914357074122917626120561563380874972507696901261446137450581190874951125791092152915452469713967731130821749983270575832008061139698179008215729424999913379092440571676652026381292543284249891658217000865312342590175793948034931574400645586122148893224030410642135746158905462981718512742559401646932012403706734583742969945148294758942607533404369398343875035153092496634394216648529577852628626880605757593090215914890243036875929962781426994650438446106764231386431488256307937553175216261827989825234330572673789623494484262520316127254551014323482104372402170427457711683936694589006495548675844012664180202152641577169510580845191855649841541083315980172083960154015603299629869271848518905812087767190007676068852009343345765543951348674873152173259532433297255563181686424878785322454195756223085563398348925967467663553791656418056893753479816954145683124995613516488952786619522324276352126818641723514978028241628563187470213615589596981112612118849025530763164654662257155322828293725102737994346785328034895916424979322083410176516036285608749602454014641635766992506061965481107587379141354945369585381662135266607777917112832616686680199266792742234186613975161464197622242098898527423985243348359018428077569852523585117454334789100910931817279022077365555344161855069829253750288545478891518471871910127256251632565086401291023019757095696074490509392496732597406995157208860448836043434183468845690561907805831586055059197606563847652535404235627697225028976953225986182065142915159829391310099574077607478724422674234806327522849671227051954602247709765894985239829988763887499039550775320566833995880559508898697165346188141677073532934255542679972259131520212433886188324078301413710242556051701026202584920573461234294384380730349181001244093954729513917378667792053483570140184143892958124527111932173460178135524911271299924706606012662301128098556428960957825027998322051809304101144714819777666338578833908418820205448336745424185116968499614401521347572537687932672575668385989752450185121644921564446390644985219126751666046963278566585513589986354345782538743512043399689054595152905161273068563051247621536401875244811604406996302705979856643237282457486058676559972462731981948585445659958952749589211017317930697353781096637912055657023251330756934312057692516926629852366518796526003723335174567243118007512573300380317930794636631633638716648291493790229329594381670573833325088236621221562808311447321468276349463956957010552836218323461301656169645634134502088639281861768576330801810775939739820097507512191177631592286794816718209639273617207454834417801803945045177649394131140183451535008501370360907101001078561255007331852109061887964375999237786407359344298972680059758109540450425012765364908041836496632693765850426787252298476849713013693529335602036179483408673509579909783842050680069112859490596202355933350768821173114171780010778477898016937344793735183722314296853834420101444139401112112294758430617874588032985467321023943242357251851524051507148557886428460291365599389947084597862150479945647754645153221008380673625832546910295112678732225261499008980992304888777652235284259494536161730962179405729638818163231109908896366340433192052979632067018014201465572812503164175837211708844431208437073111674512115909538811218916172829823447144119580435943901263809927414945607322920645099811664860279600631881721163542747436612265793535094788870598058158479196650839216921353377419437864887132991929801775946773488716678794861241203086876104303184711066996297816964349917891283511102760540405747427921528180256730924978327661904226498992481904173554629327330450955284117498187947661094302425174639109180949950768006769905109440582767807131097202201146433427023319518728805704909124325795866650821933515824915666650606830567800637798813537588809948596201350262193957505734151499816880511174142031296339173344309920773822233327082105376559822299729259990498135566620732657405456439111169193990076351770129372542761931287699716749761143508037070218240012757009120246995098417017796368052135810119823548168079809793867191520845678285789565512898816631604944531337041713700174953251262681061845866066008635725289581531464023757543965940360778115005212405094319485467629310209746822865602835569285865050940762687790116342739313900472012704171023378156512805852370211255952144327681531340134385670415451498612167062724802886169928172257492948623584611396684915356946215757449917879907568382858557376713519692897816673723041215101843269369007921422691438887568294011144222962027711029870946267102268860814781238580965692709004937644855415247002031730087074744990777277969924309027296745184052091602515834912458445141537746480196080347949133767805674776036631860787537974115767875085511792602260609648408616349308302872578609184203757041249843154147616245089979224650408957583834018432982666193842822063695828393442072482331381056345063554834778242373284892667583547045917753639242169824867469548841268574632762590372335898235770711168667730878329934132769124202445164071115143246122022821572817623000698185395176810014101364552656416289083475331327172491516530964449107195066194072580325619505312368240557192413194996156981183895773096263965428464591590825189703682360750677746093670253048867909170967848083973385215092060880273039648940104175067482398914214956634066180306343008631402663683400784563703077365008742463792774194632019642728993732974600127041375858226756655071205363771436011740030282631126554167004529232794605724206485516654221892416492580725646871613507224997412414507762628914307320337702144938533026244076617063702423062868855451866980585427367647602026339115831832688753311816655340294640058722845516751742005916889176525536342979203061243157294116761049108484576462280297413531951979215383576692390122630192491486697243524604308202914471486379240645792383256696227028136052128433506948321495764913843089341992647498737441754642488238264068196992141799930740194872198527046466223853398790415825508288577531755662192014170594603897268653854366648089465434257972944328224749320019701507130519219715197216244963786740701706674150705555578794996538057538358909762399255443583777548218314463227544951516347281398008943331720699384639439193564559510286791573899381677860748797333229447614016966817443694923236115616725018243701127724905650325538997220331138810787480188424326719480515450414769652029494727117507062737929152592715936045806433235720196645933069899657937418925989297406296240414812350352563964214443834393414924675613569864500053334090808969381858151108521353285985242161437699861030335116663147452136806753099195748448574655385492117150011219887716723387862654290739097891342113801707781239772179850920350085953237801902993173078274107034450908688871584994043620823344196192945098301771699484659263495365487959921369128547157921381888061504519080970749565746389999633013674128846606605649980818151367715108602172446625525269835584318694716253347727887092750684399504304185137312419888514119977444599260352383278019611108911379187128812283830202745743165539081636982833112189783885285735136301943860290178090842261758339462599099484350416201675197847874270060246317312052545623024787069662367295902876381880076637894655028377123494891185487267065955904294814427532189232175654767256494625732811361643707622324229094797194645545358323477512973500570003097357465460214782153664647153157958991153245206394386373217492771514404526830407868056318635347347238231497960866268710569402282846647316796855180517562361113366137429667039727470042410933855682620347326697589714542393911760365302327477289435287357246419775020463791208228901410195528953629588459266623525603269757088917357548006744603860640892394667763136996729176526899583234036706667287639793974988329961254970951930145257583087778619596933405526835931259820733473965732613616398773553074685881173095651075187217930287000975836072130618662187773394773170951276609369357549476129373404739335944604857425148023198598748987092328276382428537417067117371610654076962691838562548620170675470297119443541809462845029263995644684786029748828838929426482402506993305282965502905117913517834184531138249878517503562836991498376997163108822679437134328777270502452079860679696791486170727338365971419181798479983227009748340306202535869012165963013585011471675404143224037094794842502098058790505523346906386486714806963608864325549221597452401940266200917111397142587347782584679832238645293340402761344397822259244017650063255098478044854052299241333383275815458646640393647306767358777021404154267985868511599669895264751808151310727001835961747858555396808503146232926067405906294300423768956618499989464938417368381144723185018057752412521976111757421838687469833237821108104596140078225347583217587575718620501772834442267825005014559193905672567853766169717631468329498038635003981377543994880390735895570451337600065220514983099526298871183111270083353156210417280352680685325123963463639859753266280875098663715202911173966847714557997231519311220554184773650868296172750548530558489812946088553551460055817021800167193932364297789005587913302429387949778256797526505774035253912959309560251782312269809777871486146519915191711547287887176709721598097461298151796210165317707799815872235954972400697133581258974630788822110563738381928913796379561866404984349026144492550848188583064488836130359468434011970242125492831300969237808365924003566249807999614390077484197192961806780565094154795365978878728867139599504968034166141657835599413653808994543249760863205653024414349164178610016004588792418017414742025745145715851727760905218296763635364789515274409237566261034515115122151668373160328239585920050874672617670750466883945386046970138475500401860895637721354514710043090095469066566064133729487282203516230358716877705713189765211267677178235248526283859566212408136470107609841975077380564654686085861328388036529213918671187258783766068164831874968641951676013316656311587271133532255241325534550151643478693390244539877341462970529883735229412279022209754819476346578708150921481555894616801358461378761619133032593028336978639129396144164149850757928626982254840681143349175815456984224611999166187419315346088265060674269485672706292287692837500553540303239645339629497630605913707261651136635968451572917017065457563022846806116779305036993945312116670263381892321913554927667341995499666477648877196488793293906781827911397620047052445231365992404580751254912362823201272961165967611345986081761269706453046584840292267327514829594762981368231931554221158103630277213248490215072185758635402424007429142026107115365527553514007753282523016469893951929061089396504285927062030517522819982141670970269867361939114566104712163237198896713556993911462798050709297309910440145948403252015742237226261908717913997885468823076994554352706817581353907094520461677897106566337311647714836059661910679790080151304681347823754168505018574061623052477551747686992349853036792512105592978243856653031138356375079235125921163611071335265570392742498261876087258077521484476484010781872125315632862998987256396856908858169682318428331656611413860911395576351487099206801679876367349314976796894353265646521849192505828078932553521635570907548565378563481905234751590512199108100821290218491924705599042947631773800144264178007722888343137900771541065889157399946149113050067316417124490335508622381402896602305190124836202910006008484841260541533889515061208601417273545820306620259742314695890059395355492063787605260867022813871779782659486561128814315563609832891979517753737969060479260450938738713900867366594023601488107592864635376111024697970071877926114707272846769907241858693750403957053137135889300344363247097752515136168978241116731549120590204482858528346276887309269505359953471455158307793082815648808740528418537915517721973133830441702377423689881040546433821588959640083138665676445783923792265948616883170265923971915599413077647759764035511244746857708270968471468471112327364712405447972251923475776257585469131977345079558352970159783362731908509365194343066669391808257553167530568806236968279638015504961470916526882415008074621288929689025928550467043744725608986209412079485306405524159456167591330064734573354979261943454886484098483309054364731249989452156674539236075331355246171213721458673708228879136290256539763569505681009592643258362098759484114484211003067270279355282660136995516035517032138396966361539307201789248621291399632170109861926130956150882549465531716157585302164647091698290070738318397151581239122992409534118030840856164746858600016376536608977883336782093853361604314474487766641459227911952560993930433458118189560357140838616902899002050650217108491188617491734546390574098822983416714589540731379735467103602577823659626421812699288283802901760887079665991690131892009320982148964137996106616178984491944750125544756187127998205675797856246044108912202096905479414445906241114877360437757671873621815407381731093528564834242059235793995879512429665428384249696829732686139879290689138337528732178867763572940818978045288085526605424882161048262341793308226271244784738573339406534415963257188813150833543959855291620349361424356113677012691050443855345457780837837775528452830065123645210521674484900341163317976235222389482853758398840716978686612244877315952627449726563200985551893728842634267627530116789700738805046020834346912304053648939292641374248863461829907406379612668293539852739028385095957107783287801469779873684323876752125834190813709632930176350385251388809371843059653444587181127116005974657136694832573018092918501448166186199628534854918072838356649859189658485313775277869786576057860573489319087853181238828444319767318474219066084383420535651337067765042871866722102341821632521549531658392558029179248729287343066424128255453227582500101589825631498933552248165165195505084533937511805679422426273481109610486538490269204413892087438083343159370677507734763027473422783822348010241125811942459146837315245574556063144166866694587167078685578725570522912497386964969817554528167882145641754813553386241986545263428850385471407768862149864415610835145483893752141788278108098444423812255448630399739406436179654822408020695045111978452560732657454331552823027803923015876051562262807468974045281389865129199624302091061572518922897170906558730800291393074105701640185984697062234455497441565957677873541803323808739057091210963809481379237195449441704906213864036306816170358099977588802788298341847233479004373875764782089352184574157938695671826363240080375090719815500409818257569579737790972512396499038562650698457565969763074523455787325788580087961093259083945143807734672534224030090954354351102653003202843098459352205084876073422147647278371814608422299472851585152767094154205041122582500974085597888678626563302517414760275424374987768004182255418172702713081491919317713764157691832649879970794988718027496051033192475712643725546254936801280886277454221028931640633929901255267164990135403794035296967671516939215409359726275429423854633185337443810878145003503929100185538730191706833877188115612968756512515657929062938882515290470268012481658959467962574021255567266663085172648700517923190421201649960580663905892928615239940587209727846433240942522684679213773439073516523146005994225963950438285525543724072805775895684210235246318489333590843869845471246496373022042283669723209218256802545337056732534349774510912617753606278742524075696830202993915138239351257433014422009557806444079310278886512139630033939943984739846872143119042089449239434813533654209855219366280703078976582239697025419051607551059342989094187590928004895404628468857479825811480969755802816752572607887931245608496803584166085903615584603240071791918517178770940358022360591527392711739818581650995202007479122109059826241076069575996194670325388426076231622322797781179875342067163320851354916671222061672625588828250420576444365518750078433283111186251286369152161274954617004264602937561895888067275553527248342562177812052429372193189367628935066399292388584848186868057490876110756106248883195448013919341539311445762177047485784644023332693506505588992951741779405655121514683888822432345047514963802058660785650549894564347234747419977071090230172270714467830425249200661538237344486615238741919654540013427059834362303017892018315319474809493064305051218910832806476011754167960609292798133992932986527003332544998690644882192928823728761374759223295220132902062276582745392380905175975147508036070181310375472883065312125672909665074499168847660866659243934936201205977786950056551035992892471945018246448712940506524108427075650266559720559821882928246718576316570151482659218868204342230986193274099092947766612808615897083066205545011867666836890698227160141358366130699931989218765580068875487221848284902648357997124560901864824979772019958733458709649089350509594537460765589070669780929902244924095057973083527881497353885741856966417251790771441291024498146323446404858350023312704237049876663096468183583456432420222099259802197398139441269735909271176981827979670916936923480261470496496098618519902444469557322620250086374973794281187215924873147212141143211970763618458130369955122589885852486459342507686424811857529724715834762339780780320621466051640373529579235901778166444866967170947337715814618701222011813864455366689113733372309743492344775317105676299023793256769715590724190673278850576169355194737718571996205965412216668624875574368131205518646497116437673923611613989144303857560111298100130932764116731780732331584387060822601983575968587786593786089859205097829303786998552790940303512253629330901903111455443739249341492121135666999629955246180389076522420764177944902620863825882820682830423026723444163609408915990021742241671725761183349127188720359044807484605614641898401974406314478166586862239770423785488170760140883360695455623311231308749229984396421194972200953726552517960941305001589811615528970603630286711323720928476053028418104311929938812411446795847430570951765731935873704290981969768039845559078210260970340091573946493502250523858784381395164037941345131036241049974763494576930219709539081167638904510996768076763696695282169155448913535034449967334585864204100839753337471890655730787965190388321176754003834764432173022771241204124880190443758556638178117621417828538543566154738868057890756594133940060131095373872607830394741410507002142822303063509666833444144734404858595218968809428878125416771865424115834675423233975963808704275742000834985076917110761609917639367522795858895877976718482086574240336483419777352513415682250618588883630422667381630740529821202912792215819567260148610392289445700010679032667785913505510499208803015096960497603311684476331512018841219937891254803030913359418101407549567793179742449941545443410430055808854108145108086921904818921804270135592318559382872171663469811421821351985334872811726566145656793137595086435858389112162211144903031748184978999616915361017273639347753990904987618488984763616422137743997909032948314062999034419677944042303353522801449996275763177118109694441665674652620270945081012208129493207364969092931067835095357401379191920769089752323258845005077029648988656187008644981690860325494640707691058263707218699318747576540505955119970022800050729068378364547042590825355437626947739092907639546500831069479701792723260183835312668775905305004429473143190492877900803279379391014165938996520522421519669074442820421373809368311822077972921163666590540951727830689541365712383814670193909247141231483865863467172096086487109118571099974623536913424744792268755503822978150450141463976418321123798659587426485571865139004632455010517643645955125318108915827032538830764999939384765524968211416613825725028232719260639034668821191585345401139187063586278844525327029677166520272296119027987372551360330053876189227371907947776688807664097291698361474773953766314438538411192525291502860033950317925610911265796253376570750705605223111497722327262192275567399781499408866566803175532947341380804573508723898438696842972068009864064880868104500810607597773251546791015529817588976453017278349676301429986797968006961680595749004210278240820043749323022351194556808953639302740231217554125010295778579867930219789444586316078563153140426300075497889728562955875812264607584269671525448611688297677395668883926788806626621533410554605397584395476426274277186174979193281877755837615788191810698697293078310769741088237011047616253793337649369837629307599453995556850346724717447021894052958960508549292357309360230023567865098938763716681253489235105228356844112742597865368867800977665507485711193700919048169739863721976200393870964859711423365836645319463706192786071094451126044813322514191822230372697691134321326583530507980570972282499351664144681066225255576345557621659944672239861086939522138915390964460660954398040095514452441466197406929378340725245488930869266755836026452502888326109039036735752105883169507829791789842829003377103328474284226418541627136617201981410081543400493857184810077211944160732573359926995824924781746991733952942043739845158636092615392851271609604001587871668747792339503661847062064359911163315773543385574328897937815086059589953999789233526732558138876379770988391568101786993700956918791306484675165138580745831287109455435312347668778771831986564417818007661988668575337511428573503979744690427580933871511497337178524409439074899394907064700755199204450334834462166479920941410682016219682050501725943831819125849436913482014372269877789130627657939025988149516061601556494467785394278050165117802242616959035539521527573996770394777090608067157748287982289740087321391675333217187734973619918743438925481086786987909847157905725044405520500247814922161341767707136421284564281250501630149554637028900437281706220264855091682439284006012100213430344540776969050004534947115052361145178751715153539442136214440852974597645945047753056749086524888288410917332264997593261415208132396855553175133445426901252321237313814788290635154866691493391916860633764131449792864421879271547484578448037548191254532192203910212095050598443598860099561436754200383240561468727968278574658314760038137328356789542879143158307569710437889640212093681517376550949632693150368957673290978580715557075220843874150110533597049029657900142664049628632306318033379164235693199156317219375029670266881891666935744391000072394583634079985297735692304085213253686619990391547098739326235331896294243819007706829350840219204434282203763842309534374094716269092395159654899893479431629891835566861633831233926484553653545732232083448847402591291771736632626908528060140857985243914378484209403151246151586314671214432250273645627330939057035861899020674790777521078321629553955289098738913994277443789947016218112052472562004972838727530491598661987331900852297293927590937008700385441871895643324378932416787829799015023099660341920007400515583719078761755684546231965780315331464445246842024352710940355860551228794070669334884316638169339361868344684036166764400211006449268355760497522521243863754789241626410932678325587508558227334518046527177333966386229681131505383816609373855769829274914348317086584042404739152333530629592689009389081181892780748390379898576440381213632303898426564651953573057284522164261023039971574884322018409901623091066769374926434929088390505481356158295172831951440281410838289285974922569742831685208907330613021062863254778083571987810559722272640581245682204212812009322444697739511120959516532002161393085120001232987854599416466836642434781644972152878783195738467277263810873521334872145234806173233313152439144174466326059432609114751576151700064908329764921907212887249527086259003376343030120262701814585656821988604909788237083553253206193426726195373167488689361199174737673675417180869602889701434932144327139753831980317541456949935109048310354860828888829985551242323428611433760013535557705690799472134708591539498246395929946584786429793375547576855024726276466639270996210912580937251732900953108167151764815353946438951732186804160979962177084030144009204434162078402554272522372010678407762638428386735780546274289119975788862253605217134183217308160833938599365166808264872973328544867450273137040003735155936936055234820915402088617676892250365338639762735790198446239280729360387172839430224365853412295946736511379893293644476601064094438049615453698558415457644624129605033517887385714361115673543969765574163304052845462343207735518428856761705316306145099374616732978860558826027351376219815848619960602188069845127184900274798093577337815334229328859113916445183089422591219363562175741300319602824929602604462087571702736257023855910278667983201787772015434822036939739623390363611813421852722862517995699800748992995577705720357569415300975048659110721154689291121660648376162793709140906494274425679990798412041724153847990678072788465813650167360278274060299669686977027679177555732619163554497519084126834953663180561788152524234027914628964653101955322296796044940224423483373060271447863444439939151213811993641468775096309325287031652995372151087334181147025212797142322107457643214748864910062682805447263460795266438319479350361654149723916302142517460954644181016322072707797612127290402787565201274699653021524174689510879155301887847542951033856707467394541779012004693558862885275069211568630035198321556095722245211498157407058804179378334586997337198026127030931320749887898629336960815548834099140175956164905509789303503723524238702220304110286262004392097519917858906312838174083038161194361357195517071842994012188138998510742778589137366584134038794598953034741571008566938586764237764760929426342999577427136331020439162699621022419710573915076529444475995049397590952279803337070649652375230030769614094749863054838131250453393335992565382461961884049970331124042885598724864673024838734187728778518597943690333581452386447949348821950477239082540412004481945621361346005489588635930781546091692613743164076696063337650212066500958652423718941384707028580900141373241916628219685780992303387586307287938080162085726979985430235872605408908973762679998267085128308541453301622106086132903119925692905447015291729284166658358889638946484252501724003156410053073692199689728345592805507353991622331804191321163147138355757463975959646383269026797734652828810524469455345170137551357079112699765937614417881322518580623583085371066552954558545030614538152690416791041494820903833747150653922515117629810015051427859949430868967422683925544773048143204093218185727818639939042340937737554014087262263345869957269402402244489344150395153638461088708158603442146813613153239544181965584843724875574970253690826473738252280589389608785452089585461893640065022583624299369207223168409684285668943696554630922022310257067151288783914551026397283131059776922073732772938028850469501423552717564523590826390225146670647096297808952422815627543824159506277788242239226894403218868826417892061812460932910280067078381764774328930765667549553914227263771352546226558309192177069379244856172597923840087256979662606885474904672651705446059355457355539381720826007056576680824405269023481534482856226099185793601138342013924751549781002963509591196241223988474674503346864204901162470727568472491168911817699498581111751106747248222841966240774800299386448500899802353808948328648950378297937508991287971100436406530868961011295651264649735080500842514849242663110538676226952462861998255727152116180092044172537690644510072561951848091261658435264818608466644196271377692382999861419518366976925899804702034481061593700921411578288312220380146120842850013040023220135526628373744771150806064210500904713209756789487879992065732574945273919144441559994021902484922428059392396532045822681693393712856805565817473133558187778538661656566789435239882869562992503890816377661619243430296379308732689101527612300556683321857825472887833363878783311612801359246598196001992110432252742278028286290983034467452572433632750337382002327795599723526503279118668949600835247939034430167936154067360565248183708366410271315119022455744105080625565574495087106073177552525465246191382052528872182149067742337461407045970773029261547833835982461046160792024650891954533835622647905595545556056222444739359561355307640431480029381518912737733861985443743394220665875928022035624721578367628721953828971669379347551654289184656369245316180589312367049226006652365004604041705066132568725010906038257977622775918632542438019457534616426140162908572021165981282938300150430988771779795920508302183496519486649822985381605277952679467883900400626067053679052948526478952556887427257753347191421900106539876242220372735307354465160497608882261532943387008439686243428062724239976020417083501187485612301521861096468710610451080244774408442415401921145483229122387177640950812437604044892723114894289166492422555987251712026546064181074681665778964728912013126876210711050686127294130579549060691646435170470211317668089237127423521500784120811415209012518879989305973287830406753071452049005919463142752068022689321651760082249835350221273925480277849976421021022383851052434761338684086971184844453064139629432697454904335848637781515601738965433792185580406661077483218182896951132175120436743683288667822966925090466882396891660565179846337493804494482957140469439838541329660821352880753036540897309030019169291664270161497169811314948629847959434083909137899151919693592104549249641272176830694198634268417797129727321532269026258217070666157134588373890937483748445912551005418688212540419140467386356495171845898587299332384995227016518724574877643037175964732635174800339976889057742374743291388913724995896107182909004991327069657204971264847436602765292769647860613112412607792193340091673288224266214778859232274412408375289179473149240219855616511376576342749176167272968753923645945374498890942022790996036714746597655741548379671749549433489138392646658532974540466584808698353685026954158043442672789004740329377455156913103617569394220590080662303700742482855835714967919757774903538711032594071404351367637936420318881241405787980078405742015075045649194207667458153936147341633127909125000401679673641312118667172466945874610270690055205951790912868550627314444018372340450511408500596263341335935462900762908177607945925418313224341659833422718990759491520745472565505030602103560808322597519504135276823555220194687522609252041166687331464316658817220887375618081587706893333072891653021652905203551152659468185225531872128742681693786734300063084961899030932760996216281802967847487983066991677071065748787690869393668537960239444227542507191289746652908571173495834030333093220082370499407142614338080956245826345821312723819228704879483003555395183869148607609680948838914980092137583762580346638136956322389356321445637943343709540512971318562602356058060009723038961787230259937667901665665707862557311444832043167083342423025073229551425256869087196444921304122409001088911352209784967521294392459311671835617471071133777170535740246994653583588858029956542322303683414953181619592996717719803155357690343237183262022590892137425381436287157971464638798142973673229019592925961087085515264082164358289941174163229829096024199813484990176848061705929004709301447191872821214881330927580328983414459212982328361917632144401423660487866106177679353069516694497995794247470774906153508191903814614124846461951745507769029045473658388657652507361539029843574783734533854223757214120844101537109878988150399376183049029131495426379419466960080889355580455852054011267626827118600475038286603725153213053172495768724166533014198911108563580523263557668093905011285919410929729405709992748019018920329176825110271201883448133191176046044399582441041397769363415535997645669600695620064621537765004446878920052491115163056981771759920372776400962505749683086091623612403874828409210731324570159556884854402828253737123901870734438960726824144879149432790098623864095154433925191287986395443631741664304628906685247794505171178097275955313357069898431712834411326802164758029480214901279358577820455468155731720501214088643075415977573211195420648751449839129701667670578627505981339796798469034588544621244491349506380998178215002069135235861367451766474507199185648858689519566198858074699244098945260822654123045492317937561908574029901357139091996054695027692181780110686120060500491562486310433435733183324682184960109719956283079670302518237200192281739082350621353790143361471154594366421781039331389642626383456476788533304151539357254868564900116016841083773730443175664328577568029358164048360056114085234332276972014540199949497586765207753434663345988163105226188545576940782495290829820427689209586537672122857313593354139062892674058806110440008693537511981398987733461984012175476601488949110527083114127313822611375784524062742643275405749063621636707579286191276470475720530019447754646350158248877905140970107155293568539074535192061592867055586819572818477511397367528331248298563603668401800501373473430870381875882368536505614851465361380164543486538292095535331359999329598962648821227642881418351247394834994973529207696289285842874353709709589844045987271684740591699311154818783918541639682505136096039199090541576591206619251902441050970275996206665640685667923155277299672080634924418459930639319655316184058234170626054103994406393389341954009505694392367536261836339943137593582637337038590520083069444186058352294040486974264143564467835750245528408141155542089277377819035411956519927482388541352922042093291003849101173885456192525758100175107203530478670846593691248314687221437370931221232024145163434746983268585883888129569064654713952552091120549241433067946273814199966080615171765252424116710632165515273425156298858250419151152842336295725489948532335913551937111120691245255617960431558714128507325154034821869698592496324436361858097886912495619667167955661314405192963882967862314739379810989387144609307446335388116857639486088996751737624117418608721113201890473265681920356852260214572514990544830464445741571664626057548497581337041292493755055810957776224911007865027149410117678756176857929758244069482432788047802801119296277638634082974649935145098213325293819975694287523810951353259441010216118173667913405875089789689346440374749516580920442731223505458886660938100296023446253787371042615715471415570541509400945030973479393365662502946571651610231646284694834530678678625417189571536008611372940691831077767176303747349054152847547889249637491597445905192775459868553016931060287353340176028464032880458647446761780599135355638971106571374801434117778297414247006181017504783667729704657593744626994653289187898944766831279746609815355310908529785517128244972350681083001087072098413193952715550109300726222286144461902776916775439548415128217531052153483234801195960937712091543375671575344790931099009952742364136185095186882706497066008518279984813681493409494656502729011371239346717582785076795392066374316168697234785898801162981164048664142049002745730948583719928111231698541350801499427107979729597347937893567240258532149722085771502464289136022278694290971138297590113311971271816219130241680641654350498561317365028076829088008781408013553055176500104314140171160094466248431433109111278456904800436336834263264546182206057162772356505618289887586016162759293021719480825876939406706741118739076174928078866238887633210069510059379304486845171670617532540817381175830513018810598791581236812651488208803156179949943758571288666524167802815933486039739651762682979598009102276449885875204453186859818919304047036266716768576584678996335642164468075593159673987525896278112392499461077605747085980379731034603017411184743853603237876503494109792651342990686149858088857290934370509925413765908344118233453352383689044721800646413656071398131402221283597986279220236869065710841797098664585231964418613260175277893451500951990101272127027751114939209737421109221230258407615532462684647970004375675650680375739479299054972235737326502393479821551417383407053800970671713489021607057467402492159111340844059412816963694158749064807471096181694374686400976879587059861396166142149713159055659245957547808829888179064403195574409765182110717050210762861380942142254633018250174219579654965349998118277482293391224369319259539320181759903692427660057860023524266617912217413613915523378643385123921974065133034080003308784329968565930673393373977314833051793962519090526503539452497269847927895956900756512401517427568625445958730589416028415075643996056207823995668392042991137445412485452050617382041200896697508085368266632066421496313580858551734102163600407392105492754569091691118675973301373116891933546491748024000196014150716178599885814807604790323565536638530073450137707552920897892761798400908002802716860190710013625806487791190359359738152244089753857640980907177791178577174965304380191246980027427968577454828646850963643345982038439440390710064595187710926953856237751266063775949478046414439944738114393310588967106309553737985921789499655440058258343072547099533964422466478345790235921045434035490580274340460180822910383534768198649883129692527708467636916762991322685988079279688521626980891387332272113366074045565270049823417086754548162550432676338008041095439088625768698000233387589631506430783559560296149590614126738802637408583971875714566156874564783198401734123344769918660049202551506057117512498835113061664956969043144261153453599922448826663282351913727972315577276913249461602651431911123517856634939118787245765598632930195822399243643526985622931829097217707819224031254548179340388613592707461901451941885113464405882910263433855474733797101661031330283949336230807694570335823951646323153697434592179261842844954689528070315102432395896288743357223420797053102739454568879569329537587973192598591309387878550281887084768386013982836467732687121777859052185799594876865977988633599614592897885532480987190091824343684875941334243147166679338741267388087138964734214291709979413048233327540586243735088771021368609997186969792550356661576159977103108382361613339978023098659730317418933086622430896837589611765058066150302873240242453585160394229935275304629318704590033767568068828850779594547156266115545470773092192289139044317998667887673672315796162655403238959612555106330268928303465683408181169076271808994734568340246865285801192501859140680940251415971884947729462166651625047883423235427190930416871025330744508969248104538921218577157647012511539173651123557304789665699719567380018602306292437407603402485771713457421998591623180042889242763013582459390320392840332858348705742381072284126329858658161465025710149266752766615320258189492215494383413215808928129255580856813725451792409352523118344980325639353297629236917761764157018084969008979198999153576738758440915565947466416592803280772190417833376563814577686357778013811991559935799703733948486936249853470793773919952798271163821714822078530228199500401874751575015185936243904303962264522731495166309644237148930835121332775392052243096977542330382484700861142956594811046932634944050200667157967080103017021181611396319329889954862158245076679115551154194259343670400393740247775032117208859544815201955119060533181370308969121439721924745512190828950572372841337875853528124037918139499576457687307255409163423846312385770157659022421186417411838211332788348017228534680139271815033625657764241234357027019343257449884064646408451729880838611512974427971780507509576031017175857028179882640027428092559391426729497777526737999140878079132482618297298647935301213328991928318031804261713181497307213221905883308580795277025437697519373173789413261744610010641180553338876808233355007318278208412800905917769854194448908653337034541424316947947269768668900808118728088873436938502679268562573141520023123422603780345454072623545922728441381972778293451670222579211307791167228053230722728255203437058148215050824962403561620624087956567339415760096152909832411566828848811167637972911709677351712820869687991099237443669740453529698661097316773510827770772052729727490276746337170193592540451513601653120059273674846084647369387000007786012425895829637555034228515418667408954671709997466148973967234799720199715416976511960667417217691781116332372908847985608868110678914033738920620684780309087641099276338550316647475843105091301483726399293528575566639042143449898991870358993884994276286801995884013558901480804392440231319458712486169525138121830550380934873986458854540692523490367121644868924658053672497890754488762933845705575154878302190614595923355682440373158065061788719808255243387974082795437516094216161993604666647780457237648485462739992484818097414786146343241548742737007219621079992698404567169602602655019021853639755555965158890144512582744034210515243686675091441312413685234060355194759361151931485453790614226930265526469992888496440803306485142615396616176969220500190069225338229341342593074430357975546620460952324672891764276295484188462528305223312980162117579297038035368466345741562011222879191702843926870031404163440337655079866690423127173129805471777827757227411587994626654582539743721261593311069353686851840153579493028442970146199036988167586830448187080866911290521735123509374016196764121367581575545178447203268643652776786811137336332079294898976085588947632844875592398297649475174474010133235928261787701853451441274112376375463081565002780166384238967027899556636468423760685838457510698731429621379989257895655271814494359459064339898031858960758951597399247322133936556685796893184639178031501732511334156600932145813465262689909386026070236783293814971723888279186284894922230241947360003722108097807426916086550263376853126848901261210407512961372684152050218543357983088155798125239408534932263334388111791404049431909321422956379338887007525755084927424901795196933636179626214669623308186742005602208553255176196852360652091507917856143593336305674802290843817150850393342718376536164847101127600773436047784414435144220246916062921326704314342213270929307724032945329633205242543196124382188362657071078802215038897717406468075458614550516035886047057783162848002330694009291069862549403472896050150492129125046888826234428537489927200225999968454427153393943016581189445058585071555418786795620409865333467828745863609024348678804410874180743729915871331798898206037801057473382316945447209136531286352739913101033330950616393206200331610551998206939514501981958988999216977163772933991221241407415985361721033986216290815716796135465121516755128283181848059266376954717756486481841345438536107238561214216637010101892733240584291465070925121244638007917037541926221363823273041368974247057152295052643192652720567369222213401222985516445731388193052967038538218843085642704054136508931796326612073972813561512131371935448356545767182888264918553619252293124070921231317692723766060399299247830027880742088944322614094044351491193693281944854217237372929958725698793916458501721674200361733754509387274273471395408136986318477074900095253108269343322117578450442053943537528277452541876813747957368192915898603330708053438698132548275493562858540434022266310145779409647764128599298215907113690866350604334061148698498193803785778685605723585348344737347323666417459811897716777976420249931515015490133128784241159194459273431929794516991900167880760668041863066465720419025826704265635104945796728562463312216683309416736454193931766718681070235568030881797837924138390487942322677171785749141615332727583188807637049218746717888178521628849445302257459213104971147099930408904021952636863594591680528173558943028897766726691467433724426440027688783304674061074087107987180171847917339326524709423652605270293527094356884439498456944356817642613342313319794749393931082012947337210499245020698793438233228690350436394968678961280784389226965577235568226303203223398449678767306388039348859593647331144955047762283345192139513858910431463540787773531563929478386180632533468382541053203090648633658870032847815030693603111038774316531750430234755118114317555419520869946714890745539962809763508146303448620804598387076157636421309629536957100702589278657415637601100653844318937066879421848363230323684164951178026847724531911546119465385394763478730683389824354121999276857617420785694613475557965482005813325758350161068481887749674284008024258860300204418678097428883816057422687548522618671111564662596493956665028631435946805303961638033659860144985106266722000274107438960405379244884147403975688785654355601914514319911413160601092600129451192195580266678341528426839729992962970133568241261822894064927110557158429241491310981385411586143500091372961883917483520068693750484321966214049487119050240293052989269199145555053979782029854980950281912373456617107031668225672308812694520645465918407438876475068524980944245313635135929292525020998052748104320385559497574752386838385116263188828281200392648136077528493429129074198894884252742069275789761482612604881329072709604875454053358565021313896222406795109291385741879006696145212436510171551793850676522355820563843789078333234128812656062055606363965382303005217869145347897218419310283796288646533507481819138598847166361925203764778388401271137968186283156925141293232760466024860047738541340077718885799918716071336271865906143319352761474718606025783084196893905255419154548687023046357259549913161515701833307351934697079782120167365488618236326055126772077880156729199843631822974812473147738850175133209859056284734218901304781086406491243459086250061792214765104011301540400791123297541542443013235119143435254925784382515714306554537946786218482567147809038283184428575228319385989148279788850173092850692830691768739711282195733087942346216931416635292016250668868593625754471892230785276864918724143856073607815203778154766808551144970526761723750838670474951746841025888714164184243526301818187419808286608654046935904654821739395644377543188773213876638005735734453191870063319895083061819297820511125391472677039147918096286524896568130398084103644821356049328778914010416572913386315403442342584292963400523676883584599632466062011826858623983838078747709275208810800718615303525985658723308541269548856687297834037256687239781282898457637404741759022518212134685798735348307315586654604165989765821549266985243680627083177961951418431449305445387941100938408168782142363374154196625247076212982438711179502556227909626616002251057851465701013848207728953403407652383304314911480348415338565002196014034332390758666501836308703116845484564158907609840161180106320434093284196414936587783576963556249889313080316212945247106331220082843291406872148668059839523458767172721641282501820698039863170966209566242382179028395036628460015415301082297001583573097680311211544767072959079112700518038416894521117788796542088764165075173954928598307448779826734133984374192696528088476824698346178171680768302550902986105951517489723006720058794402642419136819584914833899782239752516536975964217548155921046639211382603472775563321611173207371189337361729684949431007686598797475939641359614549848679605050917482773893461885677090390360201477946446386217619013233435260015684238559099273435976171418073644611141581498762003375404783012526161217351403123001232326521734401229715547211556257796008617970423817225068434183850579066587197328369722498196216534951582729748626473353245218696620532990398065193926726316185215352228807512527520357833803378123513303205947313873824865189921210787760531283036301686699993050735056477402345701985005774240454085541453761403266646820065865242037125406494385954380372054314591761391948157771170251276096154189278822372649555818734352094213769046992727359953277821070582526870329506836099413888206314284818689495658836772997529067062690527115879781167248727815440263582459976993229812267735390384538941534229085975928446700587381233560283102746301431214543455861688710573322110755032617651632878841148758409731961254073109092028118421009815384810487485210882324542497646095055481880690580774969110772951657049502389859637324457349512151409538965840555564031173082530803275683763882551075732334827305707390361002661782264509071478765924665621635475847342365243152344411282846408489924580779181286866635772148974108887583153277773963559050320742113550547490419182359252136368367543350843024293207843703444587272992885313532997778074708254732456983154161287248664297094219736120183101706314719997980350636881654129088054792785260810851559093767041677995494245465922029330114758423371303872323946643252667134464902199217559585414534444605075359491997440212584935213087340949609139200070434610911505617103070216035976585607918664920513659125513598148164143025456977356534061959636433829763133176885471233174386355366063072593782397629127400028952518000158043252006976881483300338347290964849359870913243187711265145514081154465692386682957387463713587951778524517056620864105533087569679908487170915832632709059733110078923590088129852554385679336640282252862309974508131437319634530379640109908718450866709960597428717348720141330246055939445221929734559749669137989623346834129850326543318988544974507800613279491039066226161564144466943571302759933222188730591138054852408342313993212961819045560070232021705196857938583275555127167222267006405156237923848822068484617940524126620708278444304133196688431930967658515775652176528038468647444281735991279983133899376327480678865807397925382984830246682461240812974367756299637295614117196105606996823801413427723473933022286057632379873024412299463994525105607068491694870568625069906535167581456166240361890814156959766374183341889173456396083847045605019761612323525440502944341243686524580337586386747819471037209493482991514527698514244362568332241741247504455535278186087266937561900993871164004068261195778392696993362229994021124783974934136566423750735679098710950411891486097666575748306590336031678229327195323962401897161801966497747461448888156057513185663667028461414979887580388401651605636160878542667476350269253650769073510418066934921811864761861129115751542988560051657553729599542197282339727221484378241036574293379724276372907288031114026814502518165861419488359516265647167505553091213292459833949858125465359463705854342599748313337259082671551640081786537097392187615891747499610384901293814222040383116037683628340665458667450371588666013838562472759810649122427559140728694384264821056939067026573313736501736000261048988401501745078721237868111463200150418655266643774134985746409632864361930744873030099748451868999935262550081221015291389928767491384151067037076580910500877401738046449950442401247962778633520121378093063832097696275075408117516912716921317881674227480391479942127468751954367755246894456489693502490688557270827066769781467199486662256090301889217590930404391365247219894113964248823535515215105054948761394190753720431165807750518909449410236210672712381686835647120833340740698237800428095325701526640503370020685563379495620925497347710278442146730736293060765127475892509261271129675354512139046726851780431214043737009494549237704187836334030413495065442712901850863205641810345997832608284704008998905833713309358106037554763574314597404450021249804177866412917215888522665109634932121009266900482260108290446447432579698324287650327031009279407527702528116413567540423980957089472075170357306265403464674006072961823161855983282039241680825716301426559412253587896371277146847636097669438411304722159525955216590668438214368393440379088174424921482070769238180038659381414889101934926043206458037139435501793148452807946145902245853208575851124612230487902090568277845967697692883381146150081257444459669863049733476181601377210033131640116744948153805381035001818094498643431182660586376702658048353295188385967270191043129955900757542217025354130571261675838960096681165429113716440396236245139092648883156551719994159498799538521535290459159238324100117399546091502420430919901395918211076166346747602185637969867693003080583257176105243078777210540306536970185845405281242572467102207762128994240408038349451898967299893037104803804211169193828471737465329529423978468988092755627071414449460433252417560654215362478313980556677431464526986766619860970582034326956909339459859796361280192187764485568135985931766498119811155533606355160021016324257967435095920850527640628322557819142620947830584383326985444302081755431973700745144359862538753132861345112365272158907631639496043735085627957605688275460975844733311783936364679849731183607401055876499546666357995218747189683928613676083600595894391177532679216794204686126748562404999656332450463654493811456403445821605603828398715669424026803760880051416322053450073398529256509752066419719169156375777234737703269153128771263800870903934963601150580042411943865868173164816998309835361963930646882281801554204843323644978407521100455592730409780907399987355887795858917179064462309871956152937530770061968746424482454525962762654417839037561479088252886282730316194904482136024819548543016981987045792684777523768867125621813369540176948378945712220391142879030136931639989083237560056448702700258765183675025881068987934925490649549378309691101986478856851608731996600441593405555029547107929317494364545806330609728567532543280114897472157240284706361624225439335924915327594784262530733387817347754303775958367387327051295623075209900215076605753768735690729512441037313291364076987592578722761049893377172887704468928678109277498672656146083216373526583793360742625632220528465135017009480692990956849490261297457300967978374125893109311153559007472051441044937819419089742868625765679006041038781327197573992978789227755489551974651724610949567978366370618136728339875710435225321522181219610135019602188993384199643520470666495512308875982954924478693932649305293488367888261098305618759760689339008859587300172600093766588940803116097544094962640713620671899476197593416223042085384666985793350448011998767153406439952498475926325329068938718502582629715083170224176548761634378019827697038309070535527916814936424931838611185669886849434886113231721279733699995138591053192235900786954250426029537091944196186607571239332112158797540578686220807117515243498766936372454874132071886304874786509140728392192331122352790769264389595405266482482615558384220680956600461658473529940580280750541132078408089786048663132898264242156269986753252186095220026871865216832479669897148283213413276148660757232258805262571539554534715793260984490936888555072480117572527069056917004504478058888603295913887146829284382351367930092342031216294496365559026130969596815586117756798097379856676970672010816425155917263348181496684109342199021558339294919265482940807610282050600346891492782816374893017410720517347703456912359682722736964489712825020914358032899273702294964558377037086411208986422025670472257736020137015929101641889695757758756207963863474098495203625096941535779562859116722299869137132235314584648850972256790663751425199887342144644234867401010435857831666738596413514008294683699506571824835387245913454143653133693925011930130893268911588025951817700867926285340225722620219891371121410447338748483831397541880292849462798204373254676405918044586939818932956069116374687904396472060091529639763017534439274652806791084468203088697999734167424880091976681050877984208323869616590800706235880705720398961345352283651591412806813930111051145687276275285052431783106607092865494057865274708490415759933806840736115309295269013126381104025399015188297942639377939693119680725761825219697436235119013636871254308385087012381247415216909178541122453462586619229121249651343989196201594780157039947347405037933490973629074837845506313373990223956496047538030263622720846749915665007522443722679501857803351324142762513638348475655491720225716626124490230800596309882387644318130129311766857172915149089923464725440994747288485430455950353058041119351150178438414919048711377882060692745724486861967482059751422194841010784073924511746893288599930772589898009724403008657965255145545146916572317575408659360057432721360771479133764801921623250900119022658990078266664321965459730496820772198107618156413310222347225812048126203726753878623358995329013929930931370632755878427263721627356532275646970151491049097875612676555222554026169962822344545339382237270994330639272825615048973021625867312990986632071573950042277338918494124394242291732644339846934144095761161883027278002960394882678481269915769903755479893614080731816189520691166356394469391473825563778851337020809243653338763513024801833826479633906794356373254192606983325872619519246547601715659828834465784543894435139739725476669551505787669180251000143606118951895268681658232087465606631134637511045770666999198532203694058076397561761258692201638989941479050070478074690144378590896186662103038990129800001631467745489677766809441416631258681840164702592760816515834247566693635458636423364378510039140965056911258234531107751667077454981414619717125861706395236374440065133878459846185339118580225161734124506568116625339589633130829255489821090647334796664425000489390544256565448985983096479659991747882843512122026272646683681971544865697845691322957973815697824606597149788282979078418013944473759097792584755119769535554205768944549065912505142906921618447467138041830896606683383305858122376348240215668400712247311309104839613089751462383866424765428724086293566894308355030521701647742896492274251686913498981460709163182213568004786107834364454602107960305716662150136566184236688764911448934601317536849661287102668600736535430355396218419846955541337679310245831426329125296677992797722396939191552371418387125874132880735615162520667400074941544177105941398344485350414128239570929224721710691044332888543338176983825724494177665167130553913375467987254504481399523481186426420200483264602931332087332564761549243136993246567038926758702387885240401477375436581311121714321038888710913472873608116590484378961099093839087344867720746074077931475912466735729420748718932118888743916051986002214075711429797538942324865643535252038875945662045010343307718818619495718816530570218060960709672289424493321114896766102838623145410201730580420210153375295413031725977965414077281497282810036778238808515518604614085404866084014223412602977977950884328895842589278712537123541947706662998713700523067892503207057208578700719596631506021885607992758201295347774714236977356944176194856514475875726010855579102925480245749254713008063300524961740157061432590546300800779241629129610054982587083202888581932991563325546755875919319068995648448672796353812487672082037929763700418057908397993246218078945551603178526758876436275172656494346639515795521759632790355323036152824365983231978227757634709929443114254066112799428492338128552704644360545686628581167714185668065712595749732020484461637101447946469643138862853180400623770585933181546390555477061728296999535441538047555834574331921481122191935527892433726922348778452337823975093204071970393459242658467772529220905399798134210333700322187836805238064795555097614148218545147863331829318123005480318275381354273325913503352574769688018535162526549722973664138934951264261865818460732345104755102229755438734567729132047217289782482361915459242975067504339693946562980305853532638641345111249587756153301966361231154164482922978461275496316712792748128701365410603748677529549308188401751664894060552471336105206482105823339242571097158945089880035362547329116501959987385045153966028642224949029335356237638296691766345335814030646494659545614053732213116408175332536072908524465591654165275624206807717359280411272117487882132855408451726402031174311710763913380449031130807521451566321219577695133587854211224201656316962369789476631817134424473858874070015625620412390823882549709386766258226387590372931825261297950804526180985219548373106943925109852872444723513156947615054025278216298610400753431080309164652816387387765067462854438844005899945340702908159963850013544979932755164444574282361051571604531946818298533851191584567355419869487133593635993548545540941876129451918254698952199321967003349057403691842598303348104451215199419518334909717022690041312560056187784460118153121784392604735879086555901910589754696295116712034891317363353218399709358398191033241235339920379757001769314180014464086345045770133811318056683626119767210551974988572618982711084910423145600932363199707601343521827769836979209674582417471356725142604628017761785946797144401854915869888927035390586009787612022238469509371179474012926169960905409993435543396763930171790618388949739654258000323097088800654999700345059192496264530293169330728931346225453808499478192264328444344823441500147252788506878951793115065763508480455155133648671617016280897358512471476850995934752046622470418309947848788849928815730906898054940797694917225975131067637322524103185374007861385622037272317656114052983173725943296937713222592979645211944572726737160384086885606166270147206132565662592055128999408169269794127598678529742206131676863687074597597249840524922507923530216242461697937770245493287032037358484838218066114306638971279332910449079621640881978493980652424446039420040757940711181636498800093127980629353191385183604238530218376388847541355189985664838277148043137977682449529334543748571302616583224597362801630898854205531466493840093356503048478731325002850164597745273546064389729945730673964044010384113221145138033441249044569847126795376417923531490559228990016144844792784004312846598425516912773617164740835730928628622526494593020739094415067408829074132997593917136082271471394469596490077386661787149122038354016323945417460891784314906022447554100104110443598777709886231655105568680291785637862453170834437130881227416943532688518690977085840790618043398813464137334563479697512586289745957849659653390851407098567351297594718518138139160072842306711524814288332466661682363490466715258803995831815427470757715927684509455998131508330331207258178063044971901961466639724657654301507553433027671592314013789763038606561034321680375508895460311961795572596358289226956774758950487850491603311062884511994554250940779001133861620009618758030378186426738365840215584897144518450392141492646115489146056309706686819594294432560002208566906845250839196607077056211263604978290218052919237783512481077919590254189552235768354496827354318293794801026011831058561481411666255907736642139102126332508192964126212111152330522097800797686377217558825629553032126766583024532745665151223914130067281636316313208214250429466857685862167336396612903724369572473738648502063515805933760322403479470345354338511008316398995004050323877723954010912758007312448046210262237619919808914095757108409667348736831071580913205231294300951302250030684976945417538809574212206224045688304947747770647663984016919802382767277487541436859122739431971188160863943960003674500629720643889619315959741175883154720288616357434671889606348587207487835974621364898646877241407263249456982076291760263113911074732173553278955345863857914385153478006515065921604462540720993622346470798630542951501068643924030704025390136785684375760568472556779479799511184634171431253806397702458440916150738601066729610508743750525174180909305072830777036285430784196055956968911461560046896254769662547714829230588667180091544472206716032331882355301447040663450885717178366393807495959326823212109516797506610658950862436838974241020144925218480438761356721444970160547411397609531715823035419286696357091436242195668632216528064227773610806382143076543640590743091009065850700716719343334946408289687706493647388922071506827930489968003641463158529174810190884586473816027666283440442706815070916167463606156833554790236816869473358804755951165513033754256087415872585623636572460456465802089125846113176988086772805906141386321853351306083657020112059352404904959425264924516680948372967120464617937562774651039232193552997529481048768615401246246135022316888288685740057968501714980825755375226789368537662615604953137891480661487605283792423732984718410679222300206605744139378264119411326857767084183833401141639526562896587157213362290049776456101549133176007523141526045928150117354653823542514698489305019852814812722894129493767907475489755809244523113406515978519373179471691509087049847442843402979523197293759382734902360139300629538093253462299338093518800041740119031084837598107408342629235883936602079118353789197670867268003220566396195713988020952201537041033140450867542185157710753057167897591252300338094951471994006831467344115893536658369231774145117111300490715605653924269441737231955202038210660079890159342991824564454043305759902362426192071784789931805137765398004733468538127629690770036946655003364670218818769034393555630978887474872938001796391624188323676652522127943419668666348682404023655240543921964694466233871824269367714977620666778804330734423262414706183675394955917595903246403687622286158655041911140439604367475928951158903951004712224984320001929848684575083749468555342002760643501168592232447633671714773435812999568040455895710180600967587249352688844006526919038672531023766392958766381755512118120080277881945181640657462560257714084447061031455184728234859546805421597209821414609068167633290853371406101973530037306215845684975940152927311667013956913090781033595410868080044608643554224365408277229140453685264009086696041295930081746807527012329280005526935580006402991634293349610383855108941130645053106891399339099016168839884373592471297256418711850763923024928437914299119338460339941480337577354166232232448570161309477991981769244932839881691926238365671712432124648371546658011486100560539074702910098602307015062497451848486475887042747149339039285722748594446715411510068378609869235182821157958167405361195056569621844799883945433317217864926565723564582030200106883972886674905893107241616653281195648850674700083078193782447274759699714757635454021961485770925773238416898075756196914357679253192220212721466499855651688252027138486355775652842861920400903206097640706551961432976946468112943932985819691722559217732311270040140752404204242628547535989219286266042434367881288292359060554577774146655801090146007569671263916919406020695551972064225176222692391916596582780608823044104094666416073516569763920159903515072776158377737194255669345944122662828095292024801879094654333570228700391520970541564739340015504764912281095614635766086756073000083456044401886363883039120800610046902238390136157212913039247798924320055981606813734131977167260583777608167834920751630264694770029644339020983780576311074736151070020476275841167225350046268715972991599040845232518040490149698409233886418444928155568551598292431091654937580356840552775905218977709349042962629395512008950534446919828808307783082175652519648877585824070259163918637025543484853170121979688000649491023185127932815739331522661357416002393013398437605472725406903477860597400490327615719659643861783202418454002589930858724953424799937978017299198442860673799878161330907643029444504303346526024882292629006406580728849206703944687316602109021790112839706408184746878870151889045038365788912431980750589426782723697945792485496662891339976042918794637553049293785762511662101584653939108632109489685886796979909234605508747621390199151794481980861512655281168729503266781445206070166775731665937904158640863410626901297512825022793321195736739272353230183161058738876996907390192950109565424294151928129300021562083955586568811872624462773177056569444890986223641820022232522854843074870195524001201512666124549978198266600406897380809054896929443770737836826859729036758712348164832324733645899111768672926826367639268261923377921079374881325527660299695425703996154179612411929734867216096851058307189184438927102403005253976247664119963810457772809215271283332779320853328043082658404304517561855004236883930986096719213072373971419882151600689905572590924102501506456770650980118877754722272763654079952442363270263749111577706256450003806356296280271908544205449779648259020516659293434355481342166111762452700333379890382700249125357617597521606530425274538840370437653803973575688122058484103555521615171105092396422057271987852188011668033638342587922189178680583469339029982100912506387286848387564641467712819689669834472872218063432659838015292037255943970632003143816544026505107470277640079164525167609995578115940588875700602950754915223579331620615782546697407778120045077156304106813867096367654966860695972304729084323838973627933243392454717881832561254600768969339545382984162017396595514052197346029649826998732801798757776579543880654210364482896949776602316798375502594983252093244107295452754160055791998349949371247613441722927616048567872361224429500711299874169078014000801603762575278233092013360867990740947983623182665486218616634113869336357666333881386896907409797252063160188656602985516817216913089580069152916797985976216708311051118846012877385858931099907310305710538772499180330631178960046502597068135917835462789144283104531765508448670463199454548102666070970154111939417183514686486372897708511402144518594588446627318537234678593277905742629372017642584647503449901028304049031872163841527210869228311175135236906911244085553788381213568898755468092000992337017975926521495229404683691848344254864112953027740114972838305154607099290574087251424094594494981748126854307049279560521351189561855309720349309042611542172880954513471062091022493937160131024650146274201617360675529920125879810296692709043021607627355788006536956172487156923530518238179008234382954731020857461900864455577398733267278482333719944699784792791838988998242984080681121683674226905506078610578708642491269550438558250802559868593633722041982539059655469337035379499856985935622957584968401698911196936433312977516618345071602274588182748301522488577227062284460135504960045113341311131227801955219921106797610835713509674629761711097677494975082382766568947609493932617507618069574516408266014271384868663002700540865820142810050503323390849796507570541571668449343339986947672295356268784503341244111701953231238554645717395783649578533621781031018707509459897861336903874372625296121632943335917537125629534822590286712279416896627222251669196181346020511534115054160379270145758649737479668533024207689028747242883795397763159296401499129592696035472266201869049216340487233281679811773567771013546918222870373133084367387812223084097349924568485446912679378499063649686036156116022920725622493607615066946306764360730334114329668688288537584717237811005505461907408445466248625210868785762055514712583309116988586335316825888275281746088119295070730614738489631007868805018205762824319571682360891207424989794111428831528562154190821549652231997310449397174501094546923095393163302353530522909359519676952073826577708604309609806432833697854881205990242981079136341358425900105787581868290639811822686374142505260800806272576830751740151310147445271079473550370024901595592253803245023784359929515790137096624496363958093022376996208714849797555107602701186884922562697347419921544785966524160555812190454250090311571026685411829638646699916530502643216656052591780829994081347656495467073655961149152361110139666802680036836895359375755683734978489995874883874235289743549700361494286447608402678270603657647681588179278211835645944924781514070697059332756766957160888750559346559374834157706506571157753668128724598141715558048937137658451839048674565996381287266294544592790524061266210911109529039191894638015060901956803115945641872325118184812742056481818701613276327965885894002867475166638725035241024496408903349288687651075516935801950554266937020128251338620100173017723476588348056490152519372771581696067733076166320161947089372013527913554169351374069938030966744721972426646184748287265470913718948289422722447911474819449418615158051936030115785553858771146074539293288996067329982696302752312172849330371904531678538171317153702509851141215656298621020770471411742073185600927998480611698280270333124608292250918603439956772136364054242081027548501795850630403513117600554083286496007561719991256222922908153426326969047079698575371856351964199600230351107598032515143494759192196983234717261759061278609611660536011057402049105602865413446432056453050273317670224611467400819659796153882327042019338423050069410006548179909353942437491625801259182157089232137504188186995210212396540969370580711272234791777779697818414658169659263207340479191552525995026612277804664622753362155223244082144884113080068145859574571302434062348772289188585839368632422824915126675774328447282247514824476089928320300975674166103527495160270113562738182941804198105349866326481967548376434745383780778071279249512697100048107711171856745423763747014445261585162173993969238321288947434196349468769992780331247818939110089513574988872129775436500879087321272673282996747420398613097077024183661838733946482600327597691107733777608590761820653035102985085503798190665458645148699901989913102841145721769104602216934688713733222786269932365318638812823559256137385282426758357317774536814734570279027603688750799392869736488014874100598991742608151641849161675899983824642175364968041729329133860551394197049650802450324684304142516404648545869683395909766482043494557269472174359546283415177479805759025861997682210604778227919495690543618903909250197207382547016204311762719336001318087497341604424404538763143291683059492493987206788611271150782450913917080956192711548662147151085986563169813970384802873221099815478795106701435385594934924152381553704787395719042288412170583301821232888702126121205985600251393623092298217037873672563386361320814175602215523123840271506751036393730391638039396878248756749979380601104468788848441430669692445175210176065817568336268835175549345176328843124106861010108009473203159369205332042282635968881473238168409994427916818615445576261372302414105580769268158217449909150204048154927297632984157580831500532684699683212512164615320827110208953267494986210808060604957240110289636052838858479613256383832873523777400637524571660410810649344844711657693904242030666462728867248829136751189525669437640687749525033039884966757320569786051664910934768816803801292996825764089600534273186627282800011836635031250745163018802605871567923723735684716765774476857315646246093294508893000156344713401957214631931986405695577748889477828958586358675675846257842148865651803095025803301896939887578268763265697770130619646477794542954650009577104551402858541948285940240287040655026473378119567557966901241944981315276028706263222535043970548369625736130123553652675535409764746001540500931631935705187646622978343136193741382885563747204783225762044517482700403181829646402110711086932023582001584962259504525566894362041746131612249131678496345149329328963908054672223733421397573192796049248874217868744841128791136745097580136702993334868458965023444336562726732051831720375308607796910520264622317674688764574679625433354039119293766173477441151879354494322727450725842524944242154693767183773509033674713162710965951724650999777422092159685777151650518169885835272391887309131081010036046632265053125952846923213142114761653872390038129303452072694894107412331033956427279149004295078987910285950645616702100008844221281131185976095665146169997695003803755665560713614112088273166938443702851792059150469512017095613619790676129938100727883212838166499433425619567574187633275318271938371003901605757198909079212552096434079609392579258581710571268236981877044432452689017392184878905736737084826950202789489670847364662683099206538685753812846054375735197183227360442531715742004356562477828193375004079802113224554617194174014738458292703504057628902148591691137103255746548989459108911738644291087701414252728014320189046153313585278563814393454162257957215464197286848657239076927742729818258725595260849130227832359179325994493247830229035159489593481543407594241765812221206843922384666028901075624824267596503727213826060973979384702227183926210235496518776499895912608175797795719541111350281304489896910641802683605443348566130614492618276825560345172253364330999166288865328463384531852712303262187060690577521988911818520061943391144939178062251849682522843788568392030148581548750407430569457827314543943230205768048435535530238411553373415109813257136707948408114560550096530687650931264033458823982149866475715120096736578327876894619318751126718900141696712130576243004109508366050534411662746160900762273994288364037614615275075216222008691586120204305201879217596686125897484751673145384684453994513225071300439476708562917885935978106499260173531394909010946730065757603619079910671112625640169137880061520750413839904098684693887146177665682343234519089926004241507962894026555360382154937079536683757656786607884176980798286983291074130701205220256162880406786481653969247326664210173989645186996045263604978464372837087687344138379794577695551732593460228901115578488871102043971758480987504201794798170850634518328726237367522414222790226268341585558237047352118133069209202203304948119119723854776231705223080348938783726528269412693588236578257736006781455306281775999150765389907443028537587711249648465588919529131962590130070051958739600301335747214165462036916357686332847402979478868048188558866118022721660045031495381212198745654931535781788648329724783824787964889181393821763452585827315114359193171236897885916331219793511415668538849332833624783360497306243004277486886012582746737842755611685478928913584144096068402517485652256070795945565411234626907350202054223068529132135891776298912472695192943356331513358500494515257802163347205716799541800361152614358750601199063193828968514894774921503502077228312214740862349510912233176442627852661914212413069546322335401446321982958348418389272562279467315889420141344451605647483966845712465773106462357334159396332283347275953503363744172890464117419066252871889673106519129127695736485111538472216037735275393179987791132703014238538711118712014662297755688016730208571546864484968054624327521832372502221550812840004372725068029961640502594713215888400102281121183953581796488498913362998206000359006252868263424172043776353928147546820637825066841028704513390103892878015775126525670048136075246890526869582538854614589924796444025611192761209561922068415140945175071235303477429712884947740036927620949502128064118411478599972262569469266756928196730169871567998828896651701301691813182523342939421668364490425881380799620715751082849270599377698738498919365964859136991918993070562533031530295950116474398479651762462385995713777326781013370121813766752603556651251180243334115670968713234607910199578834763720951071918756491969969591036535763518247109674548442846750474876124198161383174147248860406206736668705385050336080995830122644750384109415332432664785918087098557452713716082261257320441534770293989409584256149823478531568485998450269512607611949572065961099902461779577507949776144676465973456788197635773529885517591175153818064032763881367157454039104934015713491761993445325483063631614486264690542702577658828666983214357052770814618736067901762307214988140877932676675624249789744038730546050228491138075380727693716699434145578808868711620099738195214447469485934785367783286209049292484675333871444587627306662984659153123666903709330794604538504880549191085279009103668310141872342108770715255672339412963019039761194675955909250384286679948328138338920339443960685870805366624099969151040813015021944129956428243785476983990725528381235765452138515468164160935607607126063785148809359291144320903050609356072804481685689112680501462737505623617517491303831034020238448261929081950973249893996125121513663756191840015455695084625137684536455754156817746194375120772176742246604772526105178822069935611928253271943725321449743813218340728291030326833470279781211841853393343417996502038197892120960020741515360917871577441090531184118980788492517164293943369850680781850010180724933771710104752181211179040303409307491024536976165665281854971435028828485667476242310963630817224546882028320658411604378212426140136393306126206635302623839125800531836083516778477015735736900796438538723259429186174206782631491808983452275384021030651584999103677360734646856292759550595897772373809668065132854487465636717626234979552133699361317161401900611461680438520987265462110315261460269737987182369975422186205002143311851910736892424661431046490043090837163861597577888495911318768390943073236580810239007104430879452704062183582510572378602727012280405082727083997454001800795806199244895441826294450922683836473774745874478921784649409176759217289055666218381520915257632023400283278842068629904841275714159259082147674551231965168878440731381252983271137505802529332688991635006266808937706426303881364203305837353670079137856523721540097472246016130435134499640298884746979703910425929034833501662805657855410259071970196589791720654848422000570950968491773474026898692733292840070362235631178554051868594495974365098704378956735784600656287998555648878548318628523079554906902847649033756369175437922312944803339240385492215678808487708237062020593093586928511613775862487998470720885345577653602131534111608510445114669637153879176800894234739389805352309576153276729817923436965107860745647970352338265492267800797068197321961086188441749700965549884029845559596889213775449919778554098758722891331246838734959196954759009503366515191034727979587475789216445982613661446696035758449829482103473294279581994906794527280703628383974626482129186209442972059010925982236638890385229806314531806181779345879033334276281609033882899598821620746108596365264003522118046486748055001047211254222664285987382669408877804382476996534572407349455632545483226935269655042163487928970976880864451991727859817749430248722629336890311538088133246217644422691797798196994610321183917510976227876414360768299897004916188979153581602166890763612509124297216882466682365867826134764374099508621319332896670686906303234413549138578953158913316331696498431636094929711285330294856842565070468050564713315946317079026399585714017286403725816473744931372140288664686464604284865339890592676060609430247666650645651622568914998486599433372835287834167785276725864300168813482942327649628863884388133754231777527598556973333103318063399984361808052696344059735983410008654786349352125934797057464453318714415396525065929828140340624563844335584925355297702537833424620520523339711222178489565769672164512966904464686651731957494963562480802346898670025540769468673992251553167978513755341335794924852929202492689499890328579130977501941134285549537748481141170786719917656787222309166949590513292541649262798431392250108331131146237110495240784565316685601418883878724248829553553885696432563438459256474851049709213370726797039653571825925298026545570551136325892012959111580458907928222466161812405219644989277369780753043519034593397890961491958271908532226561569154416036906805616394447225335566371392265461678019779684329099078990097469023248360414194016097954227566842355806926823939998519036812872766865099390608192836484413678475003230095771842728147225668656062298604133159186090327017395560729776868723352721470717769478496854902763419432737287578223769300355509707801123659939149713807725894152069243235315291524286096525178883478569193270524540462515120745720110936448058763548454323541504867919731727229106171315004049818348923944068815981102380725591645013620442271535808754305847701375610224182540731767872775743626710263367706591308267934921189462827773967502828959276335249421551006311447974522998984518245157473609387725492332294051103065939359977199573244396416338567643120368133460036969371639472938916223555337138969731986852771404144787278680559640192864850122951692174863617119555913365763481953507032866195577850768215385819789305340051023752160381883805861434794644691136242267315614564247445744965471132185755119661408300958310741990113076495352176427784072293774126563455544819067593701995918490490000867382245179545304709482003841948681593268793386807440092697687269887576313729259949823031397849865983967739452771211730560969667448138707159580432728957520630522360668777669962232836585178649790939953793314643067518791615277593847302412748612481427388183144109043743035210405606902959488469689591117411525074325975556013279274366750953296972395423838237878057874661697314947481752938581021336782232445352045687376561492220473615309897613321787842634366499589349449362297689212557487953188464277532598387620973854497413232048866557835097543885933966213953007877344255941895279910334489829446446383606235650058017707476062571551678207644541646417637601358650424753263929806494368268448359606213259475251946551465356382051658756381197760341902529857237350978028340071310292631185752439728517702704504371266860976338688007887910452493918721157645723631144116240297417808784380293939930405626462133745206222972209755168230253089259414436421037160030090712045943439044312534943104550505285070299897121922996510141364313624088259396409957062024248855759204856764135577257172317379242575669004804941532392645954462967086089240161407087787719478873817248917640162305647844841789660161763412476882588258643682055876159365443616020987023378047603655882029587971207238648313713628704859897155114210502394057298332217145674904146433516494127718989861759277890143324984912596350771757462119144036224809316084482338635772958868169879551785162392881238522984353331117521073723590237227670656773503992588565793873195522597381027204845249439418607954046351292729597912270072622419785629649379658434682202107067983009046587327360695338345668032686316903952625529091468203710150687660973698396425694222803585460967040917233396814998921413216359927647329043053585573904377675135801716711096616508287588100865988436661787240341140355386536841767851725300054684770758915282041621305353641341136055382681413490331546684979624375178430630267825997946773002721136019176835291614229000176667280146466709543868074331551475669868960137837227910199157384561826396150697024436804233802162288659685931712201837204529507922242695663719842372926481522839932403226507779756748968846517117532904500188132488955740927250683497693995926672763144834252662066898849210044585271864278217718444454049452918610866990560575805026465618796284307760758535828135065407413273411145794211772892021846881819358869597805730440230795468252693642907360486805964412502281375277282365055843127444380838613723088617776136775983906113009164990612684094700925311327749243269450837757135518458117778477414882633144182396946474460271243807559633832333928371386011056262915375774951945402375787304959538580639789944532595453595556069011426157198829959032772830765056161755136228461421971800354589363545978343223151782977534923439780172548451218426419005497927260534530640927895680922452185876168170720509604944647348242145239700031881943491692723141406046177364527866036891979956812505194751871987251795112995111818929825675098797062155439364400454841070287211970984692803095785485500986521547311192110319102531416778322327210255157141180486117409079107038133775225489699620384345473269408666208763894723553321632605115116615401373931295619352942682593330220309751113932722401013847719414092621138378910569511283315548112814401514676776830123678185672105905565378694413522893941035925013596984281700562215894618144176696855386494118103439914705112155102662351096590759175404115087703359559081993222037326058920484659387665373416019877748646585192147488401095272901225039548733083939790114065546529487440607034367248381599293560333577050133981795099996583014814534883340840855038451283846509970636789600308089367029411596546077729612011991940238695696841166739177236352146639658675147590670719277171845000108566224225807694497163985429706707130889740520212042705859040038201545530345412799950496683925396516545159242593510434017477273647166479452903084814801266061611109576770087464576856304845627290273017247063656090595551505034617937756807808220631157506250948265776751688970500400223401412675283434596429277331736353880503271150216926960779833444728692786128583316167371214916053577796085192983018122921008174493301229574010505035066638019486861382140353165158213006074937434535305089669574473461697309353954614059307415712444934402618611688667666627442222256388695498342371957088933833124484287576037584976402261650078637551230835763070895722490153931104832683021534349177573525477315796359677700746832978491286650913875825819139461970510253464509670669932443885502218995120105757747833756977743930193214183775001653062444145554037375434309558235536532918175431155916805969893860449569916142737121711894009278668286316945272417883257983905766171745269023435598992928296783157693864997074772305181034561559609937500154795320056426456067176276217699962684016881231731234326472430749900619860033992573821492798919966273560231882047180057314777456082069931636369563479549968663809275759729985954718028624484588367308455275976681354655563948096634387198068580851729045252943693402197192834943180040361193953960764341337639057137355320293967606515108714750254045468196120699049844241006349748627271024742292859844049133973772953541949177959335526759168213969709683691770248227023731147068906017264422550145080887759860923164379197830075916460524173699739698161684861592626630188560992210250079477827375305834296375821211670212476710235837906785643651756610216390764472395186273423445986605056056041546532758784897922899457238055535667071203377696906111768135890363351035706672920534042879148276258575913374503970763699460742750654303022184605977876770505116550568895451842433198993367873277376401278639843863217657902002712029076050478968801986330113048773891733898752735382035982037669135330098564264957542882190624358291840719323222577613738854341961172684444652550508222165301576235693539528017914190770804818804270086495358422091724050031601985473857904501277518849594536349198063405215281538929989885518037819207216141434568555587483826354742154006503148629992199577915511248929658233645133580946022503713035224169960657841453442183530667114516724841737338020802851575264322731361147141668120530767474589941000595514698601862541850291262164967954952471996720606337069897447420926141722717784862835391299341925153154153883187181646505240716360084312587630993063015534943854174113176991820455859707532697563602174877112085071187673725918169559018149324562294223594389323682094509241028008473827920867012663359880990334101327432986816909788942414174123447237035148478148861128309887757227907582170114998563705384893055963114915281097238028617947105475017159503545195141880852577725119440285260639874639722106010166468940679264405312714848020205177011479652318499522900347811480219551935140829676304615509178513056569974720381308505408894349431212093323248740437950035502799778343664996321533388410220339877287892823127099935560739462884423728968621548959930601158434013546306410779123762308693955540347165443996816040665935895713209178833972663609596705207721392294547453670180340966463515464628844614113451916111710822539813423789469686754749822241773923330541415025343532395327238930708921381792101011064965847185308282853213540268378912281784757018992264700940976131017977319465914377153397148143511935327030746436576465360019545373607530835962206085023212819708639370705671198354730695118291490511267344702561172295036683609743678875958110569747258631524759974134588436071536598424732852371517930253024043206774646426486675812994489862113896702185217014527986031448253224161525405527048091068434547810901282721174614418959372529962753832522359129498912349012381307650818774967202628896750859523120858592240677421667638274787041636452804871299020006481342625819095216367428175139752353080120523532817727706661563240663180554627681291418453704946653498060894928811770886875358022557923704392906107696799862383168704111713197224147784576181712723132358855480999980412867347886295324049612830026737159017402187010555593814137021624565391742579813215495995519381900335963845439172676028122076068449585511728612477614628196666342314773687320852834643336938447625307168208757762789509786572339365331320254184143006979216946757086620661630980349120671528501003526644563812169333435146990355722170562171370740703594864376317483837181435204705080487841471655824301297906124850019526519479019141150528778418379878740449461081009445850155983612784958730601834724974657390637475962583717942839060311131876446185326209838992122933797445391005430065445958797717417702132773960329481700655091138830771360013717427568631103884732818438033336809578349688015132999829231383439938597995069496917669927149773341704662257434981345088949455834063109094879724942758163488029491733761903693538349387442638256572154124534767797229705174246534576946291652430186258593468996034023890816177937270693960120045228005259323496648916772652624579270624208922301288203684846368462116831690389053735812826008869095768829973334088713017342869781359340584564031716816761873858145007712909324464771094721033368622304138056673089720860188386487531814504397275837847965293893609788275621842789773330056626797433500136548373210247533873579123421261015423174029157263606128279255875298389064971797495321666164977577794013166317835547870811773263041429576857496728146965014062897059369976517589790490648137347221274033617759550508596159152739181881945475871381990764470031619656762972962102680960562307709128149963069564812592362624840921664217885399464193487126462107114260694544550294365512429009765197599277069888733047330186732903924087326935824337900398457017879827647116255320746918133426276231820393736370897643741202731344613250439666662603714782574696931136454831882165888938492732447852782507384988231900106204614668345546363229298788184461297403712715272982907167851998093869275729650524171832722976447623731193334193826381983846595499311745527312507583144914655942134875487049587477902132446170272844116347432167787165639620760618662467141838123730385621614541606041503511070409620950923532714612174504889561838758435486287712445843308199574374820811030906811308233772321819671706203170554199933444729247411929420664194716237704045397366985505502972084623421796344348311333670862405836258421513891498355816250253935105918549958617808358608523990042602777721180240031652593700646648354517007091770984783024120244797447315164634080039047304855478347724303628858601937806189198248937555012142100603058060324593724258189110533522880146389441048523785119900482129556351107716395986648235321363501785717380203193523332816250070856429226976660275800236190642342120489400043271406571777324533088080469068699570264476962983270794971863639749595192936110999017346824088950821563999097016060633239613541107939422965373793998736868718161399798825229822330466198280938525476966855368743221338335487954463520840843047921682076250169822450129217419573374632734043425644423332550819237723312229110513343376493799393196592342659898728144407194289992464464138649870500481997444074808775282216072477534065988775897807386437947701783603589359979922063788849716795866402259111181432057572325088757535692206192153808391354201557148354032902785602156921211618469687667822192634542868875972687726469354430997604216003626235946494043711680542690709362677915429774717592857176582813761358215006811571839630914258940642571421158193870493574110215025955168540933197004468805540468332674864266401293115587568187325038493719164232963423310228942055735687072070270564806117707876420415609883773892189119959838049057092687254078496935420473718262154068039586936595132891780992678152325514447488531139314213792546245168594497879066004728235119883335006872782928375932616520291514536151651290636203359396354154766368299963255404759920475633155893596093315884751304626059195938574619500584550080103942476745218252386833184492664360757529063504793730727535539406958681211458348434384302267243000705755092133779795231385069932290978867667550326721646643079071930322044902856490671732580254216570175526085382827348713431993518241329281247147111887496716244297107499741206187806375407257989741932539868536866789636172671407546487586566824291140590732716455389639339184222270056031365025031306310976375965465214722225008323880960287402486345385653634382138405686009919061945977127427855708156424759288296835932770754638346786797700960333621947572516459849041989451494696309248942806259715189072306339896488981161390745848904079854508973808918376046632612432841043472794130249480649409920820538672925375848036211225883956543236122729968007258340754279037384888500579499591661213370168522383782020927862994938655324022640331424285614614675187813616246714898029583808743278728045718701209301537787596451516636446925389715433232024187740252120013014426253076136145325064141796905613268534794429492818948537839260484813838293939792039536516601331150111758164807329676734977010418535914422872836819061596109346000275606014221722422044445819861088823375864054084499844272228289149460032123360697209157887360236599505997593492018180873238828180201873842742816224546517648594473283060212814805534154895508699375326270922917689608871910147200184993155825872330104025347626769623840274503173784536466791049397628543217768859228724540057199462932903068727613698217111313735691183286324922348536701653855472638838632980424105980779531968000925233975358184557314953607521601579227629214351804558360231961348637892234187756615930564122692445556083498587975964351004301749417651087911454650460946205852682657605844183001438761870740010367287185778146979138384020153547725860679077006886802198795392818375438456406770310792201679501525883877416973462858467291199466043684760000425744462798608540516661038923328431792984993792580673123892731582398331806311627183358075379621446701072648319651644877906547045047577266751652071571921356984196352027660810445990397284785240447211742505924252295121349699336816597055786314072833142222920269065516863209493336963865601914101958760073203892179882180918351368446663238473397248474058297572353019575135570314610031859253365069133029863504768441100808524935574655383262424077817451971736619286610353073807490234755036852554642340020190835207099081967897813146312124802208320140131909744237129941345909755875849803511018697742316276659287989681470195653609171682929275709366693055237913317090875399807408863263699523968983643468820718697648611294554017181964842582523103532322085257863932868996009808765185947902258246868296720460353140158733500547170946777697678411516154881520574146008077462563472272469650596473377891211648133124405260182580134328476295788064931683132562499788239157994729010169281109831437756230589139905548256793616120163921644919718460786814410731215573142805786574379257274599071572091540017018920277192480125861311415085622808415076298127786941253987153673515374577508890358326684622045115177237477023859445193829133188473897956688694725643970769027959095730819368752227761753435564102878136963398962594137220228943155216810034895209108322064480081430572130253645404504368072208633273066635553283496365507642087350798402631055711961385015756182678036647052603020142018773344448483174890102834503177849559224806491056905995753610501318085101801941180536610904769020648608601965610695524757219268887381579819588381150028654194607260606298938689987103568139817427053571261482728544625217010303707806561470825295664195556149778976030588125820413718222245208707920672218579318616348814925156227627611210006486106423338965359014431226957077595766071493392916920290945555618649454588309629854683983902093134386938019351876486151115642265763066085359336021440084094515141400592193785362178665616732434066019168197101593380155594713565504218596200303056039121400581922428191913308009404152933570053593881978167389591770861989193521413289194968125016224760611059346873221872218817689650842334417077955727334233684542759534386668706104495841096918686843874674830352269161502478770676399543823101348788530288417294421057256847858395110281614326261545168799911276738736701005379416404262343473738383844964424482138888653366854724218096336291789313883873212014246943059824661137401406532720636212931338634030286491899887410805189193175559638161312323738328705555927175598609767627168957661564517210447784521977155324702612898370222044135728322796690717270507747912575617944566512890931749895305126061112999736035631770467793668970997584917770344763383882003886558050935375036541316326635608579545791182959842237529979475646819388984408643110398600544337615098402855048946713022185290709146111144734928744026949427425071317630457927510291309498118368149852857411199118337157494561925798980431008616370199349639070735335375429709881918254070421352518824242121863988121853754362471302815329020406098339038756323676500240701134878625330020893391550821978205674593964795310768493409435539984223352702025633350781786393578056086135529761865203638313227779639989557220444631370375728952554979152307275375705988065918596973403300914280768508940084027147370230797453378880866754105423059602059253950148559068094753009401356186783968933547945001158358057922223888063748666048440950450127311455894727811605109338485333539398578530353659722256768422836378746278158550874202630078037069814882235557132126556428714823157259239701922309335616004747975473869646074263345732479315768282367871058447777282369758112745790253036617506105877335641792027709925576829051688245322468337776805686195166172480218069024047621977364009174333872875261571484606618105066657936551374633210607389260810740126484292483196347499660321711513362871004444586765513443266419571760656303881168055619243982970366653907584524564252691794467059696370481950284283449921810320087145473598655623216677770474199731019957153787459336720715074726285170434369739524964165667340262937891012849250848937719535573856620698436524306523111782715033924428468059865506811889757454309991727159743819425848207496722813189685009052815623287698482603869738022111629724794307213571502052618394884397134214209365207177283175860222338402141873408786721734108775402281595802269068426068402246686823069580459111920429255675899924756669829624922467204378604665576777518798509519636187227113489311812743991218577947595658844541057289339678618458793762482027992274046921432792557214899529026702946398065158005133458152578472718024379920713270184053471119049360692314768292759137331882064363102733649688896030876600889314959450422791791865484132275397075859351230428645606145543728066444979642448838491412375000516116365462616675308660636852419200288473534258302283872204850471336589235007710598703838871406234041677415045763106394742874620737104325997275248965175304150227824766211186108044323450296175077425342259824131078046743319535187299988585588709278945253982790897662923426805470670558851886211352265871426500377493930975635207357891883223932076742133928596660171042819841539982950539838564773694700315911091063775070117883054322402075580695988718904297564748288709801577821227511954019733223059419346778144014800970945096354394658091071618856447140447007488417188821249629701317875140057534158244814116737602879559319235343977505029638582418768391075771821447562162503358406443430872072880556414132853294164121175130660683859888093064204372832281252087820832526248321575883380158619425435743459493550858425143351242876388247003284223255636208363731618414998633831503899672671186782200991727563712664463497754570548206969135428085647884113301866139708988306949574181467216000120686090320622183054799737832559035819717585626801649872635163555453423853456990206369712626046430465833186568650939769901879262062401254588425660874121073526018877103051352922872407584201972954375918977549634199804894928861807113644538851959512538205072404485912979845632914813670153080982695220935286437190207680738541395440510278347937512120596356042444677038314063369513727760102289845283724007515055666368047072257675063216155404233170991183630101833956370094987353195004155226589326850708413663436118558528184733988098083792678438345023356556984345074801941454859617466219728318144554437019551455769282681816319105727644526967556500626310022239266076406191116780545153100658723067080623588349543542249102490140464387944554308367000677522612265315570516324600204820129075731280769710575461702518277837988547676140878877675606036106445614043339309835320193728818019829784029369652269798716036056488396636722094802219935509470520424130754724442804448558309354083886618598657856929249398161864539665106809224439472097642073188461886073549527766192622438418978883191283948565735760839187130726006134042178829187894466909453830701961117423040413759923573329991640367742402529181773201595801838074110442025525160243197553793058346143013581908973220229183630575743217826890652006163803979500776530575498958246888157944252217994699154084480139068886054674756777308096611357801737984728002606743599665017813600944365415313976304524495254915752464705007707295236979381231975220977123701710130247761023214806692067872170028708286396377893856715328801170242700902843483432831296148439448190864065983249221868836001278856738264012116813668645611771493981280837792524642073909525283877034732823857565305728746243134932918279602335311892668190758863492117468897786960652152844307723680177424043451258330360363826674940865365961909025559729202336828004031597079732368844740831887159412971472108140564692840500650441826079810654744638013824655150761041910897087643415878465378980670413178526361918866793816154740933269380449632556463049667074202343067554041050381687458881458626104687372901226059512784742954513553639550121685634986458890875647165922328013123891070281327280009778901984654326671133235392319024767661798748544423037609164770496830579373550513119423911118386752622393167762893601417629228916023300706887708111789586841743318774299917997219761089749689739011674948091704714705912378904642261324687362330043776751321641907173189328574025694642325089876782260825114552806915511347201194453321250716486410980227283311736499775820897397686667454458160798138679238115736757900248213775522512270725590184504224113966694361888878214513608594365273905617699700821026467424900868236370060259309602865071900151551165542448175746800686654643274205361505196058544034109481883231484302750732226368801492978871487469228857869228309621003556130010665918173498774143173813225034802552849625681312475710740155461852968222543900371485287632387715934375342582984118921825007968180272464210657788668652009237201216219088217240990330373119213434359711130702582443528696962538690338626666277071039425198910354447005887542667608027807928920344698028122688754486435851887498213113164029300449310241040697353736055336957636631355910824677077910107613356134716753203358828085366235062445441243079196050766642664557115080816858788126988810801344924795855868205071501959006146189971748393530722525337428902539590313542879133018461443657979865077429619272325403296104807230876125670469550273052845865335509914822659122996095629714945227904529760464305662143390797734788666406524838798463918646479226868089541265573534714813401687379981412469405065187821762587977728982753976028011183751287006003254880698295542412422849586970009737627717134043958519741836595884238092163681789350173259762485699408461824518888271190575373351514092995894528825848329703076636013334539619277351145690888438090142404995903749224222826659423846403067419134089102527792157537038043174867228468841549336733640080359835137929157206105684131392971355324559745725858582921867254966939330824834061742115340238477703197880719095809103504476687028622202852636013407740224354046055797715047708133115776589788980443128612647388595631125914203774972853873886314186699284723892076772899100289565701472831595156720617243998911861030777370858523319550306642663718383043043652395407594245366072024162911342817302877622604599452458477851719917404955969488343883174050451124174353058791115054480315537149478785753390508773719369743281476387468295858718903571789732345797799042638783133525678963696502659384016308820709252430493533876018276279148144108123387241344516369099241206500212177146283396008593090234043269881187359502722188617636690846159433919333714648349413964673731263140246243825748457201831244899382686731772626888632044629166874645591517987499167954299182093859917260306622487800789718488669714282170226309826554631626499818501111628951888597748658394863033584595365161785538561416273009605842852269967915036406189077241255543467171827845564629631691066321360648277971896551368761616079931327143614016997193244472445197404682497916851318067166309039032814590170035156188788727474291747717442550272698099511655358757125588052647505958811461853846549367690852631788165994478721505429369375611765579311903384581782797563342777722838937939546567904769020899786813973315035291635533628104093838759893809674731068896710897616493570563023442327981485606802627673140115014357037285652306440829967329501335289571931192467395256385444879768885759283182192391698606553882552636789655093637527522472909606823738814454333381072067076313778527473788590814299996112126793616553367050004620056136826202302333245866866261391211461732210261438191198856524946296550164008751997809694945713279411152480740894571094134590083249321655900311566087771337070029714144435484619245742903665782877800723198201165365690554670210775879516789242360357821143032077000056791290748614792974986194545592337790287172186978525638323054659420652093235503604454729280246432800905347648849041938880847085203869581866336491910176478331096939416179940124466571141693901209383895092084563325672425554286623627078451825376358239286901792278444814637415642012059235161169621279811505206949633437438909972275069741608286814031993117707288701500721866576750368856509486552183275495497711122013540622424015086485960503344981984321098700129381112615145966402796674254745401387923759301539244315925472318995418648410343090562909075619023851142299313111290792144116993989619935227747662088825448960885595784954361805593524190787198466082651570328207591930285085651056929868577698170968270547073563414290923474643816987490327970158193290788045546106791631141836893647489265261631410819760712086366973426087833393499470565138864501770090325911436209930330194705655502439303605862586071269130207511546856085962730702443621842788133759670117734096220530171180016547429520992829236107857891388140303673794150023171038689397474541681156262756091848769830321023260338280974581185446523560692117774871842448023174600258048895022892103124852746374875223511945189354174670318761254977220396730316592409653493746835170831233344659363189779361110730274501870982065321820160595004418655120903991343244837634913879241166656360716954254534919896996467637228450410573010823570237246468161188993693103577991614752837416785464057487402960547242645444861873641680322690666960657439557457753037546833893253851372853621725020741624779920678066527186424556809598386003387085247700770170484652548154537373935822783225446727641553641195718288132060317015700553224693455867674986907182437819524424629708044088811679137471652442557206392541733934243337432146006936747111518693225433695726974836142638363328102036087071766408232255881122430685557813841667348002728186289887810016926274087980671267830954539739767628091556661400672418456918381733327382650439742212223629934144389770859040499081615338196918727510072924019980150990906756693625832998236793545777138999742422479804107843803958392165922284000489992557656949339421581271838319790689082394020358370215159306687909774181858163917437002990423177853877366021066194224478513332232682597136912541398762552337403442574371763137910983302369629185375053917916271661630996551102137360988248171382192112726649309795259509128685217232916676824630241819689681022325907640129688394544258298044452287765385618010486743124659946249203015062019329967255415542109421449366903794093773941119098842166288319678611207433005810598934626851599615376212787903870399425768925352199283149419882744266000354303028031011447466915960432615943823333838750938662351798657262505883051272363036755087551462880888630780595520884555333947672794049652348003454507834293944423208347113128252374544311288581587904427576425840112151160306682015890296389959695613776223919085048741696289745822008697749099355608775599182518491004779277375201271900643626123217345199477876020870524665419542234243649185436296406361761473187681827404514854663619705089606858142723225809771725717239859481182611031991060429339397419192165388035194621902619834308386179836006143240062741585197930744389145193353924218824652479175763410912912696161207210519075695149419386654250438172230989526054316000917949009807826042485795182887044852279234897433205801869258730746873359044106722829527969344338162571361873943178043814777468193423585467859791426383178647759423155082777244677684779710986780290943193290114582912032452805816169300938409605751087168870986580059399639035902716578285354879007759966411309912681853068875860733278907914825973678979823057014864731998068640380160082789682813949162579099959798598869345316237182761134724957667837093694621442798127995719309857065227610876297762033443573869472563255007270736072104322647907221188682887976975957351487738774861683484482509981708015670399883346625572307379365490461660315819215898497673564549288899138396847696165079856498968575134762780530422003601150775290843403464821112096485477027352125284160787184922611398702876826709314863726942068564696518465695850871593893694955466335442937999786210707186742996892629775196238132742772411118329172942829496456627019783411435921955153260901157898263060416210125743097638921107226218200082565071704161978434431616489782763699254098304103902048734011364499449346170705088157037208183556197312041009249515559293843479844932981342256911264378067460975856385512581790390706616755121730996116847484967375990312663426573191025283597695106016265105597239541463754903808951026159368024732559994518127281780316106646603072637562930172465844655595807232970333081548966847612327129739339334598850850054916699049071487413116770187755182712399789712134590345856198437452261978697347670724279088526940635062735171716821665500620975638231984267173367443059833360969423193366135743873348040525764840654243407112770406085813439174847709096919972028254575238525490414524863555682356949383278473154240537618540552196389183469780907821074084267561385357901651260883918673054502070938529791669074945138463611312628208248144050132805808601472099626468167673999159071317219272279022903310458123300100321409387515272716150450311664119903771407011033536129855944550715375625646640185609239211724953151070241992589966187752870529718195635835216288628669727158833962435246204603324328831183946312085808146203368945903387025804415021088812569026724049596657623452592632681511866979565889523276819054339196373346993379337365802361651130156833384928507201694915891874429647448808755756814236467056978865996442436320964977038185688088624473836210986352812799837677157373754716351723916581485825745838552425224828383385434887795570770416200952569552927067482471464850181841679773575113649588535297147044399779800413225428589363776005226720675801980392974940327784094316034719532437220193019584156491112202414831594018486191274992643565641265335401051429007844834530988089453514219953652801953388561617389885748144556878516065536388836513338839941104469039584845616764570020806302947039329790924109683584906702439719173307128496889767425342754700584786976737108134818194178733870365508264833856264347843427192545723347422343484299783120421962974576113497282412759213451662469290486330591639605673251879909841874433081209955977095136526020148855897323392544755734934690076009359349033173725611977808576512701198944084134557364811498815362151825755144036045377459304900819851376634025173158859407061288511818563829794788618642202323125538521957160923166567620117510432089877177305362952446808442577673726723536348474428127886356246037089938676189517896215218230327969115308034414860125593318279943666942826936875997404564052852492142420375792691120769342851824661976151141736701723146032750767036335393277886016846564037018542733972462059972876687110742954326972789096372011961208877116608342423533451124950208173837499934163011436425544707407593885614619905598691454434802393008622510121238834005577404806158807054256957052123814028563022394373305511154491773322416364328997205717090692668636860023108039519992734217960933829955995017361381031523331525491809108020935109012559202335558001623790957608627696810598600833257124835050871127649698327083108220065941991892161723476652005391189887388169002879405957482874778737638885947658175458495834062291622985251380259214577798474472860048523178123189653073656558383527665874136530447789695376608274773137877683245497230810912563463898973453552235558400076856523090935662251991481462329480574033661548182022814621814223137602004066573264268692138864809249020271000457513469537178753189434926043520051473923998109373362698625928947666634064560700990720745895196020558553518375406044059211399562294005977899040167877058728407136179019785473779651615680902599665417027693865173155708617537334560095590176587570161420899005197703314133267974368296584369553291526368838237919841500701340678999167675272304862164233371224103245013833709960842940245544162197580268979477985851509969389862540056590881514063054320644446717140814666009302347711032849663002635464150025748068250169641743722767432788538630107829755797951605450171008857763027471383086656935695856103113234892416236322811504133401690088178970860617568819813495131869974858632218372743225676325722818899849366875986062588783182267852348875683399425548583355154287622401061424246408692489516080820554799216296353374637386673150347163172960586877654103570719993117291922192980195315325415448011892767601361142671322528688413307790627321855170168358194927867395756755455920905618478128484997952590145659348280752604205973316629376918344595842264195152805521694226623832866042863255912772752728549130009054503608837683779541318010887038430346750821429641589995607187003457557906266494418081956906643046515161282906911985545313288901963494800787087545185079096815265538302896912100702374992954402502898332732743706710786800358243937752937053026060634265869082508791449481835275333518245222855995246428843539696623826966000822828034590567112444060325977198855087939122114187842340043867556371922783123056866787263687405898666057026295935665947703809327291023478356626656704359955882384559943599888440467788683295909553524901004615264670846584122144804135929804204418000828720556921102166105232676663375627210969386973556304770356701956348612428057172181122323285152381685224847692836803819303078913703111535415365912647403914424463298966561535889893102076462674507621954795434581287135619015876033259753822450937694320273850944511435958578953885527289897042531981937898846499137225490284973204339630652480413974662840509924395926855560099728952552733629138941690822884837696090578558338243368095242320590136637195451910897760428684694703532023083187825135222120328697837118116934390018739409102534029398988529703929167367216705963089069512345059725086895279507420307287495296240902467990883968660094214616874704823830062687503312170911418093189363571517119309482602878441891968955018565320986725704212009796702885150152939274993697965889372721622676056345443408737492530305244285658672617042560518773889775838688091738504340640042032984420173120258737439869413475950759436969226501449683919368053609120379964955246795644799269698811487556901213030844008802713580963522529698533608170408906461756602695133716793539068513698284308490485187557847408678897041629683387768687050460653369767696791978711037957591712810497305018445360332592463865326326229690698194327804646690738442026529030750232529096409573205034226630226052825307990458620910584478504326088356846228157332459966851522294589776833830943905899738989435470121458912665785194145105451581156197827986047707118517351625428999236123332639376350352353692003486501373679137727146935551046213074370996949944388129497811547982988292954437172412710896660503343323277957462391908614699251337578689370715749721615902774254206971191715464444283844539278024579984469698256775515817171333882841358090969407023047239757033034391087917336364418763513195199562726938398015360331733002678797248722214958838264892086267527149805215196587583022126300604085416097172868446970768033781855679015057465038782346614207729014916410961816310250586879983665333372189683664449250055607922773866039874071255201109896903870574666227811962969273919012848774394305414496055489714533006459400059089495522283974148096799896935280877097826189338021898359499062114720083729965352587714255887000301910875301202457258680184086045202911028102304895276680266528554561620836313499483586935296499574546944003353185737411978151557899944257828984219646815969012819523040546376854229881656827825098817658263950562909695169075714123965608441074083769287566560868356373814486900933002458327378833502894857437372385353418283455332306257824886719643825466082405982423901821059789751502090381388158385344159485688476166041725882992364804051301989723745305108479801083999721341705604899133438088893621406474968352483352990920004185138110084899710653546714655736866948908019528907693279910513279541707425140861768276112033091222319252975587245835885193289183804149838446575580222241334671953351837086925334272209589674357598095982917114118587760883551647227438047098460775747789379369824102449117962820061101763943999980824414039701459094395027626580802470997297354382891586299248657360160901778329471718886553250829660795887916489919372783368869292334814289568022618545026495605655474792493272174213968214896102954814495595566502602056494281115011026497226703411089478850965256526752957781953263989614195291223964046227898966620190739335899312971259462595086924925536860028198341137535958264667977455621580177986908621210009929750323969619053037497791589833149772749900761828023489061006898777045291877124349616336247830482572219775206066843597977507202386906334549741505962329315880389290668018294345152258779063969762319813044296379108389852847096762677166009135266744722054872437842716034892052666111378717149837599579760867332003441736440821337305614649102476693218332368740921330835158453482532663891217054486984211531122897878605409410823112677440003680699757126151265666562216035025779827733450816257740969099725978845918990188676059961386570564287585560455496945187840424462516949918345617687708232644726797949712487883208680247044966109264102834524756173628269692223024844667565438260282256951070882453864964504413145161715411654854178835739890066172382593637081744120306842168443523368239312184380872446000788861836583586994638554372858336320530892793467232695228510357069091912901379192256379147747706244625819723366834995608320281585481690824788682896438306990301208933657948552155851541525907692362045027139207786065780712384289875846381134684967619177027300827461564087929248749742969807463153901243606539823805211588540802009736826556540712822911072975547953469349713097127648213523363855453608490185210916395117458805444927673737584847667935898190285016299906092703123141118320558367243735169573206323111198637690545091167667307657955061525186514666044752096865460812177706581355569963049978160848260015922069079984972765309577123684540893937372957062907108971620381077438652063201011860034477589490878575497272771060718416179623411831629125491315775090234388923665276527382602313413698957924663021310187136750178168122167469862363124481448606947102275839717320956972920188859446840634153426835942751530499100834010254806402470604000222031557479287772608419367863213726167036168407403850040807118543687682219015267508228228496697398774046851346993237864968354893559384345952244841409031438655464697796696070363218459032453206353080414929405259265585747422617351276568818460401017738173019380135244659120409375979045858398939183874687612970446462402658806711734997208394570240717832030432869142950001331147745372626859098940692184003458380278170571543177265524287621403660143226924975319101927841318709511459974390113202628509862693995998746361063840913196034474942649377378146219390257647648318201437457414605416647156301269608208037565043947878986316975737713896815727190274513710957501464027021857999514210369096006279907071529362562382279518118285074191886140959343866462081875225623428376198420647922989073969639304579048235620170996517934132084337713030672172762578392153888663761430106715706308291632349462727048437291393423974464915285822805518600125164725313235653040433173256144498415272795068498670519047030031596973350018984308877292794798331959940644897821143669143884682791633083313922422117628359889445171449270410960567163457999057029601753063436562696815123386525080126069586667314691067668232060218469925982852275547416209324593009417307261689547777198605081145043178488795167069488186160462963164859609583733996101288226447804466056413004361099168699455023151902470394921352398969100589906368768798667401313536579095877963725448794247368484182216154484244476810789020876449946742984103605694117086710332306068879188829456198518840097318256166992362532060159883511681849774137081384102945365475344478932021521274455575937091809798033862011619522802893152276491515288664696032047065552807844951630890852379754512631421456460199627108095088398323886333462037748300936105130418213785406555320628014106443039315544981063373775666157835174890395203596304046096955475998147856360622576008402058188333634360937284043999451722027095575281013920312890568852174326721492798583939350410825867459788150911822931832193482382118483166272658750605216554563953303717223805473417712975906802299171670189921397849314293581775558020391054704031774890714748599623911662136868809676379537578870420985113750605250182896964072219422862693981289458954191278424633428996876821117457693097425202724696482180156336069820556417326344345549731208150719652535216372416640103899967172893528704319327006400937650671414954315936050014144843453803371449178594799476227546392127917035943982681371287481062872112484505553089381224180002257941616065355577265328810674762374301700103812709761313465254600618895479247493443380845357627537619993911735400454530456530775784314453752655428504746294697396589239662456587825550095253779841417749237473779775253067621019941946819658949488741778039226856287743246419503225461023408730421547877301776071753765253104495890368418915635702130084769347071540057222446355906466102321813508541303821708578981930481753953179005000872118092081241031992962264373903305549338671228778725290124842550568700833294075978298519724633972811102597190744069984013492975393897736057633019429699534196355799943473742209832517901985186870961036075879743143149545088602480422329247947015906472635666014301183192181582204276623986047080649143459250098521548406172389674129056682515653731827453379876899534851621404228031212670407765295656653019121674437617760373748104565671969910833316640678510934285046379711461884397246896671563716667381011247147398988176257510449262614268417882776610681723426292315290955612664067044946905797550650080632226274645149135462714567932968217346076178980904179146588559465264784715712029999084950545622853293226740067353999728545755042633153926064444403318349153733408331569586656747189124425116505344287546361266174725565733629646453856567543959808079018349771091531364533890810703124805540672152007704375068821850806819951017831099959805955606469557917770353188457826884907988922184686163585695137189367582314081878840344805179091213659797599600937401216764747651769834615896714889244631799675426607751923641656720435802509241601372809272689599199147717980878857872958104142609327063037162633515028720985647863968310819723511340383679208471760236851909434485504082777182789366570659972536708928422211970766976941471020665674513620820033417460525872748527444537207543276223122634988862443147473618089050637526512629957453616379440782432372370726984234052828060226336831400248000450107755806057695515244145698348567089930243534023910595735644949382954640264333573717462317305628111608413099017566781327074475453906213685406840655797180912608068567537528101389696899696115575509628800834485020268248350099786701745467281547857693613840394622211719733928029379084464172919068806040710184830827063576697729657190688092206033243622739556158806530300467738665916442672599162082293859172786939332637303945352843488107131540300196760480775978370357877453984810222131803368214119205328954404674241098067349233358177698939772386504044744082325936679044300302652378820426788944211917938423151234231851514027489638101655024897090488809714452614751727533502517237324779074208646521638078038065631504573462228662662923021219131744153399671894258911327479290662129248273394642788362552718053004176270042147877211884717255402383503099574139628166528488351066104913196089782747929733784935694540617765083396909338093775189177301600066169193198488347303614629182979590250527621407239492046766348796095889009022386871628810908932772701418875784817766415608736080876217260185170482077278962715409645233229342432005057310754160691166999486834944983607890095864532925292988038415689064430723426070974404802085945646962626920233958285118742470453986735777000722953790335400020059568115880971797932329292617520717565541616211389892428441842421194014104688323539309171261596992562318637085580092042612990591693155038623773918074352847135659604809851326025863534820155780033100302673553133602043435268585825230250907557242885154858056735315108671365025600511864605864668852243737412318885160165972920115971247113725317181233702604748568828142095330886103428273355773613168820819984148880144814467417673969345283710166866253172761690543249604263658135579435789473614446971111787211968920725349821728263315951662954945833199342074446936036614709713477912440035066255463412852076540146870840460999924584289473082887241102315291973546008860736608128960034808927046964145908824319245696120898741632028165166260276971261060727451879204614559049422093934033568387069291841667407381612881555189821947142688634772170548413866370162102327168659552686120787266728054165234433551582632627237607900241535679787670710816241552254625853993601774229828547654685189842511316837828830802452770782222043720303780491201056029365620291611173526055547654203718444947483518947361600212450787967985647150622161265208756473238158770943634537905625306684272555578910877802982049611632978561247785352645345002091593188272103188525358794412425738601524701703399454063222885949651288625835049085418440171855030654025902089987527057943689331852885213258223007656144830032183152707682356550008179656206304670235477286215601662258645883901930163364506340706454918177989898793767317251373693245867338417137617694652036690087433746088595803272914853722359663104179649289638237817355445286856454153191292588702456240274349777855424247864968870186974503472473463787624421974040953028727827640367851866092448294188152616252101631531421546071985234226675037030373950724356405808876380898061515789557034041987450488203621293236255984402180420623199636918514423105186409186262229239537258795098025344809341460301025170407956910124673780153844534514244431149471304273250871926433566374903983903115745857683475925223190718024111392116962717030250009965565180715576200656532013774809430107107493573475824015364132187984784494424428163322172843934458490446666573478914768041308079713960840029246598442094269604056457195699911955089954814024848964788332331643375602441568437362835746864123823900465186341293328292451368068555462996125546940120686538086910269550326636580528682036695482503884855506707139137327772831831920472550327364043145280129080332220515625964146070058382012928336006504840042530146984732714515558410418600825926297067038520463503518587114443272365118609969412511642095809445232764316287159278481015026206595223639661784351796100327876155325384088743757307700834036274664164167131521165322802124210658099902569592099861899260066380278766645618645696067920664475404428798244132310345085819916054729205597517556734305106731408705175146214449683090784767302149481845767164276159280909906783375216643840891989115147155164188175095305130382744438521983774651265995688547965754483407134922814631194681977307898231879467254720801339321347244815283329008945315915556249373740527480229347069855733226035936626796873741238907221297930853281211477943274847845698197953866705492611860860180793426341602695316935100935462960669396441995276418487105737024447872117007423137702153032900959584662605500959664028570917810524687736953888938435235125565469178291362895904355704154678351414728495624602161770723433856356553751870549343549202560495659848904682520726129262897625436752374525596650961554257447653529062580919303889818517302791245279392347376111194115967515262581768541425404911194540498676068641554700760991396352447344831433522988697846659355493942836943282332400350050595047683865791319351604770974591275675975806594784953645762615374218435400072253198036493880751658229372928217702645884407862013174388108326190793671826995327171915896588722725567893890025393247139341301954442966023327587893390763942285232945634313754531617815613083648053920099283491468633334124265571438531622454881592405601858903064657730786327855925994088058461252388609108674315564139541787529394001540036713122880370819192437895926234460245383971581246787270651720905090522158232190785807178067194506591732877414945686577702289493682775844394576584632400871873829019209588264255227036168075821896550357149700660193562193519557680620173135643263861732826485346525557957739442761771519168137798485585238114541541116971535558093358170912043471329828767240520168433851037308483511985521801942053826369285528101701792193209671472004873276242892035477286924401207817766647198023354542588224938172241963069133355261818383768969951674545517203003643141416679247458976785158261264590163604919372429148762609065135659676761071373700819830984932102331245859823483564837551642429094405243733562831193417388686016133474706444894325002262932697200135601485987076663424701829389047852039288282409304967613421290591714665944080713342320409482249271439029355518913351093587484144314041126094313354194782483890133896574363490012483901509291607325902494624735159701072336065268213046008198252996735274009114276804726371655989493145360737306411491022601955560792113412115900251488956143209244190404937417736469887616323346200064751193296551885737319083481818547109995259394069956726789165312231316126988156255900695855703293961341022233663492341150306145108965036769120903567153842537767593136957856424138756859854040500321475443930199691763591646110111808054467878172759857967051862692743440480699901687965502533579016940379088222748313283256983346599413288840615543244885561916226548423365665465850349850440669349654102345161422780115741596155577283443525772710324197431088029684434769077847598496085967389623467670254949165716740321157439176484834072867933317975149761156623805082274332908707179056870833220241538483081563985056856829591908981233584368151440737753950912344723522362703694261084338739809832183895842998920716433479484054903594579226480893812280839646722358729802758414193239759126618078524120607432186597823610919976922276526241356927565925891601133408381685211814213948962689053411353659199648544279455531075200846547333222328939352310481998019461377032861799249462996643624170015443974014642884923547770635547849633834529423588202680273430289445209214443699280900694254235173512856255167725280262558802400860745897331313354329776721060473032774125089990244513894324832452840124517744445983406532250511137869188804871087896109321113918819490695461401554914651143031281087051350811028311828196669066931650237491124814886184653196905965795199447248346438864174222059927924932175865964551118981946958697479093693897226741724444692863438683227371970069879717065102863332549194049121134652214632110073340927456751797167839970699896633008862870705853472790146072559753391232811333744567380588339258692616289509098935557546024336460635551265337297664021356346671640743865252379180123482026286797719738179940322507497043474610905127812474702256055876460349186401881099307274145446881886015888612756839493597853093483147118121914251574346027633563322898646550533329903917443614252691428694721533597548867878241326709254001235121878614245662059383406063566434930641975483046107368195752873073586114609639519437786234549055571204561004225648262669702472599386303723132630363723784674155044278375825145384645778732807932506927766196162851739268098800153187269761378272807030372578697359910358891701327396220860410523073132699676964767538964173468250135720488035086590618470315009440536049961173231849043569250171170767089584476526913688347911265589566711531303210157174656715707338258230802504713078163758151236436158369450274941096019121659321809610604815841260033255444779736988917225453130436367038135465609425488394571706975795915128287501308959514307271553824045386567845609435858311601273831922265781578133990239804690841433286729347927050959299050980269220825411232051513062640887343289781074878010303137746811732406489763260774683680981687538137580908877207604662866502770395095861495284329533286848281796935680120757902983179855844466213130727193761762359868374700624065927629227421534142318756436504864416046108021478707665706276580958192436758093439005169627684348559855457857480124413423439614936349220504392017740706943412719778537338034983669972390798297778398341051970978172799066079367581675053513254391589699648329946052592737445213077656699084287145978273420811201413032262285997890687151130658257140137299834603013614032655961674670083233531258426034761394995341528080471462248857890240965841618021756617198123538438395300000205709355606414501847880000558888652278050054616268593721938485301409704815223131812137035686392673533589491185590307316577541523158293295066201252877504858868048459605639397302540410667598845058938663565793246397072472065960530655977347844887740382136087653124182405175480647798701935703354583521773530535678834515099623950068328274382656134661174023045595988830204086980003342837800565085483173681083033883533590038165115673379923513011875545215345609207936360594420002868529138975623224438504477372687969764805825117280465188254095337534267190751050557230848725974348053882311036671583633301844568263571165010885492125265533365203615004006501941041578369138473693682763455256915985411157579650743230091114969683962596849874434457566256073833567664149381519123015578197546739204020915737073057338245086459267294497449768390828676940270388041679960107269157151279266791781115852543572453187939239702481644914573238082097482463048742893818846487349841047464845836786956734513144532829365931539643954518947069391311636285577537855259903791258129379954647931142634724899822031663089440394008193021771230601045439155220867013774234483400269073759179626161684085943215278447826123003932517301068596367391947515291233554883544855582429839718158076476007799803604606299694352774539562328928967994708575011561023870678526912335984789310238508376270978521806307016415390794745996073127843984789255015648941193338803763856491343548179272603598652695674474647789512222348138494785571688709926835287135594417802294231457072853811849461637720449418647523236199256910885406696880174075722083264345715611201423887528127087180091704924979452491104129553834878624752344823882420554321219065943428276434129109663412288715764838567149981879835146610008070461923406016329818053535394648480387366886811972791469666387944439376177978250265213541558128796782615581816419513578214013115885287740382484706368570453354349054935283931876099444194968200403964366713369092077393259696446272290774499372022505397781216153487446664223651278372931237317331286838144568426389360887258612386792811559693832747252738162377042245364440636192997782542072728900421574885819883650580359444978895229644819224493310834925996758297719244565515137224252066371554243590617412278917639752870549840522424704932703370443930720988387126926442358839198297629024101414144658790872104440143431304879864815927139037347376808907166281355679315609014225340252246118492993069756001242390327127055584533064902722066798630934390291083248214834375352627243591436697270053437157597254787017404440294600070099792642581527851159275595347383701271481795316276203751740856493607649718392769071268545862354621321676306014540596627353921974174521513606407223126460593723276118163438814537281217928179581101862492854152103063771778606592224929901176201937795820163587359040855627038417370460849519933079565499435313946783234360730406818187342724734597510326762239302143860372191546797673637325994841807769210014669490594465290195269501513934872812223073536620906138805097323518350081048800392599560059324921267981627276453532028260316925745801430016517245531162995322653495917275148035331256664521386859885223187596323142767907238996503626902288886090649726354058111227248875959908238200371310100963716524936501907660706048215173197485159162858079512327149263325119208773982886196976462860149996482098647829205710176063463524826192588088018116860237450690049514908406211089031649230654590964382683885475242298947104229509175642806369754240202514382006187197180758072777634512344608018144560007014825775317223734717420885031443513796514145373350897050913738531732030044393643857316329340978279041630817149050971589935214147657254629325080474543704591272198985078668178915300194214892067711150344798237744523280338216885822413587451795230024897159876999619015378563624658282431054092263198169189669490506234652241713124788221631139641615616270776624132624932621012733787654338841338049179160739853613778042842588514106653323154826701871121623712822763923557581132124014826328591287506885500938536860423390587489702816634911745568816855522105088800526666689376775577551174913425926956349526699454924982376707747063554701844752301510219868508839595946344647554691618561926568237993602981145560477952820995804572300185221509089325020738744294373261624199191195453628334214224051296074909866341529477805423588174369710920168611092337252207462869085627762212605340850805822331207325340132581475824738477273175455744629778556087854406866029787553408766542609671433031858267855918121994762846395735439741323854879269542945470578716262751799356864334625314730325974782195761222331790036066771727247246303382628548770732275174544758199991222843544784161096808805551192835862165961522514250592226763284145936339769024631302983429297027974699017340309086955373610787909674655982746070540885926544485421549586690154193697307740449044815809331163291592131384176072998208836806838157132472610286033063491743976712665746573057641338585345679738214440705316584363569308814326019376519149181168683515850663207600842560526002046219044553084739406033810561535635930602983400993584606276341489538044310997477052453875679789603320375620382705355694236341791684256957249803560833769029572384731339209367186141654633397476057734761547549976321931875899070191425384024982261362628324508251027410617759199272182093315336627244898580874124905769600179913975977387547366961677836085503211638886193400949391074732898012592510331696231350057792370611648982156338160986630712554618571828733806409942762800906367525758145516949919615545535140787279869966661252712825970636649201962136152159549286504070008474941452462121459259874007626257043667774301011179623120967151712422913761926812644208652135142217397214856433381653272786663568349164846325225119019870512357912158637611072161541950274915296737617303301079748202599240978768641558338982779076412576134457030997120778582491028587299719602036482403693346164149088251198237976567234018233100811734122922301384085754119663311667214852959930345103130107823151977015251158815275957532713696047246911311239622884221043591235737094761741005670432247909268539370745745265048041852490640980780974491259723506290014526822475836836009211383230264534515563227801990690264604665515050191529580002895364946825239363802650300597959613031853241979971387342917504430904760367674086242491210281115610233067862168938491003999224321902373172127912963571769140336911063920937747504591950665401562956388443128505716729088233709235896677495305162048562669816842646931450632899828064687048297566526290707945840387630093718376316603943817500571636611027899803606090641560761951456105018271012995145604616094883219225987446206111728522692625550344657402341219614693489123338596483700825531297834002859851872421115976766882893332319051620847503794970560559311739019800815295387268570796074257305785100465378878775337813555525350917997625400137058810988502293128755735340822320894901985484428493091716870171296369707955199382800710203962244902789700325493905917223323956078387521837978103143150549051726010958287152734683684510887497032898945056685370319538168118093158073800394220586902679801295549799017084492911234319037130774689147009052468207884285032852103913126469914112331509286443647796367877001267871617001871730798058707265123026653035067863411834596668035844623713133685676013167916327915693091353322729618568417404014275931668186187181487604189085092140886570092276933371099793376679901126135825580167115230353879438147779858858833628364023818797638973777623202477626769972743758427266964863245023817344005331952588638072971136327338714767309442203109863243133962228730967685643014187870795179594553011913735702995476994194811827433275842544529945883881981517612691944229953256104502555228232495760779460451576820320584868375425822147770619792435243598400016030401263596201230220357467518706064716084886394144155470978338734037746262419384996941872425533361535975427701048762129751179406162973948530346194062759903843319033597280359078760651684433036673775825261536071572283913646232723122777176766120863005766182252918906595276376378129159989177987805754003777379584895646306728037373985349729797354021274608586396811213372283083266918014732583672504842715652005320813762776091869568558163695645168681327763781833902354306423406819319508010907909069539530375788654824844709445408471649269360191949841726719790566994915459724095832461870798798561706087794754856090828022588511233049663047714222876680377539152869109920317664227896522903322867598585684042887289732421446129102037818093851138256338553979335851480609060245154347853865719862543219550080875072277381536201689529720789877208232036158723085750807560818076742591439908126376555848943406123507015621329633533022688144025360001709537104610280845824994912387669606818895380598816553527160073824857685024082066327490852110428323055134509901542967287232141246971445666613674422181413752680020187820981505300146446096287667924061552258996418771144878709697433069959081939780902978869991654499578970596358724519734133130960502291948457582668367350092455526970589555283885182650151537742605752821443203185350329626133100435268638123984677548420773273530621246821101842484694832861548905168821256629192209911248845762139214461930443204375902878573021318631989541568932837201881839806658037144745774059223181883553456854017763680165731089306133332714709306999467604951030365589236500411790908385538305327979024636382757659666574919431618803477832781568871302222554918813322933070622748780784432828306986549561531626838204148050553868180970713987114297312447600553099413476723993782128481071049423084178058892789922339573066139802745181803835006313226118826602916573882880298866018043838502204154238061494515150740457405156289160111930473075780812354911377838428258864160428213805029041458269861609111202260237994487835783474701962357676476463965765632038938127852077325110761262843050881418162677993750534225584795786999362556137867744484661083087601183135893755353004230910594694079348009144926696797305837335913337152466542703669595857752229065940619868110986444806376710690130600300267612975173023268848155284572979201421700324594792485446496889561204675620867128289017899462414943982938106307797963346966509885322488735361543757692038144520817173864312094700908038486399636523989411625987408309023023053183815366656071981316973866432042785115945662708902483442549074189326504229427367017061041944405815323185299490492613437068004811072595283776698751091793639505138335030908342426412920123452844917604964518262433305320238783429617782846879931424689546441883694226431367029670626751183579250248816155425921051964092706614768500103245223623971717486751766018726478277902904942260138594323157638403060206141222653600399920465082284227647492603392183962038667731011744142704983719554790201913077050656383891755823043757818441527065269483989016237285024655624126682633292340188043631305692190162724446107208521435293948212702289255498023034815907804573261673861437624111760622617005231020175975290082368921263737223555786835551176718484103007708577432558230148218970172202515367371011482688226745556192458786022098417709405881675252832812070297390423681310521830193199801627794356858219939038339256399929177120493974326219385351484565633691842128726128254637344660599834798793130954767001079443025750316727842974581405291346307182551336361115157421153895526420812793436090605924590107934395013487918086727196220739269847962036012019545982986618923579379235241974909754463697808569053794291161491033260803115996573767833926529011229054566188635670509065508479376475181609202985852835235697593270025189735980282481432067946890069788792130798977287848872320921895169673949641793934135210634283834320823644047617465322389016555641621344891361976687342848790922709269710509278426365249527530171311436151486854738888482566075049650661463452447768591445831840143919379113881582866407626069573911439482623911511465799070995214289851644716440549279468103333307137543340222853479087013379978582633834166667351128311969330397656830229014192621345250195893671484425570967925044579516278887351990915338235098616210331439535100525014300259816116296448352924527725466234868712607264430998235610157570226709207841827753749157940354207193641466880420813061250355114581756446849435326964962220518149809138020203858386289135935204310262383529828647800608057879303538973599502874266867706440555346254829846639931338650211341238393011287188276014565701216589625109149199358082242022930525670136002450785229583281093290560472217018292808363856013694122577609787401955277382951438673028789093493805714318861247499096867164317167762515343549887539765979272433966950678389225606297793208981387241957661480253171927064470729673175957431435385191863974583320895097699776797804552022866759957494696809986076270420678882464551341707491617694627993742562522459775368655052299455781645731430598924473353547784680752949098850792293506810163603893016566815495893802878087001896826111528065120518135195619778417667866134928870788826128265798657415472883302380422396272963863694218126702400810897789577049312880246884267554324456685646716420124878948957717354239632801969068422675640978978564605264417129253438627674610991194918812237431806024692415850467843997805082873480779749101162321586807570396210231003147545171457330682453687008066761736501180098193052881804745282306576052684779126201871096453639127195246732521199372528741323003097918871057562264793483517865005943511818291776861288220649884092862690072326713358429089941819329327025512870823332558901728298489484132505038607382711792239761293845547952283457698023386157131549771511227336693660268616917782576535793823170914152971821172198177781865655884372574840691785065733831560874082581414519411352175398380634325354722473816605785891946970675667556594650175144395713379805312056817616146527354090309074763936200617210679569114580735843892844923637996897622589452412160954918994537527647569549321841957618344739577581849087254462298633186276321039547280545937886863118821274949574985401426338770456401929139128680927420182375804531203937077314973544068714385345632498204261560005056084262767953073794098864863572941081923410990959293953460002383033969216328027407762065224183529009058588147965268080091211135736438708164645238535771945877903510400912614761854563183565320497144982695219059564012683559011352685276581592450185908036661703668306716934576602363194476606987365617107493415628394361363938970429054715845669975075579725381262745276015857915679763450010419087084882425704883511422964100062239260679675196435229211932229058273943893598145482708900050475608480806596941689878531025867817681776876520633006235867012274197535504910917987007955271284783261779611085805714130395244027339034321666865274813512180828913112896340946294767240677592728100927592560778593092282816117943255042048507313092485769365635025133210577844877894729849852392265793393332021724416597527227948509017042762675883674455874439517891523932477754555565875671830902142513176773197725282928567544073558549972579818186139829615464871508101262094701462689147384586613386289885992491208225071005013839000708239162666214761453315098433487230733678247817274347904614651480488684856556695681734281472162291692031830468037906105127319472673192001380457227431784437997084977407336991023348445370988290396529942351215602291234670944040408298832432116192765337395405525644896343324120963185173096511775056646389058437160016420633999091481963481751538573067693322670741669861493416280397898598752740183099641618778810421300647631705320231558706994841176117972245043089298343358942687667225111605976476311413190906226180241696992095832133482123391560817517346741940644831330701982800829479270880331613731891859481158479478144118130906776846884462658708107462858370084474564851092554596412820004523285230768956665939073663886642467525799269677850325303050300053199398790064227030223356257018300752353068976983338807010233328278537500179438217611928111915984620041436502727845196911464439133320428517183069430579133067687895440716076197504676148636752289946008574019168329247643081549073553613034228756608102927065029081656690671660648609001486070988832654334794323874269455165001426068245306405325195461584782663444516904090084303067021380527086657980124349794307534086703276277169626865128112625804208230545514778256874119599848959940286053300695163074687357889184966502441798687837728662735194981143876635506997236694789825212242339742815107433873040853592099509173467504602114798454363094475035337078381688892704901731214967819385794742504261654844121881208579404529110247241785833006585643262782894053024926630862659580056508017041107583541357198008870755545614107780393066927843739558301914199051801839862459327407125905875746036225484264242071187594097903355895564686044765018474105957846565718166222723810670414767981899282013152734752485303717029113476537299518248131130513061975660131325637035624543389366792053501760048385645231245776067584634029812802500985865210349112952175615537921485927092774137054904999342288599350072806743909448700271336512549753430960068262294957578649374556564230792353440544731561392461882763550063972696999429403117366494558041406129546552952019572386257812904660698346279095260486309428995021396961526495496270395633913950572343756615895759444424369001113439105162081910955259740426598375862475962129414982208252799216457400281967809559988343509938864681383593119306272696503841471351176356022753184493737109594724928752354816100788614412743214999060088946729429270741107493183463818342614981802064908348260504449431030003374099661823824059394524507171844800615302617686930441213250923738451918607013451959693676306292049090767711850892764517632518139970204390529833503086681454887627358451798864666214261598861779804533100012962851435613206543317292490073766136372887835155313704653149029784685407301307001870155914261996668164015847046756143748296228447605545028743444379726679241230126053944628627384129883864529515448691673192395881210853495302314648582443091853464020158740825196084567775268378017878793667403392989366218533659068736455180542242582967525287079878447355820864983066201183847589847766582003060596755810237078853347609821417428964872629177940180527112010924094209413340470071279116209153251966037395223753077478318594798531828954123150172227994291658984141855502446332881701764969251212634298311536459167122757941285921118254732179778640434227576861059548390376730645716895859874834902851157426095297891923160608316423290836565431885290831105915908233309837577751665950532793354496906113996725731726403464261269530206737184028717630342567864396926418918037569924684155979166209223356945881565395521780808302142983598691705253103872839123915463725317974587521748681344490232193801111173130535210230490755611949975930309612804476609226423873708562413944454627020297852951287796113113904020888293470906583678747091415912341910395207676445501909492808930088537302109255322742468934828450732903129621318399887016496624418498466043464512276644122669642060869114469285920879860221478687403425263845480116950783091607221224634892867851129162967424072575733151716583576167951366703077171089416805719646164783503867133895038023306908215266481039960454339792971467684658803612692788453917131199274339623950127881692956679302853617148382317726989921614833486904576386373529559657030989235303349790845017657440205678361125768469137158106518381550130111195349894900740850700322667958840945807333485564195724450665853420482353554201904623930543930654575775490824117167547114484083626239435221914841304790453729458224109115752125791198955218720138410922866696019310257239143555959418051583552758521837871934704898594549238734306437097533714491919040702684874960489789953615886525365854977722902878236963826321562567534798746777629730049571984812309464284158823922804795026656202655565850693801697044665995433490200721005928053541397762395381960621198731606644744926658538741864802380549520520215865130635527446887385793781285135968805551572759984440179392054690013761371282608082036924727773124845701465080640566125695649796761094461255245648908138085804404723348281891690829771857141032526492678994883109011969822127804467281984585667922716122877362044133364741364190280896853017570216046712242021336895598614187155712646892670108307202739259772062778797635818679868538399990845028423205678580180849439717123853820109857471529300506380512380655779914831488723864577651936404822643154636122624004714298889946880997246745771722045491767706028320451981521786594609101518764780798779656235823977202566678627836036874509029051168813559188939528405475949503678213733327965633425403304401199971210411379979668320815761179840230973146060139380887163891230831650757343654955594456247590878633136929192085193359258265680395555145081393707947603009668014021950352507613503217766143927036014936358754473855656922907924931391002095113126983088244773224133653504070723928403874138402322587400160057412251692551484455012122592164210130856111286542878347340621102098001605155645541703573071483436513868735312576309638753805468619844669497073045234744169366818679927960252411306908885791131644349146579730045605470362265857184942667011204406178705627133809191732395434823892185923953595773655777698252928370323656165895918385660320255171456669773434850191404365468560146940048844561525754196013561139915064982300246095220246767578203815224577481632743375411931261859512214098674518469120381895250256723781861438392483896581773787338770123211542197844083130784008340324550207545803878598974504429569519567924170473522906223430306110747137194478647913833405691292158978160609150290208114030101796093185055727343812135307619785710619075321576359646962992088718983479492171006574185180361277003056951729030542180298687441492621935305798375020724776617423163675565121840988408489716465360325896105994050667362948668729715916373157061409404939503956153759021508770080541788677956412830917804405638502349269507911134800507593077781258205481637401609722349062053081065759987916092766513598864828429453339460324462376684116298321783668427344435474936771634360041429952645912078509218386609130472288080756615430279560459003959671026962707959045441602257150341644909305006335495436505159362111745562244243303445597255007409429563286697068285028249575330744139855951742268415617118377292285015740979496948192484720099575632301621180317578374501023985971749141709155506866010429630438852962058445692886460787399567844494271007303392386701491006200890016073799394007617864543154272881970145417202000706486327804007813929927564606971875522150435936516716021957185545785805945705229992916889032343585621339295625134943676852932557204603785055184666417828943595805004498026015937772685206044322575548473981984067545276848380307110593607046924637978543565506050881449032429428352358731755498197117845220599853443528726245597652897668249299013270465897773222233697479695462376597548018845393053956299938605928481676825170919888971658187150410301935341734326102548794226795529537056450760749568628888140747980233521398363417730913918437877270040884397395786978052415967086572785005048135579736117754236015890781052168386401369412056875086821095314008205821439230988252741634126818939721350301617548325008827859741114811266512456202244844472660653096347220829340961093577610060757376732690237948640723231705077278183912091241298607922058973830603935841903059689573274576677967933900811012694863453824898938492649625127892683516492996725301144176476607646282819635985561707125257372957041970112931400133820505203792425968033695159158587328367496435700177872244612435704017176056691688927509375015540320272564042703211996245086489224285412491192799711451897842785533493806965580517241008792958550268374179578342152473866133999526115349989057484770290733941973724947309671046706004606191292325197490836475096209884258631409660157280041834775129868780748168479111183597030477970447336605231152165569175648709543861318088977817153737994519768629703854638904429252520453877892781529040520182198768643413258825742665161307871336389346379998772738138002375973963602447403225372534511679624596766378858033301301344368177639050246672523472192984085010975546803654558569603664629047859840898226887687154527003826827089850178096344498542734427441645481460256788899239442710211136139813431629387420599963772676861024949207388249153787482684633332488624096023274903846909140189610367363221869621295092444810380800742422831616322135763930740264285535474243393728997128565653045495755305312563137693979907728636498891572890154162165978309871377871438605491693968792066789995394391715864664440398250022011012574122811437346823955126290237555551123907729825695998813916534803285068706376480796912904982418776274181415071695670066273018173648075618177190038304483159539060851165563617802524689587952716152594980825223364652174943450290254999018666392338218775304473279601114681120989590104947958899017496730230636196405947825143660147646387269290903121858572089352783741297334525605608713216591737827050456174541555772835345948252032891504620360927004692844194795038429782631361541681445949281973532023388190146540586262544373186676483920215636079819296137909689330649297561118961768160655785825116988269131620586323940074540480521444614654455417279949067744837092539096455502449603799462743119645294827234631894132249556388904830389404989732510032511010685336542933107003768959993069317948389233767685795108149318934407644249035137842115264583787367692146885688726265967500949994785903842011020686375630646673647116385171804188294328225723187759369313570982834409451389898819056956133040973103919126808000950888231814541753977385990862400439000670918851543489563498485248527405857101393170571325880702440649700098990882830311446518612393365482311632638671490523258874892304821894016755526270026949985605508982419311182408098272322229685207852561224088952008172346174102178021872034067456162341681232066259052341707342533970892923058815781741901258794565873119500428923982483767125244095099941196622829682806455633174363412204100480474403513025040105640587251651804138347741559931055670725539129996332542015843821255893869867655603393829443950558558294483468121308786905505839974673786529193722410898917689940724866328970939653385848106464675065916385520368388736984761761410392183664908476638427984241702440463905434443125206172171204583609742853914042277806845995304038618680747712955765002341662864978778065944630080095592326918219518407258012837997111456901690219741660566387310571787553316746409343738922192553170152194549837362068042538808486679234720728664313946235710487883948429495152165316700529317932363921247707790092574555522610676799779284308794676110175064841404301878950610783934787367731499301591164066502518317179958702873628043388617299764797052467241208059907695294365177321895112871824353224721133634223156550599804332678654753440096286579963162659551393199418205743763699567490970609881946306542150506125475976578686826566240582986029773758197410142488273550900835597101846551256687859895384866116004547427814924924950850228898859454450423526766667327542881324326261237115181357711807631504535157948892707445808143381631541599397766665020030795917809607375041166640634852390536309551367534338670243209462281299075152872092317708330953860209077543888692678515705602070774701062619269289594723289110634755262452076333992797503452781168614616661051494367817516148205677591967344848007169544374411411414109102706022731036003338916530208016735812185104235080478891312390369577922357788776471986735441811903061534564848149654385122555697569101302120788491672429827257560753969831943615881099642044181219778418196543226045916666905798153141890235040676905754291722425607339451029440288223183035219032256472414102432127140920892115538347302157429768624928213134111601623428152618273516125760900290679778837201607928733291092265120696411025603666326863112980594378457135215282692479089025841299141604188474131557704918345112033249119310889440043397408306227001906940728475829934478524754351674628902078630928621433022933401410659623514209598388364926248278123398150312160173302860376552714699960739273731928896310968825400144813092567530695764341124779341843054083761164902350164162537756878830103432729895444072446038571152915538965552806940193034183516685792872416882528820528418675794706058117999168262151647763072651423348972013028996291510837506592696923544323328857004258807090995917975394337766386772993681591259372712971267314630508597920179153186796500370398723395891741265856773296691036457694762554555655805085830076046865572695448324125039605424574953378444076277811456719746602997088312519473809705951781943170409460956483842983992875570066074077296078565258684116741011274484755462856459186313497529809701510584631429543071753718416733331203233901557770740600729567352330323744361047290295528192453069401065796512253180306193541430616712817008173271352424718172773635500512138428772081735262062102435133104890249036452484829740728984062244070289362249780668784941476821568294802064272667458769428871698489116457915296645515130508765728842983119371470993607030987986287043094944169031043703921475786663043234354777165809593167996017694806562867549792578351413425944263404258207680244947239905127788583518424013120672058100795948179020062071425250130988338040121087607352127106123197180885798257909506189001409456274862358599790838221825936189817039626734197396101374489236427958277419744563770889733550322368092444555275682081809117719774932503858946448865775395680639844485341339474055255043390985609494512193120656711258850801176035024580736565440826356470029113255760966434927922082346513191278524685457416566067163501940501386809030374615715877396491061108255159704903773818755931693365989599627048133735193494006068591444412578097675713085507740600789545866183716631696383729418052134739050857693433169474796982299170218817507183697880730348687405547330237138033718306585761052412447938620197888938681697976340973250147790662824597498162924350118683002298116197422672804592675472635487074745158480173025803829840009278761493129695012097757370997902294833836349901631579788192352192167493508184566032023965188685850591892000564132837805011108285856737798849214889688967704331107348776097529857706050497043837505397788357743131376618395256069600746919272055296754522900792941665080751720814952733042977537875511066749501737217018800930831565987513630705804158732530766435909547110315837371474467806328222454659478580894612989318442059333952467973824197603592608497640082319056098157080184636431985704776224528837664000514575738294483719028967296767240288981125155898859932599116033620734502794519034690555255091732375883727599780675151871871998527054573538938755062669172965364272082253799630548945010140669047349730173669491797851075206391043643671186797265672634320835466150636249348957403459452463950550156642364157073744926503697509086676307017350811735065437557251095066277933578178106843739046347378134260028527801160009706071679138321185339748445504515999837063234113565217029197700745800285168421138678291416132151331726500432986104111799704469357095347017824113326304287146444536822527968929648850860558109073408334240884762978537082307957994146814502845008186046834551659153934802258541288778435627383866283624301566673439284250922482431665275486482983740889932773573349779176705317716001115094045497236967607518371527408526874364678371151982634539019110448586979303617444937555940197617305535383107351193172516096143055097019982578700959941522518323451547898364587247149861390363281816478287983268051760643284357177444193329111154634882988489749540454033045179161983661589268397569001734341162899188860544475989178780240742003023783164814915241296864513575067984698820060403349283017635058709109470397523477011843699586563780693650729448065579418075265878853933484635480882523085269216406669380918928900516339306147887828353733743509177418768435278586399805384130065888636944805548696877682845163601827498774033314225217743476515709403669683550249605529454144758493295144536567430565353059609591508958247862423773489263376748890782624715448418994077333961983488915851434752895256342925125626209718116593427449231158186568867228602902175165153158224662490613580684030454528706093739338005491869588995930855055268481941059590450816868782686193933231236673021991256724452727817044405895467974626814408314141261896220780967792751766529247176371993453874288423431678924332772516563296374672627267732537782416076213443758274783914162181009963229205163914450331523802147166300527289162290176467411744544588104692459625844876364912232859319688496766611108164753190945694869891101051864017147399897841543291591417724726337518151906429264701848317855006484944112005781706498005070814356134293319100103675400705733278044101852217889166347268390247042729307698532273765215119491671340152487078573797506712080926184499629568995974615387438049159736403331517697839131807058753834851923749512343781821798739230667810516902622539937310964598035820650678357869574535006913698915568129551838216886717390277844499259662562321684665043489901824619551207547242143740148003773160330801237753086464851055848914819323819850653558629173559551191151710059273724454492699731665207987024631264882456044414805811429030215593422468556484636791071054840832404501316418198035074571371328183731667441616078864608014283002905048524912541649271558712659761896511917065167895636207547959080302378986869304501797955638560407381272736842222495574625765211938077875562593850401369555843958103946078352305409829884014813600476941098360793776550000901084462633534914706285502007444483161618284057628615693960740822510805458385807702481264238817679471634890196230714950445244182651346119917903317633707463528412050788544937123229240637605196623761611569894128178049113123433383159570942336290830531273685062881638008653447141826929719372391904614915521919669483213186902295707263171047338856892414936741849758420199953020948046169570896144035200113903802339629066466050869801712270984703376877567640703330052565595310922421609314485907254762415176542417017669729224839255613168971328783343577085049688906656788862735997198732417854117090326006001095060802815603428548229231217234781793560516198324425992289574900845858384277550612295848561984431605283875206079228780797283136197257576335198926107160997549709920830792438658394791651449041362177819186178649342940553249803897248005721401718548308905258327279266503750545259290065929940742032711398354286860961471953204880648034350431426111395482580480152161867197542813223844007228468541820248260282725874092187026161323220811451081139136366770032663589909483241749731439917828942647917493644263766913491906747663951568883093247563682250095653521133350523598232966161739151429528726585190853199769401336431820419992489657914903015670594024439232040596176484826729942762231045614197722026050432754557747033714185631546994600244499157081716990760958698359190149102069721462750061338041164060959797697723008736028347181850457145054560810377605734480391629900449938392121795948478484317184091657593894406220938765392366911157437968086301785652047213292940143430565541180959677355707139903442395562261329347172625066879399398496325122474217077857713520162183907378608045870279087441959139415774740951264374352763053652420686776596366686782694485422560442387477876858535798980120461050835052962228746240202618523063422031190560117831945857299235298031530203517891153458558468540629242186687662975757805725967857053467161150170262284705015930157321958132882346339098741131179267321606308805540732095317144234190403523092193420447785058424535904554813277057116907187006327127058210688034454427135992629161924712542050599212852249344338883854272483171025222774613925665429632724071749097004882073255408833813491331455977041747639066268339307711934036726656223207259820272740293239383295800435817194871227342571956525574417334814606990891307450463035513019824527088278318012349718312900931397225234283124159929686538636281332224185055188187355584416868159561541828097771214301382879291272834362180760500779661374546600663740563581273534288809404094400592476139605167858517394425193891229530025223329404724988444244579987396828623061483750908520471469296350163672696528990591621178178807921099404209220356506928552812474417076139291623737356016957196102883980226651668803072014971497594407803855468831673230296340609803655556274542744531432253662510162862621504538720249053735762502330923011627787213364407652466856187475774461292457132024588295578090940386399618537908724953822489680494844911988489822878579710510606987287724603428368382824864559235713786091739437164542961504503821034130128613959586167224580210291717841300449217028503884989300569527628400411156549157921429415282331554119678793956176662905052551933909089701662459753578585706942698405022074152663850038241096653548273247191328988892824129329062440804036454363546984956215953168563649789644070168675556726674924685884361303465168572465984568954389738431767774062030182934858133777253208451131586044018223683439109098094094066177764280787693740608961297847740642072077755990195055510425367565512954103780481299717741877944462192799361639292862672207770700916928940744562472268656383073285434856240674000444067328318038871698386133550028643838344289838533747671733007875584705659968249042759124242982188622382197970689918531115489249384117753581995533289718243928623606743807018172762256790965136495858003653782464496006210557084284719982094171813112420259608633873997864512412151525777092861255310591545914157039931591798006192603596447965304799017736674353043943290317305054503477315693596756464730907367043487353914773686896130594458525034635856959818552056010968274866599847105088754668834266854961974604495908600560531030913961032946895011314393537476107630275717728912822550881626257265954113329490900954337426033050168579599093055922813045857752940117973969697860471669660845264617891139503718441163995776436745632001526503494055334458325449459049820720289165142415291378285543711744975644929153775804383294443698137790408256135162517623862524471610806251637079862260709360959682995778369256066227487751216201310590134345643397941346927026837906309807158242424527314906104058891923100335877040235661254414612362907994166102539079105362221420473564335719676242119424431567932200656223283198236427836969822026619745551817720067754055966090959294119509940196984099768412170173630709514808631392381195513718040004353742999286357039763592076531560026614193191402229680359075095242361384276857479907631782842098126638722593434901068068699496841349637329239371130458800563949840873780401421029837174177338892906684765206650507153303365729562540204062025142152091759997502726573512994944753752914477640204293121223561040660531700808882763362808188950248519913111848614132814121117495382412963234973175955511285591956686690169345623692420205524737975991305712364681807136725845692743869419643905907090455019084446093338156578743940075314433657009414102665775206319500433580068477143164973135631013679963408956026587024046723402354302813753910662675687637101145988906160999505346720766366319613474761420106767225278440391152136737764303803832786472321625875480522085352528473628558108433320399080973004806208383928176804300748600744885850236490106082390431379990583743340852587512063593078450311977328085945814282263682556927053004301460412172342465514423130277431299598344780181570196671617384646651452201430796513701787081995520914437543816104285911370165864568696336525921074302752631701411999560992272855739714971609273744596427045024557983862333881581178096622907062020336406230086101313480149498627272577012300037906351753096156486676043192344424320919165358829533122096614951258487578735334842000570253533191636358830411902410411076799386275291740014176926139303362140651843431220819959283818124667778510973036382864872019245793135367531689856032051517378860409683894558357700832278428295604066739290699485466251181892532984502135875521875636055539506520259393646119115198692538877595499566015980321095542907811695902917129879057807384070692718466602690699890827310983186663706429617789787448105232644228713545612512128865986646468685485107787645123388517326777263231941816061152368491745137228933483925651895270195556838629025068026680657783756434840740832197859683802568881188034272885173829750937361446564831960871205802174647434420534979118398879571014795211297181602159882883710992649420516591397671721243283365635003576119632185340227968512646371099801496391670994336050538062341939856579794051747615192365157365527245827315759615068719864695816159239950411530517061410028288035638542251341297996095086412615460584298757985074396698719687253968062431260872264330173496107748265069228184638556610860271694000105234098731228833505394500782617307824453738841605674721026841281481956770612790266948092658534465963825277572594194067681670339970357397882403275538936953985600391577256846120911043318381634980135488224579389491503634943920946414225917659073738540828792815818445612211413808503997825075165485941535418305453343644399204512412551249984168339649813871921752741959150919680045684675997373667667530227252485522245925887447849398995814551146834931121985255880394019092806398482383021439145841924852729922828523896627712497714070439820578080111043059953348354785635797840779510827000807654447506716720572471847988633824361649239512950608010885289532266954015932483389470395716051782294943394869069360919530517480488046819317748291236212413134757703765883846598493650137893788574893961545097904281822808935337278421408560195497432693339981482301405590223757147637104392110427169670049061984289648856631580188593052473725531895757251378142350588210614710072894625306678784147495899034708486067925985454706685286098115076038222555437162576087934040998740706260330286039400067098846707637080494174623979518712935976164814480652625215451989134253134794578252073831036479867675819513549052102210631049048142041977496103539204162734749045156060310308796158374275765216837006730539964031435749072105841474514981048425245236735241212265331400765603577425676192447172104114905380838163949906360615835485214681588876675603818027367353192158064395310719360795683098015903939657642468317680740852790208619888136475409075377832931937379426809858747827897854154125554689101796789792631680879049160354092537828013413302404397210088286203868336514399106184929085300764826206477959960384714829106507944319930004485985980069913829564313099117081666166819163832701816999136732057242500561876310088543583576052356748440333717958932701555880544794677784531447690517190039138192357077575167033361759003102359950600500654326827228368899841039995654656101530061543211541754329403720534795740869183908013650264211910094668929836066153599286444022853290852222863773621880822339573494856720566390086936122075077310760922872912588191015808028054792635289705325869721750516238389909299122542418143381599926560182361255344181657687517844598922300856838193722789258953044100891786497405485813129895322945942689519451844747003738483369919720017534654672206818672356419255529438937433105440674999245818693279638532496906316374330394544846101436476192153586391790001849785259872110924344299542395249867243725575101632249839408102414091622131105810586202869044589343178486770198857710012743647691724271558666641101567671197807383577627946034476518458461634164121844381245967833550863844568744507752112641085809895745869115751953295012355864290685436333548163685144820258459591813884173958612154762515608525434111652297404243319626211605076369683980013229607973157625056885410964277652270256099752254010979285531286357264771079286984263534067195643653334273198298404570988806848275043462052473249566969221911195359310734814155499869336089990141514722089296215919007891345522685549777570814709422927670836582311432471866877544726323164244231780322135954265320397987925222595142477513859523655861799917723859724552843647663123058188959240860693162647562585887977880085322195961010278266729876574309153897220778372340612487191228360151156952076723746994817572775284138239977575699959966631016774615717109919055136441844704744166917485528760074480339920099052557184839667155122133815571465823141134267002474981882394129815613278832838523920046027918645112281100636617167116064395212497128210135950555134092551731293166108259636724191225849250528670481635201165724856250188717411297018177764843348630576392384148207958166956452344084334301766572526394898759748417684685580788336281629486194588057129291808021670654813672724229673749063109205400377859744880080536211625045190483929366106037132430969875985785610599435010624563633820632080822392625093170684005124667468299877014909449552398566623247367122266681506569844428101865596311437770394761192477472236567780726342520736552637612285241860612845844588229798777669346236382855250329887969062572014660471405128850561770190778460340480931405116842226802946278212047602025576511840183202969569818087573085478233261612836163779479478625959693726349847726562891569585152156560776874801599301692301617245655366564648362382251451555639873332836454712043458524240968890911601327356612001725882900618372140502951030419978945917531587816396481728106985382432012311789419393265309061358809708540736455980947145154478742666287980073678624720850462173284722192366664191281271259804251770278509930658456430468386155110510401616612918528682270969827900805429306741977384947094633824489893807463346618871808757554969062042490048542215794990438751813804171849895097043284308763485634048451370076112663735372280031498234670970293498477794509282789776259746602083883844707828669405438776616328543937144118476824473661003246665386433589643845128300680802941913171600683019757885090520450346491385958309201634698334290108005936957013402621722228221863975122367773087445262018102862854703461972190734003637803890420901384119685482299924434806431955102774551844813522394748781268650581314678683663197582017367649618977276076217402221971737165528365921040343720864965073667431431852154776703742053591412528250486337462722139260821882945253528638305092446105248878922538406967750648880156612903599272147433887807881868106579483508397990888284336637628972176109682260693416495635135594500251437909704153377321612941907207134465295516585700032590656015639290846258108704851707476178947484508162531195122470778136567595539276253550194676826017019427013450951708260249680793044951689163012013622782412269441845133985086783470460355405836099554059109137115773207003427624990100321206291645316436715469119724427291017486560363168975665433610110955686857363081440051261948394900620923172431532359924324722963536039694595646401391633300571376266185806735532515258041283618116100946830777090979519916054154523925366208371025118273370767622664206716748571967535324253526401600329867150605978303798876364191122411185669462678490934806010019330429916278581160252785080677562423099693491806916515115669309349503019549936048092819821757023508217364891636163953953654430634830127949888458849269645600854983332826108569870898692696502666135176824818185073695955155801477006733889629773980975388497200787882442756756106794574801479628589959057908087120767213202031798091966119856382146539788334505919656241562218476177149091539167255628599150360136405865067792030784664723030240300968498070681235482508932062976630999428372242143164365376270114304901204537755633984710736918493536836179449582620702988076337770922290233100315453617948520760087470376622965468054877033658118004928344702653829900022504060580821574997134948849049233309290945015133986010251521973656564276468336401744208069478651874490963396193153646482222502042208340929023982235981184093465804537907671102191077933424235516989539572708397421319241785046606592180040850329276318317219808102119879110630025936782816720254568120499722349623484061683226726904774854869159681445823345803806795454753437806215822209166372369701226781394485550791251115630917101539288363648958785249815129727669439731639817942278467357177203044737632328992763865008081795625670983445061506106577944370777613909955507324430734211557637778763513708489299618903554472102003631537272852915461586990254599515093646822276657770753730654243254845790121676664089694352639168214954613309873564064280999389262935238151961632834655539919583720825254507547312542492767187787303714651545821376305589561613974855465604616415510095658971521878414434626231751326704253760808653995988627997758345445025783613576903605789513347881903242952041237544899181391891767352799526475305854361270089027221415808379941128758605961222947816131251592097364727271713014044036690933460271713310936032519232344157331544928673344429607554155611567381702280747679137508071066881043526029536573947829538103536925825328479807464796509208366813707311640575156035791579914113309788577676142003302991837240398364313496402094328731094013791271432641517183924838494204955583943902026432971081708330005547162160051070679368627362804765304127409398287151779228839778965846616218784288065561522351717778526323515272823410621400489365117153601752666983142577767804452449716067181763906429275818297477626950395391560371524981297755002909175730902795594431431480208976945714803187798441972090009132963410401054710394554513785170309803134340501215545929082384393454631641843910453338791199922790084437049577402984584779784749111775699799566547613473148219667151537564402428515647149779923968404591367254164424414771656515230507184363763165947046308269224956664894262307531456391775054249088604039424086398968106707234610014479537752024013545649941564554335827029040904508473783916832511717399033340223215520628264082811283431780525527648342165308447831707972022156529821852119089312005215200721686585310486890396375202051700400957812517113756127482737556705065326607126110724212131347729708303192512521834037082364298553470597731809371354433930506264024882085481763147401967960188226067647411819652305330976155167168064952954898463419177535379588197793817814431368102147113020826586040530110829858052300160898155325608465522487832258164238769413945461046915959497656753556695682806570660440585777169636510023438202946312679042588103146896351164897888595349451986562061436323858157904290441487102072312692740377847600321883754178304099000947368395170734605668629849746502118482871821467446781559364529680085939450263315713038583017870670723558849708029558001027632728915724890156475223790801227692205269163718567292796730503133408630474450319174601943775337269436340028741258477250304108377643371667489186786921372600910425251953893240538387695194040645926845602110627440168357868655728699275913417092664935518067807267873433365849373196135888054817917908859788011931780583584704485790355236313423117549434675643011351300337860392602464492197916597498201228076564908542078361358642165953638921119153065203782697592107430431183426991232904930085984505643234580479882804874155622239469404147264314438058833537744970147110177862594998904775759479739699970399057429166614081349733205801936327293131567077315457953989669280996834137628277019632263809064345194768126950989642184895188915102512148102969237554512367043488360849469520603266071943388738140606191800581844163458053638960489349633326385460784880715622344377601468686451256596316422958001129782853746545287014609395474956379018333554910760070585463945407208340924375847518814837034360247620119342906591216666994715626695701258341506741580254985691305112401774553824685295833187142504232091887303744815471591176755931334483369136928039929042795351738944024557512982884920671925705016094773246347973660996203271579413946803872957607747082018292920814758830999820784178943149608059702137785933193365156159984152432943313679559178132537012617990688311862619016731360679057267439820527093241399970321913392191773464631704560726483474610108921773699151367546819198868666405137858819577296115161528739521602951399235178148718264730996104532334958515331094388283695469237755466358905971311356332926557751914218157779213437254024069090711731440470427797382261522115490318620182959544837931141013494339765949817215830293879195785827234769107731944261164954577041028076135428154665930751333682891839761507065964771588330475774040823816736535692565352311938099591005070673958275609549132313902643197192903186761063484278526980908502034596324631053671213625955020609936934937498782003926034661580605639707022546484383089426340843461378156852634347661290395289457029008824373880400212399190446933362702757742659108621803675215670525543157217842852975150091197246433869722453236553269102651315836285695025723048219822289707085645476009693107794678689319165226081896061393498944716766760594996033739142145118669062558810489775616560607102475341995286518954789162252201773813643789918869861941349698257496835675867651053874656247744901965602362430685163227979427309956509876798569059562270062111192785158218612372598380315521306210160021663225411436391232539396391876214440595172791235262465594422499142896336058203663546106732571298302726153901656826405211701959450512223572432500329048024832202694214582301877130154445583175976713017346242800347803758214548154785502945057811338102471653740790340593918322850377717996282276508017880732662239163371232113434596599507684405871491561022843782073445694492769175618995173602487685317636994773085294441829092287548459361058154058862005955331195692518712381631357544745569542992867658536618082288828422603556730902057052048487465186642904294284319513963308028462763706243592948505183483685344651704782606238581355124440773707597928298322555433116183084352769726284190232718012638019878113511942184255468574359748168611273551063389658110333369263797840897378386822979248691189596266657902240795088056556552934468358449219698935395310069669675610032360933332394892351216147790496941327465582964419882689362418421912175726468709694316422961799469047050438603137832883439502349329147076363018675368794575132142384051158665278531362753066682349623716964140825702451163304444813892404007524966349439938805367613677863912968756088708060065279027216746531859039522587103477113195726987228513417663507554287135139328449959490041683815543667245746772438681254034268996619529974867756438499412033504631527079738229295844282667346458252091482089452708113838502394481994628269615853053341362917016534851623733471201015661039473506954787046897220253371979351515234157052082727306156342505015952347411844806031488631105227971083070741726656482324717455785421433413799257891855760913840532025745827787948255610038703526150657550822123533223232725760477507963406602990410880709771929469067233432758319031182498428343486408236646068498724709658655153768979355383895417442722788984140352105595249427522361261870018580320487019275627001790882021330964473595955513832964821101417191357697264485519583985475431009554996451162681020694455756546769546074148890681590184209575788824095030630858838662303492403678584586382658191436587134225596887447334457604066502176427102693105257662312712899297061721121270359248286674106454415177521644549730711711115979232869658007660525532330944340570153921175723463663910674400547453254625955782843162633359142343121891279300876307516731028479448386412645136925269465549499577186682456842267052190708194181596742002259050936367038111453302595753445781475200014380767185003474330298878429909843818645397378059172553954284225281883664776127063764480282911203510651403364636017049160084354702135396596280561107385058952622130244851164493189923231342065747346156123754122430195370103558659775500363147556174329675492076860375032318513614957582458830106396037734179402015626231650005521308621930693543771252430781980550893223883554826534728087094505646085875278631296302491616331169553896951791136374824812039269062235797291898363095057332669085529910759838563224116736446634091224258072965826491862531187211131407998910365148390867821565262836398595833359506406749332678226409111146428150429795893443135006564970908517250446177618039195631191181857670518054524061939929749172845149498510554466373605453530654941293739769705811821267194554596250876062300221547751324299268017566828073272701848623497001432910441940833154949154770305510507427242688647277195363328320237244100089493251566755143856830914827449710462281779675956216559878803199032090790265742555648647363558486867004797443773730938035853919000070120361757369252909903123376585490543680388287314539295536355095261718992748156794175069889396973875883375077701008210204905386059402528520735969490462022298982192399824653798947012006391745761252060119850072269284828252932858245691491331867905651958852500494664665109188581585463129995662444061504348759826111131223340531471318957791872127645802381648685684310058290464437966216985522321216556531085402329165604582835642937037308752105264828339820716563938605867914257117546801275180718727406847607816654071691636745229208540759277110349810440714385614079914946380444968173007029639490266107348617175289751740318582817402772801876727342670302074602468762788109339486385228825707529779372459236195883198520881364665949958938323451347201805216001033074750502507011287308958362243696288604549183573458647308575270282416308464645772336120375461814543691403184303924693884950959703723144672098784217045436473790268442591738342709065717925148718278859985248541721183852541933119603953698030458921530624027235518325829465235901582390640385792435191051171107850548512543650988356564145831076975177787324084749299834557261000991854505131944404479405475031033914554524293847630171969413433638514758300350912300941341431298432645477147995800935400042594849573236609192719373173195798666187548768891302913442902493536814264987377853871207867071985072764825883933040499105096679494009569659289791495619317124631866606014235367250328731276179152783599246916453985016773702243034661124983848974007063543888733588034788789341075071523327862753743689358015841429885400677319839854256544865253248563118603973741625643125578483903901597608924210488923805636149156330932530664559061340555546241944054277942060655190387777445004148172858002472628153096127628678699243345258427456983246440307038218598882078188192627291586014321425371573484023998825002791327215272558230468612135973850576292198801268734977918362843728529110349704716092932416848959037953801060472408024887221139012918062702208651371886122366780500359231903333952404413463414874877105068174283099817005620967396005990146847063571182801127096190536762344482376979341003651339130027423204202606799505129092842943675160229708642890652815431809102609313584905700047670814328259322719753810697512144714784640620139462118740760505162762164162224060052010410211906790427589523406011195702893033344755635518411495453738838737254804108144155433129332407376347920733633771587067711357390043491717435539290109675171204856489637541975079624582428978147119087348981910204613479905654853606334613663183539714952995223545884131267957230707978858887267081380070698957019286658618815518152851973240831053299813442175397217733011258555796732695860112200118416609963495243454913992191524773242097596226907486792912550441203803956985682662907343311295707093766556663011833328983715433460780693228201023194864405065470180451112083605965254889441840183817809240439310371959943558249021416183545668850532892292255184031157971176201157489746707363359380917637361205524620451881611126286600237742459199152720042216905692293275861408249361304231364893498132811135215944191044761800329627395448995323155610567324388087366377311863136916872303175698401930343845764469602895848068203153223197323419568388579712213176711794610001872531146303847215261713406683652413248034478011342589790497214081871828901627831519847980550629262603679885977530915231942639937534657055354635341767703925335575916350153066546253808424474475101808801209344410726169073080283711235635591683498615366434424052227096735764197703856493763049233202418783946445312123290235793826830203129911304167779053754433333598853247257474234554037391251091829121090694368355637312859401554976896617937589493307902304910776834799416546298446032134716257108704089204614185149099934475721330087731646831185043389775313468993215916724224517213764119720554361261307391886765815044243107020267889482055979513001261454044505685708773589097561950861590238649863440246063053342322729154164088265177883981106467643038472514399022518990860102161710595792475191520726107424266645789742456200440181624200958855521981951468073962357798189049564753138353651250860457991300373840884544099524636553939592573712316355223221936748316228831774784665517188663544764616369895140343336261674991685518241193108281348814671166648979108350132888740522451814749461424753043093438697363937772540615390770705060488446883640261623045405896492539385556692940442402807051649128422646461230394114434680340460815817138017606180791123674283411768796813732765679158246736238242866415310953263484334415596303270105264633050326232595418695171573969276902376582850007994248804597656826659577915765826771701700137838527555309650197544112185682291700279096324933678665899650982623815869228660532648945633513999491029898529174070179087700796593093555481948044721987590057612738291297054251216208947757511421828415516966725246878562038773798303032551889043237716412530862759599235094413117767721440272450257138284706122155218808128396392437607069449025184245654233389035511601478089675647489229296421571449377380449467583262261828003062528702372053279464393093620797108526745998042423929923627245511714093056366869108591685021872594504394149004664558017616983990950302182026688645351701593348552071292805030548004087902909962630179463950972705164624915057078676247866204454806542377729911815947427142799025828733210567934021380373045384267187991609255354241553768643807705418330828069955509526016188892805471348683636822369440130358253210418010141422208683226772643056649281649380308374353425289207786894114248850765863903427036064655479656544161948065022216933763833038468507491971235328362469936649932088320653083309380712086748994809014725512393042276289859549736417149699968396038302116472703043708296286740662818311744490231813849677023991156323640315423707765128210076654670302763404918736994957640393878082773818637531346453897538360086690107627717071910826452048555563311145386393925343467843228949692465377630678284295118946143667084518382382358915422895168158109034074335826062901151142323311543420351644435487280283888538462473443195537350658946941335739502148831440816309361555587772517661105909565733190357105895905693756565014942364895674469723769552778682605958786637353661052042806730518200951792995962252577140499098401417399140461378745227961508084298384781264390660152959635773093594239935247464563765730794461564198719259082207523378134931212018057045545540611143367173234224463806129902801893600033766460292325330449485071737158205953799296055835100986913786114284912000044894402871179033593895215834230385736540411060287018231399706433450167933314426834190840756437982017201578269058125407759514445797656780324538204964794901408637277776243918540228165444971110925094023080312727607729224760039917441866998800138265824585742527104636399559467973786870908709987457063694386218479736441323644194192514264724459411235105654123994820234582271656394293700597574246867596789653225595084231639352193441954761504933734335787079879834317288716252691344300107180142418423618863193739696646645782849847528687352943541460247233539040351604762331021128069747392628773903538662985045108419844091091801380142747847130270602194671442749580147962726623659689766313785989658738674223328882060336563500291102438860554042828514805051291938781142116374312346004840981822105795843871414015877277949784922785419796396751136499354727104775928578593384038391603973260756446880938526223572321290171080361066156151795741937231745126539226639185097609736397082658711684842883613787936256682816126601735922804063422172338610198205449248307549008049134078172811731875945286050066568207070950289330937356394917555996914131081661552201770950013328257312384245704295601526087907637138685389357054430487527236870883605377907777805731516803255143251564654311913351821808061722846115201200474473120915044273003724227124741812593084489557630826901825170389289806261230491388346419825610137002305091916251004732450431682204504080208386322265049413788076736272375201553978053342883863071014518098629579652947092793386727211536417063450236926652289960727753159024320494122429941379894915425730316948133368156149512928821346158592929031227949949469220944571734445690302119640524555048849651139785711729723752090993783486603269860578573483581915241647280642852508341864139153335695598949344929340316276154650875804510485093733426003044607131589505158608092458039329347515954528649125808049539351981641760307668299819886567554302502799565677951061929601521357793229715149611767468732112904673731799751703344939930742457555620159005977537425081207832671570937101199232449539466012540125474554574210019999199318384726207531756538036715576878367132932118636662656368540384459412228477433416558279351249275070201467061317844982988464208766598284748106199721892233579949289614279532753128086006522377033516489925401119185125061969390009502373471727306012277882634785979448901121813151263432323900440036834628781764464256862551642282443258796423828052391002379105605042641692135148801520437657422068180265731333332314588111576690487305508941811576746069405252746659679227716549263905101661764930282448205236766947160170462329960705010017705628621461490619447144298887860391831060916039652288802842574133572163525389047742732308167205093106527801347857294919171765509023609618397030885871218875377104567438637818224364757469122884272172495559352274231283250244797750856371339389040553521752334018891405011633955221679183564938560712223100265701156689367717695700990938398907914214741048369846983674609443353225664926533250740400440954455790077683712894855750149341418088375974214440690515680958036865150867470634486980903463204236846254049457487173023749243895344197296465629654468909714192758047327820650017902357277695435324899628703156886581302512927413364466273516469405517806323370406477297796114150300876700384781715053359582275652839460568920532390889073998926005636429809811227896970747052088944545961385821303891302531150025481208920266535426372522754203401151905565797715500844793069286615320736691317634087039707500737208390580958627034904756949338114249945219792766928228089232267542952035322550506990264745450853732657097391737278430671933211168800019350862463535874266135368785774585963638999296088605278477536791543289663775899266033159310413543398026080991116370796320172189463539804210661657663647665929570851679025807203693128913314565049829602361250699988092263310407649046934567955064930646917832060760128709135404067721003291780594284765483543379073500436126060976380882822943019808344871897994825214771202091808252632121221854184425573262537506765661784646791697519393779119049366103524657192047587117114429222449569827319127932879081387907398047712620936676163469581607609153930074486192769941867221292099282790420182664732140791541170398988014906895738214573370929706158100988697166739225549676236073012343331553321029851796817098478845140579923461458842684258014671609303701781168975649067003953545099652394617438126644122003121356837521020075553404184847436888466019962637839629988485143063975670756550878485408698769259508000761778826914990283338969465900158345586735753562328625499817209745080512951613910495796560314132872854396461875311046112701032786800622522356188887957045468592595280683239285231923989593784622161674630233863985849666736790160082871587590126214734552500570340496674085537866123982533144505567743059042352743491343280810678652766456019778435463842976606008442357130721329012685252645867418324781437190487072500078239764110361835965863247162776734630716782170172851750168771596646179568233018119800334218293976663769088152086826800901247492054170027177191232333834815180014373781781044085575905734228924457033561077711178083602607166864917573693036165976351479755748740409309406614862786133314583758277743968985228539170705255198685009161376705149199785638015928204727975719699647262580992377243616295457077981471671225513242493929497818292841066315217988065797853452818609313101756250923172757214514657474537507808096308027599910806599538816992702411507291538452341336956048594950071935478203541047088268559107124108047767970461646358164640768471759396346632121152800781233024409950370976550450083236362493272794994786105165018139397067487083102616331756541018820647309852482034331315427111900909302780395464515302952172117750209254692611195268961210216561335173401797516888523839594445315942724305428978558328068703785781539262949100223031928750120282029934474649690676842154262814711134044241990411786746522454485664211802324892821121796973859878233918452976657329899745425513661697276088096177495190827615650606852831472564771447829528014367554115286452886231169060724859695272247770536111089275130887478915312205754419113817073507603941695750137521979620569080842730699726937479882179779694129525805944167970562764468173293164650450435242061009200698910364093781180906195095326726737490109650816530202409727681282269801053056161345954866554289481438091674273340653751538896918459671062869953247696523729473250478169492431061882351242086745902600976076628923539733951922301082000651087450307325665074607213442328514390003728822916160026264268405208271842338426212186498148702759573124901362298665558200159791630451645690319600369922809780896420433040778008335225816396745128127577238712452706287328230013547173560371369080018006014845334666294165043684727317143825582669989847429839819682886810301642798730185291076569076439663485754547487851083644927678617116718975267555716856926081249702831103166966678461981481153259957957051953313681659563298013495085648219691622347558933065561320853829648732326156986912323716708746762786817503154833988807001158775484755284210492768579763862534857425062493501832945568128617723900504629732857430646507748994765353893067260271113199881742091167943700430926369267098232263255983630302028452843454332754111447458864543744230798447757338136873807684452537315333477711694370830451327677519290179584884020217233421168603074386981666999745165104053498272935756091772720233420038172919268890536065197179141603394389351016487849197566480441991375661310692463730726161464344002453890568642329680072705657657149187205411889018493637815576086371166722533282036881406300485317105039565449112618988989892902722428099931170917611927134140140936115512463602451587492812520197445105511220115816113903840373782811906452813072431995244820430525654844103501086792414969990083247179458113841480596119399905234248669788733898216910577315158312495417731592296234919525575446668041670094277497851176811804266995098753606233506468708145986559863511049834822694195291187271809348795944388226033050224589324198184000670615397056583268388710725549425378826381353291723242230969497011729810341052050676617020266367904636822761574362110059510306215959681886769317944751391495901929278220618170037137501253728460789926218885925145791678437669032568725596999629161252962336628826067374393899136536652312267987345052204283980522025894154623339102794977412477283231588300833081722295340704010373266665316270753633331214632030111050204706101463835315834377022361508890546172855233100477157273853454290107769971574242953843047433214803624260809959527707173978566923722709080740141878265946409794211201867584729346829869940547817985154242226565170664381472500489617154890610589630392950729366173938537273378299936137472174683835138111684247040841001895635067378951251996228897962997869735829149736153890146662122295520402059565169310076045766306821230615421098417325669152869799699573448229271954745203483607869370320608137890667638548585301778868947253717435993285364271827889004244214700260285669864633152612757334119625458912667428422835873822667222830541008168767129773827499367072360930546690888245497424694987538980617058688331968270796074049620309802431286380457324863082575654807488135943427469349824190744414120622282957012416220630193494710485728796445807090408046600607758298328319379166289751730481027949855381658277131242217972952351218035619105232912694776797702443018470466057019953872224915372416060244756417683888253745090958447142468976405673939302975397747980836038245184177704251096263089928435685641859972172252558780691797134680406427279890305027477823167052540209233452914883436267916455906896833355936828495025383702553653832403352913290214249209113854708510935712635095191715076552131296950405715780909330175448268653507617998947577393737563752709134378087306164946096274227977270508398044832312344120804724433204987662019415897494592266667648672831289039765620959902673858224183708682239937290034764168005158454932689040607798870196072591409773893072073713314458423384973295724050222200443150015108653666306530582914898879564841553855274604471934752455145529228740828384508216833434905309310606962082309464122254614053296178463360069001556206071900215266048877816228995317986312461053562526152658718964701207206302829387378741887264427580004022660794446567329958111403501115596467016370305478389549989643306175322026698199411409869306093071934755666357464425433721627839765205047943211763267449814574230394898940392937836563512923295820830899809545412371064749102808753243045684749239041249160183656797192999837746937240606427414263105539593974213411789352585552552691310626373313522559237814417178523927718011861208398042081637296714010330526731838987231438098458761998825581721885779878256598212683364624772313616060775060208885097958751744005433835969268461967579510878809521417734161784885327098592362222560921267102528706381562199849170944384036126172134256178076618559387065389254251711799322338208508339556572791775664655973215390502580921966832454317620263961368893074900682739173663890638834937279467154720283552958402844191785660020783282530667885859721329041568953881181556945146186446849906507847493917577916224560992104096511414439944324828514811306140083317990493136256365645343256790966414171505677399479319141951053957165917493741812927678243281641078305479735004519155513882310955313783138450947289450279586607096481035525002676940223411475713460566569005985893638115972143710554724469673881410597464621099188945924011189944858502892067036780780824172229749455840017007807418211442263193906679374805975592398623436078822379839955056695588372037474892253914353416403723446701600202221047151116654452522817006528818706866719517991620978238892361115083158204503532166139825532740020706584158023976680575341242572198472831552908905566606298126383884592075062966988088976161941180252630085092848331710140619575069051278308811346850996451749676118748109541929821118787087599203177694186946622597777200740010780899326238068849656850770244315465840833613068544303576885415619369676662354069335917930307248261485658835377135930763002211694676272161927454202591594947910004410788429763023196521242865079254885422716891710858310147351987734424247998153158656999492873900099237113994900171703803787823528731865699882145674881365014924435281774442999707188860806914368904012617784249256154469683647551527107634275505111630138751351494497825479326683736534922150948595356896188598623045360481835225170188027935384659232437840104798139912695698146044573120254312364300493188965007018050354457309372951896454965442763688040675134754472472314139817427735041687013166408097185028502569515336952663361425850182362029270605258701795066758799419324413696308545699085773910457877323436864115584705917232438879823406993874209430341149885967180469850360024423329557117015215761633135863446440260682486865540783646456335004570073589165493068236138699123030448370668887422659596416662969020863263776268535267625192355752872538901666031370900615602215957064692364303444000738966981470143479246454824222725880571018958476143058689206398490745246418605641659535999517035129826059408433508432574115958618356187399397430016928633040401994195318594073516123278417110568131142819501069324292376300838892759689132581982501666840780806039562316430368169947373029168561480359113696123633020183502894728386400873444143248749863817710874688197927626563325497963675477485908851445874001806245805550869659138652271750664840742607901952046713719314604493847522340409830680318186001370466964360408129183107856724371082644098222164985663901111358255250282277408441586273157131124512036960646151074835633019820473740634681930799223432419826415308898925612921587419374015058044437458835326377327467098150246404421482549960854574085424976413118805314788386714635014550826662473676471330789608214106150671293713463071902390638517992852874216587699414931083708797970279228048924320268828534412647677903224502660653397843419591994271550837420690291243746645377810292656166290015060508578998881987920723933542715497436093977705685219269803583043264837922560205638541418295369858294500521892778932196224825119938122434153020188252791109088365116474328793598569083453002238803869188034876891975023522301724808807988854019646614446640509420202808855572860399476840311558266855167270756208088361028653349552408376743736494879558917049639482605386647086165803818974273270952500708999931712140803261626627513853820843145355082868369440946166238487460604296301765450131559267663770370678332043627790662024658912366076900214985745964649041275380219558567727689253829312500566467724361269756835592293294596832625500527866295390876155595861660465803273456008213071973250925842220692889522842790371070447980909742756951561085724077781380512361054571121811914351787466437084118482617252652492723694309965584202872983701813525099534141075502646528096285412723070589065012501836033268921214833281181835472949118173224526335840043965002577992242421002427567460522449793356001240670258035610820816110576326132109787597774888654937946944415384445414019274780576699063013045659875864890325486643575016142964061399021902673481997973211318416442782714666826048249375319663282363373457041179251913101854857007588491780984633279000209395950034774975569012816146049952817517557733949794350853171180623257711208622668433108020670811855996146400600350705613452448889652634922159807244011936583338788056654086830861910284889040942183039073259996093574460049195842938241739103482608704540944531297323513646458754246139517214916767632451869596862918062750560938768808677268430979814386607160693113113515595642667086100528655575970008072294770807779960961077423182427724883209505700328295747290700331924306337720988997125407879414465194086494411150791799682310914245946642575059396959491522825707880328679023156703882317943016185224846882405993536134084731817626881415828511453450875583573245582471357965685989758863213029148033069478721502137495097381214308150282633703404308710778268101856142281784180597079755422335730849744172108015686749783891757540682038197855372991622643403928961210752392929505539877586198433484469840912058445539127019874894792057494098359354721673931049912296784759825111738892988401237086723246899331298845901554855256935528208577358825058898626843992017970867487162285768842399240161571017530137454048817433978096792070357363731124336844766883453863799274027372546328300062564030217609758492226065028162924821764166024615509223312304004354033037438516203068369262475776821119964723138165704069376084584026803566193871522057321684474098721248147339551380928108022657354807380946124487929732426022680338731876141279519459304590461144631449061290075878622973885497295570098900660665333357086124646866155742803811950921287190793488505804155101540603388561338178585266151249519828290643689894189137803708684552482443478199221182290446204638221742970542793892545372726477102443358127184237556674412528300721597405998073666974172146789903898245478645887134158561632043611582792888589980542807861815787220099240901615758908553908355432885284657603808708478343384764528829238240689962019244575223788429599733748773000130752587894771530962277295408528495229824725170824463810831773022386044985143306908439256474000703747558555849407764637333372113229828114443370418744138909685583600556370948873123641385121468992422451850266591454455740034084736183665051625808826848118020182149788140127417863115650015392446246640919909209100784677760781179622038810489140017858331442868143328395221041391684482885647712048886792276764148628065445605103603004347911083212964526084604571535266994309420770229967625683080964577913514976115276749948700726201355134754586783675341593692490074141764428522451417026877709679465038367003698264990891051316529782985257451662593138675504788021291940943292482676217232513965923850118126398098336498927349328372246603883385183071151373418252730319386812944861081167098919354098803024926794687451300348900017087568916926383769507400654725288764087783646879559125016824111308230185103287385861064536360084623291427575199224447302383552840872395062524793492697858513603079341391495434000038599999643976709566128551258362460249930800697572777373475053091504392286533925338569813757859274056888637518518626302016994206144036363165011388671855036432958646754433236692332502416908990900599408062204927299858764787225440593191016853576564747980391265914012352798870069185917112696175351063321311841807887776679346771637585466701515417138088149863890303989002141154167806424134641378705530111672116447397855929701421621489890624093226536857888150764840866710537595844023368618915644919161016210723813679883650155009229345037769192906480803351558739620243908193293265681074762452595204294419742496361375258809049991927230052918668319674986258165464933827884953273812155396238532148257404643085870235441651246446578830569002281771521822909881440743079122875414118387836698824563490397436003179797627016833005882571150412453994335651268648705638673462828919569080224031558976640497951127010272684765960944117521115711094725880678976667199308130422428661758982979401256877955535077375058058158654678321505890309304565739456794381548199179593752521666413214054111709113006588620195296366316159881708995985369170068583806542210448973316349131610398551624250545069571050818731187994930626773835524063335926085749834963220086389490653500780503033984238882070869463328025176716988203003646665235849812848443243469667403355811219823033841205281639694035677418260350705904341537022736540346487514834514392972737720949966086272494385710065486792688017798548250441573178555363585005691490351940123378711385596725442542025607406753155827284579947592861325235779879435199272844794078569620503049145167488324284799369212203547054589718021508302610144985877109627612055447456451033223827298043456025613861739753061644383227445262702849619609093594864160922899263287373381226000327932694329487475109085640239376199465022816768130387696947687211173937811518005078385443500659459353393465622111553062165534919065684858504051415477126233647509584111753309338326419969591520679613154206690956418538733582017806457005804719861828398662949419873753496048703722692811914459035322684165711497362311764576829134810145246855833988853594407761169162802657841214836912403903664581622148754776362309832456673846124431100509611618890185651769770154062981910030473008426974268743658417496280617469803439466461614666913167309268396682735297373516191799581964549507204819733606907361801338229083544565057479343604067490562390100731165549855791679513441177877044438049017375727942474334922622672153110469288044640703102691515128449302734199044513247141135321934561214612237312986718813025309440367587918904266651232190283103306809519231205700382563377176210992592947351169613971338132237676647296673449069896888112183043426652494724583632268794119552460505370914479843370492164119158374067273844734179383183295862090242989341630855291651852194118443742494985439235207202254983509894551601710445298436279289615369869031604388322996685932027949980898381828733829210154795828256777339601112073929395956443998560733250233073163506448064719518971664415038093654416474891914806463621989129986941450294947603097551690418253535148172751513193377147186364484048131800214817756316542817303097023496285139780621104713780006524954136713399106090801129475167666991425591987031480158438819602596056745438955291228551858881571063049216156115558420309338964038982620983013258589384719327150440521447951217651449497961779813729300861067045703931229827819783702263256714233847687341013050412343300724263784838105839368979455452454858968643049842624244684855005615165807364797035161688986153649496968745698601159547994389144115284540384521792323025415400972298174005658609670042642951785956943011781859120108966600839302402500665077867480718156312588944182598515386322390554789329388056238458271833136624227993869468194794867327674897740137878822373036043192713811715128984583000519328361519799718518956495636333273415458850693038875962791266024157621487062937650648533085225816213372030668827376728685343673789428916214432722167100019256738621689509062575782542258793358375870734009409518629555730125821249863705070115518234386085622536953350264496070269724031407990946578002988299341347355080166234870093630900654324596500635170246946070895589192245824199743444324971645008528900376447384253484037171444178367959576973810468639847136138670244596280638733809440715401311271361373986530232541628548741116211337510573234676891150097192175225549583147913435880735006535030557246188701394664646902513077161800248042655967167591923756643025939498063779882319399223927221786794985792547325751817063835538732011472095819737351834950708845094781057208131651614798985855811013793670723660635174818499155824369840823009067173507105195902423264795642540248749818639290051323430248245226907677068920207313259373967525128656516658527297165568179846640800102599767330967924371897802045208708298399506000706771348324158611639755791560779068352612293471543024615702170840984847381666572850639979636769636423307159197079680694041094214110214272465477849924213317322621165315306240901447322992959444261661395797275575291629890640627012128052091158400307579061065701838286539218104347930667141549753476573970319211876288038362150542295809337444666893256387159585944922938264985968894675679577578905366696653705517518266420415884700339212996087763857501990276087640024845423872745404349917718973829760259365195875252556328785285563551607484637503523785634181654927687592773213914872801950115735883481165781103448283506546301483549304154088592790051237533971730084308187994230442562460041731189079572087399615528298175735862088290976516564073079691081612317607831194930820778163317183431842980972656188902256850169095013029417326154954790551037476979531234559067294113473044672398887909787930651865092369665712839683772011362798391528691316150078178100297465430754229914129547613652212262145638342778342706429988997566057614055343845954676418797567190831259999323150347056187551693971378004230542494824609060675765939342753406693071708621326342816550883760774313627034030487087909472660882710911880651760064892215361865501248800428978314720515522285361873547665032560497760148343660151852807188948272070707605287416148539088692278100208310581356366503011937612131407087574995241984408783899472266856135917011143808737797862166152920144893493328192803745187840465677390849813833147570869044678052945385997205596435425202043648977942823698795660414069404349630078616338241430125912042442755540245899524952657438010114883031239164648938514821643051966920329997408110015851378653410642255698056003965838583496460519137867061270593343460993800892689768663199863047890257299358826477561982668062723105756015887636003447953508648676439893307306232339946006621281160952467959328539153714660966642106634071593935526266125552611390707947487369931138633846555535338725674465390604984701068828409683358246480836273884518911196845940997913657467191457944783853922129827229681540480931819908937910375443516439378695457909516612158490558517010238920377278052381754957586012264605056867862148066067397382787584833933690262604421588867858039997528818330769968677252176147454956495071212307305802685543365504012132826627636833552782851667587994258517076641341853152319271790475394730874870531359779252631525721634918054779292361433001753328931082669541461798489148180486020730730104518798588144440744777489265227454291877047024409532909957424971034366783028801556938340604946203972617269221105004820290508356095535585215807514373237874300816700045000582098138530951847268039013935849993227483564744309138586866354955586871467170428128674667783847028492876234250444151883174412215346768737031319808634963840522414789609566529201702139791497442568235491276074893763114021830848938814383905651794705467399615296459105169466717352497422777620961196187890899421241297267312027815568294160479466665383960777828846301296426649103349379582487035772358885545524620968520150625873651442997312835269389803890561443115268138123577043051285803051245787044063560875538483321318686099007820127314507499702577272090146544654839671736484728169935947510561601924034419497475991449612813577028550141003022903884398909577294082438311113872593610897307234029445932853320911060449526415082270678750821665829279122919464130869347388450492961506662350358783289432556267854033463375505158301741367679213272573072676300594365732608290934465641779526091294564128793343099395050034049827238270968209095727900491371912937067595502472118046685536416751758189118441059054233392506528184452009439182916603420629607254635002581872626294252761048550446432076310056443035797922355751836877434972361179302647136189216234138111682263365244491927860825212144345249068133258506779669341979694865022479286036423580573140827744127340939723372287318518177810637452573497076921075841965102328966898591195240844772285982638962134979066294051200982757024346122762901479976365582394694524583828912933158779839039428253299368530855385141333885551815158887486814802224846726698007983269710587805324673889176819934491884479478360747845397852106963708426621235744461013079751581931679743584519707779040363621397644406195536574650678982108127318214871798269558720016858206600730728896197724064826057860816567783334168394565856342501636533336183057424356522424987350200518919023048319979294026334788069893219062909085343826839108055996385532130444930964684319696267192745614113627755446909030658946757600066076183418884418747034833835851133068271034586606117977026356788549714852531473599220299062602953899290813356623077468498512533649215581961217605967168257415897253803310815493285230694729505777235438842658266989256033251269102104663447316172205157863216204767818082908180155082387100616566550951718109757894828413767497618730261974702457949229861609686099800447026716927843292141768612817181311149282989146203496028320594218916518129303165953040821036398295726792566967630494456559376524691325503391634917577943648631266159042517643450006697918137973160613404624202284387298244686541199450665580468840279326537610857641681138947769978615356599533762497860153707843300454576326225470457001735785417470426374636346053121368497074461891927569211480205926870271195957377682181342850998245010176023527856466202128832375317360010392604732034928687088387443510653024179376036032364149364475386749269424479287569286813658036412903820448877131611141646956187158808796800416575317233812973858461701125679405671758403012714658650562835449565052344457889852958493013224929778882099665027478838323285518925177634531709063307942874897797352308833080645916815136644328858305346347325235440876744258380451030106831098174877747873170160627911459592500488267247658485809108516833184178856482584258104442101683389488066964490906924883414326421569655855917096778936271554280706024148538203106159370582394600678370917401647192284793257451569727246144144764943267796975200829227907334935308749395403640506570655844908065448696663206430038112294849592982865432438950416485038002130954883028824453494607286411949918854878881163636971705654274717210841184862420375475615765127138240424672862662496639671986897608980774201272231227042386151143021452802215799720272919727954879241693872139426758394350298435545770860022895824747184350934448853446467431310504737000140841312988505329955105800914817600336558915111714215521108278295078253412142324220619831098292333476098406723428393629405668070326325967848061878428867781516072322888590194595648614257409345046081530092060867149549230396752637388284020758756478710792471721323539244929179932852978885069413904031283936420564634304828803160716305144043833653635042932447322131512114593991681308066497336727492347099298580916273361274804000056439944583850921673903225193526274172449681679124026410590739395852135117593761218015345187005033348706563448288902411614690763787826766752282846455406901139935801892175332305894110819006796301541624508472449907374581034554503939872418515574039478075785989806182663710733267912816637661335427217300823128369473264679699808761504036360337049932921800039839405889512941784129615403826759865750851040050686129820853448316534824032439220897877721141465286370858051923831302816352168734515986456399394757233998543490870278201486404242686977583937142363026964894916440814278256882200815323246360232197404947809906882930827934699352368737917519124093320467781095036708220574438082227661120474569178446785984313063084500022108417908302072502620131997507685239765881901532394853466555132908862551632537346381500716605685431395264995964195191313342832613286780864071778868561554503032767090827917183700512818069993156228532617466348315114409650514733729162315131632874671019496479222534175021931996900236048400804152746074788471252191202113437577253006206586104801568294784993267324908975495407649493495234850687616492703408899052701292546021538684197374908603744024259291600294619838605772096762055240184074829517368961857752230158971473422502644410187045706558313748727958129261616221779302375054163695854755739579191696354171399994396368645448351677674667641606754173826897106422467149569419555802541717625566041618621824104639595110076499212003598233691465070259066852393488801150660833091989801764039482107853629506570553953758362240158248400436303224980470427723476619660383558210158806651846235638987663427649214342288698460480777751479794841520491800273770666311115139810975878234156343258961383715507922304058224064440381140252825224424175464307215626771007502255848507306535268492273537220296682494485185182674317040225339515467940477186614401374038150371677098374689937160608589702508917851759361258740227590963120613269022253906941425319967094126643969861473912560440124245637191701461919653972011804492203728498851902442135871473729105693467908322404964469839888913005251494643530862142931612479633839618477295989005232040461442998464930174030343380369662453010476878391947218712451897144820044141878942136235245151872888102177032648884792290972919870714046351202941893212568654379976752833867211063898404982960836484633701671517825988640228216853658719390075517661913194512860696512253437540926791981138589107591600272495414219356813988393288310792944067287816966166802785713067113743426892319217259846213847878754825970933456088289084704444630167434429193448898391965789812340747847660976581121312453643700611224550274330327588148143990182691836356839460365990455301360010690838802148123080520850419774005796587604726366064709424737083400284184317068586662763596709800231421205157607328290890602222747142978586960929733799470915043331874578771271339032981101684414983512677147835456649380831745136814019893184720044554313066987876861209864417987871715330313523704541264876011298943511645395640757233013348520037399687264369829314192290165440162546299808896107015611648150386965364237461772561374860746848235428575527402777013904425059513556866441248619427370909527185231056358152727547943339233887092618332595476969739528441354380590949098909207056094453940569847825258486185438384392404164013451526629818060505709043315549126945986934725054149620341521581198457802878728513617353306612188733573443447894126957738253207705281835574717512186396641153407638425749428478896228735261638418768075216279475315180346626226676010925648829138451717623166603835189483100049983097854413377334022604939754414488201052824005331550886396221270796839264130784884365833998269136751710824216854317157736192659376588945783952568376567291234487119506001404749083266349850452422667581352916804182560580561444711635796484836674323398429262101593428061283222180050807282790343866417773119613274555281058800966664215440181856127732528183014342145880547740731604509171352580756450448805514461007094892917158466964459467730777659329861338768931789348842749049114953585189850439220652546444240209671672521164912346529639532670121538466910675945691264369994398581989412732180440374492019037087571997013279478221734626169003711596232411130882192320016506032034153768759959613952823642114852034651162715427216267121676955279333633899727451968742642165935434210767178496023287307006945381963439871094872312213139158843061671004317061323995887985007322692064529837426562417332158270428737714984237049349535039757455589134484803648622835532470987706864021690978647452940654485776890992554730810659313156209105227226533711324143241790067401407154940198565481489496505389492210602952235752483636392990822973593564408246411504126536729992813889323369019944455615776331123558014783646378645107571789419049991663544591104743667767136502323592056193664918955654429940262354174058987091758048814349451989316928493808996086538584955381583735223973617412891557519967442838692547983081066390866339658623481165676126740526613779666515903445319343737097490880414574662684862545835104276397499828790628285096265545040100519711485175949249061859165578798994229415229105241100732212848809236191719322487361376777595382912700981136459713601220432092372686047077783251128982880401126648592685070495952150401281623693409625373391049009781491270147816392937634500049178145684822662048944179882181300018721403580873264117036165715733172523460204740055984660741306665852951028537513960023622855494101621784860920213541034411684867024315630043161261075773303120554941564259629451045361974258062100772037227453973100114048203218200411060210999810279801893907308671607410709758167142511963778978120341214696767870999986684316584620354828960880001779415195705216891093896960246026340781051896335940357908045762451105352170801963160770561294290573761362217476343390904585473146957723292895406950372457806300768884535091614065853238949684646789505118532128553403233350282513328135176446150160060104494441353556760892641857914967763503211255949842057598655861757446760225241881593490816830549664802655299804408952966646965857335129780131277810276680638915043128685666532457438547718324873354391163685781585743775207846274742167276378553848714454872571421049978317029126046803152767478318444164917474484227648022057295528138329592513939828966707974650725222238093589051960313421765326557399841235272004977523903937746724138227084513390775330091048748893648027877473145967514045174788859966546626449013012107415935053299771118872997418180815678694972979142980774773096057551268593801251335015350856242236070888500732873809766527853280269130362153149226491284213140243170679972899441099772872996986553911882665187286727936484030705693011323817908003501552739093655925690706380113859022372904987579991532665493704569736200503256366936362434717604772633928333692466868033353209319555705330056697401690896273803600123919897977728873742636647491113997329317032692443184789669248659790150345146422401671582309562492362400034806662658470750384646716033261854296970679195547180821611242154934411270966321405797679474255202102546825134255339878165579049186690837460220140881549418931481875452963374254072340342995849065401493737489523519937199599467041747626559715657209385874837976207202967527525311523471012246037847000240182322765972195484276584288513378857077159488336036728192242621314850707221147429226091021312475047776038898373482191857634225097261328779198674044892792563880899495993990728262675559604974082723539695459085320724817661400771030161678072992685216764687914051967551368408513450481324472392715313353775993403810400410038359242227377800443652515310550777971859005763883624526471737964242057817052232625545344441038625513242542490714643927195486420916475008673535021035952116984036039583747521784867991324109684416448135067288185955094224288210831346993502112614374694297211907266303604981253942958480962397182910040777193866864542694396087386063101875880165603438222242228176951672573215614962444220885580207408390380453857618617631834170348370856949095094057251903401861471560380895121514452655379899554507108810234319607455287841855931885354562717779534354728536063755203484401163666445165990095539257092268055391875064616094617570270864347937860055096705454045240948880750941420637246046191609938538221940035361194344266077855001171511645061050197884863243380321115705518864060234225628659814307067923768150151720280994707255030374168542766105988258093896196543483427599750710614847143075008288192839170437067038732358167945102395600534822258276201384903262131742494211429615348541999364443153624808397072478412614161875741458246296738800735955323436946764479375774020887254075212808245013923813128094071679792826897674437673808058513509933531177127652872722919380478700999441378146174810990666450089816748881111877815571841589993217962078706820479703253841106531426994687340183632944708128918804434990911057670427972580906908103577501880065074086907999596157671618766982364280413124414662051001553712279967218040393337232063816823164805536633580265296613759784644429353703188002878057902006442187361173110378114695033248041575017198221209337467107932949009377782754450533428389531725019041799289196011412448904937919210321279845518049763362530860438882223814643082468706322358527722366437549247127680975108508825636097353811363156892148003986045807103914611502947996301355357249538707756205005952648023608959019516525561826418479276457492891046902585896125310456980637097900583660017619445517529104124330062711468154750442380817253133104361674846444027826892587889508983811112695713657997915532233562808242353132519468230066944763923897807145899939505367419771935137422738360649894122093562874261898761654311078558152757385632092917842586974192444997919140783845517457202851017027736141346587394818016542110483331395602597937525448867539992820030896108077680520399939129299556478540478476158802254040188570220073941597834899346195877018562792509526302026158051935843922339593420083684178467740841950673040914625302021597494680872891620210926470729383506655404256856395845495953540659228575082112837501523673344871760130183804282730675171877069603597467059074095558575830079588207777671136405062197350593922399523670428663398332874231979106107741270161047458564247732376233266849479409556251677411911120814573643580448470981923071246380590965063005713135924896642070723923303600329600577886083232031141195102534426521554519777623116677957257136799105052407424565866092282855051388980461644274922743357854796464065123744713994403722883158809606892247594221871362389896575225713907527934007326159578220427681804840699015128772540021040556868569299480339908160632703838719362128370497491102977251167595083702396664469920266882503649492882206781873624273504543978439823749837141939257419759516206625901673316632690601452996776461845656199596000141091075704006469902920224538759889852701288573204412301668826588174143806686970009244688057756899884983884084723051054094384781592932141797163401212521988626400166051781598695064054470773902582222522574861263117507639718739272716736092975186516208435294525013139074079907379120599433913413373106657717088861609085742959201471682982534019236895693810895304916618801665491252614727565893033960862856098984490266456037046474642463571964231231541013596897753332377318285239868325469467117141768809640624143389933064533207465727459624388676046103007768059551337436924622762259207014745131035364113276323306353948751414473597780652950207474151812158258192061586757347704641606002076094014545116021646381858858224351722750878114875384405218032047084282291150891621594144748865205281281829022654255574338134761754031943923300241906748148601086324412196480930884759249131351329238847404410854932545310799331845311211689916476280242413680769768724073966502719717135004507207965681487766371916421382884236391641191498590418484905900545290709855683128631192550575132816097043379007073849992273532828841096703623530278706726742123455160032080734400286292612559494967287341920565205365004699387280443835664466515587338545903843746783246628527143020265609039488338942329519987596631058412690481520123073645666491878237002800847803630745187087328799926495701566070224062408327229718914776979188670993804576097863255155285786677666804412181624782456208340381128612606380297974675420003775894063068313951577502906952216465432579177054745788633988139599709409973859363679146895550287200707671745533617826874307650272262671178721225533401828721029752779282541624873603619679711348795372147215321752877237784560211493920018386116382961409938258482105148798700909900477130134991933322429013376441806083614244522677348885440374749898727138049105676779289041388199520438614738774723916562410740301654332744831657797832157394241762171093716197615684382021598158070220337394969686951720553772315165399005112327947572155966044618014981745043971262259292906197365441494710710420937749600189376400656070381284886697577827601065046584295407533142598972770930477046801810610777244682505319973336116811235422797016553227186137740725638519900441011854087281420263669023032184503471653751279156512494356091646316859210898405246795812731276759147223272916740086920230175116313019804869482554385876208165187605123924547636769754628909941114593642582561678085526236708778567718353463447906690719523089521261367096372988534258848723890808888635607227333333279481060240944818737830629126959909467296485957238543565999209912688199714058045706703294183599584406142098084709560591678564026843863909467142988075029731500072001490664188010461480414450478112519467046710525556380108684262505495865508100125877866259642819938630230112007833301841829639732018542122388228358307904217071897662294504341467208435981897114330120938715289864153340574521886487355759935267204966501081847836319871599067954678754005371663949920642683686334803772218048936720343777322577448923359855510014849129701452254623116975734527565784835699713660921272746348506923698514603778491743209905727454308120269752385299196942093434050952238538907362943738125950487233559778873129993728998044629560965782849973123538894716615414530791303655787231945143394471974659326835930334323405845457794811565010775618930917658089969278703021945800935889724872239167869503170381911880844624600493943728382350303920397369903353435645971129149620344863456590594110238138863177479623968149274391542450991832015855063113054535851590108208268244824885316214475562294880300843605965451171424423334371268292313060687720800981464958266972011928339875903535361671208787349170135472784502391275443584818190583606063867748992242162838701984869998481754632661131256249808353094245402490295326029572633743994453339658209253692631058566474479310104516085846715055085463957441533859337592154426702881609793593366935722624063029258755215572417910949730353417223247689789295896383652336373559722223035805099310219364895767043374401314402348391712385031324839176919182773038478864290168362276220212907066354850070461138592689164994376432666046700848452091532763486067988598100009513003539996824308970811974944267943206525812619925569225980512576343255744739672504393706478399476483521267092683789990028582237069476158951949061856312143808121099599899581830355210027254270392575081800674858676409489550810452942142385080490747820566724766807756435065906659724947132153084502478082882763196929304624938564036049685497549782027421187672207913244677317248261316184453152558898453604929199971951795110716549509915371918766352502608000864461317886414044516260898487078341947286102055854595945556654740896159731682331434174607424661052718943509811874038448168877226163851172871491428811189103768069042553165929235724937298653605669055280431239173949539305660730729245935602444347227365951608900805781608956249461776591427348920950699693493095040532236710192831431545049172083515605799863878164112252137640362685279524363271223000727211288413434615324210247897662664632964843020082413985033636761039062910186504293188416908947661909340702525455927247865907379207271041473202884276492917854857179758110469973158166018517388588789358324844264910819427182268803070267218016141846934208765853280348804315986028826177571793711288185247753384282376125306969789479146080638240404654677069836765408572218551937378689471612186666307734095729523076470235305544806481989862902480638693102359545154853058206373978677893208776702060002860336132153561563839483336540773194746823699245920857174231796916778710108287742452334891110333637530308316116291324641642641778480474884778263335001357333073928242053987142223880253897944924284016004254345676970819261090780664880536879902660986698301079229132285482271931690695534316917496832298979245420494578036954803111605194006387865785692078114083036271125932563970252895619985697024693227174638659404487310989441743987761471561964304507605535637924965223740394014259226029218961722459024677530130216958885732208262703819399757264081202315388538218235426861140465983767750892689663342359238026805511211589235991315661026234444899904017240584729527029644965416452794815959291510671574416300470606268317676271493353975741937562781591736247440153393300286670197363629761563122158698205520042961393212110793765634211100170540785467483460281334403757732231532640310455545936304373859036273917223074603513793666931554730110546451282738106334015382849572205899882196435337702726515500029122404858050273699969641789667157733232706650638365859485735515009274705530476854599477286021984263934236241409407893463580122087643364416737294004129906155758285251426978950098885320164717835864753159330967850186833366562078842985003980529228896838917273396280709233085504760095467542508611512519272369076675576217786598904773300776757536116847324027937504736877292178145536730435978810030507112073048695951481736083713785430377327019878134307393270067153078712556191770508544031796478618876031469826358917584398487463030064973426727302811706221100497103429158117275981827429977862476117424543503430544633939188535507198607568733183617235359413090822628677797706264806901340679721555792751525151747300957811112812860436454716894047424201887195323572884327961951964318532816298566033783942451646737927158864237771504257354272290675175503750442658065544405138540819395440888973852990574305773749395832522222018874565680643929334813918414420293977563060078815742534828208473683430159354452810853418678585495093447151463497471706588287923961260964196333169068321011516354846582705280392247236740286687894415629598543430269625826432478323241562869378600059311604631173073477124617544317008737661022436145418641427535604266782257172317337313246141280826024031463195070465874715486025462756725849010088285752941092262778309369836667867024277401724955432998298549968751313755345105671412116526732479040796236503838497082872514049942071612997711897868466413965836951126990402826282088457788090511899299325107164070668470247171987115318768671938268700765558195286053412175486323063340925767269658960324659406189575547184460822475257519625457534454329248922415309247359671793362094390293047144403815559264749665686595426742050518435519152877883842904485562965555853583246683240762668161315558515541648525076284938500965401072574741453541952431835257561757161748781041906270541489397613274441370794566838602809544544938549127732519694335844828204404465312197026577334532780661051098420758777076087609438532530771012209327491795023233583982063910164688219721216461404090346682773223868186554516287149042089336609406721704502080324669259564863793356158178092772561571357632717024554558322674600197845755312860663802210529470694627302542669622064440174026468194100232286075995986026699736813212738652585199507765768478281673265698452475230132898555510266794605303250698724973458804140500541108473234639702558632748852981928833968172885065526403261611413654157588246277236846027387138096372653406113182728561085320722905329668743760664084850985779597312505636104704017512952661457257963388386463910864770520293977915354687532996146399516109008716714617310262466727446443503577117292404175790607604692995913948192979562088634114150321672568894729529682599430602150400783736384353387179525127421160785571188927672926308034837468616774272850159403541633230768432883082784008349032186667319280608075888452225523275658390929532253151521086770184185287337675570516824876117185896852060822636331546708678214917469479508664371856763739412389495470314538379942855284134756938653924880352518689586873413419105604761484019600861739093355737228427313797048641080321380915937077172121304133043379219065416060312451424385978631935193143425245886912276392916153861965495621944775311930772209713637500511752646943213233700383124635930168966684119880511213225860104608546201857089564477611520832848743574455302123177601265946066000673780730973725784502425385988210938739725726863529037386960178942489801301863210895051920136485477771840753410933350611394197852035967462771934457604802273807994738036784287439571448796588371507443592615086370102147194927597616469624765624483142680321618189311577695673947932283489915484236868043480403831431164034069543014632286240348145887747871864748027594331678227688984383918761563136597123802603481184313765319388728219104737786384176184462722460012664592134374242966389062810489323691373402560432235985977107156108007766228816119372164305141593542703161246125090756348331500968750551244219517286407966236014678642283395793771088644954677440279979213182715020490616777971603442250749824661114083107588240258971054256944212962417986784743992050242712734993898204037560392981360699708217960522720821268475156422935688876905342019392684571098418710363770449946595051814448284441761297893523563892581563038090029147256444273173920803612171964816273562038784794857494710658547065928019869058648123068684999954007145261268946150270767950003672216416226458583803421956168301444804453492910590839885633606090574799778677668515422926625967430368119669374104645920883743555833576652421360816159051793488052223624130836464537969956734237027557766735746601141828145872372795579500195823679209751452485552131144781755669268389917825803104486917046403899789896697198105361989798021095334107241319471133450182039201469049032674938678130869620512053041033249946254787936938691519437538184680532147325947902577472319337865931006866652837150117327008218481110869806850128988210894242527479462237932640481905666578536301712113516539398493404222063648415276846660237302329026556356378840927304381931094698126837266792978589324177069335473857836973618198069641422690496439143863116729913543539742463549285576967216529569529337924707333864754679024760793613140311563896732307449757376645760419308975766788675404320172675435523149997612076971740113403870539327631637810854903175012509758937061770961055511029470043026592252326096544854432152841375714437132827613656773346725494636706580809180488418395881700679593219113494935452550051759606588218766088820495768929767238695746681451905957558750140392059073203548549856489600074313832687565190130147211763563564869355009228319650888686540168041252530349656614292088098391989050885560293214122854813981006986615816983427505885174844329902070337129265866526360453353822142475687730254454045794954535593845988225754373567931206782197270936870627118705407728588628705331318428828596024931623433797961694625274755465620246276096476291253355435502354071962999196485479319531425017962730815585610680294498236834858705513850658573205943606828361859635371197448627790555689259214900070098392818380623003363569662941160256166024700841804615386572167808200701767764565005283920492928956425819114403817879619975787953546189558919404104878579882527524777564463162641859357720994016927117065137881647940885490448182551254633357430687238184935743458709248006792679586515852846744865206393898920943441943715102614385769882528088273373317137383579864656322649926149857734162768045536259768543039439532275689569699438477937101761390176142721310597875116772278072060549766911236318704913939843758280052225403810384261547585424528280412580221405372952507212181811560874120932295378158254470805335834060340449189704295788269485918943743756919484151795097402603689247475659746089193827271286317723686289867851789380701709016539714650082184234021341270688527000174267404911036422060979070604136143855474844541380934837931933599138523914235413705139030327548381754955540573303083776248651757290640246725289286550794116165947843057064380389764281145081522737899678957513618768256791981634986049461451994278480849239457389937622674665215647155274667498695704657864941193503341201593845066913623252578546238336132814876323626864481273738941340780778859950056704640020167383263797685899936357496773453603292386935201389059838707974483294908899887524282054132012948118414972414985309920392643155202037693262690366495756501111470436303604428370694684850243625629055349877661039014748208229660702612078290401417670782289578725916483507549949711903127399586061984575414825942089466454386228186376315525610252484307283360781549383623913496079532271269474858638466557244775668153341753747454021278109437023873397422683996254617808146704893855852969263732109582275678052835597568627517163263981325791448826401134462101602384412677815900295753727737276510101499021133278387730887583730745662252590996802026274758620181354690846507112407808104542469831660155805926587656315027604390580147287310765020277376891726898259853250287383876523435471358097545594523225536774548279271468027462655771442939303553740770466019802914323631323970147607114987078246193351971196633646258752504679933433550083185936474366891283494341639864609744088731127985649620577280561507872023039278850651760531380710877988338141258424926214981171769482878611136517366306265361003579092977783988304515956466735156984901985507910016476260521597482938312464881134591183864484373419967138602371146196579064057478564881095699592172555195970917737782843474442872703825271516259319040120131164551003022957995549231769195264224090367698758259553849380756431233428838722508736676588142841867475446267616682490997142819260469413301266657993798971804881421527570665378117545403261944856196394609376946380329165334210750513252288115268029051336137902366204706792239518864397554562543474330082762348545534430630822326727607074479997476184422451669545410539358878213030830221657299757595250982060607121438946843457252643956121808769389710491722978820681732217299425406335482311116500854469985652755148928708648528111581546474953131893752775032350859043907102704506619314289618399436690170153666582456919639119318111414724391354614509516946274399656233346598219520136462566296121433693632806920589949864826762757727042597032115480593440752918219859960172822170912777475982700236606202590699209966751042205989247520493216270420242401646610779142730401943249557234938538369098198821404459635421042296933432534102043916494675331343129038856632597052126916968236063142245256544391212408099101754366862443683177461302837216403181613081963220357563538932882218426082342584292334740651879281290722744447001672877028032313697565160720414998567584300081425598721896389599222456618756514105767203218197198958703375924802920110263745159864380362118151771887546970367211354018057720284199603818285020659437793649296430220898917041564372064781560633847916956825965255913134414660485114893559584253559502859261724975839321894991664026291923411560588352998309730718290466781067645472914280083665698647805388478221171185248576691337394512554836029264550986009539416475895284672339607317666824379051892580300571415305638514552694026474916066467529696782434908224809896017633349664327267455659583272980891016368039391413642982979494179433494396893626859356572252188723934058248023311997693994558583736508049606523228425332655552019748962703495747919282223704231872536867403719358548749391402707881474639843820549102740564799167657639693310167459063235578137765828065509296216117276754576960786945705144688989486918349104376121607328448223829693251873921998783216933674934566295596149607091440378732757748808231737688794032261951209004479046870486872695991714988792209515678989662200126096848407029460889583582470474113817140429785311015592638774798366083037785709056972131519930596654961675404144766834056768587901870571385997797492963667694828462514407448191354881753561115840044803239821651155780590163546608056369097558456291206793553773260530302575042933040005179940588480311657717004201964870226706845981279417650526420473659306377199804972397877271600595007507430966140272990124484746686541597440050624181445910322216986427197176726155301212759949312671073006493849498634981986227070416798059833703015767030856365536846473873882004935309166238707759479648169781952634988442925020286262668665020965137825338038729512364940966776302076554706780093281053419335590763663611234730350896586945378068661014877202030556552776257045906888200783267105148121052325472394369955248530638157644444209945828845650648118884926278807260220431811489711690161521653501640617143962027358340120294591166029234569501423078821663584286292412379811435052742333445219104736163411153062813712203439046917565067944721672199090280129993548098696787363996140841788637534515402187848292596893164819302999724335326618596145300751864970803974101885592649393654641318609531245776352448968919555449904907706311290750922046575264797331986458703765172204327318874216945077470157865483014578185521328825955488775490031345590946299829420157401127504765813330228818739546268068147610080087814039280138002538153111946245411496174796360148774187359434905890148894201637589866666536459209196468638741622043043305329954159166012674372632971585900167438121758666935936023335231139035393518720471562426086056301877058728749026157230637767348596974395984783344539878408488647080058938418964208006593994410461850616513685249855803991657679119041016389751456504500640387063942524031270960297221379259939104993688377160362440023233994913888497784656383728339799466971760407200032534557034230137555120123736554349322236578645831838285390375448119663181816643655382448778865332470505204605708098018317878026664002253166346807456704105171825204368558999576257182517294291358441975859292662651295944649189218840782314640289197217426369332507976884255251598518739316645201896460750427367950558229876535641995031288291008312249204420709277457232170589890498712269777911932195541824812378024645359584237921737289207485618880317010860611639331991176260465190633253211877028827483689480700385920965843652464793743409679396367477857626833432763920703321267518844199523146835405210764025481491999399945894050527248844405995088867554362177102428971299221580421278148866251770108151010069173921686262094767929719271555413002369561007450753714905444429177622333784036936385667600599644776422083386362295566499803970077294841641463113117553878854808984696409311873152768933079321966727648271478296480308838185659031251008141288103786802136606088603676859051915087307094317580201970309512454909394109430590914932715888942026043102614197961758876462513573976814007530708796077220896938182073582603650821376180468084210992844720403775752583055773612106842541046461377616761463251520151821660547298745660493598393329718543201840577913790402955357952981723000434509439267318303532738583262651652398428024988526165140244523328787684009473575908945736065860960960340988890944811837523864992508610387640026168482751015361941018552336502694899250107843561207352650111773080254863445291347585457365991079931710596285067499160444611666043841921387552282487912830298971669066724152476584305188558784470578770310919647260967407950525645108616198108064916833696425012476816401766869569560183874651092564071672668306712944298008524927836584079355833999321581130342920016332653740365920353403613132762373665243783248402936443928478588473688483843582866263834384110339859618653470601465397421194450512394880201916218131029959320685950201481078886178966622307261650238507510668848399830682416999584576070093293850810471345260392862039999659469109045141108579646306077622033068581969793469501461262736803269229177890702677516476843185128746386691980340235585649030286875122627995369700992346041311679798042890168336102615022444016846336142792615347750792906254762068521135866259479487234543848060152216227193697240803377558750540223412468959712580031341321485002917204552384906090648467539736260547834063664135639923032200909223129433473930050735515275723516130459520302251545472278469880132249223091665588960246009634901893788589272539173214299669571848400587069193196054532130122896081283190972039209249775782498011158689407563648990687977913181627489428006962210001405525704528090399616276679163258360878931833123729456887541581503705504291008490791258359253396251460687758875175197054785071064159097989100997345977235660740609210476440533038877671726384233654494391571657337391133146100043250629546814314082299617769982088419444695187168876014738672166850919764549205608657269192816676740761459260287715963817354429265235775817460111439550280102447273789792519694780227871571759962142909493095398204449290594959648573090184788917928084219409034310154024222736602871855704544968654756533821343323455522406942299120279334323340743268890767801858920683730702442708837290593110807303755529961171094629300089040800821191269693997150583998048089830421342577092367905991763197411023942694600510984426299758879863723513122487110349442237329933836253191887357127384880684979018668617444564632256011073553612648462220029410990570724561764449702485524658987964156144935938761963997046020416634200594434044804081476847306234742497423921034611308441416501208867509432685020242405860750317918188562307883376077770549875239698086995454141411881364384108745299497456672633907068304970461290642827072489986164331786555299965505967764327427965783199768271276304603036774452060156717188474570965860826049153405340027758982616729138434303616338310100085439656823390203328687310126924394055535551398513560411888193920608875547557115992308131536219775586951384082587744791032693262864588889945582348895828054999614749845884174048516580327255873638400567779705486991473886665118278105647417946374180973811239793991024076999056674462018822630161970856002924310029388582991562005731857147338944716333608597276792621896072064496129895036678246923929513974489603274488404414226432170282238283756120160365474166695310880089185271767816538182153271244563493135178484529919386207023806125506765069371428917951543714570638155091956287630012678726847902209379766885113940027858796178661298109083877223898678862715458441108334637855005653685081638266635830984468444588293242036671753287584617206824027836442642113412337111670626012041945262551989117727193347824983544790166781080106148765788922964656407215267411329222657449998157347111911798536257217958434147300930040721707168637086238453571524639590030540492577770043786060741768349859621384213832293400786761383925458399358028646038069817909764543519303457824853357498912580220844299502190258888006340197884292452435234138323002533658654243084547836543087731754751599345695437565606059345800249647754105097482289712376121126035700351031176100404119157189138298904791936231109023424213414876912382811655392291694337765419579570319558674044174075770862457346152902422320955083068780536188901410867284991203015527788657204083314771451190733447550680470403363362665699560884126242872141031453695365115906644964303807202440528829038532034765467907934520092106137997131007286144429070947288017533284496592924604419017668545005692065717570167819893668565184212483097495088620087167496106252150235809204794513920075466479304950564747074957871908948136022856691392429898504514170183224503096428395746390847427137907397749985687706096516700112493051678846387534302509284835320310234904630502596046500926450048122110923356889733927417954583697570274993441437964393798160852427218250034992968836729120880852926550751763543136695617880863497946616740698129883062986911441778345426953618079844461062675685024077354403208019811440497185484489875057135293559758213738751173107622795137621910602856072286885183702949707927268000356690526097235320318742098052174772951200678340211761950835612488210987382067713518300190512095357930042449974967218018417342652105468783036537065347292673124740353536168880663246432475283039908898471644187082928993006746771645735105345465627256013155292480222602734684442541837680902830534071231288313191079808055120279124798519769855220409659135821069591702798313566386697639596191358642875177255206110023573760378929698673799131255175914639391219784989370468651394410093797916833429911875951698093005723320782297133418487823973639806080966279864879742207003159890903100597374955927157033134195713038826073879382471087106313790299861756987553152014968048992214144679378270716505848630197877620969932010526961437252202548469463688655607715168288112173986910411283842484264404166612456020790841816054939204032127304123535767040225654246566195968518859120416289329123266907830315406004683117127850294705796109336563964350087594014834900411528039447784548006081726002271338460489932103084211169523429457312859914971361660104753616664054205264953138008601030015331777025447301581368176637488673496395012633162316270725311741317413741419572838416712078608901675317721039063075646195207653981712199205675782444247081017292104925156055849044446583997179908026191471794405018370791504630273040672300541954664294994142908429087098285054393166940259760538102924196781432281946937538607291596384702753714318102268168998539447878687236101825087164892946582505462734722059318112295994642677382045208581479927829807007391930437751576273112574678416336576172836191417963238214758076178069080671198903170689545236586763567943767146380330852959672932354669589512955517784192151579392872915439053581137395655107808813028390997864119014421530022242066681537635605193775598810143496183178757253591613377825022431060759053784785250826939420022286650204305583672386864149303529000930601935710906470951140301749340422561391953748147824801831776685073829135644182036383281786506194362570877253011653149490257340547504478351051463193729648278603140486375375436646033203628529067945764448791672438333768123210091282349737900236029143323056634047484115899797396961604687607503469670115155475917841727697489053426037439702245104329489256703468370650479642264958523040741791158862440709009476474581789954816862686001315490175913931833517585115071989977973897599035717051074701460602595129151007429534040088376343775051818754994537400455544428439783109651827488543865659328340310006179940208782091742395469617870800330887009478060113913380749730512745262425786931909051387200121249955484092537938417109580708797191930308720317859615167897375828686025748090628245882668092131903675964523935672615310249429679064075501219941644579459595053961272050196075999256219713020927909017943693794471859980378053745744422910578127435526111701717518285194997798102164409377445748489760208671789845240255055658648509858884210345811724389571838411826979429513272549017733693353468345745897648994147400900435014039085260647049269747742829932398602835359834507793767763171911599209885924087877447127623871859298711287608307008371849949699611844515698607420636286135096441399657765775797164356973917296925535499876715126684315681840767937085094572507434662695865507691723368243436415223905691785136217650355172486515108364194884986629251165785886570415672975418206324065432804939181682109617654743235579054291768208821456734991290854401219138571501840515787680021711042807395764023715346480568034129057706688278172785507848393664241723909993529536679067299561320301952183636147098048054956764751166079978752346152744358260728318830260357968311416841760283085983333477746240360377912450057050474065258713990207433791226982429507818898486285577433219269125488068183351839795620836443449186489024836775227064205270797902737324138224799129830937810699344494877030836855726987102045607789626171761833913602793140235934324640365747908693777758339308569592379440691910168278015626031167622183005545256304195051884947796781382535313877867456227098699962562516041245987361087421717842964704702493440369015304325270872506529654714301035854535666033904901407247431004025636995195501166444580112740430864600559988701556762308071896367284663523324819742326931568967877914557206495247489423203208826666476571288923519076039568456025906535615847922319538048563018662042089756080582242536436872716322613724790866956526072675334932341644659447929075869240998551171724155475192481744107887574978926152625276551042667342064462268132184925328406168076739069971953669770836592905174601354339667796327034056451330441833455394358201744771594324150888062699978169292255376588636398213660113763672451125185511170433901098969971368712446160739082514445151413211437885925095729421829000862964618592173012252181802297209401923976631718803099687995816166744363777550737101971464668183518729967217424931074698003209802786135806139590863780720465225655343526125603612821660040156415530984981356355549509243383878502367772364750073378567849766681374590422308034910752481493529202547253246073916731774774613273802204561516937991766345171960422871947077950208639048929013491757565067956239693988236605424050394834923969769160360263654455864268201813656881361033805746723584861446705611004552047248672047703500224198788372476275815890746565170595409144292195443685082445193887429125501333770829993935130624660979409635543691398158950581198078499157048458938611971024321088644752639768495780514247468887732519786724620506197728920939876338193956755896836085782185718836699823145880903920936834145210486101328466333565704998570155962008981258901139706294644517617042437362849874097220991372443583132746859298395373229985002675463516541729201585782048892843402636393252666114369819524098991701635657852908007160601554903575095360342732581409978969208391905979182855278027364386712112027274361321237278610255112632418179324184866158348702290068690068260219477889461059211071592808520430776298128356160692738420972909868237759854106310969267211367938438570381464435931332814753392868423440712455458171233956774012499145631889075415207025115610642469659891346034254810656027165810957783669387126323139200447320305509936611736622100959602184756665776649481624920982795044935249955178410737694214682597118355374898846366459772893540288611252257650477451576210646726794061830317678756907072519314146447750999332375316230729154810927947206195124960105336328124778473768047118586034553539466691198718464905200431134244484301256127400596946343519996814103892277320608888621206420797881971374168165543956408229409679623476546286164131267907693639675803864889110626294209557795537931801743524107902111333700641791079757613317364177945347341499199723679576276564696779396037140358428710723015999063188309913924007564877233883167961453505859880830643981688472366970792273306702773648309433113143672697029403189540519261615150761882633795192564894244678997824663600857429875655413980451147039305643290080045356140836898075001455706225254463512978401718725027327524342281697461513863329891229521779874042446918619695869767864422566105373035423019872683988266291331699720284319259890756116071922730817318617501699164874675091911724674133654629696068725143409730117759966686863055906525330466504029566228021141977057201654516868585788964441383288409755253989367864139515943009135143201648352420251338759737713690792865234410843553758947938749183267428820499123344408499970479925906710579077427388798244342120442506100774815334596849952164163553253583667910262733342814630083891064674004936458460168825821568519650989020340480993609105238708478239235321093584853493205313851490000443804724670898396101829433007752750651367091793539521866509637303802668200751910551477805420563219007343402787599444877122540469381750963375579226860512877024520808176199603068198406777493522512227845008982868393702999599803726445119147507718194566286507181709602055093621601168992191931818492590023825793555175204450830397565413434736538352187437376140250578787785700079696849257235963040194114947924687672173495076905544006632294526220332930242168900806552861251566578167448107631781388122675353823393136675697200827406374401074573465131935707208579298518405509696414707072281197981771159057921391770465584758636486788287628098098932382411541575822701809904051366609974344789903855211250294002411925984089408939288041723150068885412786828406911318238971474051835570607930015056063317137223432236227290583020021998138577423096566080975777656683281831542724375816552744815972151737541888786592783275194458062347692239854185485961658603615526953496414956871397435649262592293710010524315302396740987646284714282384700011671413040962777027205923601810057375490903730227787022063488283373003299938765799882725717524056180215843566724349262335058703753485996071982127496884431881536276501286437935678213468913546304683449078071153791504027344737034064072559871749839701726493021672196731028991009544063411377232493058994764972898074975243512577931359585957361712119838624352484154177039953985889278817637365151499931694449001849651328848318041575858905923014191897152428926632742891582001418867727959444010881353149696152316726780118787871757905844695780847910962478510373382046357152756308523542586285613007280415147977489639250051572003138361157087841489844307731971259486047866970236147580687454973106172323332848425693108778858796726441603391129438749888562855784116264236016825533770697022627533740647835098671275832657144544231424684483361683415504177758218287527307998913903372912167960399225588908504864392572747808158684353373428985248691545467093480192616794215105074805454665886531830257766281833375741458761785439937464961278950978696359722326077175236024645354193801681588361620653771594413823353644056380685227109509290747668243669830093358871676742131476474367148295391789385323865234785910316684796259852138693145470057515969820078981194667567771943218961365749458931474663551331382962946293593381350350631218922283740034801531857139382004406812797920030657816890760141451288779206183659204763901254448603598095052976380093732833476446467158248108686406258256583476324459261724956559009370603590182891724283674018748784536947811642422945811884710046911416567842196248728970717116859884235062747034839574687498698031874975427027534473434007843109190732539881901873043379604145732162774364250838605197555085392979745794353586296428873551439258322889483022350924639033819631571972272926086711817944166718192243326061315301045239240298848073037616473507971323032748557139023208601393151120710943438551444175374718948021317910133106707471019943619718000663815195914316610786979857230158850782578718908681053856171074894084375235778245442506133304094088882565215265419622668262676618591898068119818455282452158957242228585820633976672327284270601758194443846322733841529876689857367981975217958353729252058587046207244865624391936979622588275555165710134669278536172857232849717323808407940065662531019072215775248128537469047621028472061923134129052404835440765050850185591434320428246042037656609427337112364240775939864203648169724468623085578526120001663608489794042411647307349297231056084380715608912883595233235818199756131250298510384412900907159027351132462937782363612939627186869107830918931358293097498331748737746329218670397925734465398593231457661874997742404903744863673817997189968266107528096003548658642589592051462050651914784675094678208224655157047354248323267492339533232797439722444882474959998306907984715756903775786143266789348533790162595619103183569581543144346176329503961634251199226757866141639699916186580011798830830831173862130297070269074590117188889914014265832271904438904130905182131967467814573363859114272152702168427146230547318209445945914776199567790301405491547286528159866699611086072627040989332854085084375968135952204697284245951548246441766416080421490389794675318111147854591398979658526925039974463625312955844493728585742232735736707406334054564321497906268652512280769489825829099114938515730670711600288990936886013953480131851807619104294313499097235258891584350028967802079044524242326184190892296565216466198604781339555175670408001937556388811957105301335077679042260570199781606901310101546249410274893589072671625320715096662058868394737606769049245367763059797498553812299726381446120789300598364871098618375581229199320762769292827318355757224652305085628701916567681681196147602146677604253438819009683691198445957444764677406920876229408697892294082942104074069891109952434790511548297680015901027351496084223323721365120248229535580437404901986714803677860939885483811200073778361440789873419931280702904392755078206952988545399613471710857690820867945845978673915211449081982456463518212115231307926834118896391877781034718063882503556888328361307719931642369096239252919920071285604821785830226213296640819291099592773875697518699697564321599465266163633358578121115180796772730823686815496937382192317471999019795940083541944318296908685082050160292277061326302855947286230153585524318243016078582491120397575695627919641178660146716301327920283287414324963914397108709008165201648642083217356345502100054531359972627601718979377969640538663634803440045886205697412573181480107211718634894619586788590959942710740722004632549059942250813763515112053283176844225750228431116289189175751164072835249088548609115989548911331211994295195361399891677252208321217621750549787553793311971216034898369239079092602287607728672919190095469751253713415575140504032109677980587577584464765480145806096705486955337407016621163350558540262784635591231910753838587588629876800579235692438449542410351344917127693666793635872597371165490475096054027187011368613284086060989074181164801787955361353945757039366525901614912394495461921292794605822037963712540173902439060414459390021919113288266197681376543638847544879764468338857077431088252054980554984580936089449303882299627784652938025136210054627411837173808586675546105911482272410344994662169155306394251833584227433067468026376105592711868485031475668123534833238871015979944427943376214470661887679662131689167382077724540505706806830350392979112864918586456602832249948679552680353577677805662254112081305637541994849515354845327596272495871541222072768449393541460562553072006421530125857290620006824147279591501984724882695936715516722452363056181557197868167585649570499278139303203752659890482563222377075065870741418887825090394652440250854776520438207627584620932501211555369933723000414978933550197781121558816291019271916009371097728553416502636665865879703524857305616416030788290668259183688115900122896291482140887264955545890860793329134725534918533715714356433887491602405918100667661325581521945859869586995001044159728103842425036161167356431761957418310618918895438047590606876140555428716943994681950523585685527294043482249267608475286140165700836057294553525944959190684153856938725134599576245224764883258305546954864171953197357671086408899572677041966019493017616378433833682241784048103512373693537252598902422850969528825155966060490836295983564184670658159664068868915356891703136726646332716454480028354131386244903902126737831235579026094242734760498563745033443363499424656126514890646656342817190549555487295353570045133993948885044481663340797208888397039056887212439183625787508744288835486139529257239042323175983547204912133108878946217653888269256421773544709476985171353114224588458393967101014884557471346484764821725380195628546563557159208780123772188649894305712003944047273656897726111067455377900521913563015905038091936642892805090864513921584727555419794648868607764782215777041266944893644661843823965993952955228891211973608289959408145579391359523991166019888234133808847888871774779567692585137741511428025669328937770539722229742333113364859216631813036149902834055360985551976471587208472551425635634567301439683403758359549506461527373795614012900006200598893750140470504114790134132018474976856603868226700330097035231215782336990174183936540515585366941421122957918398135396801156918683528903822014805396178304928829791175276545680098134504705195495499074804806853274267962226050246200397722158749132003047291256205495746074956056469932007404800227622471930402531867689692308850483959177170917679324140279026805638208531086479022862105110281920038618142132487524433188481073285579049328420935192874823115535941933755915817360127835391457992118956536390750496460617103886916294374602146592164859111781624437465612236282535353821733172049721127261304705217438599895553213207657524337185572946790034567975108224273154901077709423201864217568044587116810606809511303462546305713725608265739247685462761300005157701005603456137951392764855878819235334071016804650955901571008557902266763195831268815021795105237213926576342150488781563318600761549724664641899703260832334782033047290204379180887412447628828098485870688005040633572193789266488207698008169591121960684591750571448001118671175400930672992565913443630276102273750961889210314760898769047448999241685878383672658518399902077505260930731776580474555423923173835523497366846080138837909367664746134159686727902493934036374859704531496593505376664601608275671263908067596742334568269381999916191624544006017709649985297888037707430167015272647096791941503683770203956643845094016466848408161097292503940145089304471924212405478871858336334197032852241808345746331334915890052924856335948940189014099385586962664794207603220064751252329041448324207367027930646591560193323645302804118327801797867976453940782878648389827197137344108832329165485274056770069018819177586814933234207591866734030994225905283117668002389828480018143477487610623715418080778586333230190342974608106588957914437416775819972195073216152652585434594503072705161634541099649906163611974916714910312831750841738526776721309409943909460337945558379776489327876601864074981827166919159152043468878200011893034456392927576029123157831970933333172576318506382419255002170559764456042119686327559156809310224531329110895530877523590847305025325252931715952655658677408112036799343016470339253674834606823300043023206065739573486915388074425567808545229145752697142201269734245216433281525396939158218635595660467966305028742555429355614289913184931462364080882438786882566005316018943548101340002926711418058790815338296844343855044152074563705337029885388744766324258349816093169255205757915323818192828254914842319902523579872126600257069599857903928044571021095235157159893020753235308168726330427975348950771204371775395864582619943450268779434745443259528007384433091543205802342608242708770256918475904716637134710625234332206719846147676129733413688136832670379242660531849010901517330441123053034833898147902988981009618959716146805673147117723305149915758446721463745049450098076476006510040506928716156425213518523629253201916429059029090858895561147896157896215258263919655443473338890674101399183248147194202214767541882556355522469038651674798166575731265712327379465124944922071668095130519237094301655190542193844490830807650139151198850886189900858248564416276888597845446276466248703928821408420194878858183930845859119160418982434105891887606113565912945892517919283275819599028579235185414920173730267802592324711213443891346580656554506613170133526153917527238657299710969148923575168195897534936334835173145791846648042543838483417411087205151368874010462248627847692939288659637800649085462105077466268863246753569608498011806109241371906420988665010527688079514243100223637692514023797242030775390897332759135190111261781291598574280742025276274467411141717061362532532926812914208082323052782058887357504400373930115482682906335986277198371884502704058037274588013164025572530130306145441773093630335650345218784526081238648330087894873401834823238076705672567188761663653103025423200647276179620721849249091461366522997238089107426741965119344991890072183643089577540931794199747593309874394580647409744941800238372411813990671009458839328703778331739211473378417358105304084601866636419449203337365360106325662789647954977378111343410874240977333020725762481291900367896726341467523928046777763552897331655013702061038696553357919687244811832303498196108460514130612443010179468536361343926613159202105871499566008523310243408677033051907047752763256232980712977013045406238039993776949353275465750466279381321356984498557163634376155866056934283186342614200145422059291439964094831084245491575497356177992343006247171964945653261263969812113636034442314187254837118919169881611637326041268035714944773462078133294881095935034544817404162855936820957183217396223177722103010499731733379613405318420843251050231006847578712820380402795117471446624320709023389073624943685345179630105712675632840118246805265795992573341449084808552788177735820210873471473702708792887708881584868745806686694261730247347814180630251303120261063053352517863661446182196325861961442735319408976100898138849371428382498760247507261416863483059622807982609336254826050436401612241824693296635037358710584162021996793030517299037850991227845572030170335924766844307507614267627831791539857305208478106666080606115676607280886973672165317717659823555578774324668892651719220328237082946614822271026069986831246583861353999068365726647503613015100943950599690937674467381251959553074620010009977850847309998252886271385269053296061689566069899015229127769213751220235096381682903298193883466504575804714095878841482025766462753245311587522933319600103560240744366931234789865060299197332629564687528996843656212080632434149503907475224398865522583267027450122167178676306850575594107786110086936620421780458722002226307973386413891614574881421140751960851559289341880959112398220463186481284589653784349232001885664905068759573631404586058047426666601828529999156099909488829419353202920120549321175642356087191467434582186381519784171463930091238918663906781617199079999593668927534856027894761993568741258578847625040395402588858705215782004976862567678067862160115078961189011776394410686611570118738694445055363622426700618044018565367870872000224611115708339648559002019199694823611665934826040388861885751833122971645684737804328913301926816704557342525037053337595052927445730699057935288705512221836649830699453280871704298054415919269491114636370864030568466295536066863172795778138842503472724428428264134231281139232820175293104612422774209157818665754653845151160590651361347713636668633503889704406120190433772282451552584702249398283539485942203998513728703308393958718779432512675837116166714361105262943693262334457491714133700654640616817059578690560204971666432828111885241597573195651645460469905595194150703408928320161965577059425299161116278858481155743193056867671123808919272499234625252268012872804363080899915928117886534688171610090790873957082041504090592298252830624479538150839034787084854139285554508607595628901612986464895479914752772732695251214262829514832145519689410758025276200377967934653843035684959491930048449117058279611560584779198605038418807041519192502697369561612641070866944641304991429246818805610719294337218762988138642819821886132493173709446680277022306739449682743980115651790535236960406189531773755704687085485403401667618388258434124356070730768188204115976415809991169875980725999672548882400524290396032708580681195587967452006161158809956978320469659561419240896403158257258260630185510433359618560702668546911674252011913315907706264626701766620088931302319792044375119215047873761791232072375043165931330287094396675318970508599129880362717588437686265529546965037423457539968694768730300674756466971668184577577924291600513792551533081594380093909821471579991584211523263285219186877291833595225718156066034460122851937455931728705129800315609221338415439285269692679047242837337227098090441835336650919891981668294874959077105880922413922878300877654401579758858247163160492559823368485958518661940762311815392775592060190431111581090114047421274760001413314199766125518944713982408945921596325011056621544471173604645465864118708196243590744980069808062439069123827662017976836225053569663203685265654255655963765023529983501406187455974204292268567975973361300940522469966282472364218497466478956654918833818633069840077123822378722490367169933357657503653633939953470043598586567917910345595197229019102006893246304673691720521426531792861800758715784117060863360981139382603393945768861848340241324764449797633124293376797819398728712118943083455285130247995289122434846213682940231680802819652488634610193714800309120746705868947778672503082705547092519731613991811981312031184502714586116713408150707117444733334183270479123765510953146299150770859525057806044953023523914802572122927684932582834899341426037252855584247753123767850611509724768476510477287000199886466215568694710008920870299667323842525046543905568991032457747944505441762347482805206876994843533396487278792547309572848585431541889450994374532297699823635746687557945494375424742830761850691846496707820585265049868440778036044899838803138088199151611883475279411053957402715580853825307786827307681707346553002051634666222083710359744744692995278122851328957167490908549855974577025083588225932112498531125014344063576704881705273167349029462065993803485778163588186115869254978727287145386531425883399184833106145770091167677425935648465774245898558454401997411076042450022612746266420030557929519117874007554304563046443451466967501393588464435255432147805543352030663808998164438158044923530161133071920578642134063960058810696555810945533179809687709236472254287002080296098039285414212430296306696583084037021494765514151552983090015781175438682850406835900841871078434711964262813388831592606911524885654198580066356676138217436866851281546004537207801138889908990176665698350253203274764596987680754122510877311985790243938479627554933663025518282499317391085354075169808248747906942712954695413660918150523811629827128450684330185891982264005406217787281210614991624507351415551265618807914643270001609986178905931199672711953088048351407763148900655450109097096935078813301415304999394506357985135895035514581474516940847947607316071222858640976046943783988603741611665791508053130375858157539664731687787050076445366376607206369179127680824303323872494453306192604262914711196567129342416782186410312288276528086247621173271103442296590043519561763838740759202924654451086409368917388557818737781650646341316914736426428991481871134586180507300869341110532393222406673981330335588883524852574701124912339432999280236824573255593043665316573239182102022485265315638844667516201599543224694746923146801754214462476311757857647190951656078290498987087106220954680487155625654722236879628907237149781413914398699631465697754255511436093206902027561863614810786825477200038050352998350755974045728059044749291742507229217996892634365722800790151399309975590783552479668381017870784161158631039900869875196637748429575516800225206229891603418707364242177902969476983030010944197358216118925854190073697635246153617461591668872247062225289684931374596338793148602761137924617133299790618354643848311569015698287859387310856727559958900596264985502640806562601895134786472971556071854774848695453434373998212978744492927140220048402521489434999858005486934798501348740469098822218162352989973689094216133541941474130924592473049411462629588889804326171837952803569286951764363285093244964479732399601387191484406074457686613614847488405232068967013673712066568881276750262844940155746260165768729845031136593352733799125372528785073944304842363557914950454574126986792881286270675866462937843961848322283674547626154017278126425388630724428226037363102974992735449605880653967038635653685752692360413428680974871245328189214099727711881638021444360829322710346628197078274249133716937090612224638863947832946907746100289253489807146465357812755863486799652861677239644797526194505677128210100682347386288084334148895436039059319998260214700106839578126703590899432918143045634608288191642639400825243405677789810908016259401661929285817690864821775910608500417498716860712445159147167413859332492625483351725143610406297176599031184722510784324658847925121641970905151472304996339314174171438106494140952574209922025171280657089422279805107268644912284367263586732317592777528836945048746547939612795822235024261884700638053154474505984213410604491111152550211669972635291073876849475731870381470333245286065956306282386947006675909591281080113705136656263286086944590581146907723176313832924169262848148387631810832365126404734897858998209286409754829879571313874333859447396713713770891857058085988026493654211763485390578162515595314406223849752966005832551328034626218702877617136878459039231292576574802188403430958002564203716079960035817224886245356509457031521899113393501451417667696654355326040166854475094073123713553643302773078163326072076962518441711651401598615272603888284128978993984176700695156134063588916267578906770756957594460122166252544923523354101977625448136247343799058463778924698866225330497443448948109654160406075813192137426633017885303445814785528030663638897318440338058161141420084979211315026916770220033137954055508955139555977668285372751291639894413781711176121275130909786340555878437305296419816301270230529808756946037667331563272187798778052027235897644860053389523010343918943002351630460704702174295872444865440378627929308862847253410891152186704516883195420758083468368117944944297488670493232366678608241740853549974781343123994212662420651757211061490662492787093182673634014093218600772286827405863839872046364268653240291632027186167949247019153753967791504534306260748599216161779986795676968117851064554980963068454498316316996017848980830643865800690906542875121295874120982325279099402462154191767823243981334994106830005619439365700233507516347542227884489720811417028641876275145336111502747576113115329968855549749245614308103015573493973497149068440164722915201820012162624676088990823812197343572762037923294166640101892916906121642662645852946632628921555947341362865295194529866176982224811491688731105138161183825195364507864596672984699070720903209540882562982805412666199887859313946872944891676384795080595300941624502844789100158816489655850047658817818658231279903765892882636768520182818917324124750288857073264836557243973525856545769016896748522314576971713198521857278431096012103664028946459747733965906518828248721375756684677611912983743862949846427072337097321326156717908335251388385420221394474606730152102641649861665334105956126728944525402020984275745151272527441563888019615420173512499784604169986168281238107168432072202350530217696160145924313789630483861681855752338326169748956847156786677224332924188843646626276854040819829962792202289465351629299944375391125172052226208333385150283118335317809532791752731913227615121428516711823932429186927093382170497281276729569690086216881268689631824616654057406631526877716703640637723446042672055563227643021974151474296099163734944122314090957196112081283113935306763457742939309402107363956946546010514552412257373796230453227183377871167057075344870787899491068944300550602363950894238235842027550914138957243973108235643998876773275007525825222408253075843655628667479241871117522059581662600831300131099027688683424841190710777922723729523722912403278812559746853679690927587706994600774055467624642900070372359615724034755137645794588643130697358074761646492353148878547287345564033158813226264069463470660182151529440414769783715377249012223918230169542467951413194107463068843507711021385950721423944736159398109333387053166691399778218307882619315907166646597833824568495336215339458721955939070729934735540195525368745031133995705311861524818403388132380726726753835663812276005301966670918791120172076124830095263403339872835006227867875941770851635870441340162443350382212692806208906094068353698841641919972884106414864866411075988159191911320668812427461312217291388953984552719781803038323998955839603921648276887348925167324607023723681530304260963841656145642083202178262511165632370143256699109262463925202512598946396805611680357726856790154790950197128348190533406126441571931234615169490683840039228985264486585621369551869304720895026172586143325130003302256783038700935181815114147475907304604954908368367791863624194692952766067069299179940969254970340896579372022261101466151609674797142715009450457319482946141440171709081007701453250009835389219461230930699659550930036149175727843167873368401911754926992042481505094768067449598893989047950949860669589769839989562190255457214249563871541754173298974025171908180016628384244409837042429761307052080864057991928988615552474579577507470362673065938373922147163464962060648956946843817950897499169359826173858750711333209737387003208469604890145088593292939271726559523428616968702744424175183275552805232829844723112721753482274049745815663297588231585061083608172869244801199055907967306144982430729716870320843110684404817329315362693165637034550585631607090325442989590433192088483056481695568367345822795438860601851144484393728898508918848814502736150139675675197023314783217428555046771999184569502924142776220066620815436459959998345724500176474212299971192851663862662679146686850192311481697987994067605688805460540523577978471067569098583661869652026180866776107376451112973154037693327469139201186273822573867543359358304300862683141711627798762130807719468881200430657471159865149563858755703367003560420588873728716254164750419849052737332313970011422650021035392048003278413259498385627050865175358666379429643694754663456921581315660805750210877655592962200077017091123121614732288482452075476990005839325858542684521449385674193688690682976961932717170001508193983091425821892050382543778826403280763610884551781547604031628049710234107501311897971976733551824733594721057314313583024406590985721452418868518318539820380710715970583476860713976004675072869801262541608248680493991079998341347715366442331590563193110644158221070153979065585789609338945794671574466273664174702082530065090213223809032656245077912783715475309882383531071797279122354885221373064851524148751043052852217504254628363409437516056310756688850810151000651679000778304582855822179262516301383318671483713880776074041611614021516483720749002758833318412084319863475094819997721429971007453605552676253352873880518169556706200411849781571742002431704288548623823020699202709319017069582583882837674307498157076850211412733119612316977709384446393032703207446036800758629654772025368524316404898815778534205259462851529142496446770005554512973637634428731142955363669042076100744454225278957198079043734046899143804055043453175576550218759064886561167491512381528878840408937989521440977329424297797935115818795441881401866845175817924210204117259109644415088183408765451549057480177536983195217045334546069952792013901006932485461636138665280520099198565887192725201487028423122627699000390081353660963978813943084716016054800249183875301641306280898851659775391544750609109655259794029715894045081854739195386829140854487796296117853853462174039815167330545067342801706621815988536607917505706375496332477539915139439667858596327502364790721185391568257223844781154987645592212731857214194688114080216654679133612526037397130688976317406017671667090608582436703009253252141527412177378514958471665570441743867950080054907121140151388840192281046819678946544331052990015032784343719308506665659297025078427820312998850611123481883613547594014683128233012306599352793690279454821620517244618624347569717172320562564097729443719562578141987617302603871068947777655797630545645224510140149985965699762344100024623664371114985147116462708134684695123108472968642940068314125532676881254055090719969311349638776598125679567723038363519266824315413210297792291492302707840785777473562741202474805241386817390361609543709601661349419765406050332346802495873860440865042979494205712584528358100187103211602965794010331905728980105378819379711861502357745495395870329909101069861579751644439847906645422897910634716636944981391808580354867774260553554978150092598043891954362470841643040263289836817973473290719802197651024808535208878461570093171837195053695581904541123078080813558445180747891398556799123657442727147300611695184824637533113740001265938396327931298420227876691060843705464660822150859036902518610103736152836077057100060636739194489390857293160838889960417219676572823124753415835503646364508619955273408742788954760251044286276690940937544977007257944568935978660336892567998683921881704483055118276513851023701982806138769875065063003212002835746025843358336047086050501059250302322104124601884129981150450364442248022086853783310027508879863868498408972239237745691205177655494973059389829152886151906261582446091547739642515012172216786647903058204545599047131723875663532324099498612899675176007547007217675639977885413353984840377267665340920786554501637930432293308772579043556830837599538608267068804679010512615663702824170453065987413668224992001260666800725784623186090219999740787432141838670422110606365082453885437200064807581535384810806421258577397344931378385949816110770646310621459555240642925994025765609035948246053747545019801604870988194831579324314594494996826091783338210027061460459600302627966120266346001705233492959184721086216628068912053687195939488433176647923964754143795929020367374499383165186910439682416100291371706804092568737371444896721275562206299160543582954339502691179363922165205803187393781347780781639645330576195480258243471390390192906665020310373765572100599569161707684876688875336336347166776516597429349789199247459948751169991711241216521773444380811760392461523895304201795395840936682834836335534356514222382723711363338453409949571156236999415819126874022342683519595390000281124407383205239351003787825474416175770747251339287129897314246800175296448978859201330700959903605844199113601059281499607257478522859635456462692359839430495225715778311054506695610714274964065388400225019482655905489397636922662589008146521499546957208571086046702015294375197064344177545723840797966417226647793595017327060397080069543915997159161816597895041454065439773816620403852958149418256100516731964637553030926595559003748008144181989993065898364808720208006887401010720304935459859814558273264606130963253789833116318091733309227179535668840397709744107414772540252395164140910550321443213998215737507811175106535582694641921916822935413283915636176743417555073264823958941757480374643269794234956936092459205283510228661109485383322265988014810398769788551743416216605496381835507971549411528779158439850930955087474082147887506436538871648593985133942717796055203960273474052791278863405226038973821976532294158703055559481982997607401988029646197489523009573956793713872099339885714820038469242117887110557632680394491276391597809434329607736188885349198391452837403096673838491868302194709347247211202139412360293182537244427475704871879661668009063460798166354711758039846445145069697188309415827287532879481602836749512146593072147599332036084678458257800435015938262578158390002137794289302665058431889664769565720409157564750370128065302759638113798902783023618459687237006789004073100810246521319146810379586154914183024627915272041996378209417335642549272542060931058165820394713820057045620339762365080954374914314866867577880024837027434915429546445332801809708263281767557697715339446182644299957838801662280191605522018216788891619611973947975147963205537965802013215617567250454223209356706804351945621689413253442893461113064116158138236806967285974588178153743436386311580752847607856925268616259973457509414049946557481308352472062491338328950439374047994593290963528085754953884878420676351475016878253872834897595283831184229823490017212491050687248978734136444341885283980657421082290451668784236234745063366096846887810484613121836752781145480121913265555430005788511716050632895733735452363176547756426270381849844639906684586061644487213230648501427227894274097827140379214290832944633531092009284880849468387901606247496688533982972229473798580034485854492983754800699075395950153332152096282426412450243226653395918001528105675138939086560738720749610927403838039355214181497677392696479663465826740117153436192541405937756962754808089904559101354108540993752509023769208866197070259199214820036553538870223533311695430641517605832633106203282882524250915312508696622224518897240580426326100890390719968796902537119520885123020580527390365385523204664244973271974193270110531245963437515081900187301159324926605793885033776441248722300221347997055920843205097646125512285262781464971817463055318209935542982430134956573454887073744492785708727068703212906164618535503977330160489832444565648937836179892634198903100645070013746029027327286147273994326821916243805958610498399461677513851487251498269041459509264901032146051429663629005567232886634552517324876982133543917275952066608945899426233854856106590503320922019470032087966150779902012323642847372188316696035953272166897631225335570825403122091579848923023619083724202860772235873953015644566406617806607416399752424766356063295106234505200500869743351659467167589281564773539728841927302583258614829472471602029047796250698657784669530965499587238614924796405802759589298566726533939820084796622067670669026331528506315831269410770532403168410484274345083196652211270874664003729827435306622693782019047871323499420896226353870529019648278858457551603963511412454978469023943377429151754904039170304910583585531312013894658866464760471303719857347840086007651120185151083055317125874140824854286505115656029435006598060640021707935017365862620361253451940345659831937718806726367847632990449745520301496585560431112390406890294976130143958535706534335808106714624283800267087299209506325429052454517028111291840058754889075516833621437583438071010129342254569386759451111982874282685051466907039305887647002067688649438879019135176606214293776684079619068557949168389128330644586378158060363447855325285324131649659113814950930649804765968381233469582826694533505072324488490043544374075493613292830419627111062738817135902637507726329603132116769087178071527552196521141156060203877517375347736908293806100632006655215063748556117615787078966846164434411046729095328890292351204909780900424607493412863537218054287812142282442379635262131353960136700366043927975787883499912134427052086625030293657028658021590084250237798823178415405916608189379861835874347845059309574721886462652481840935818811889079942557328540605666139248910612856653006403228314575336343255763541717076600887903368337803308564354051221327458103060520622236174639202213383119892515524244461185406192005031755813467709598744617552427502085067880009513914860887329143166352510652795639199275999956846665232118522149697037484694747605812899391867177744366925764071114403265382833479186290754309850642571533245132933413513097490469930997215115154166117968035249735441784332641111886675196083875336180423868919478538148916099450529810726390274100257336017931614923511380611377003525620652892900000733226370138538848697315288981010238474296435958917127548311037076722427176876693241985867814755083889457252697218962237380356547517837189366270923430270395727028709377939189876662419526465831915581076437282729055100361831662721418685297943767067370168277369611931382226807714467236790396755330225983144022217681887191265312102949815390596737786767226944998048549444337627502146141484419794994212227167807325574368605390884282407126802914777586704710626775156031547439879886374472789568792190463722898455074144495311985138107445938192474233742822234866393027825578097672567750152010450445897725751392238326517894431878978056962581306657296813865508126082259942217159521278823592736617778965380555713978762624858900733710339774141878667130110359912679488914550156731300745473708482702676809491302292617998066867710704634111428382176026859260817976756708021206159503980123386344206610013221593212199754983390991026005846936533928598293425578239539837734458830640162375073825942976708663588805780254311838905979739357853555990848658398648595049426910320656829300063211654420035406066344764043082744823486111514058244991184748851800051021892050413871058448689714450831935375081095804379579112149548916977351351396901525745452093313270080741931907530843292739787335862862560828324455283021391160082680151175609240237929733529837722094348116381044421197393939785755156189168657204733237755454490692105937919173344026153794750470124774605275321066831448856620785757448502993277226908296048287993387520830040137960170946126725688580280878131084458049101218803844381711939655463759747993988999003703437174636127297588848249162861210655376349138444940327568434964565451985506930889684595723424421418324179252722736750475398834153768848157074152814541948470903531983274601535420182910067802579423581295189374516360642961192311652993052958057971199578643665247220765732562807698129987210959768509079990147954095446721224789097631077235566707740080119527504912172834361528762235384826861702023097085088206702116946624781936186112748466848288154938811524957588629067886812444855068535122317311605039758056694657437531541651991545490514148227043441966284110963653187904163980998074034063784237014563981443769118250808002980181645404803134771053335992480187830770475460460267948340523264161744251575657964104962881213196900976261119769923010042691211926688783739681806634771529551400301294579965918150737792758694963609706422158431651754853779830363240961932121827152028028919239770880297850402699044514034182017932361611636500558195034795097939792945197772536837275727658606867930091096667808241302310816083324502039079468300554803049036208786518752293137734845398108550984137732528014042385184215642861798407149062320284663041404966282272378270597372070280435525232905029259401871545082534142362309734089229788944139832563349720939548443814058752695462910221442970865600488013115758557602929697515710077004064499065933899127818643918062461910551480468844550958215856528481395883689662154642533275495234423813164628220415273778488550209465826608389303737344115528588753303116224240337894189035091355208676708173576901749982276542499599722565607912011641420681907244192144534444387322798424762562310820766612988244905674816869688256956271107463415101798269154106544477507951623833345065489010627812120630999335568200174716157310959875118005222637973121071050964100546545641116241316324024708260024722619430377813908978109878871621681240099318404031755859972056592729216945935542326491191010061762840545961907312936850866454927848377680722264716232259044231108964173875027606297300748601732879382188070832811213253655108452622888901609809121518014475547493479455871857894491011898954067187694278182522908929509686902196720278287640953370173689133694462057548957622338017239483613125953862283934888749243136282813264950433733100494324852343815721107477173445475522299564833573190799853244552829821116611346853564693007876561218678296982048455348318478569906458739223685337245515572549955178595080832240234891587610472059087090895857855444211819682608420361403386643560754414849293780345794001612511814580242848750247621146706908549091935085793143028859657615905976326540148265008756398391766284869699311164414015104585608608763560983325355614575950949642519252908832308571093854596996639929682033378517285427402590861731590424739411129185418854102450527856312038765155687111066604039155511711527742850572418206196984210204851418079808065706121558544318607061707797859094794764381936661023772911706765754649099090274107504503162567317278558518388065382991794015382567286063884556452686641379282541761240664984486778986030592108337338283850721549616081887028708065901329870341379947789424988160163905757721106452053996366380149479826679157341735674945373175426181936196765615444823717079556596517953188585353188780225552375527903135999565143592799686950563696920757916157098320429856361626404798106654817198435791799551220769721071212545736296414149897456022418356968570309443804283957875717203171711740059216200386020093587535902256397923869864990566932103371803548434253142370642095473610913317457742995630154244134428623249301218134133509937028749630795295376117096549750079824168955927755462900820553082605496702454002023319817868986259805860698433586589561093257282674078154998198223981436410717530295354800314231293785604432437639656809509328048405435410571383011341885914441092820691125589360770440285915070383229081885234134290863430842702869485560929486946722546663852481852591743413005498757791509468016847220647554265701772053660963310108700283359878451440802275805030130096921356534505746489611393653328019651858198128772577891953502257908292868552824061990956704641409105608525403159261911497955227756046985428589802719128606800078146333446832123226824083135520906201416562329400745813630981509768729761715779085464638903147191870995910112089349329689599498691304729762676213973930120604316294334921803561062510552189518315977045208241769188187510234648332630240647298235509437799050721168411638272865403217896626466127824624867755782619241587447054524452748800074988905572604117440864041155298668551208060734719436615435325704600680872307576263296711389240883781406344289006770269210826842978917629022880561910184975832835846610833547277910074392254061746267319960059017757138804713098154007614074054611685274961161710345196663845484239690040095486227726935263758633117790313945205568733302238989139907430390781418443740934581243739264157766833081078149420320282136608188670104263133119412822036707085402188767286832716016123525479724751598019646107417420221884654864821703645534415482567294489350327610715761920383272622589459125026879591502969144202857913764625369614945833278784844774668305664720149729350048547168955619030951428655160847408726842657060259535886557741985852897327572861640479931876826215016011903471909774168157427671114875773497772742397441042662097040068851961145793260913339394423807769479778373035675864711879062264147555564452832816186407083656799796083394855273783564333341005437976317006869922333924377654740788381167296923590707937843909591680404747946436614338605374683131272301736484252454104448179162226626903937474151957800104934355755279271522746241005582607106729632537656606685948407672370383627975178603285584709548159669728741423707843147253164557833690565614895246366090213052624945772247006735898848938506726000775403135008058452021661740844502056033903747237158354595654951268405165098233733034484101452317522723709791415323857330666232738884641163157036645419692784823236197139782558392817130815086358658900476254154872017788081085996703464208994478554761465190475185953347435839684061867168119857040119991994575080172913076784415083595055621419272921985497143985371618818348622658369314985919855341740148380368664068282470986125368306684794258507932173898920339522358411123634825262752788253610208617564178716244097296305698631981361805173341037272850410398475523132185589855361970313924080785055068905018563340063424487151385898624733829831709304672600139442792952449235476983075883531563727393375058196877725575327363745331133245250552107695358212476764126780737217519812723965396794955103803171629245382977985585011423702852389484373169635608327161608222814240971762959266927219761998721255842071289529771390866029568962885508336570867336806839857489485650154360577769607696200574642619423465446564399808619669492420930297910457987671952770891561880048462381116151621143853722353893785125803054392641752495367669715808092060823999304108525921313691143578276562292312579594094282076741739036137257158850889098498684966167356693635684161025609968937947518090215202443182731688722370928863740562085629454519235862389677997392453559511381876975673228254241793651395752575072525452560226280557577962497735627492482011928698520998386349562413312457620093200414339255412169344176526568554801190765216169570565656963611220477081722807659122055518799742371988021751536864907857633596403197316470123407221772062950599534877890163039188550391528370325230495227502002600567338594434199667651417832771238481802709995818717216020226189585103139721008807705986217822510779680800948942435235438267752862187406505980573200760982837828809178170166759599153713180799773191429304984707741147289454456853590216474776209851533805988150826036143124129367258430036880320333687927964155053999160159261555437579644168663359458143236530707771463939815980501114257532323012789675998111615273429385648424481681444677466793256149933122545872143178165397834148627803610195011035090391632859242913935098043807345311161181070924975511064433108269680213469439407314399520964965172190892497095230222988182373053605800102183029787909157761383285900305602862323259825205449283677184111345866146048377950055049883891206959674754179379357997967674068094135755874708246017501627904995931704648325530315406349965756448479438113750192364544515144112092055827443111546222346058109421655700388713430551158906218813157736234536025272630667326024831406391328713931248699213618424350731781896995542987246978720025316998885349228013883159123805618626869684164378839690041101950588636757837098750197264723968238891989807709234857064783041011177468428532809397427167875435891827255628947041582502840337010082187521388968545733001844992803045475218823579114398762955142674931337804516450732656161458443209896923351475397826610585691006984727984486071347294844494378596342499727242760814723308283377127451693804392477301443581430570676336645485343574639926087865508029693504682004338045480917418240208842641210270337742089046881242034609818087861928820450114390936967099990068357938537358832020898379381747461634881519977245534210153228326172984749648376347231369575164329602839819934902519688715514907431187780012658428655831843024712778691541879558810883264547952333621672321167486901608650289140455168886448453022453059351764536965097740740480244483415931373226001787340200213029187254658197915896724975406376704946942304598367228815661653822861548912589029669908646008988082083306382497963936401350966725421675218632655664886438029949715115218019473821801446979918769865630046138575795292170338616108114227512627147834606331809110332716320605918626386256450416939392168236425652885513206874445433388058042976646292247800177841470560049297160244955253829739665118820068196866590972010157856948033801075700051711912870333233428128552710892896642930576424454200816423699282028047064041352588977040836657373621765387110644681547859762135189156808824724723818877131703865015951631472974275551757727988101889250708699436895620449855088677233043929051635818354626776597012962592626504904506393218416558206853089495476436058552416014145419442214737057900638265945462173071684113360961374524422267562875267032622815860177710642312349178294785093602354641881832081707696869193320497672593713683665434806951644450517652404891491479082183830068019718898353183411137613341153215220830382608220742408655296382730697832369821600002896814961747970663455441262004156737965841775310917186902118017786504558571972515240530527324050144663734295797508238830314667500590953125614575335383571543214823632064318599244807043117263572241508716621692449113923042448195219088224810748827075710379259346896905874266459016149578357026575958375446896809554308168622311708048247019655697222637573523052790854811616842233077575973697795729616484309716508073666206226817357945929983733333713373975187423293390934632563869805329863777720524403409083144797114701260481669676710330423235892893829587000706149967700964619557068492120614486896545006318515116062590640704851651428497701547859754575002655268278822521782477783113257521763252094437465914481165996952041752445160138081962280728416536504114590556802918535370072192839804123005940359988995789003420736751728148737280595067224826991820195381413689612774739212561332360485246355179795001633691942461986651761785884442258013741075990356629812082355719222601016595338984148271000491213533486669570916748990248531333191626813662672923740465567853642885901931320981670213674627425536281922186905234606590936630707368722126622837028662898634472504605196362314810673338847462288702296179854551712709880153835602702223946658706080995071897857198942651781889831389080452385382944404149302513982609052788656369004671452701163022650181336320538649457786573548967052683722954731368461223556202099176216776475344429205665827684395937186957772372103505816905145384057194584622079415395215147645147648849638374683879948883787514036145145861630342923656837830553968322117023405961498149221433624706677255004254254888285156542725545121693025951025430972861382500988786189171380488461221084845679190396838694904483347891504996859911212882492228981848406344726258637727552561491794940290961729911255376703960631034351663122832434959108967616438495481169220904906859069440155008766260926069592156055957448534000385564905837956317161483846969486684252896996009962189614517469079316754274807305575780117484550320961448552609252896035090697595010283069519088086160568571255860586379187289272624211613454135568621198952997527462833265915464050412649558584971800306066584882674123983963550450387609645857210540438667784792481185139423234273677883658261786808093908009671649240064705806661269479285743442838580484845259627079467874386526440839664885265867753977096238031960291303414805908606130076168841355156433199094880001941730510056215415326766544302552877425974662090180797385175836305832497564845518150078543522391844976126044125276369243417630521861868107543594751113776708589237015188776303848711673667676193298879498137658527771430110621110690678892434437245032842064659215588630487104813011414405478645851046181380766122366765090845707197406238135768466757594368985787687761444897239397136687230027697574993862254083727186444184605024717598861949976671499818695542019789287453031633189840835676251060207291298753750026427707835945216673065362134908642865962242092110969573285159109412173693505114019675607788839457271386855272421639603568242065012376589563355701836414491503917621555503994492210654966160412353361332468075701967098239050877722480573392702390121020063130128266471914208093004599972940142528547792287030015860185752731830605824768473298754049684996559263790096515502458192401346501501435858059371450868819001435291361928557767866194468922449666351329955234514321056786744596412251643100896767514998102256928651475748330817813972144439431183471624895444433282063523255865684779560195894287306217803192671155644554360836308161671617323982993648116308735024498597482972704132571801409497324844084231528522004259199805012038550051030391087204436106864897843004387345874071529499935749478672194369351646193213743944548883179885458619918039487365531886937396759261522667094845563142351135621153678540570645497252880285720874749985927617806792608535240745738408674722694352069465452912432734909116815862847648402821586630864877502637440340930287977597419340563954392661140233862953427837606154734867703943949771395553906220955862053118457900537267919760939176394775627170974762542943028409173386283816320200985928938189827229513776852848789232293946674714863965477948679483509159286543065724253061568623257134286613419339912162781798847992328509997163897493974796465930052852182485769285126886223058396793277029231014727749268262249941204161201043073869337472331756840437270840548754093306619287331671113053640774590160426280463136935520115540878795922839994600982412949799665893962878842535553804426010960625978321490970357372570486949556002488296833555596903060431616882911201333120118975284734913458332958399925143197327691865830918923866867147226733970686024684650761915095825814887755741387860806556236794212399773853875988376724752799877380771384672026456788659693742057968027701027589866421638730608207339189266295140860368968156745109353121469152368146467587118335089353726518954279069966364337202533605354465715773697905489391031726716360391504342521554586059618175337358212515797262958208405623058137026163427923847552474510089038557663138867425775643335750143373643144758728759950856170367295285885557446973110356558475457566486106893192597778396162050836660833058143876391222568067671488223076842023830361513537489093135013565461979159433403671692937390646240230906014205862573127076331875708273696839993800055912774375795780957826444142497820599748127226931993135793269149646929799994400708057332396785893967668483785824934102346872757808080056547688909453273120279816693592668787347776667127640907727795366278050736476990359064293153371052649854868278595507913108592447509656201360577582091741440047649258567610443922465361426995463425621076869082476246764556149563734415749925247607602265267884623910182559525164901935026107245761732003159352562449652589133242826075070065973337533999826989954480419503354945962666480628196903755964619860428608937334338380425829108870681573755678378328292821672517066526278140511102167463923804067400187110050861361951719567689473540385135585474607529496426608368926831245111991861773432134841645994549127961419613473473197485823340769131250336006544139888263344542513606278029696262414821083077552354110628709289927143308403923032645613066590523207578954944744420163318719679479346288467381509943806274248449039456057974304356105311532005548221184801133958263705960545251779765527867081958707925918557031961351572843208156324985312909561277016197901477067146908945125158805249327064598765807525646098068688201551267162912161386135604762026302187524271285625162858984187591628879821651521621430722145765378509511891428588667933465635887836875719729589137273764206891862182499270367737244112432450937531459333840902494303969138625793938627380195925106602756388321482296553015191128995607081134159803605597146439698571797498642715056301104884068084553513214502525921532650250636046373588305375742061815679069818654527829457232684065298052471580947230844120409012853752555787135768469340116533496275040329111636088962490346839453595924478005000162194889572932882674961637710450907443055747526749767233297038685895967007110121882953144117469022011062057858634354325460448532556709927931479099880865096686790520247997280738607396236996479999056435004659814463776860309841924671561826934507630214528072208244106245876922993383190255314055290887256150566090491258897677814911269230141143880293219346111303189744763717768222754283713943363237383430156889868687055483939612913392493288676898087773519721975799054709194721094350639101975164519478368746058091199868574320923406073265783234903773789261839235610618463599242894259475181947118619099893603944689104187055166219408952963908025563365997890233831809753769766781871465612437222683929343056780804030225526332640735490895844666612101669970415093960089262576431505270109918647102366689961052147684521919097671722084821191169009077129404321185514610191406554903255195680913163635616270601985144182882335653746861328383348122796817670427415507751040478194751746109384443666389035638865502144229078841014959939595818225839482779789232234744579923502407144322301803664011188536781684677837620898715078288283086794148796693200857815167092977697658248630726575606781707806427686324999901061972921949625256513996008080216184202016162296359211336123562030574402951174291045503849251338487098108486394951244277140653877140002539586193638049660773257291823778985572279603491894865643982343376219094080902241020561475447609695044065275519114722852705714548245567559075215185489898957853161994325963054838813464529688135385794153764216046294661441204904926317589501051695312338751478100794097899442623572871242405341688091187441512936528671514686011457044584171496978863617764814964561975655197437021868655576931850444419690974949492294451272420982351069283511483690439663505861519566948287729933655195306105124854235814654292850283763663160555208869165108162743037715977242570554711880767371388665078499883083926099827145618217922743521661332766768709343224940892300798008548102727949886460806842573904176015388993159127634899108222909692961940528545842285345447268895002881357364088709257357956724846619849108823286892383210327210225562975048439914187187653260801910016931813090732092502173538966042908533224412267873888898397248538114566187100407428453808177208390825710815217854552671322508669539642692317272340153836369919867641715529515055958397152735923329201638399018696090698371674655676892178345544331060473121928811254448309722074078382587915613489650744928669500307977422506377673760464757072746615939790200403949237931794181872763900983179440242210991250330354555065231715537900711864554741711118954184378623309493110935215574486430942121283239201681713187545817432170799170557056667509804604096877061460825942017038531183918131692601224060099615382516873951145682332026755141398352172702373991706338673380378769233710502857404940853943473382458507282650538174622916724392746475119456931137713260971640322297604473975333452630015357407915779986733297169039106759298598682280901123825695621002199147486343718932796650531110195450784059806574639204434004294790550368399384394526916757761484147140189347295518553339638789326472942321260209408537147873239519514461689380506912366540466072927404620399711701201322595180208789342392075744424247019657250130491477891016290400156499043587846329816349476472128521007230203036731875853958492378317790026381885337362830773002182689796420489429185176776681793628503579255144284877612558074786175961709918022543136206287161285073254351537785999429181057646534235820769810104528756317328899022445804961579155999214076501479916679286284908577759052861358188366739148459659432082460742389103758777951950749618955250880599461712913383154328237517160158247642069435142244553016617428609088757990031524974461158783159880154307980016670047206071512466411682803087701845317067720372090397177104361748507145922261794807470903115185076442830811920291811899529845789617522721292964317637618969208147310424807031139256194753738061769109766165664914382891618430021905791908556391240269978637195008461834152834077724197533543857286814224048456291053141354113694533228705076923903006407989282201498672045954923643045848845061593523560773953210618382382783647236551081152779450195453282816523400588657991292662972572383196876587121719777338569222352336841424644780718061880636299113036311639127151438942982212687789177004435657524421088164618789377852298952588555930092830508128146072259260045887501302129420955457693275371533448401658704196383182499329402704652464065679924489763379139908937631002726056477672427118948809938443961935804988463679304778263612577990680494008660344490851090619129922422796213984325671264401606594632347378995381022434305350645207535613165927805827068805504017759277497362509846341090349082216834956115915937918290716979102426719527517337035114501115644350067264340668393445151179605646533506344651373238225553756210066852130671898198434428579192879100495280664041963471351951592867734086102558704972712988270001783137411021287437986868605312048137073785255547376196074314646710089466659590070115956564583419840051020258271217902077299316180910518723841218464190210499442299058882318273582990140388981172470510652154618126833992790861137743480502506359223598686479721725546675387527039287548521272997357855563174323130744019057679217483661913409826550692921479879425788836723738984172501445574987023610424158312835725774215903264433813258399468653673008794320923121075943556563212162190919775496423810558126692225914924080197715781248665184940945017650730036309572437654789259573329359115650075476909294795269715954609976949687169393330057561624682165874507283118488130661755821035825177483390332596256470027083686675835434585346783029239443468496109230772750047917946130357173314480327873030480335831532607131837655137445906077770938039507014792917070197547136294582112551757795383913025160750285649014090476681818338476222227203009203363943605873387767888697035952987510138944404231965660967258984966722911131692786900278180222087459245064477085108323981850657461768828122025991996035608521873277921596167094131095826854832532513793042342104704849529794386364589270080274306156362078403398824634084165358439205073017335896675826182137710164822052809455866699886798258832502376553098728287616182165477258199338805066428732074976441859135223622416284370422804822059219585364961171331736137838396364526080973655144049565045961394425243526031771390697556984857041220134857207008649749139704437967451296246210042068477171989907040826797765720682351945311951123417864387317432153252574154309937602596546533196501436207139113348982566064194419926219802177814053859631174143500868747793395559763121951338664066631939109104802973478710796505588163483940588442847501738748596201299367502635876613909911824122374073460215443664694070874982550701949482098794136883376125496640365032671020422196761453628358530136075789927664522585322448997260791417631054074296632375389476285524008505920360501614009748084356579564829545217500402639117289055667852746161901193487350279027072368122970804647986877475116985086436132758134374786117751695487193024373679747611102590426175823647146796097586430376131221275977977973622352723522888802363280025841209578789125567476273421063501501515472029284511090650985106628986026363204676647590050535692352696226778041881520267709344838945611456379205317181898662352836587092688629006809002427404284606196645880885357618518883427625060054710420355955151250787177206315362424003403252588625276547810239001467871962852456254283478636612096701396503400567564042742989084522672757154351718987697566909021187171172375702411107609017530668310517313830551349768617572281839237253216387115328583960485761082882693521653967081716732642959352686023262193245140509531127249951611354964914479723670619822656487573004557624544730452607175006723791021146411088656671903990014718805708438641497162361779428288447127788285516075213256365887964573227417714773782919821083685815193907502463693227763184607256388925416001467617514992892980101234434513433330151040082829320805625815691509159363001210314603960655018226757568426379425645997424101118426338649955507814979462626991668630767482212213944192683258363683267435943968148746264641712558665788369021193314056512238098797744999678561736393216762025156657105600314557023024521691018195650051206284952825319537903580672090225912738833849467869593748368041555227246881233851418911760341702515375989676587736845768419327902173599456178583389585431621727742104167676434212273997026778710207542080598711475993997839478390100526343894108819364020876233299997161720508351591615241418026374537199443503971608695824681131485522311950692804014208795840199304703213973683411225490318264695242113355016388199504430511278027159580120324405895591269499306437549065115638952745208328008479278506691644147429471105949665386653621842152957795329351088166109751374598757742001693582879057523989022085421453639068396748476286255916938013951321066903228820339633242276865703766344613405248002769366951137594350246415434136423438112745274418344551775864137150642257551114646215570374874895713913870269097454845103198850426688051534746428660250121445888504762450499881803034141044552498004068431353074688022753297156448902191721029930102319669721902770115137751843262724465552210433127895524780240301226950176422472863539184128052338777425142599106104390533220090814999701440648647251216993386735657436465003903530010859434729364238026974525636927014222867593518108461651184610936846057058562811092461692291853266478256074052868978445830742837884136666055068807018945996569715176893688162072988393916975638715335818910124094295286441311132158579957941881540289319016042035180982397588418437132862993428628110155819948636229824419760217738671875764311757461195831726106867054710613979553672640501954120492336686626099503974775515527966680223783567311454307740623451317625198970377139221420392196997588069721433945023336506550966431583416746855790507811696197476000794655600332011553409677912330899455591781492472487755176711754100431657737076108727191403956608863694739519642150533288104347822101773728522725382165816539917264843383381565068444125902347477657842546567919897591222449615564442317321372649471566507088785701027820781946356864176909723452828145038002336279176055534454398914356797943855717586523149034388656770095665989458678984811737766006605193105993052505062881246126154991136382453487210634462356336681101598501656658346900150954487132186662761167914315362907803584911133567343376552160880594823394831442809870884492573558054410005775822490607462915491874351929088104271991458036605909044130685398899990238683702768841958577137529480844501488752627216409078915760037467409767106799936387482909996728371469933651387023983827738942370826578124364644277957641548666633050384158227128848107180299391624774355957253688894089607205243064308997049257476503873656745774512932983514331243736652895879598268830122001605842356113656760458826826057759300093391430719443437044860599328499048200570125286988444877580071268359067237958870592513078524373674232884277233942295329974960559307761863524068747728001141061471203486259121475643422930422772438816894235301701209434498837026837413790212860570645792784472669492684688936824019746801187337705082531168607470515500986308784598618019513314697223846412633667398908598951035780256115561945794432105753577935256385701820053759445213009679687165189899397728476634781273577522930858281220612629762192657756218742236970746626226660126070527537237321572732408312844592762403218910086250145546874539854049192509386459950274812714241663672256863729278655637690369920571183678052480504241974846490168826223804424767275884741894239198537493889857745427299002128652194511927546600241274737891144028545305682039044641148599211887653149128977518772127832878195564745777953538121389003359630318085395215537690005296600782820182556439945571171920514060658561907289818337492354106867648600204345268466928998273832657492682027880183610942382017287751093325369772247245296759162274202400783726348343385562283494705255817616812663115776462837546071615494723521322011961912241118132375361586989282852747642761939295744740969374160704592020375285931372293442532980697467893416198467261805377337925057160569554978059688639763103338455452599170723925278690991646962557686534246365114277746598509738088727175442965282698273243940285741536529674226776951039415756631808336954946629579596201145631641472372310244611739372832462730104211548302631999232646073222892806706751443878841745773995705829980978939570678376006416184440876492646195960202396381078864259808478735496073827045122553707349716543475152875226875630510304588079551156027671567921946355488037819292773612584600926717070382131876576756348388758821496099778572558666409909172017734661717338943620042679340291954986859461514418483299525639942784057685867018278109967348277827881915552302194457044309625387523164977286153054324764421907441083389153130416562358570928863724033252503547884404715374251809719498557829005702102986445997746183238941302369949562277160972328214478155834243293815550567898623137471899358944307800581081254469609494240904108982020604286306192074220431738946587114555812608426385112749930770130832879972157234012360805744156624443170421582388043327782013096840148570501309691928580464745465322973049831389560250267796430193713313769386793522354740946774415870429350300338566536105135032745112251465239443783836471082001813209239677489238268834458923599175704682255868422644790565740518823883962749529325313072126897162899292993401254844718780609148625627725801838415971601887413398956130061827469868446270789124146635408319654154045329486228951194313468051778566251013124522758340188687936685033560199960674210138806621569240711461208073611270773444247111697771489132126620125670136131097456887416376568358687601316173422211852288085956205223718739278149569812581299226916894141874104563492738266080055184394596861893337736340333379917378293286198695908527699144135242051541374474252855539583452388194511487127688410004993677864612528724131646362043573081291090991245071949796449067577943713378021415183878030388352448102130341519937302614143252146799039572818773487314186661319365418491731263300798836405366554964808584648762581682290017263696288136930296445142734990403232121352038636840348134124952025734314358414725512933040042123966063991944212466313159826528654117815976455484416313116131061766470556062669700966157246879044567565655709546756125742467694525560382644748357702393627596528428763140803156964133664016657736915335696836333295354531417424537646486552113149623297249955934477530023988486845372037914895570289345553471751654008474740416319761865577873305217455129928750136703166145298913560149389873633485608196559047965310746053024822322986335056801098939092204634612205015544131222805541139400373788839264937591847450739523670890582906187829881489237030322193235473950545220199175041881998169082227425255216129258933761239120389530098226109548981246316446895557882188860515067934955038343625906613228177867880743730771154614337718483309918652223533151630350486912341614105329424640427706950629830275690364005134022938646134159003552094727474142259277104681382269597681228979009127003379421539763925815243513303968632707737787621892788989157149952703249689934315793447429351359746168085121094407199146959390441527937372480270743189524026466776409180268101141618299713722588121815327752178024469123812786186656012086467901515011251759829823357522465329526215482211448328607613955006429091562060511334131136508693866270640141762573119633269547049661346299207629902887000507019591786090237911674324557729785101121148226555003543593255038172998495012144185999103130338152970710312172858598222776504616613117308763413668938199307074538828030256561183005922140933955229950907209619804570612559921195065516816638465836313615087202645104232050084417002318853847268892434494777337783508027979995417369400042872653798854532978181907448086105286284641023565370351339485346564702328486462535051921334971202912514224568924400213665345612427200462796755249119746895743981793452944500495531117532025176326111063228088403429886631179424786299512622440511744080523310903417259946002312292857582517986115243002701132773714203906347284800772348810465628421855874539522743857413720752331739597168592009586830995415428003086798362372723750334806889023916261095156937360827045608941758758903444653216615503544335253413543788622221837660735253689235461768818309395339035918428355726412457237886126264041495070094141923230784253851241555101231775430882118591394668509831203820780109964135304151147194195099608794377817180798705708475418113404252955752354397280651228078347784066705357325683837966593126031887703412322132954112279751085358282409930371599242518889663218995657862810320175405617443792379031185100630765592114264964476244603575438304373854976660417163396019773019749818799044461531618145736253840825854623265408510942460661165175584548905018357771998842344182346570505754411929849291973989515048156662073220768556705553008538878142717633551846491154120337311934858176247983799713493410461610420828690174211040443785304647105643095712487936853806846095876957459026370489931157678899060373160533082932876237327546236374288935009906926420077094502147440107725372820959670497132805616642705591205495547362434516062984809530417811146842352517825850819915909707674201046266431444853916420210895007339431959980122239195062479347997000388669557994395467441603955082987905371047061306341316948416673105930097876761951148853702326468876767279752115644784521055936868270672511451509473101103428617992047256377120936898233000306531977494197925028746682811656962514341921192077839155899582501362537849706852116073505313479223208109162840763994298056045491080171027691018116707336677067634790324678125244784595066562039448783760071241347887001435974749497982429082084530141291055696879768700084234158360691521951369732332632429392278189128642836091651109784155841047493230713608613129472367138288794645483862176691110066112162438017491262301437051142469673605765232506332765241115246328114364730068471138274206732225556836932639986719657947104659814272389188016716394179580083915355715257392277193048455385683389120724278079296830048581010336637492602046116045757871010437159901793791989378401571438609332146863380995264780467869285695851610510291100929149792833200198277221014857745371618826326420422644096767185007288416640763773539583270997929420491669982159864903763316642976064931883377964158960889727290236519084352185836504421349906480912963841074982224143769341462127205198369567062992326480599762547357233785990536131690239872872603353118678442831596590855834461535323371169304736927525506754872200069272906474142888475824057789062685190492423577434388553956787680099084047231775110158132315255825932179281511634764282256785991781353591529805438520590444911054771651932608748546161817490828761194059905395024396148823842038064314877720957703214102191845544860540878659674046999724192767928536894536047714272304081623563380723608731380925099241081245829735670866470758549435116150487995185359677147154536326655955004778173826773020068768953742355408030474312622347541747050262208483307582283129096572115990665711420307845814608791416585296382960844698250344979293566604234343570424004553270066993954094649278535512746793728755284428866482662558205393670244856190487445317295590947330978620878509333033974312844610658202867957764241976001737458712869846241096622751307902911692698909710102337790610082256740015240286612944774868752294897938986219734815914286662129323317251299872555167663240192562956272077927740429302651170726090532835303655785071264184743763285580909965977013157447444764781309396612632841012399633970124549680514941181080943659464429854136229253864081166420158529570917954547463684810911862293472425831342500856203981200379079202746276814760813233583852374870505568807252050641108513657677396569395880338655687086979279390936350777954444254519276123931623497298651165976708721456010371088393177491874824610947980064109876510592006926872132752102599335939313039461199611966317584530419444192407591469785490262420316313370272221769177741939674565790701054565576975900315321717747292277763281655355165919206845002122175326528298872861617569863896133477554854827072278012255856497325502998653681058387407829881999392818791965411919072037874239510276640666083322356910173218089268708669792557399533488178342093036071208005496770764332164206699843300082138384404013757315373897485703377456629209246100470183013626062535601469681265161657097444795459668433377286206219251533597784907142196084151271478650023871666750418311282513211863077262742878220962078972882627859556175764411484184243861110058130716409459105896216651949708070021417497349025315456419809866249458418359705710276302290021320123588262484169292172171327890215377354821507611474221466612223797480105291660351933366199194456516336975428721241131330980780997384328475360376161856226176258937697504472094721933729131364476993454400076836158966811644632696862093284480628006670929579833064239744177819026148334607481764185014529814825001989222063943798092831420667748042238641413140694304986373701034655271477245595524062244043215297065751147034542482212329102012433475636550482351170709487263284238939295642138245794097697043503389330460540642598732624827263620403265580208011657802238404736493476478512776910257604393014099592070117402410015565255095246092408950462918686310722459618225467376876565574680399471350786093692874462515956522121394405334471468266279537579905921741585444112817258929861690880761646987242545395435216251739162331668689435109625559329805212276179439436755536324878397165549125479427574895315179274304998422478326064008472430623611829474830527647594714396114556574261180255578362235050015258154491909680027602664971096790979642328524341722488686433762976241516761395417863536828160131824676413953660791171487840057754790082357766068056963854109532213591148105711978156359740337418145318466765656132747687788294310238907003948920389957234544366611905832178040100509117110646170100892779086326060763817903262900496010068073658389081125671963389447040336379354837139709545484850897031500033448439128448895429762647284578172005239089388186356820381574613403438859086329326511451695303665044912615168513928524098848819364536417461389612760667009120151004591612973011507795815933768032868407602954615475534123343895536260243020462502582029948954122952706540848744595383282336374795829230352827144194079337115406570160332672439525864447463020468233058467041867507872217710981203726868025591978301216658604808131075662662278289271832743557299294276917459852519569833454424074005277276290891044443180180707306262871142646303175789218426361303428608445552668778640563838582604942358953287334950373513963732654657137933870769028732443804047849953665572853723949878718382647097483429505302867218544298016215573548879715271449986704295138444653270803665120578381078610061755665683512323478135511570971724292278520327168094204039630306616228865141672919175890860531393717670357781196037682200654980461099071749867785000764288117587550419516730028530243783308247143098452827369956219433255155801464153948532920426371828671579394077295196761359510831963670277654350973217530733071514443599652219027310207981203724636349041036852142227340010126393987459425536575720138094328899844706483071896822155968272175838260170631469218239293804232201157267148080810145490600663598556745925263370882147092425663072631537533782813403318338904152708933120713719547662717343281098325706157622023453968408343088152354546459361673311905580676387217578492410348670707054553264802060265846643175545730461454049676677806210410019958860509919744202403571050051851246798421414298539096768566586378024437132359355441152383875672815388241987999418633353139493351789773160125731054807802004314391957617842306036466557940375021651293232799163913190404145042420544344444039282232938250633012106863559522097531553250688718121353310573052326517036143477032453198811979934789924858562667560606561733213900805695249731819201544082062024311951298716963462170774797877587394656982569545348672830112166722022996014720536894335596789846127988717654815175478198142967681340938116149431832231488824297325608074857292393425941086734474633624661623242685357530246123648780435358770468889031054366147286920191728391270753754891946134666833489546508890196587841318450564781131287697241247189611479568857685281190743369100546199893699451049140182008220965185362702328928593858036012247743675767357464159552224393298251918320020958273157892357500427687772509667099828229251863493674990180508342207778524101007585102416762761382314901123649419437577985165848830071486936078905504064178126155090457991670876760245550399972547149522857483003493240523699164865912006248861784841445609966408818830422217068538159579873825331112464779566545118923478134967752808961419915869164661487530511762576891065721500193559752442486427832414338887073012944418973344783452189023578962331000910230887660220049957894688947834080242776775044263034389738075497561488555625368561658891143244621244839694534949813112991100778666243644972513747270535876859579202783031307122159845680090367877893212863286265651854640807739846755238403061750683409617852161347123612552153741388453524088591527570048202087281912070959637654042193146229118754843877863966774910532332046342898219425302381191251142959771396387146855770352341196336917866746895007420135679770517988503128674287922235489963554642148990869592285778527854827721450094738815776720527296396683405589684350460707291796550699590714548728411855526981943180800289619422212315954735515687271490947344294898364243511245589270049552074496246506325597706154463079397563064171855391730671591100371416122325361104006995379363984900890739722172013409664691396030190294196431099555110912465441933056199214566651516793439391367119997295505395122949804944805964335158324224766988704498181914946394559245136219746804636266651572087115424716285737151062546995187867156390756694760823704310197128352027877685928841481291335705619272341024113468501542526057380890291237435818840022657639844171029226574603500244307592489691957842979384266404784232282126919021612935565695516228969136747969575950643015078294842711090761830214709450035424408219381366418410242031740940055509525522046515514671270524061962226710314002752647095385264059927724896610640871627340281627116406905504146197314045880335287462095527053456163274253646174112208566370517332489082828066052388680622970620157535166988668112040738376454528244607391103579892684735766796295833374209677344362352106433677871065249426907077563365319018786948535804349225197574485617259457410813278666426695047125532608020292501064953848983663841090360065883651768425639751744985950417562939343945479366115811680126364210927636771435745410297713377756560486636244861460524699061920921125552589027455943030631193479992446431575261124717826236411972026940413757755678842076252491768036304726153834278115116131009995660718223456518668278715133549885110758366939560459847874009909810560802056664906734429198855515259708806764091403016513071368215863341114849141588166636237207646069663918794788706557022531455563904776032761268180609800994945772349525459369638624614285191915081192754179354907838235364416982192131041946338518385924526442913732351062244511189684936671808484015554349172938928796392670054528084015579977142991407842170911642417338097999291893197682757526754314557849650952185508886770806798367340921515943917530060689903875800273170926728106226659930869460914969407594887151307396831122633122293470872949441659896721852104754704103989084721626915764971429655070371955248867035399908661504678450936778226525009120559912472932201215604975744669295074399782900100743507788746631545252357147993777752409460672487021079169506856762764485670125017261390117863324791348006299920710626695657656558542228271204115070887827223232062331176586297333152773700754459556439645484392549202381417302651340496790239413979246069891091680635509096884470805368151323505554341013509043852742083684188294480086398048220689334792350793279698225669490764070235587667053425950588678097248021616061146790642058064591803105353653996775743063332271956499985828553386810680757436231993148021841785813896327406039443152103957924418369336921602456747678393374622329305666395196945122428979551997327903258693272724436566575707547391597654787353596811525776391862655555000216354335596178441482253976065269931614207124078699953801649659827069846088840015746372073348064754883755208306077408654219429000626938743054510612710093657417976095653085782303811887877197262436917354501575456498325281341730035054506311443324780955374182774626923754433966476795481674484341938201290803021644432607840500457088421777657368971577135011931071005692066861682264692675337912578258990944808621951707039236658313913974648739513125789685869790910749178936466702865839538045984211480061305826988866713847421920992495794236038109208442327713519194255729407862900878151392270909948087979880243662678300769327641457701066359834948269401514207299444207531905783161754528694338828630034948224024960381988891301914561765618416601920274577838459304473218170708251768924143517323060369250084271327255433415751772776733516939559505352471110116015311832204221465255435900802759951573432962729835089195505408919588553701582839176263739858948994707707482036396030728000737082543096285750228665587936348450959627832010556079868376025513877555049840896635263862283264176508137148363740419196740278145652259901135701417289201142326334980190026128342139117685293647408299249270677095334682393536820173690534927846673143143862450971101904996437681146070046774102769418017638613462359991018875239398145886601413599085223730318296408137195457861117757796489323960035053578364866772385330939341509366262145959877195107077400349134061981945525574791445009200010172414280219029376168121020117053840208917693807792775527126517553289632877311137221696308877394491850298521061357849134038385141963403073962416029713871608251261067432639847840379084321859601571163647557813907892708495780806700606045003035326426415781910484935365633273430095483757477366094474064444266367784230082595778886231556787894228263605312084676243935521292128825148428856609174321146491866837415980650502923984036147863165648087510718990122578970097201472247096825485077532471818543485411423805268410590061439373996720290346934185596902424757557958362700869496534790737104103591889283367366131022258651043529743346213519627679037510405046122351557811497660791027214984581928999205342606517946582914722485387835005710193873234593111855007459728026990161598802737319735097987322208381358004664074806746388268916272744510555034013980554769730168973656832439146792939995446696951058950223932834845165794473638614175466676290563954538409320664146251215266906752353153178803838681041252229079900115414261138334152915093334363565563948086472936159395582991329972126623663933079871840893268021612282620782266169831215888287550195186068541722318263777019833524064384260393979591203560385341567236269590921098186462158847473655007935206069557424775796584416153816343796498222018127313755628928224428803580755022687632141049057871648131631872065812317532184201347809788359977610686061303140972924900783554581996803079658708246928027625461196338785701125556034653084823732959559491086886536140315878401217782614592117144501194086931700586885593233955919942711139368276685063403102535867330023628230418141694487825328992624481345343140319403192637498280544345334454145701172247017185024083778589912631271806624280801993030810069324488503124847751999425641231202468159707635470477269258473014697075055564843690729735494680125584480738316366259283518015891127490758733536905476292487551316060909636142982247127257382915118864700728102875008104893064913132778413437367963318306321351939140707677940695407125223109788493139623585983328900205534984382381090740175051016795014456981668929208292029810701928303261370289710673598494961218839867892131700130545893494915492595857972872017441693009759209687111666772948764224187612927559400028689788097839102313924832653920068350750120464576988093890538262763287488391991408962299821236454453579809562716466769608426498376022350880914855734332673231963762590013721217839140086200791058273291167448205124988500115903688977104636648513048327799212462836503728158400805422719459926923654710614835616543304047346757846124490702147640135369081598062542310709075855825231319600797209108371230195741403788736688605024625124159366953959805349133643882303512462292324269103082250378667742816378641224673730351606456573083000872030320382132455765730176765081599107681193011638130457182062201663139086653885717794320638490615180877247009242027526163048834063503922072623707069800816717707741504793042511465241658790808058137288137690886372975339907850864623954644301752336469571772055704345758609899853629080182370618497544240947156126313479054273471801549407885684324766905777348611129176841710285172257214243842824738353820097301684654901452676509740010886398063353892092739281407124887909391010123356725725434024435644706768216511955933333381390251161635019965883636060825380329939120631354834100551928553903717326423977123175503341974711616179371002816582505860728913696850360693213354784140207071066141060671308900555217952318880764157107350545983883825290747978604268399438325669166669169030065956915066323184944191777069478284294866684921078327914921482791698259972026515584063628684341534143629526173690288946458850505095337706219276745061634048239252186905305219012332249503499388713706127867586179921987207057719298233449499442011077754311961171932172532045260973992167817564734874633137793427342657509958698747040231159971271905099180268006775920916599313701618656616631748237564805902622134496672610536474692522025079522584097948555041899010847179942958409317395891665641480148842409695558383151432833364137958806323423455126107193596841462889056930509002753147715791467458706750529722868812955717258690773989050939148153308453077355191813428222830997188951881222116372015322632960429900379262293326030546675992305128926900608747647495146445657266274396996094739345607110386600326081074011347489734388070382311770360991911845227289552241102196155060574975458171514835124546079431428204500105485049637424810922426471551736587292648882378447411083181763313757410642551432226756126331013368375587519993622989199203240275726665840006666342600465971699945160782372501517590252762581052344275204998906122502719207286367143387808608617296138575826653925253440916875999303663138660562183180326780190378828611525705634828029280848311416456526566426923267755551439521913066094884416728019330800070586389123102829679827096452583514060374039638062841765308200780281290224108564414584667323852059865044919343324584173969586871979288144484137087801467871018163043918265203914176281978096748381769067539069266067934179415198670111178661940210127004435686956445470395000688432526756078348342503623441052890664514235765243233611550150704891439257178285252877650092294244930593556088977019005688905213053665722792401270029624592113550512391099951333010684559051168521112416109853510381074674686193815242672802596577771063273590281847291452536145323283005997141616629008049453603012995876911046870857124802752755901484650244750002926551413092147950906330697180504484556021023143215268548052779628934508202296609398504028314709030794524888981478539535771442163131970298508635854031888961247611699672934113131663376876782613851052162542863514984382971510623264279249038097834698252290063665512427212812228469378594314262862773956779455294475175277083558246271530079665332233943771307753684233516661635368728276178794356585117186683456337785538439004033536035309158078738722830878448954671921861524181543876964362235756801847942418800856241892983788494787275388274048660470465380706466705908280905058672519099669970105233663430555532637898750890600891696529984373901876212161605525393561062557577299048170848704042357413311646653546369226977260616950412568062346436796282829745328472364015889092189828754012543622498239498663763572742247112113666323172214671323626701858910263872886296022676040198204328374763987502814112549954803401645022934072181691884021609388558744752162466782195489060689251294363974709920681108526818638183496045442156532593635309502359071676339742005799895557711636167551367561675335707733302221136038371803591544670090871964214200462066525314344573396982592921278489333159793828989696297977480129922386157540458839922751913540432492985235569742452032130606022236691592012372521847596460943422223825893276519024258740903719140558201088283685478852905045704267662520726835612795318131133621481674602584536324645861370051249568120965958577088177027808193700587918919731048092590217142305710731462517154361915511744699416810822867081053718675010667016555069024836662128778026492040954193667136491554747888169431448592533511052316164037454090486024997592664709963415714371989336210116771600225628802302269597913569474352436496669754643609086625354691448626017320072795954702717737196035771826975286320915740948783319119312570702947026841896470800699957501542962396954816911419397325501785187729166468548139003250682238220385438811506222648694762952119171325623225466319308047520382819479195303587410800313133877616975226728807320927342900069009178086115708639962785989329361538243297148001706102969251825770171540321675722998944476352333074331438872176070924686201766412616793840137637758053493929882833744899061185957165797900512988799324804784273927611649267632856758540711710532125140409046260830079721457340361457572411707018321299233374539793832672034733894078285496247179367146286897021679663553137982474043220051998782527912231580285013222230947491584618177044538836957026134453070183255458169532153530046250197323501535042007547568176827996605493209198201497714400720616032827874562038785481285877748880412348878700829348794530924288016366937083131956923424329116384590314545059579188174163276906396256943617045050760007716030414156588118232913472511654847262217866677094248553216219470553587443141586200223780526068269001281934181724512398221415739363178116005763895150336765611679734417298594590033118731763020200158338356110930770119053319291501849631430135367570974545215025422152872543678186884780612634813328687301304150594264163368812561439414038488347349624767088537975972943048289784421379961759459184997996464855582041969786710743165965159149206625907018363952217834143604502516496154129324480369184820030780164294994219142472302414101340755906964726714415922092196793824045416570662326673774812011649753755996889716400647198240185996312252594951952220657214802244030961217535954967725475060644068653581601162634294503669241925647054004946587254216595484493275339468695501078693497940121478942512407374169647879032132016479842265915365959245779856175128985541581085888260723751009618932723724631209056544465904117291471450301015486252050812497689837603597081090647494626873117506617773084649899956148715986482437473271988530925054717547543324136602406031110051240515432936628704044806688064692714767929553354158814809269376217336231020309275553844991623794762228202165572713952141599194681361466321057222314706473062098957744947946015658339996865307029375491640837190921471778803551737170668498676012561567639011357522317737394793290064473523743492118077354419638767408653830590597314670802551171705300400435169256825170399395589295141805822245972544488879674567141117510130466040410994255728225743266015055316606797556351506944498257358794912075403782141628003295448297412317790895376863635435478569449658438904863928066041606942069452816693419423640158482567810311764626532668694492625554518276883261516257571451907381910520305421982493909090745632157060495732784458460767044118138232865593863853740115829417365129730333517584634084509047858766362056509471449875154977390956399771768547277791701117439333737770665448557984657640047110617368136502893312653361639127008516655451391233017668543966274392138547244651648135215707488933209552610214058688085610466406309222054074306548016563493385853642727956975281504015669396181350183302762322986430710954429792626943590702188796431934192626443582969053029285392151197063322320253944494689224807208509511478424810929597317498698930118873335830629503908744592904471493853443508424066456384277862998104396764108750874472077275544844810866601968397987243099106440095459029962055110692050108884566258472774135347090112675624845764361040956325795272271037525227467649667488616926392859781505653189563140160113071474056842851164500502640960409526137478165963644786924717142596096411205294805568139435368447301545099838471770166963835116069848257230457852451524449012728628583003816570132268795712616369939433998177702658648368843107917469185285036609649675662235120316477338391721808600505422634996814901734966512148875917199958811908462222669332672867836272579266470878919986437788755300900429436066977922603313638033351994064335409295983982102684472791107405965948964917661902272912700367007751517921237709882087781896016689013705502386995732181366887393089380497782513437027989891060397099067674613389579741802770364652624423805324113691371789545188588808260242681458138305900043306653482890414861556131517719467389155674833038225794670211245603064894932720822853994607370574729192144514622570999542590626651771455430435740936743202753511457717262433095169206922968402786058389639333939469927716448209380587694613953977743680184400842739750285915089718054197614614035516055261006725007885306781527441459810787028612662289738871293492439990672651893242800518188633183304380411619954696283959507103438585306650732814425390569901643918298856673161675012657800820321783778509054688054756880103552806687057380040254843995249813115981682017980501840505264590029070371767117923530090159416760443413405550771435466295593215146915461875777112752589482143945375449114285294336299704034511047554489653829945963310439873737993144885066879274020920994529494197455445763643647701582370500997249089014565448462664365041196003200754551660421229605147908315266274749550529441803235402914180848647863082012509342244408984372054996040947137917995217729516098767609908997364365258797937607588277448813087441208391079342349131934943585692249149329010871969270188916226598538497208099683232298757168873485079633083093710298848878681107719666459563504092462061365141781115123921218520603104161858062554690168059124437119312713729124512492132071045788727282848387138282252843792051692491111893682099978760021622889385953237669511415657369639013363464977251740307189467568500966479906391602968547756985038426177834917147579492774044499920918705764478287434716093981240304034567047408548567915362562965348105083149805780079285739438161484491561448080988726062827441776432008139202907581618900263458154937638371270816798496852212911673531621984108714252661957081680587048015497646741019025368214761682313629149691662956021655243090165421790668425809250687501755328335256099927833646434538908891226328882051602782128517298232822546248458671634031752553234860242859656492901758559998233707854225667934145655908659850887953355988003706387387206332785662047526713290417564184252112171856636670044752843405581747178273308097297392570068310932322510047373777258956286713859401409752904544500522907454215970380081579389540408875165973458610626950885849191990010417895659894701230095885101545789674644530757806670156330547829361139143663040480418104753196700602534784056949570331502955152947690512750963459133663290268597248250306885778432173537304656294508435722521184245776366589221194860765939131990499324057115162589327041552911316557324096454978759164162979812749913855543320002964137368752580715659594410997261724851420396277374481272897696524587818276991167701511161779574669854036153545269315810770372129191698310963585054216576316871372073783152474656703276886513274900311452278076301093865602952336379330180728055226173108310130337864416559994777906902965228930974056339768826469939843191693645138516099891245844257983018553953352278639504662674105741302916553268480541275028660383477005494409017450849001095049493020984161326055081393836191270061792245330445927645490976817559541623789738135310819313226267531441932104871658251826566977067724145605939469282262300067222596350558672744275162904280498404914035663325713397578006911373570110829820815209631160813102709692009369216360446279841860832560478766010257394675306210743092360369188256792878746685448217391377729312198664572997481917806355725542058484992938248244543698237641172201642442360123226143471390124208407772826450647545054020113976274534825954844723059997639701193879287765383816731769303803093335861060843679888340878677976781540758065190029348297757861069297422817615953684317305713277030050575175293641340355428155002993131627972868532043140299706095637696057323090944213887614162687849516666848409912682727235795926169844356221013719169873780390615129310901122323595415121408222707501450723184720472901100145449388081728244053605102730023639850563007440372602607141090497333633325189200715259610667391444686004201459542156629140390031616967939939400633481931075016780863048080650634042813663162625146100694326292033202590889374670408882196633983486567698072427130978657408961216811583705984755861121237600107616745965594378414811561573870583204806659717072876000576299276543427388133329617228331302975029017100995565213244745795625170770845415256876780416629723963740211678471387794719539765842310290002756660281817094524667616671210756090611599893714839780839176538450912265257953954900586161476675131593966665469957704118732240906160632842359485911181961499952470145371774332233037903627475732379341383562414753527868719493990760793916124280224180460033576468096455344001161650096125249744244278161298763559407697457600816297265461560181101559335585022350760864381310168506566115314474636359986912799399349880345027989237820363730066559383051967708606824681680865125519028695639068934896276130732286321655659744581575481910308614454373007960339330122860368875463332407127662942084244962930983270826244216214952258356580067040665766927624775845421787753849561872776098317364719016082670618470705174789708915012238639264954327337941781372364772546410237627009476316486257481398904147161794792087983825480632200627073971016230759194467457914973791586062847982549517174247213721379733240568205361079518575797123346627094930125525118381610604423620684609480696619702673209621038115560150178323857419767793757850482692580096880785467230255121077768198778963665525397469179360676659974986516482087859231244969426008656716279653592761288109423580339992077389929052682431397374948342510405247193047206030682997691947291227487953081910437405272888926444190349648114709032915768437728720272676273242962528389383985697200795469520011578879601697762124223525492411023181770864926367695706942350315648963630502736888554637281296701540266475602764874929604973236028242271761444272215281118641578519377725527387305925365875471339932693012313350733687358155878910393504244234910455446429442153326854171867611565773604058284721204048332688399404827127472229782212620885758985676966566390148464493049402890202850745892698302038695945464180473502231765408912844042264701171067506213523801871652358110902516093757926116658548062485967580925055362733964133647180471480616154268101115565354942850378579259654134277073107936814725887950437731156197453567441672852987305177272653174152809245021605543809062212762666496851703180576571264456099393279003838975234726889623425392128964916355323441584066162394039899453988763503112719641713059842097627445156153232728933845075244815380056152014947446554751356283023058479980869160618282299280620566571786346658159629274597819159689223179955322851487819039293258226736157470862030772838888463475515525405790018056381963407319983243921992328777970153106914455994616550328539635309066322425560467186292341426485282201342789821212281848161237355894261539446882150870023574269404478010375645181889290026205789513674396952318314954729800422962872262017042471029424112187464149970859220521441705441293582860327811357538183581156228132844255019379823343317707783101059985177650349190404190300306943325919817783854259726083981945947500708394432917422039531269903923431939736035006115774754410730545437202761430053566745834639281196238801200357232044579382194169748282498474324966734188302109281283044115842949168756823657738007092563207432447038791319231154030646895700091083638171815936201456976065410504910679463044189502592066333590490622292541295415730013670520472702799457344645420924300529854166863381379255095091703741202359005127408747686431525436847615402196217437349323429704535652289527441551835651150359078361135738889658486376061466956270702350474696344670713340146861016688359111554905471397716860491831783245879520739684172140745487479582103356287616777980092390152833630098031045097525898599915033989570863523834855292332426290940196670406432770439661937880019934743996914028403667482633076482891384793480441502056318493324803668190844354957162865520499470780694088182880666225580463804909476880659536546051681382964362697148485969276945402733165936436931637922068604369036804460185002675473576518061651057131792845223795475643541214321776949464126843502497391173772861525538539316973716954374882998960322833117716720459497543858827104213499111880712103296457116226470103865205553181611495489230636775826251733431331158635381114113965229673834640003117590939540876334713375141309511192532794530544553130357132519229406943378537635282273581811424006641660315669711583539229922151149920769961915141709660645218762963953423004273057618361197691180920731372851428825573107447467254596719751127610343426152559207471936700847976560395540179040092397750700638044389305339730844398806920015384392132714762648846979387961398718039588025483872335824171364506272125584139954434579681887305333032592066088310827567609894602103732829875575888452233672991190465980112426606840670693873562991044981876302279578265388575582448926147283026179944864750020283182313863994800603846084882455790487318734848873664354844132316886777742653099242572601447695037261555706694543279096646049408010527808191631041997385997427331293343120202472243148538407865130594783745063813263874427548780208399015516368501737943508745135801811436854122901179944758045013477025934368985643643162258008400081604962791871740906081461989180566710088011630333576353495529354497129070660243870392764546206805761852205277022643894987744185124195208334755768368063997998142950976640077919915478848047352140063809270106602519834660567627937963415127144320410295301642874031316313573034920671107334731684984253535093479535604527425159797499758102729339189651769028134552360669282329957145162766584497712270224298331068821822999869481880280388539580914770128292948635184304857283623003331012097696975874160785267012426918519799985067946577065304976460368239132324254112765735761333953732467112908287549953866594371222726935645039158838109585066041510938735782096379918089969071240013163064525387274823557838797451541468776283580326265117968225328885170242219685474077436108985561310544716169566819316639673610971739524189706276576035411626708346462072410845682709971486416710821569441092088847409893006698473546149603656839990633081159112191498430744391767135066807976541512448898670994329230889207715675516446932705316162710133569746219314085650241405899978482853419154915508941934049492228197570070130919204419910701619755838488865168635987300989503539617495808832111894167639621511349130966897119233381134630354913095006604159628405478014577469409901598263186757851404033805692825363314826129925592660593964546731439003446773645898702422483167889578119020521354264750394691406810075603580699764520786067679876236787471606208638308533751254151445435071159092549056231906557677434838156039988791953618942693267243765256033762296210366907569808859882556932528165712205464340113613827536598895931815463608199673404976125667157649801137043443866351091056389473865235830055785442393577636009605505661410153296757192789437539301075077153583802937719383410722342971471344331797307033022336330547760610376755027177278544160289353615199045260952045240432266007520140302331203080919366546820594697088418287523299707377330421505100743434615594795815234160158185865494694973714057668918792684930451245504548082700192699203723594243168600128032710133391703416206869563649098391016578518800938833786227532833494954856254843333062067001675837089612416036512197438918645529699502666966074725922500552399554429026880694006891909749274744743052515227828556041534486438225494461291073516568978084033263731524260137649126255089703794004273939855825435046938744282637596610211891250383074948875139785712652180247974588233771641922436548134709452659935286494592151189668062088489722566895327845067015884892288104827138639648737816074580155678322965622297177314146278139836628885233735467964603009859395724537837673262200940227096395305538622046981890818799628279767452335799012549607982502406234259595662021344850482809187129579424906546084610007267947275720788480739123829361558612346289648716933773925864139411357749244421842164937038647289983298747878599608687870896523176435063977573176098788096660807745339422025126110726161747049607378091949641442872024986687102849954152023690154235022149887050186057048155050336978825382892943705941790732713303915118212858183622979230266241323502408506418357694160959248460122249037708922029664861721815135759164507918244952142344406977124029783011816501258960683988422802676383885433642728410334156536339271902880896648264504840860816028592458087014087384272085599377321326442521519897028605521554996238491362453410677930038420066870519913380461401495637819822396251269048150282008033656065873709908801618522782540582340064171344888460062944730446548797054948296446603357238766364712168885567130974359217269986248210409056326236320554296018692182753588490019524860494752385527796634491131181102954932098758030456301512180925493694951919769730313815789685128105271844304853234842674909099879087438813831063789672149067921334491385264718898459837569282210711361373173552454245394687878587955981264838020560048463341249363161472487014986818011074707089843189462907586619736860816233735356935092062380689921797314881727939954217141398708667334127415466289722877380390476534642596685434262180960479862320517274280006818261208740105395507591604972945736295909014958709962375194867162547640503069559120689102303343713822459253015865414064495757256353890490650669719149274766643290713236644224828106736945249907842562765964875930222283873416125258471122467965000611169248289055563701826862943160814047858494201726132504530348365457372193363979570097707525298041361303697021881845038275531915390638763802915580428673656644156982317137932100199547646614756053537838651912518234915421164440279955725065627599214096448455116644071161735189531729016765004303923138543051246134957518325789777277055899776379251558672510285741244233919320924322074060856592107850698550992273006666996396813123378907656456862871192999066046057779735287116277868811161728538105668566593835712326166408006658965367176452939898528509235409433710954237281309411990847009448532248641586489972306596373248814551214108816466522015840346724484711556386400156432326383587707474308240186380937899604572769721033879408240039007971710981449939951206114862908218475000390240430205386849458204025622585337010564642138927598262445914105191096180089618249805772962063756558442908319054670246013482399159081088870171116374091235794487518968927520599872398329566449529993959384000287904410940601720775429609888997781039591437377796281938246910889719073720119180962149764562509648894110746705485428947742560728160052054032882851241007822525938148712123212000046543176821995776610951617989959185557164590164517544197953820772150702145997493322154991337433742705819922321781125422293078307721364412071940722051756055684908067718093043880228147872021859999480631041935525301722424651214710737714789882451435921084590149978092458187970610877656504828662150889129746423614237114773913253207783674673308872934731949517650463852777476647222410534535889150136893969368868565252046464059431551991102164287445028798181835914317308039871358207451273970736406966285079996629319309466418869508464845489833157835484253856669865857168982594720334457259911464082032094796738704529742425007490967410768425939367852334247379485885607480914947946067430453891347569646582833534805581121584116584821284329569574916661021200565862882601965284661381816847530124614525013102892388346724355901747291472569444825747334672707685358677482870028899254303735419308431132911573179554182180416047040281168491833469336116483494661871884235855364410291251076794846655258903908308585412172932965370203124763674000657246515015242735978330620472056798010771663114048595922533528950214070942407623868055903244183704150540044238440358423709612507115505281294668131658981137110701377313964078135451885346044002818790280454792712500292999866980420791955569215304306378953174237209365489035319138281554786625178025865815816674354026001650714907131777098542745551631226901787969784961071180878453663960912455310059231545529147993718609356545521352666244810528800807717421712653854568174846698175080355937257019219037483732650373938928276504199365684891503118861063968661882224417229467001941319808768869251237256061685728094765609317365970770585086625736903820111803306907961925406626420439982003737833937952325351758137578518176489318597436625190430139827015357407707378443739069640829503149111294457633378872263256339848369638622723735547455931996476392973473794163005499605195038271662405372063771590558800074658600345407216857038102388293069221052061992579971462705876199587247877522974832177516315081811448872079564950011175787032882877253143613838678420523450794772309093463492063715374316699374073443410216600149275305882149983656671802638221512436158148479392510782120307923778521048831066774842991438953611981508926275996281591936402589271506759118924513445795866296699552226880450951024202385585872746035209252532759890306750562092690403932576508582438964631572868452043249362746101711587456414422229463077388063513703124416682424580151084486161493781778736817173121531404174770778874975623164764482992620225283438709802794115470470432015868230440832103425896993036727879528408928869839639558746121550490530095621542124010900983084316221324463346139353217772166892659603875833546928688090693708242196448091062324012646551817354688572575125670044416945623748295310571764444502111304153496113868867757589810134488307020751376754388146151664659400037170697932288399033100029605600132084244707221573243271531422310333711052456343024294231628674031684318551285781457816364685220334183560979208632213577542799935724830815858977044181847439430794657386389381703121772535131234732927291363658229891348922837396065724309599246680925500491957420166848764019002756963011382943970175599074636774537048095907936379604567709465618178859114949177010912193694854286506779878293078046312184628373585740515903513604701348236957219057690977848796218028297837777507213630595724588059866170869527762844525866155478864172565173162529039346459931620288538167182033768826515719332876001959228835434632391514421043282418521648792291762250116426925506479863378490865749904915159367266927892691571726737284115341630202919978478156396453825776800153205230403900056906023549988353799636750804637121882550507272653463868855621881490516689454567453004518906932902082230229797300734435766200393620754034103725084301706078918715306972455258213788748147338679993937680198876709300614006332104689701793695400385123610875987547542465171254683501386889271232768169127862410540183014464564218338027095457583951409902933863547032696936949991501745915030776442072783132445911472803319408223989502748479688028184162958032358815925525706145386111782682421373227410097490246504079896330539095800925816515745335672028505806633043835226266524119708432122018228551433060648172454122202109943736825909932577992825325904294188432972207751689852481966826000178147151658862535994531207990713487213769241626631893115062288949086994129835231307575899201015188031773142441812331556390008676259784309867551395698051318042102275235210456286997390362818543936100217642684750794807440540708126928944519921589482128322543647200996292175937317144346868345454839410343998556041835321352628103963363449426598769868632897181861063089781371006866399248191273880433862547711895193856342838628481672481387479089479761558495437090219715636423832167678489165062128701803135585401881196687479902764372114965741823715189405482364271538613997315562754661294702454581347529536562324920785220190294248173029693064438261228843380355537976189953567258428022688155256725663988400624558000140620060439566489627974577730297027394006728001735744574628482520818255986157500061261972049671755577336556599401068382465384157074634253808232761775721729790709887159941117845771524091477787840457861354032841463538811167147014085929083339668481276931519593749903208298864634343759489744291382946298898052713827824768486365041339056089800975899080563643400701816382988949926551633959403681632697205358303116421737090552382425005120136678319837780921554934751213658523107829268247792144554630080794112999863749153142610743020766335563535792211876151815705824103162377627227343217049975488105815245426806525577919289860610548037319545541246990871925690611890516098860015585904777116181726258293819716850081720828403789308911165122554077852560777739283081528484598184648272176198610128617352894158607622363824059349068144694053923948523100064212843109200795993900678779699984796371568907041624053535783144850559530598687799688549489097418520345220624006515249776479734698432810418643585200705366429611457691737760777863053086401678395889433302806556734107302719837911250143671175649221133493105385357375811302461348327192302523956929909536285980952272333597343928299808562914845366594768870161877084832550121402953597067668163441629216729801701838809248041902409423525721258765793353915706910315276184663083769451632145464465171047492803555338314622294895736909409394479341823538320207232619808605711181260408989654457077305669607979702266006905661482209085276015952813000450905077419685931361949417929729249064862668152897521987917228998523786798929168383898378031825612120343776121836928876319310600800493905081523619421518847823792294772669568171478746758457577639211206197601036124939612552570004937313816323217226123187452618708087304292866758821409642389888263791424861790483732980034127380397329309911014363689292944113743070380201942011420393765056477116832092653058520574598117603404582722285163023657727685634243375994215374062120991553429777499205535505693184606011271740900769901585411292974456747511021528261573641652072927197190441703579212752740018078622998506904851545338503389875393766192221561988412445191291670061990869080940738625902198723804175541932533786992954777761337532855214460922945666415791980077476411758586813077589713708544716354235938679537389303207812396156615773730855199765017640217567265044258067238865973257775280248023758412838453798039718978357148562616154737098788978827845492291561865715827353609867002477618529648360437949412073267522650292068519521177449514995882900938809773938221713356619209066137155658658179186577147804996910687682458118104087843264187521935479115705269355157039388646814064753653841069306047552065658464596585748175002099543324230646003717999655665594636444102841150735757750090605692263454424942650280692422109433676927856300258181520545835234617986960777672238384803936156124977556545808896539965859221597214667188657499581449932931564045164984006849481037446300008730706989777695778256880559222976311029775850143660823068999507385066649081083087394301396469190432351299868423318375164879086900110372607196218026875484581397328531741712317478389246170085033556121848588356093230412485657904169657697678227819134466039723338120190524550860267180348628226013077567111306780957026129926217613226285082700744533384650319274876617427965476591844951859110817062989484137371702553770011913242126917318647465302965042223791651236866531766616464945806141556189113972365661324477391133790725600709834059768459603666713576555686886327513456842198770515394800565822784170181063406464753528006779132974553148790848899037791008658843260416245570533532787300790330529753752899197481344634205667984769239142809422460730964842277896577035851792676168423202832506060872010741034765019915708033398186347915151020879508384417269662201947318836826925027465586216221315868215849190536525477521765108688719939208110454396289752877989135495032389716721689824476165260343488134778129785324895174930054523421129624435722002214135451311554782167577836459671533661415937435078988262020151570737010780104471523250715465229903252948186547529852634705423742423070153069144165415410108308388472242525143402689217428716132949578932289268611029471720404592703221754680409580313764901830261548792298957274239350552508577213824760766378158057664252252926164820774468034711727798802013155419926641107979170424505081540906403025082180481092671208413245272485137482884453584884952408366023028483668521093367190648703786734009191031791256928950602333290189899461093051675176269757663539898979428111508381148059745550876664553267334444979961497704527004532825004490916445674814558472291301412084832253844415385035526150646423024830061561143913612066614194220528280858538006081746804884546405820974885271427800002451138523089074141973165667185341376630177505440612797467970921022862236839887625673828802611695812594185088336617590884110268668839596318397482669226712466178642015108245934270312233905001738614632296735318121813957013500349275257385429548078739112671994613005449148490763093297035178932086068767339646080903170426756768377430570418351868890001253392735911075353581570441584221214179792111531533581784464698233709008620851837548929618749683763441442496809200453473787278964988001407188991948867945240707873151660293081532748869325266774227427617741927214017111686292697738301298231171527715688765777437689751147340474782317186101470721998009691678968887790010487977334802142875032823898640152793665852543252216070533157378070616737999891666607872330405214779606405873149029054734259104606409480359978062038423910207702950956841161770061253225824098054890661258615644066481580716455150175844877613266558559924027927053421066840611462458374583427503458037750220793776517702902677210031517453503938339084039134969437729662479142339862246416510083162671491753774212340883896004565392741168568652318805155116939468260077997551245686349782374088607871548005840106547181633884724908321668474934658218022699881439692762429573329800352929046656724029201552371914313139855677621539323674738652508388239856023518534469056943332122386466611615919105431495916733297653454627596404354231681155554632514170217486063748809502005305263318477629093801477538872317141800262285301300626018467779223950182459226261035952313657820411189548576026179587887314596609005642572521881122503267675206481779709329322857770320760146383764406246980701752349025164734968356409854680530304908242677972719511823501785306827548405749627785841214651595849059768459757599680314103836287339288322909836259225099906075687840417627218546656397266896663803063737155433175278553182683903952442367862226545113957144934681148011096164317901279307805948732222412938758992909405817784662861525077696816578485446023664126693183857376394689038937397991988024684838453858142592715464544664913420879624768493328898230643156810199967495739140390562558524544817908448111330355663785256988506904625615067470931412956439310527320756361254548639720653958562472990635310725548874212861818677148770720186860132650037223158367730793501547405671451114800262447910079169522854091370803904768630844719426707967397967999239352714729026147824534989084123890508891352133192531905171246373710348224108779385904943780581958201550740723330750567191911232354304523380192196369978649658869417808321730094700145455267673946279126769081446669777639828567370176719316874103876434743862842763190717510597490452435320757191092105425848117947241560756166586069387690640232760389471457614099509251732210479787663942591414802265539676758446952546262462189961015867092047929229844285543786362654933700510669735942458012856808730811451564600881715465296194964298960482218210668785553051739343754557873571040842192549878120856177072581920078858101185201011594335816743742097164803679499254383497980101110400575292283346623555291791958787186541208270588507856006091663781026209507445844187353655412449815677640643256868494195586264880067786794782754098917796635538550682560584019244440071050462598773049527319508114430633191702998493521291860280752223998042960095242210558896622666722766221460890171026856951618862732650417985949127872104293927702046464022438108222572047136231129648206839984497946928385015630519762892535141673008849755932727704714598972488763760054741386467903389326275410758449983866412985664272325826804030695672198433543374216031872589102807307358168925960553643319979021465020158148341616831924497200780948269398235122494889872073355944029095342363684429837008629861835841144892723102699988628233401096624791953810187105766789093648919694821043059873318638088215304322856408565096238624845828817124335616414279490550006520505949131968755078011343707763894429115584091899056075238340426362829604727029860475288183192422085495917452262102134356562743076609584772938018013136668157779032110195616554568437996227645590443199054803854407451042275626247700445721278733191411191972149677159050235063255869978218976098628117330301309744722844051117968094587103996652380918092201667414417701154603628611082812166159624548288730208418900139142743083086276032181246070426488030339496860156679821731148881022453222060076914828071850368987002059592276778723692934099842361591313486053532434359789286122480713219915725415548583390769614924325914724968152885857824532870622844021967661102891622640971219218946143645332791370990021728462861905935965200290600842285422589049763996911832923741532745992435568164824371080973129468892158296134525518188187119163071803471917234888365996947140543849135396627281049621533812936597319521207317196086983156691631139003283810668268252441533359261172666255762340139490921030894343923731184238494580738887110204905806118992149094564022688566236078697352018135948707130641076344205733063752585639427515774746371031225480607455731573149940710976315553181300644160282767703505804675661155681595156976680235597116505676070850790681029601249380024313704729730944079707104625698718415429608871676654423114405789008286826512100987072131287894836692144555689579196727092675769889523901501813705726828436789640900698639964284042451894979779461459822416726513363875942249304228279667812421565480313487286092530112882270947969181785827783587308165525964461680595348263479662896104660596575950055370092610637353065003147860624477578900876629151715515138186561805600439647192095661467048938964053289379280234623510985612391300997721967377886733428698973034946629753971283714514315798780351468283914630020198821679359657446090518282235410018499560374570876669310524249209098662428841917936820464172108568429061595214354275050788767578045723791526059278370005811161201268393966625340504232389680036755150339040845546476977828839863349216026371712234072202585700659133041784787006000871893538852842641548609916750938807780090819482139253665469578222015911518483955880134186950548068788362270607200452267117343874932366142198090728433625698544152306009337243276938926171072726347918365338958280910276191451176753464531056487638590045703575911349826441882405078587767667245387508215166658900668022088876803828623983250648320980086351939175386852582021167464875497788896501979600499272139808405992845035173861197475386205849086258750159020776486417999898708419002167688207240583537691883008935576362997816353727594959386011255918957363699642607478135537970065944796711357913530399809940118889698724178398064329506911379179681413421702137174276072405774989821405532517380674712533260121947527166716226627697672271590594876812957248326102655374800596085708200294947330747848126589113282607718356159549632192609316135123880798192559895772467048475575519910792717024084991677708593520578701336121262631739675986868867372923994448217142764892795121430939857954167902833897112214467961274985372897216457128685078740626978590611477201881317953874580719943974459533229828635669816123553082998490848906486264800777338311872484266774064989768477892972447182501175234131785826406160281462689654747065955465463348089008985327729477504231145289877252736371811528496451819015686306598091686465450392067789845450083701316199062133140043118043962899176605700361260624243472711902122818829886279850447899602851808705350574364168027317241406056410642685514315868781915629046942090045794274849116210586719979431001552927341201900031030193931617963195947665998830052680377734824378051946604776542605228245408604937076499687481353246134203011425413191705220938638036882761626398647148266868027009855939715278660695704227229407333691454397755790937108127874772945170061230805345222597538067973083531705880289941880558443583532745289753548773743447112048787113169237543128752033636264742610464923730069119411108524635503452541981095902163821574608492055817539945392975207726561338729997744146039169468609629961946359365374654059865240403371940210180615493835679986719566352986183967378390417136750292222158647504983969304491647366118020395674545659334720070770768086795991379429760752104771107034941560261240548125694582983407295733091382780692545230839422940208084056380512697229506204227676281311105732215582902365923101135622327532929674421243364189466294670302066037652662199483123386072703085010711807795383121015166381198929970017159047664515338978493122611545359974807881316022375206816903728653916493156264113194009872366023127669221472885909359254943485120005263549144744128058834393756838557233680029137008494256362822075174112343881469726013175151544563555724677516384484803133842174906223592866717090481871019694600503054285063554053931676240537031301174174905470561866987898366027696663016032253845706743561167906180340955013651443075070994574352426667442234506817152730831362842379339034746093001000024115539381337975741689416154828382185789043205132782308212369318102664887094488935224776381842220867531700348311398129161008904568556783001310037810627010574188041699306696570903026113062602283162575630094853373073584490130261540702878211350105863039647856676928604766994208814691973178378379838629792494831543970647540799883250544868926719958330732980846413720325024661285713972353155038582767616988522775749483695440348388172929363823898691035346014762840999843815702065463149493947857283421679301520794878403715839629268763447230903595585483738048705598609597052357843022795310806553765013762668806722393384175889274191397097330842432881951794109329161625459366650071323274455038581871607904420983734025696412971686993926479651941204773244024961262113746379405152381747796235634579510582882047731898454163826004502080132237600919201275395527622523372094506117293041735782621573639132721667289559200254019662027737430819639297636519990886363997863014000093883135787695318508394500017217626899208028831145896862528615094250485715992357382306889069148445322366869951334699817665714754083684285447806331545912698020222118936131799180032847352962036381698534253327110823638740960183415272833689036786352937009810253458434387407788277951950882933857158514746593063371646326752969644899497822225922774985706141958222237126078377997141333981109342709906776767114796320956231909386580427302423715801409948845148671767706399273999444757185117633052474352397958741306708615703582061394143106318456327536167682775158486590920202457776806690022908381534827998946355878442012101957656833237112564355636682994521424433436255064781021247236248918043931345697913472316896998431997037975872901632395146156232913133511409216802453778395855426728574903836733229626988927350205170415857035201000041962402925255789143146153711351679797285855061679090954949070782011575083597995475108862473875869560160476881477986069314548237835648006460701849451077861119805170578852444345482922443958829647325513876565049202029525573447754568159613379831972278000493198204874874380488037502059280283737597289778932489702741094232344408499901032617420143251134196140237609983960698828564829795102996178430083069458244945956454586651593089827826390709984369972874570045645909378411315244041425669616545491235844067824097278086028555164055726360993858427964531036655970834309372311546405584611559506641490844359320007845422468701282529585665397458284621413429505203864614466940655056721207410265327278023961479026318594541119741418806161159362797653033697681813362882582663203720995703019196917938773993947758394983934231474286644814152347060413071925049141211748534452006695852262888266290942296766981618644426120760124450652712732146725278929242536872977837883948232050172264086843561168424599320760946629601823303297271757884443667583886966039459226832796311823380569066279500318999661373335368546208521432641053220736006022712369023427906398001359354751356815729861918906761627229828275622248310246440791374382041311222968159859180835536048546706451537905440767320161858373116095903506282363484772906211713567468629360708573629708461038641465129581075786270547873144230686047369608475788797463944107580201096181487142837644952596656909563093042668896146965847697838559918221959946914910349833225695646137714136603357548759056301479998606001017327372677870603663647213175807557289031503731278264795710334538068494800290618275413736473496973950391427391599941906448557502363736039236020612946549423227235705329675891194532087308856126881308408403756372805544724369267689469783099023169295121042697131994263563079894055133960928815841983446496335567020847504363053664008559187682832780409187319700379963315519051555984987175681256067730411483947556674506935120985073395528711087112469025988829515606884668286296144952040196889122893433378028812010839127828830028813144363259156890633761521604951238229268874463538549693382561581161560711732496333744756286762987376355899077184292836955253562166242851870245480047798051822274235965174288791956736964649892508474259669500178513413172571082006416846766193171629200366721813944832665241753725313816760830367234255954371928163669029996751816339326197492621102030247174574933495589033349630772856121433202387865169188013138252127233524134175843587628023576198780117811562411137946211742756117201507667413295668243519329609735473394529543492528891607899104031488786938153958282221179106846714084631466005939560039074305786976154607338908522613506315397930476233606420146778699339371647042998275744439130173901794294105291676535888968769812964190321995182653379283604478267491163529830823594549001044186034894466677258779888934831118603975613291867215661243516011572254947008243553071737888483956168409931906317876301450140868427743821265601540268376917865220095952916292759666400794687532340274988181425142136481482221960212251377137754426941065405324094015194875617122623496662788808007053689060126986604772184233252532521694925059966046239739636633808805615496083399044115028869209211777957340485678548921114196590909060667119533308718830364019405675369139582665860865277321736564284682040596267572540135218503528587427582894773736520386311993053611616711444618294466828136099759810424132891476542684661907972243618848165221640783998866144162906563249747677828830376084998647523834016624964912061292719883248989344393642506693078881622381740395457463166003099965613221014774146404863004951511341914351770911998328029841037696887108485228949177803227615477499586132864968175545958181878402116809049759634444582114360046034805989535785168405252579102019259199794416261557868633110960045451516730562688521161953891681270245357761051176537094050108401859427079151957292423771231097176736217414072747921628656668219936102184083587735179708406011969285939350571353061733667975786860248364283429598795241538611477619543503778537426647003118566520849435798279588411102664279422091061466078143845934301760587532269448081204560904214578320714998992677418051559886511858849056473506938613758008409733883538896425143603139097245626612586129046195119743948257612137837463735759459048375294048324391494974715454455436975788091316229103329946780290803738669114934961584569090369747741515057172787173419188537412238276436804941898118928447962321502534674492746610087156281484732151900324630384999726281252240744924852216569286024035299445496038150035985420577545865755977184261526093823404276368349187084024458186299177760027068210144039922236493381271664833503599237689137957820894836987020168968085817401029781166799123646497663759363735092494332437082421245283968661295292466417871086917004102390553147248357470961708886546538254796002197640793606247295450533133940366343749761275330698356281174665472044188207230246567328451092262169718678071001972450334223385493563424473694281784713420892023613774348055429464333419515173637328563533622179223414935416964739109489614354650955247285334109829060499966199137769307884652066800139414554220039043376415662890085619266137132482909104432791144923968412391579548797295060777209956782857122397888947274114200054345426322983078821778880345595586534259273141001309213261831497392164750125400988357163514385328295350575553336761164869060892114898989809979823116110678745282773137580159498997051284767276972370135833426576486370722358778259804192724047449724442628739259337266566978539441852768146437377983950733922330942971285985133425510386828872604911730606750390273025348049854209960031905234006257723695922055895155697237764382268544544244908261874928544054717180725174322636437109604152115620590403644944361768746165943695638669175800315770036740080671889831474003468526958788931042332670764328146923232770450942103405151171697494220511732332202193220031933023746197392315953094274447185141414133000286488528365788998943975273744436156392869088977557381802897916319500156146465210977267877174691408588082639773532400720203516564966501607013140981781404037994022225436135001745350206776907585899888317674006046305888874192538885606743813480765968505807492305856812033972503684101596211386799771414939095473901203339934790725226091852106087307272520304627499632940056570001777720434283516147430214176406021381029231616022620304565886095379079891183356852285685667063650884952666857777154157442494955108661401538578608233241958176544562329102172090642217656504210454173001896486264773145288367927775102242158658518411189209588391001720532751263589482313730790706698370672453498142966853202278057844059381249264988028940146908257665893421436440728724082128202701807109571968666076534622262566895910998218630761068475812310189692212423454485038033395275189621101423649494438423305456876330891129939270424285886614737533696041282438707096621322565706740281413547785285523100177944960105722841745671260986104076520300563213471534826856337568876409849469239454347340641705172644451502717578417012877101374760053226346652484342388910171061692311123415703163801299926299074429375392152522954771501290757335691277682499586140856576387128194401650293350824859775157916981657388364208765613080900714046744782974673577402830835192266807486251195928092742354922732448706125571823046334475704732959603685848453984659151488008959099647290671490221976001419423211397913997363559466249826403836524562647141815970924041219810646817053734275204791537440461815236015291456287404737187134896340931254621830167451495358601671527316477734343885914657227460644261637550178625140316415719285946583159885221059833033668627067490812171573629495161598501701807014606313644786980720426908917561954017037160253574474409484235688511236059080156756408271950112925063145941866835677322412466139199971092170665930608128425827404275713390948314878413122521822122781427178621436144024862598379838805288344459962470302619319732920047725032323350020944530950301560757334312554726462709240575133837135726030623289408775377668728779520269540867360096859470536178267634929306816015658164359048018916440774490039315468682581695573927474669269319808747667193938994115598094569773733001763987075573244952445222657176458787972444895191289588340472511187879730371572067946631614769995250912960261946019795495742923758952414379061391217822107132431436036527615044469863872062122450356258359516229572758862850866784013675546326246611897240154487543202160472199864358713197835094548342771833229630561628414582010452089294004498679645212446739811958986498689684429479333689106228506229636666600495233121881000202611960070320094571880286443501582454576424728181922413957575487696727925812604172837266092532809014591305590148496880590147722023073599362588970492690332854040892618538639698801952047919952752275915679676382712877274345869648138431710288343122700306921647195667932606533964882978479391836194582278273485782875285360261744899979532485723456279847950460186722649126888015772825494795401241045340640752381373315147411574888408865941569314277428751002847504431160694537399552237476237344376155458298605610376532325025238435945200671258902398355119759075171955911888528979264660030827656865887577022499097021263983855169775140647466364759871747529879196902261573537661510054798884066911937251195409044407533954377746019364066454910212771896535996716246341501839688901914130327952850350687592653860405049699160638502114422325851428220422635706419600764250397000812379992932645100487191631172279438885258624188513778073821140553683223058571276782614619237982776579284948765680782891686741341796816165794076849947326334507980884420477574100287626864845129368629274988210014207392103836932568259063154043014493978539652251448601487906535584765062862364434183125173095769837843885741462944473872556885783289649800138434688306087778240983042657164733654820738597659757856549362592536275361458280186159821700012230397084140056598436402154716552224281010456336156043055353564215045648064408485198162186575167701549859175161278726216768237708324353177531300540168672401222089592565827147652763808272660138619908081472177168648808308886114794529209103987369038584851272400241455739088541557546347490289940840862626253123250442812760470396056994540302401294406137725938106136847016378424845122902933480825482638706984162746611269357472042776181818169816449502787136646078610261668252858105631438311875167155124790534464480250739069833664680072689371944561068502027583372412204352033263091472538122585392521140235303279727393076120430568158946560855032593835542871387474915205670828040109981462932221190335529723367346992534805218606272289469580149647407004290878278334875608920065335773496920861285427403547192929909960140685668436024836843013475179388292989821553414554242008626166226293384492776472713932579570177321396698580718354062929456479359956336091577187589538924912567757286483563543543769653702560392250834786967159601055679213121708617012215870285894648510319499652920526662080141650563945333031183912441186220681942305772130667563290875062733975632031903458371526932756584596694364999341331190881650865465552279845742718850104208414280040906325897552040342832545551551847266618624420973423832872194331122319751122502272644917398716835233473677591259439069861821532736985460592319681356540392935961736165753149328154095383616183390016744273694795258153749382008205649561815831752931413514175843078296479115173462916976360062778185418864918399559950807603402173052769001865882612390987467244977927681033026510156085454133035806134969889687088842834300386932186258207908656210992386565562501725800663719072443851595353255870291184215796847294371370264825884764347857829081659495162402122444300426786151668304473025854349720404706997785002044027141843750727546478711727926938619247215468131286946842462640783415293332205676224444344953019745404753877850361897366225225678765344643273386347376987267581823324270819160512111281681160662529550924955011863658480228570603252599700996247051407040332141334167305974605536871610660883915271876711495466718968559046570534176873269713152738954428246557901206857082611890726471074631746059055770866512849917261282138871518219740228833702498059518542061660926703038316359812619898789660796456851857168058537144708416499308822341258162016268143950618306254863961967858898159760095700812126081292062270978751504625630694630440287729520758888270783161941794753587639926970500189525417292772903167398451377920063465385562616477597917360945180365058953578864024029941930047460276136645392024497973331328026260193640384306750790809776548202276775321071298882148774423468708560348560198084233105759926674971879495641970923184615546948083332265957547664172153517071415572423024812036580567861778691344723723444914921607551711078199092688784867113301191704733596772713701213473023964417563049471650382089525545665087277818895510995322114823656908484508798593119787067057806169543552526019429484866427530254223244962285428394216304271478133018808602149793113070077810887322529320379456274643860156816562791377469654468722141941702572308234284053739104216263202595322689466517293853627650421346328803748165587885623744996768606208311793408530668747404756397249556239791407672579417084074409657661795945464796762400124448356576085840211995126839885401482031616381779693534946394992362461586837916938169842605034703393234464291628240587740872107760042377048307743446012917505244185427606127026029878272578113496065478244453959607057466750004155094453750375290300241352785997716821193273083210710246089511698998438495444019720129046940732261330484991777695364168567948655247312995830140594111913086939521203821964775654243988466194808792347120099290264613551683757470251778167876749770567372183372587067118640318016209717335282729395403589682556629551248414473137956334102345124077012788139612223637323089126510720832767078899491515916473482780963983114663529998306529675482697930928400119270178909212570389099769929465943589216366713579837554767776673936609563499450482761924515957038283168864613132162009682241311335461701448650218616020952286584366156794078595708992920781566496777635988774166516354290335883737380227048503015074351027585623378532484047399212214793921127325183149201227639219004613374395895104782016012949509976385068714511395987392494453915256971665144612931164785041334628404175704265363711227911305895938826003962247483887202797383330990981660061736738268732234447574447379658043066861696617417522543449700436420757988001331590593995900082365122168786827993689691742758038904550736625599179004505577226242636732393134664242077653639284233018116396330108489635544558601004344312451228129310349182231152338402721542981902398556645851968289016293764818800864185720254319171007714287058698558807965666279547107208797175922853159729647456420928375861367204902133411666100069429174525430175093366355059140293283581663941434080149170497898034898568528130708811218066313817449065815606589424401127931943071113256525404569568291173008791945706982978143726157194469071684408643934665633926075191754240759871820124643783123727889992941544257877463375188156562741125557922505211419039094366722299581410812110511301921777295787970793095626291304788474716998505921597759664914396966939168834891520110002625831674682225564637236978563380317777345304218122454371125089956476925713221431880790322970477374846406271254955369955733895162814801804079562657508616747619230290224025583354975582636295047794253910118834581785881178972764472527874476023137951252797127040241204611260690992212732574418294843115793476244010800797451612976430285289592082858731740238165009356575764882099739957257998186282219672034196282079022070139562858958918018842830507153212617277650888229346892322416705531009113169649504181545008237286350377206212273341236777959557927666434392083549516071048233484746170763237549395183829829966201909105207988848980866262237235168346381645189614572601860502282043506773940184207167671597795979493019656537468793027651152139060078493425518041929478177817577640228421697061502514055363704924272398367342733414947416387235462090442258955181103900794082328111458022302896933782588655805624849987821131453065863255903983512061749157704028660681831083353389289699892831671848352186560874738056899770393400704537025357586555069665475408184635703956586298606327129152156459567885235540935401788441315335975118972270064502199885843899330611723187790661470911346296176711001898463190146862667964741473970963900910935857547292420530555257135223086868168717792588722871447194230675750233659382321166679038186765200240999775404396172754924402978454670785685945222323683734272840002036745685658690520160699269380631683689174914005285449273774153155333209137138801769938922084430177173159559672051740979184468880802839608473127952521457059117673055199968102357288002382862429772223010148437947616785873033331952531912719631408725084055731610268272918862978272573546176434992269129546168867628536010760760801320032486216256256583665348044382086063151987428336901826571598338533479393160089935059181730066242204427374885655349497741202141617936400785754248219503606358422304770027647636239694205495441356303784476373622445328089085349325195561324296080340276551230913067996721472008499215551847747398608746459434728936503454837072875552570105904407005493356737866406257442323552785119630320822155234534892697090955801277323853462019813470817900912241380931666620604692364301447743704483749597238520669883075945856729893127461184351472142094171169835637779425689772237640860865713162272816841743613336959845730579469979793216624681544868622938113524333048183654259091339893163652104853882196962354038011704266999819121119825067143946907588309657823742284082104845810187573629723809815495779856104557934475691781079685747571488560652627337143724892024497025544693354722724393927247650765676368323569935570647341614422334441073436838111653676158147105149463066244741888187661055702865854228741547499875965785851147391912195449803870406511980412893579637556823969358204661424567428611363371763400863525256859735775030520291042214111021426861007849714520248813071299798832655508955603998326004249982452678911291777638742156854835628194799958866884348060860059300994355764164665078798112007335358182674851354050087500379165655342062220962328449589624099590634395916207492486475690734787616401389912968036872412315489712908057640318088662858432636465368788089241168182871321195102716623136794638855936687122808619502815821358941778494232617417155722869400706863543709143137723999270940653040485721986637400844820602382762763687605112716200138854464082791734129190240688139234473796008693015929359905803089135568973687834060568325893178260599497212065886258972915663313304218943405180233238495574432571040407773387970920652788359904539225738924318584267917176967548892994785384210581251623327968347179182325306474214330287831994560750859812685773038242582777673796574408874345440722342744502786940515978907055318167686164582921750257401222716019291443635117862441618625065807137908859500600965075118295984186350677373668900695103134158086037686198021414209546002621342606549847027306007118261709905780427739435898015842580251282228939782968375639325884717046174837691560573388338492031972106908856849066343092534771930012072120215135032144924111692656735748652100080839664264010102242930546082082105510719631332067005318965074566073298873963231178124573005813962020354780872533887784985507123294211642221073007949814652173595614566028115067515178909883144867181153170399314822525050418462600254166596661297882187751525675677282608630126306550874754402475367723436266726712834246290078922015009470416980769553192796352962230892473900827427514561535626379060391642653923025106154107946915497554353999151565089188114844886075607109163642704744843613782304766452916661791072977062442604512049623060851096723957578006709789413974793774272124593849259023860668748664187407231695785490217841901007972357217255456431210187122881347386491837624077483131481421621046043917537503197046008696449808150589220740118085915902477099189708639945422834653665562469422283229940871330321325184184089073063823356632988909736340025592017955960728615891050413157186680649206873935935970920041568231462039072788110526465843408659709274078325580013943828747879421611296840412471041358335471464162642975956391235637313895809972752787818304439231845128334086925517954522995571304110242575193443491726010767023580120382367216097549632160965766838275648553630719796943686710694767251131767306734305219456989349383934990836884326047121398230899337917822659547014781255849253070421880842124019584623481995564347008248547366162851211923242915397369200809747418938952548419723461804536722337131226588108336342817610724877464146314733043872419516386512365752634960893050563301814882581836968741678274468492393133918551866921666934723277760497022167992728492608135449477431226852703723135416240239363188734921113595035214717175906726204889460992735202780270234425838242463015437754051333010205475587913513219308406843304370719108103846187612891461032164205864545929865347893378356625042003435778034977742707704801854431083190457784746953571003507494603610542665978005164734354671502354402473375170408443344466900384674886743959556515871654154615562659079389895613094095008202678299960779061325762232586406106490715562054804343572521777979403307748049787429140208020966209757297241062457972769960976581247388915124603546646457780382318864205795932668328254357825294415932894845856065861175953851905208889723053538367242192661044834490511545258794841076281895344463965891896413530993273972732796825625504472126200555864235658062388913518243022572670932582433318629645014599563354995982498165557330284160103757570719190299158297554111058924869249133122223433564617037326056082302952772021059114140429524355246817221757575885005004564902560337663895533139658809845118306481308084706899222956042335973421764925310249211011816488741967315395803068258601174917291072402613580498295661007005861290069165932655522524926930403352972069611025729906588948830602222028948959720233986731064617756125615580457305783001284430875201012877264266239786985170553923771253434007514065002105923040503365066915830499429817908087031659937735985018029495228196309584157279415574540928345495237181362536206028555310964399401245971687449257500420556887294134600776535721614236034439859729560355474996476666834652678792449604285355492582612471334935927310726932426631634706469812962042656529542478167417402286404058406611655089941821858648782726277743459542678598654799544898831773968077850247981446119398318687637009807818231950673408504267843207915419122754968006014005012024737828224143607381100653499535524306334233399543900484528317192969224888815408490900888595501853674728587429467642987626678802194975800509435926669718527604439952881881284307317717512345040886709006747539207559119121475401340789969732760073821488394477010987433797361049061173110088765935505474703552015410886091376911488731945139565605172705849677012215928360031165983150215146104037966791814211250659566525178518744144878137228722065730969060880383825887079572529948577162614465826952598625640235122292148221077246866137062587903300736743999380029928893577683820731092154108606110964272311408547466935496874705515181413848326367622190478832467343927413051906640533649523643065328857849838828143269345439913083605787821904494282458103154116455403529352960057352374328658607004867432118450263821695375393443904287988792104800589083123170584971016740642316085596636652953553075762620250457261133027111454871869739550410489857061175951136774663708902302753107345307555169204042943512783452724973160946451445328433056749220188301826351734368368030426050362039532787136002170102811006059068873993195388431885117497336764052937358724608602610627862365232214875186357949163777082402019350553932926109498940443619649352816469371702992885388533603834966693770977509843395130966215330286640429270249737454619444297509070911747849005989032292908605551072738208975515388166834992610971206463108310911320424708608679441228135275109411103042099084206647756387968260007365939111453789633794356249746153523518023140326577306337432915152565311864753712196207796237129843547506390235551637865661337972151225901057984347798991872071920796061494013283025737674694928922381375655155756527445605452854959170963967223782319019953412923723617533179070214392018897335655521270329285336078776110244629872354118939254132567905598406418056962567887011463652851251196079577355478326458932576103002698646838522288809891187363321261679177400360950889430850206446526551079043057458567815423115815608296823917878254144197145815982424272160953311160212740775978898057912528217256311605764741895041181936503248797879708190303655280159222508468034527765410984639524250034758421065910832353418201363867812284923977231426500087962838138853406721206583349466964897939358810579630421473237675196969111775669249131513091645571195349534710237219421371353617063016203434746492013316236966048741605127034547924079001534783056423208796608929879945800794299345196652237866850434532720521321180397939919507626515883854253415767290487173156748584744888578354029976968851203202231689613962265154202538456937340938583812445142765742001086921126672160474293410981887532317451183465880549645888355712999782943871636230665473145611281776833759046343969438167931108397057469395835385132402041538880172241989811669014155634573725695353428794720533288914085754113321159997761921535932609387550822633748531283543254687356842281047443191159781934418284790777777359257232076988330054140066349124797939781346764723122752653284483184821492545110214146906695732862055435052258841188221231803809422720711337744804435429758006183371754674290635876238584247336533443811086759689816974249419891597272908940020253413763062811712191017057935559926848447582687931537253823428162706737813910575849035943757923578138705604520864895946412594329266395415865291499260783062540687583166278883183353038056296179562907418686651574577198097718685337668889730134645756774604722476751938055982295717792959852758785415261956332941815505710370192852413076543795305153800473736670743960972177349462526872765483961824016597840441644190390506380986086052540066986895972546137939531479867278290219260807912334100434800489589763879817849011064608357210756408206315517220065472355101206478214166824855862270118333315096929750750563864417722146226428256599956911149930224970983349665132838395642053106659255103039366574558466122140253505415129867209487747053722685065193215536051461815570819930815226964714706606125372494425367369943586606624591294508979609086607069239287660112518699076791629283651161266804771671778662597733663299856352799470081240002137447500294290594870676999733179337339651119060132205974973305813508307904890635368311878539082791345660807234762119866445794600630490963107785946421921948790181218936866772576333185033805973841439438808377162931300588456944315374576714707789165517349431615531172426482898583259310207387244796895359973571140017963011758770592896178535202988213934583830213978910462640895773310424408953001886401515108817038676641238361818895013859131162584988230422393941254903390286362534069002656312926766764955239582454162682455769201821986681385385652540136663991744933097305913267734234355550558586145014796186941524183665880862208935898846673086743175587674524534021761410908503822877262618004083446081298344624720174617754232340515846612743451997156498111236177166332336593515586055006852073403363734543971432900913353094734668358170969942030246912467732271077255366775288792852867480890604368554540592505140193391953265331515632550694576174000227168005440635176251610272105441315364326195954680068910677674417317740674821201606797936860164550164042046976287202705770516037393751042409994467603566171584809481073454521434795729224790963370957505435548873557370749416904005241693982928115435599921778928928846510998443139674879613954069613428318239005794502135545541551049835506051983300157335652588646466505524682914265676961084168625311047203600960915766807352309571405153758700782931177688233980800662049586323604162866642565147597910884768741857640175856923591474363128798478867334339516229725087439002252038820402081931406080493509295637428451612006847391769553125553378538907466879586376553542723276838030157503330479621986093879663549526577032788669214123518643371090152524266223558637014412510474496197909562011901829975554841608720068516993129970343122244167281153906382514923600091016045833290336734079745901868482053785431740488850109478275953498345236956281821273117597723499578169829565592562906175447279733568488222198014015465750963017745530682928565303183496595823028658860712422871401000317289351960210231669321284029650838820814035340615466579042343434873656382192823680849815159706493272451132898367436437789406702739345017162534444380373995893656231724295607768915598266154331796083231698147042966929060704466490932871214033497192558609731026389672385145759090808943200301683784080812590922928968262728551682541865139243127925609403430507246449879414450665941266755716726572048629604666249223875388563937273716154774348184984415411790059733738205871391327856090889762673555824042708516567726116854732496226173737281020129586549404744071178490480404736186960160911236830207308692775146282298760469459228991659081600545792754504685828663619695476974182614975167381897418430505297996829991768260567467418983127193419932396377882193577699593215517114697068398635585638467908846717124188617847282499055416770296887617311369047912113548099725492595202726498932801028108128836850627851268886272256080742100753420815244828294822620151027167063426881647738722343069906039536977527666773386487555166004567741465044040645020543959909254621365075418398653160398162058382209689830842008955389309691938112232400539274609164150346555755180919272800953563534813516741133300412284779335014082048334004112879139435866525584118413526281739007239303296767696565629296821184871605190660304176053610690056953766610534166654428104671195330370247114865090765928141990896918010105800915063354377407247567617070408513644340182060773033386564510332273461958611573217454860619650343486036507213506994510057721712556939573666721539417771922044127237170687380575246438231938125499582182308633746354983304275934273839103354328566475221949011228469842465678059417327503344832877954349503279138890680518320773207215758354207159805376775069127389360311844672430294654818233657824905509884508124278425646536767123326063301649721027649530184258377877146335371740252100966391740157184568628923873783245115380253337076256600767431893281367754561396887122490392561499825117144408193025809530356083191612611037000085990483917519339558255105604524444823375118177169970741544734859261784771155113795866228666322169856320487161618504085708848546637001664612837236486506803958705697637167295796204398423166582655449977479075254221747928148163558269221791457714650360352597333289422688857644091221827095262251744984002103106222470924211692143029909846079715437740916630086148102925090420578617460753863528838872828335886170326275101929103211835065473003294001889345296055539095261888590627014964893751164327633020870577393958239033772728463429250640682412216362799048749118661287303520281462881544847466758964363570161224896548878448566322641956093126599633027134083089097192165653247756585572424125814230258189471520773612589793716357120801657608044400237813628122331484252024586476278142735242241836993108504677636492797805679485058004825301669456517153477212377719470079606052018574676770581755404601544314540854323965772309271029940740822472554364848458118977191506019413930983499183191649597200355600999517164108901601895756822403043278356759742921822146762123277310032423961928486676193593652997263585542009954475533643110294400905351156236463220989658862939286677523707387774455740528415616083828442537392988994387037504932760354769175344107006979822914927209269252713485375176407182750737409989054697558168750200582510222924226863579889798850622429811104177562559163673292929303110391613046238133790027988673511882572291369397490488248918097545935416682074807526731477430750323215509686106241681367230438349454342227283696762639003074457507610664141575384314451576317428901995148280298965640904781696428315085719085245561330948257583224206139895274365363751243847900357612485670566688451393595153693868521359665526952034138642516893267921970253196459860697940804658376634430647653543872404869385174280502815133845619767271361757321643062076105863549741456479901623896161910698218141435580519488058048424881796854411077894548610470530812915126388538124623550104607714333115729764137910266202448529800247462686515436710149106130596054607606881159648168680301080629319473155295728148858427519504096512338864062525212594850213902843323930064813143637945884078550197832609080184192546417498969247619247065071839432814860804791928757390122341646034874817789473389270477984223431293086137852005599872220773848064914229877243265667970583031946201304477857409629548228481799293252761438036855593719897493895385713902054493421308825179438368318853198737756249317590631736393662888276727929849904370195016955553871378854041794649431908984675725730420648790014160752039918997170748091203494852218270725742870333161969983471159034405406479840586277311518007875069366351716867118533454849765655516992479213134750920376509904521317838302049230057679068561786177502985513207427197152226451388945175047549315802919770906315646418538517267498647825160109932070252815728561062745412930609250353224048831823574151220931000805416020212009701256899643157703810871651968831315648649636298106596502313895025359331539276601956524685077417801126011151564364370016812906658205487069999338196518942746287496228930951879876286806383812327757006157034866456932507362577799039727558412566744481682103839741127792377340634220360874929195823885873626899483181916633651595150715438361806368124210669820264042683784334649915700979252217794629484189979033448667483678977014668720259649592203982504083238120969836200424374894512288821903162779697448178958066407872282745375012644547383585251536187747625590432073814825170971222736252717499049558829024099107239640609862266719958184121966622099415998263205937461639579968201906540653398242857206633553094863236572622538257588566228332396339274090808134771372108499657364835797348323088061155291896269997144934115617471936879205938885703367480148272246950633761518695592602401623994186200796437604745100902699077154437954981024595320985483523390359023257160942382474839099454415854947366837086879811132294478465688035813121666401393059965164058438585493970056212669772963269598327805072804365755100886012972223138032418221270268509281775933160584045551568808442090718865907902127041435174475977294431287080425771764640827667574884954055884824742295352133993737847283117543517573842259075698104202832922346315610485241702537070851737853228885694149840508710341411460796226801109897539967237312997896296509797029253366714567150094167155658946591966809276138637073731713703460295995195107730852802552369889028124170213141562934661784877815867119428901622316294428487260032929125755836274007735729111897362778422946850044005329276120284058463098775708173438386429764922629074114846582692326051677240432965085486225481883589536236801314078194268911752687288731844124350597622901228238407257536322595080459840968839491547938608093127945910644509844718568589749024067828642130740063997957334168009810600491718870855636088929932190454651870522575334820051768673778285788515491812889096805647527316286928355623184764287880616224550402095740640126293081224604176254008587943282525414200258952169569870035833171217986348935070998327963548658808301281539005442384163832132970651508291683469482178749104266272582784819961348906793201651744838389200327927194162772217759957314557400118925618073219842146188485361540960269041354905370849687703944814764148244260185795013018573871141789026563222232158632633187268700524462867040061635759074187083756754299720994916010287724611614954334589063290252427271354733890852101667312747905393908142803161737221250892455069983650656764185202754215152739486020750500150622324290882773787857447283219564020222264958006025828151228562230741552167325048317645222127028681554537206919316804916658730218932051712529027911783738576555829280219670186135130015426813989651586720287238279676738550897565803682213917330198498489156995392398223286616471141516246880390773743214393725108844483788915654074162169407273358695761325327675883532386083638919291075911035634109901914505010085709471388875077654605847018046132361093752574260079885040903272514762501177153007200926206147945482158030358102049315145585767206224456392213774237564539421629732853175673575220921528338599984662596517363591246418942463482173797519029397729170248682192690783162213216420796651466036535336996148902622524388535677128267371745263812002760300702192663105049839515923843243330936621147218230809101255978589259744631392135792847532396304063594373276893153843548096360261710931613190224107341643015409993046947763007857040675218338356133643780699952915434849966250363924215256618400298566828269379891590169653839137240138433257537072077196667372504277749593315643144682281212991428625916300051220890873058079254799782737378341493297930577096456119276730232335205135680199601953445655179456603409739115843878048088498774666794508378984667569846846023411826665610392027755725368363975398026340928596431609298298914488607826080592086743950962248345876907708563245390969305157198491289305741835437746128345303942631863378636133711559911297850772428399223614989552050033241094557737784775916232032807995969543844547759496524815250070197296785214870315107934476965021719585089521012505943676037601215548798171894921650861896442627769074374597827407609281507543325216436958036621471823896838813836987058699486856287444195886514725363013448644330898686602662157276454375840426933700445780213097171371945873803395392924233774653977950955799538950331249596658292085644328913014525566297199942123324753346473105398389366429457793681339468873131535285497699949298080976538307762899743916760640532336680538386030692559230393428741835721289156004366725017041092879492635700793913875296898469370283615311946583198849435474802488879096151125542568567420365200278026526142602599381370700567324188387830064537036708004549271659564453790145983930293523783895523807944027723429596177419747295264886925736536423136580769337014283353000164972477664032856977945062874269386036543350977120287454681178408383712850588873354522061387035081003597281558988033378542794703071517764799525141174363651014487735750444386749389545096927357871705872698915072805283318339624621952423559844492251955482782794030507155138858538312804795853315947862124554060421398033385053364094534282455149494644305516581439249631737175508459734768963604450114340982998382274776704662408947595284283385916797351810911347529406053699390430612822694116856100923107311732340722543319194248590142253534906719726645550993258979122488361154579119457052326194383453605919198099135618547720071055921002805169534111503128747516415904379800715511322882654720344238975060630179763318121262377129424463933293934198197723297426936753489251883022602146935926688481078260171184514022063610822487243199029336374010824123734676551160890638566817354256951448870392951963209656954457764975169485761743972549347714521849033294488515064968117592153140359666699337186410853695159975789685849509989969370542359014671792296809436273795967258839612642032091045176752897712666822145853521647499174368510273319302897284170155800196441018669886227307063604987396519925827910718003558950198455183112197360220624096250427628579255610635180530506881861727477848515648616325957360824583895331190170038573339947665568201202579271657527767476772017301189222465069194333606228316837407503805844360658421734157938945907899361177294099464302859669411776261019419587623360201120572274211100798017858878073985824252135597627097860209986448714550702886915966836221313342459987245758385837464254244619400451329900749932348194557631301554768623164782818172868005930077969368452997492691577552764957989825016421516967781028210891546901273865113170964037794118721219969926646768198864962108070444361083913376767408309194608440328323238353975217111529935265450720328425847486277439170686689889363743475503301062469724383811075749201614443422215320683087607210301924631529650442662562308389558942135626976825710372017721179078749874630574121084306955064755780869540598852502320107772874700852582195893386350271783397426757676040540435222042749512049560521322305397060613463963359445124718040124025466300236302363212349408686901689835711144599780798468491626178562437555432185155472841621911492639336320797886148806717343993782609464313073215569487772698450821176403555703015620333159828652440850943454499484503137379064672394951714212458112142519965922698186118472867007068848710419372950567524859086474380015940737098937190611350623000997057611536438397987813244502753075251603072493341972911504475327014757845801930657310874762064032957888413978074752913223214482197656845615471681909614520222176534747068387374686593353538295894862790124274951758726720273444548966123260173080774277357076433147219395020469911846729700996717254386728528681052658908970251237881406090134683227050594361366900136844945479297336363965112052394500662076505652254384745956686759352188007889489328358818339727322141572887598610204322964030246028920001520262781523392719806236385554364474618523741251258035275017571106278168673643981808879733604617139429417181747208943843076974241393369723716969274831518508604778407431471741333476464474852124305905117301318599658020667516436540773655402827094683945510544520300300499242403751459077514504272535902695037411453045312998744812261386504027708432909443148827796099052219823247620500353888986595801352210265781842255457187895801832031918384881318316664909319405199554409867691389547677590276035292169556658553579211032456577088263265654140092849202605505135273793446774396987286512667827569559783315593189140497174049448197478290950835476817387309250859786944625527317980789328206286866890034572828729913265288538044496004302051224431956992186722262265641094299837619484928411409660380440403906874271568029664402506462079152779582899068327841103610211760678346226542167982019436205168570637339751864658778629491300653474171542754711302531795816238786622629891267891155153752174851716195911293847810421130824995694577425786924603285821512917098024339960425494677407471851338434949739099158224196934155998252474216467387992929896041192672211540932149105723465989691480062904908764732700542311555092172564671895257932376673233067248275760095292097408766617661979219903690205300303640415547102711648609821456346496407032272791597437897344322120715112626240863684148181133607605814973292953713988480707687945808472232009958434620337238535552188081110323866457925744522348716112156338679568507901198200267471162966397515246761709532358595151891802135356206650105438924351586766084391115449357980612736158050543094052211950050178352742915858238741098085072576858247655991344279697775123429613917714338412154987293489121157030167506186668853330925520572540061477529197118755230236975610353771145562855873558348993027660236259651870815921462330338146474355057266417121570850338174978472152725617091699304757782613823260768216205195873720917182299864209426922148879396295107797364553949986148206622001504777666380671825126434082896712403438975974881251094531392927435431343658848914342881121938017500781101898349456603485739129368850817894089157378272405987546891720706844243377619873175215718078215468737616809557810278014635318260644667280284777609472218028861546459881625354059677106520530781621962979996694810221629027164732219295865101738181965197222911518153851321888187130994199544579433629163773249322359119587336757453322322035574868854617915518372483033683222628665033183650134809015088176881337005035834103735933765003721580590976534526234673201367254232142593529655230567225969051138410075545895933539769742019075352218884832122024537849995150630466615301446523625023531281752323019114901157921958338406609464381552660771603750482569938151877104129890481161983271077779318887310946923649041421415961178352174681742477697601587930321186457179960479992807133336097149026767159389973359943446617097084311916120229382925856206536822905610646088853496654279042094232266618994791829360800729745777634859881643279203606699358976626453910225896261941694077710641354422144251695377404621201355307154289632749706592688902844465936109152756119421838042346178558515732026646209699623157359615676453131323031573221394146278486184271206712297604779003816430874729744465679690824695998743564689910855094999684715058900094075651669829094866457441212257056679561502722619381761799892347583494764928994160795397990274125032309627128914230091727137868946446256857777793471668822867531762491587494349281944389196607081645951000269041110268589172953972731566459081740741284062330752156642244113196653261938168717018187691594886020740771142677148766496000659842364655987471520951375674709931889059945800740915672659763140202607658549271973160003932844380163827248777658038263308256612113283461578817261057687246900337377086835103130582609585924775284206523054991073954001229045659843853166433646011408242215820740456213710208271045068910067292460214687082431602982030802327715761105217928148570205222490700703078144423243853910893652485155709963579210551635523143515804507132229649365666729761945217965316094254674257134431153584690214276702884784564588798144582359709830116274836427269878686364990593849251059129967195372160599118219915445690729955726363937082106597996165095365790501322916243150265460949930709329359700823849206165830162442678763559009188379689107831938061048528569839575871739435556175203304578077493851125307414196957232196499578209454686031037317994960630909337073134505826697508558236058951959714971331659235329763398776830672004007294975118392784533731268123604934753389386853394223347335536694321713209535556706901721002441537999537274636732511487119741866865604372331666213823343315664110012944540192824527276916043894851200826211610109091951281175481204745673907936105875593382907990306014526220878581482925655656611734732879085668585334793946519029792704482716954936657039422519198083749031202141874882619222948699740043804577003056730520552388974543258252590297060113484937151673342944951969060615881353169003503055739738014063488658503765226823578888935050678897725092296760830720174990835577510052091421012945639538037968241244646018966918527044135252346213965472245856824967774203085500560390904184227552842682531441771886464351823506516276047548914127867569226742710075400105698159503369046776449073657739280286529459166010345349517227137986166947060369817684008643241901446107522062382079251499653885155283230304841540364768477536354122425529860486536326339054487009262166623297506668237858341039720578676267187057679783552655317289588875607720602748901681088321132630292302104631601104359371727426946312326788420646922112448922463799269965812351735781461204639737645715503849885370648567233840982578779881694912410507916148350777726901681688702214925814886080415209176900573288079655392269430132083815403504495321516083324770403338779504854335926354983379777906370808590877354498834218045446282664616731530486037001908573640914108149425724075042606097540990657806392874728717237443092107315475109846627494979921446210784082839836663766031620338876624011303301062264381895664624586303325595358281629143856374622019025497993417192359301140184301938388838220093640336377905356582013810628890795762822398671452853337509989820108152441147025073046591689761411070357965591953669609011285933502423953413874187956372473462113546398164334796588279169125258915913633695091482825330425688155819161131144569769529915256503561868889394680744875761628344230164286443210519548214239313365561988844190968768816008160552861610143005230292196434861412472998058890213581662294729312162392526611982555373959261436860549125327965759638118937175060069851026372928685019356010779384846503860624831548596204184636854092272296392467026275897544258422258960044460527892262571849593565051158304646561659515801284119670139732434904490200069882519855499575826470945318612794637925928219034975491244809947815981896274567495402636057234005505004126251786823736584043675406942447194780821232401967246446764155020178213048376594004660053551796028846273135063026821610706241712526252385007247015260629668474321054646920363250742763789133586684193879828697743500451571260968828106885532295795416732839168903808512177022580639175164493260964409862755978887744879279261845456867579064267985461088535484685427980833965296631462507350666028628348795843481876046839672391646246515562744749596851514186575081553975915822272175043732768160502744600086515525689680785474454679028770510486688176944065103757309658177630070362389353553573498886377723806924894045961603232770854980625513046723281237035938306668498981605574010279272081671319295930820193423712614067583567815483868482779554255660635604455249803802861673186386460137342172798158360614650071595790239848898370993270885075028745395331069866002011239153288210027464172416686236081957874778844501065461472276229711627085091604647180301054171185189602199631202600559059451982729086939392649059350089788127669258986899056253204169387797117135701561715139821999903240409900240178026033785911064778461339540426581621360361884990286378695478378846903916243854806197657047581372139986312113150626748468943500445574774845308053383521572327818690993528834360159563025206070359535724513597692305343600744456426171241530939531385778548319841926043383365340053992202385862317434930251558329189708217491224082989274888782319214106715991029492096667107525897366749394320917731522340490400484225450930669240865159953247015860289478973477144944321557805366366481670742741244200632272420169365813003999411684554750789340884547291583398601078029323511350931607475951019295552432799453648335865322367090477438616177927649682985547062071175555837024131145817761262436694325947605876483238335064300123231946389007478068548346282200457811638471703959374945123295042990984494102478671809866652150494843579122005764048209320087865423737089978771315963200323426351211493935537844500015904363552054378872752182191525610880500067898430460079537796684966174560965694694785870549985069403232970167100076735239971839944830530337398512259675543982769094730307422649708862276619106090245416575694455782223558776687291818343324618888429822795329098167454379324666769743645929830202955804407019750996410840505070338642038055858678633347902183868345368567208288114668615503631913301883373076781932553699325926846540733780734126627003780938583907311944175854496400346152167966251778713030778325978057751249611317937976918539766490650042260610180084794356823674195532363436368770178959068271021697878501063978054869785604598180541794294284911873404277334280983606698778011830727698801724367019549621081318113466607300208149448064794326631074853276270343043490296645307789509290689243595755794697718070002042417232128035831840718306305874254181955863919651133207231085538130964125717933983079181677804569425907542365652896036379781062896342678420560540821324284646528875071883291974605204516358366065433173998435325350484499687792870516493598085564682012262516140160340570337581299721570075713822785767696055436403434913454716373383027504007831402702122486516187337348058479261677748109327822521679055762030604539791496152598762154134533068452251936321087745286197828347527764262874580537262364376508015268083969036167221260129255696723709397660126184952958834323536621048896896655854268452176706851403614393060182429102169059869711782405766307862966376961962592117889477296510734810821249319399719054353007132801272153655599882249446203351890697228345279883615279694449631032208113664735685837021828243590545730058172023337775429061467401113962546666746457565992338833226712075528449845741583050628252237189363535888499631607091137810750823820832150712788597263950912088352290599998672389644528211617922083628860806701574289953831147218417424968416004519016691677438252941854653372440175325807233190730980429448000196588137381339572200478242021936660333335992465161745677187570314753509013929966354123207198389852831433536542276308791948306393198976421787417952492162133469911272490026694667261979516686411187959319045475819330657932306765614904728125493080368598641189703638744739767728998108308655134596465861177249068363699449916936348071319343246204179289103095562101169341486364007073924870505623119801924122847607216344772135430909855714892319421851886094864031808434057783301377278663196060428231837055832007841734569222353397096341951198257792017752298368594307445514599950191058308972359980222436881142367762626910830132418606918504365284053331109426478690435196341866918601993157319532595805275350843287707165283090781323505304142380959919432374910139764633234279714586294461138401725451993344003846129440094820177641168806980012276465172908559589228240814012452899457135447357058792468972610767820205649658173550940009614732641141511311212851483424727636124898120606551717004752671868726704144583292813272885194592691432333883627956511465994237100553305458401382637327387772431935055381489839446365649373439393385934322049898345984362500672201092006680797601828229493571396581574849171682136165002478364373730829344501330861164786720355228689288715293257752439302091044576785092442633834931918751431013582026659719972561070107167006800061802921312877041918985496297056718661095606766604990413378342039063491850664959407635104142301022204760340770884542779062943965506212405050560142857314362427912434275813558350451487809999192059652892520647158438776837617710925434154687797864783306958240837289868674357766927140405520874300078324503287272076511312098419816445710728240048240595794331009765842693968304294799837718006891651520287464170474712493181108883379170338207319160798572239797901348145210466462773853846907623282811691676542667698323764040119001436614230785874447067803932773102808461492002079937473132142644823679406699842807471095596827835729770644090677243791426267686434122101619811847132394317789645460222941035117779107989192546521817391693247610695548833091371079420150623151580842393059979156529425067821638401204137203195280644462037650145076585622322638030136702216704574494674271380410550694863579066568341397190607265877282701707644959806330681772944891536568460906346164372042012447874872194554722897057095911449385716333038551851806953299912895425471363866374296464786237020571759294017951040315743495349636999687734766883968405997224435934610300684463406605701746714309421396852380749181098436664530040446590789828303304181754534310548524461486934831145168624417049997921131085807799136081848028951960836221230652418383279199868758706576768198578227918871235308912925576661723857182514891372733818494291538785462938016977080140840124410137553132815109817444341601135429995118865311968379535620934163144645007287864006523670040552508080027465534945319466926659843201705176571773740218370494509663783280316439010470487671718729367281970693534522632053286859559191651597167845339383262950168296978767989181802494336446436681911975426465520949048914442291413209620905038868264303733184190111090546148243079956298782493358338419617825812525484090470573201452903424690319908204965664958576967114824770692397195639018949962681186305314876945530966651136025560268886552854648804536380538703779385082838150593702027964780294868943660967192171444882645403365727932095877428575185980378053346001061246776799481524797201487551252642668430338753458868323879265359068582616651544915768764163640533801148837033539707680746210269129815661643693417573729393834706026642041087253799247349120799285880192640471055822689747046160245721077987902522316706812951607697695735333704584597689575864510739070166918033012601655142791287699757897306937345540709968285998152269420501287697996845220387119062131660364024112684728144785551559581455223641207316558485370847662210343263946008378250633924935041779338227965369761972680879128402969464307236635613164798366190070646187349229669557357912629708580276797657718717020903576649478835371283244891334742240594951554676530458473227815208160858261435115672835729438953623874443555278759758373455318748515327460013150486982313009295729444342707700029411227307936860767232383748591656729177252618288349398515726842169760633431379019912851349498977111235565731545658556285367568085425600837856210086123110795830396030651108915774662869162343330523386713073411553014484036164143561224095317596149032099517707224006885874171138091606957215972752290559574677235668499305841933855372892320096039369316064815870214980394706127902940018314463580484205809263106578504184990595516220617664146593282178694309374888084364757873619759548225062496239297633821125679073428007620344340020955776501908524854541942459420587023444007047754750005740854308304789366874760223779491150246600979830828433682170158411978323547611552439111243485342427916407606341748852127050832534047083453389874192553415585156961059428751038003581528997206907949358013983105522841421707108987780650119965791726039128759893215910019003979679048397277394589613465348802721950438522851959711522537283890660353139872075200089187004002913522721991356519858026516525074090158438065934668166085132155760629162653278402535504257016395374811713326162015073040880811253156217545548982309335677625679160232185730563680234430063643058581876882495662949372430405988926075978530108423593611507660393878860933832993968803419962861185121710866803875925449788127148901452878153683440942258973763805636441753472371852452787961427150037602499115692540229240929327496502043524129986157625008558978751401538149472593382226132010012668447203405317381848648563892374964516916891761818241235632449068828046108799690324126236830710295494288634405252479743484391421127819355928191821921660587479578532648675527349423140425522128775139375183682729723882982916959551226078540310680254072122123339881897081904741851530224868889407311605832248136411610495248658653179913710200251253712329338142748400901716346958145082368156052024553683331978063152559378240844232586808693023262642447499809505172444436527001152152596662179961637077734847981274094342075255502287169315705550324585767662279614070739957946833376490535475665537970082068486810493429903112360516608597352411891719554903803461567278186965122147306555270763392344204869664245418066856937987723778116489155211306282513065506865012661563576522279849008901969912589306678219415417022148772520480698865442595111199911519537052683609263093720593629305000947446889429806890466835178674157429637064095101804980554135152076376521441245457907899330508484269193804996387628334364602079846194659843021784044364026460242666938533744190279561626427107596790397337756680947584466260599861649465569327829213101130098185778493569998626525996487662512682655928891101651786144676599155264663249865822129123919368800597017950026987814970569890672818985536755779247561125062892927477865361677475892733069448151992190370208484603735028176958952568158959164706833906259626011709112957449298756731135167510306988234863542090065773567891141522316638547014995065082096256161811168734417344094223769086634957404081553893366374764695559817726490739619997926031612031092841107615636138980170631160174997451239271052021347409804148692937487524148706898099535088706945553866124239891976032596756588236042271509302880027021645200134068157252114095420695629387395042924235809401896927821393625521936768340499353136316895119432645456802688305280301229393186889691757414815528813687856316972997276626822745987195996263493783322645835256782767940532611466515793349085894914335588114108394431943804505532402793023076661207034440352468439004906990640116374047338532836981574847539107584799258074660846530861425472845884240045906694178758358554973668228461179971854839609855244273292099883966069041893164277801285531234186505779455102215496065844436672002610715932396941908153418968963688751050786444060501261741346774783970237735319676365014377948516725033003298724664828217696747978394256172457405719115755318002389703490457631895536750808132888620377891597396287662786649211951927786852686609502639447924795543398422483941705615380467435158376845752955104500125807392661654890504393076384072864745713005689270310907608682182079440006669043572677281840833384486595212257791066867361570102735024820775792614566115218980007261979852105370112330974985654223675002295028316285075587307468827675789722942278203051151598036639391106520011319943995271374818347712595567781166084486497408614880735694388355702999729912541915228669106692403269075200971511868626517255822551929586202883035244564400038994457196053503934173640198034198689000932423327688049465190125992816466762575520918067219695557311647840592789737091993511644048879933572626423618623008750463482539948397690934870506247730072795427722976509686943011428953554049687946130284602059216611998417968348840006933804005620989822542280388868245973548164277693887341138356015245089062404175990583614155972414124719432530458589073889537287295216655115384720659012483494905292758402837868764160745275602129160407175898295873055519750827010866704785911860450475436594352664336932772925912642005301281977910893795962573751240943002870075313525460198478054751947342364795770697386045793665730394876876577444973174046625211254469525301299780548875610410029869285604153573557779049737360523915464565758814766141130517490028240203386012837007221511562922730977018513127324072838491585934893334012606719571649559893650104993973148923792213507037878006558047674892867047035467043754629141223366470059279360758428648400960888008120656982165923130186619887245527372622306252797145407146920248644403855778584001450649928741318495981318111661812294324190580288286131057055757959460357359977250189151105647792622299681087217317636606505640997001484321839800416827073747839399095843845462452294418219360758818633375668160796456131624593204928580337479790104473911182670134255078821246123127102454164718666884358271212011739801722918903431678320936525666883179708013490463395673474537659454271668516870983267670438830996707971217065436285205272431918817515642592984384458046868792044220159320171191698908230416199831496458259754067810152265363937580535088369873689417294923975685141517053127996971103907599387995842150951517661375741167339994734058129686438750943637678369519056254214593663507172643416916894500926425407241061438689679517189183874916503607451239538409432406096489313188453213846695470902304969340091790531175063127415383835445778975856100107148452672894345952010114241395449804612715710749156183440329618002411176638608355529735881969824775553284564331846928410035444715832052936567500739507709505067813365324805516330893466143777305789219067149239859266792922948402655603250304420930352582131770872046017933108674487952208743892913631372647220877653384457229202577569061780223202929523680307603566930633429666197225854132166945487918269077446360549531311395471913438662229539356374280791175150881257513349600640670471220715899208765162561222348364719213843490384123261398844874022204241081364554522206069063789657063999169255912735360048961406479043693069568910743362553500053235037929955561797426424276080620458317330035402816363905341203578898708057737028795355763853809515889024002087656974352232478173598392576322166410790597497968396348242669067509671809563107025151444567343325101276413506116625199779384268456709281764874935825196829774153195162663007647278386360525304454683510468210798080177436316161433732123455519672196301310553589662411140259867658334635450912012591354970571115530924871809676801092389548575696704711816721383379735105379406498535977182458954000625588045983074510750156822166872934692739580333582070218356900607966442119980889926571479776939147428526396342858964313002446178175873931365081076945866346182507888110407060526714796685127421241694081145646429529382566022314372654333284400713555760747632460744873955772215733279869312820605326973962317701355260127334778274413141990454349746364739100915872515068028153736795625712784502376133813631379872415707508209905322006148707638611578140679924066604253033493877850084778097206899315022963314311062701805927308225468284125690476817704133980419454944730436557107063241400130817472932376262456741948383093417811236535788874679756164733770023133239006051363083782680767832018300123384285798820972190163362295027568567583455884967211282157086459806666176924968319561675043024228209951400522649148569904086914081270876774284017317492451306283816678032058113697278037920221401080744526171527497483242173569874673728817850049162208290663213128191481709848489866795950851260799826667630627410657798861667965345137965127588198630829846772029589512790119798709474547699888093308256138311627318131547581945055214500238434664734611556027068395486044114916468000676035980769873194943397370343196328485418881629588081226729007115971875808657536629938845761557600818781706348562234591638906292257238037570563293752758171441183217040826515549251824563899811822944696348433002925414220613576933146811937710809107841195937798767407856169187078486592465558858809882464573878498449045531748953897097336466634192006416119115969209550377766007772158690896036967832722600688091633915778194851802363577333379734632079379739812495432695184438535033496679128376882224926661433460731115455303523797007833186322387759514118038651815866303785937736604411797282998260232812285998266887561941160995187264512762259647336616284881197671294604282258623484499712361200051962209539411035106291915587991011930077448416657973392963662271938865263813007981361456120206496423433199712722003970051887838554379549980195359530922183295763546882192356877912207403099284527803121349696861679850734681668818663322279174195630144913079179517839546236576821119641771477753972583045815343010851225107340247515754876505887108019424148710517777882996349106403123204220694647276881935140188139036683413615151294118765725699227656078274905469632140127316296233107667337591701817421128680837184151846833645090810754698077317647419330662023138693458001948776843716594298311827033178438076417395880204894274228328830392943178425861971932860458667044723282166979081876531154533010931185930896642656777113978138647564988464470511238272220472609751107089459987140917384081918008242609197920259211372244660370715413744998427396033482070631696783267891163577295441909400452340179315722857084569447085093798253744740748809933213999023801093769513564765200155489990320923510340622073664861111445526589532275043962016974155623798514020552887373923594425595451792960290098605853283170052028709891737701852016680886128989182819833241430078852544934364387600999341177214446125948344297678058993241593870709700317408175605769816620301481769781571074341411604004924213879728419086866930489323980232544953437361243450262194227908330813122568004863825919695023900200437926577084803983313425800693353538726334248158792106935374314699621238933910523897408182339677050348971746120887843694302623793345224954199604224272062676015314005720753428437670415394994444418535344578644922008623246345087457099837659332677069442872225136723641659268331750015124833332224301085073557206201449631695580324907726162493893477202571944303555928576791911630633574127154370166285400965160213716778410254888165921873252190702395949577401622920256893630237749493285131577829827288451988363139778334352899713934668032052640718147283435753027976879847483237962961990427594378833835799821076898499109809192227621045133783061958293438425070270530889724634178168372796591572262337875439317518047985809213325389834505329043682468569767988809521093186491205063024641121153376466506138229565942341194446433481940228793877848450891962351244154487072863605397113135151771296531338597242065870734966134166433224757037465911861433267798742429434973690358632753489286143709567549789022600894350157203904535147136606940858341691874536615833223724635901110337350647805837440513703052654284242094495246571861249045880526676466975243374236296116224729961727910063783058874908003005304598909820891244565298970155370962713539295093477880009784282089012511912483479277261900501103491767807635684040109290243891273746049297151958609503170413888416364382976102348987440325320116096654385005806306141940953998012139201197495010845595158817345917569128503650781558930604663791663992430024699574313771138254218370904084353652801677811098280562246456478269652507790452017202263859648270922131840337388333143524096866456948758434477381197590711362246666623267219464317438079969171440546589813456088696755241546941445606435099298255659727937745994943199897528005523618723018562511252379945119253735420909173826999007503885223498439867285866621211985155543420708081512197817575863185124536072131931239718599549690069717642025053983422799829496148237121470677580962834019563714733992960418929150131360182019089136197931280831370363422547285105005933491371098025186901708822647744478216688981296653818152645731058911482801895502152214061807614160041131418445984002072610204765185394158872019857273904098594789297160239068258232285845684016719644290580456066400991466645909935454286175837630867826976225445293630266426915156466150446808708425751128168246920482590979304239480306016656699255602773238174515885738377020442844584613769809436161377080449996881290977215066772241724428760748618917202440021341467209954687981007312143506830954558394654838578662153991588095226624473581839100661431167099428454349589155039906657452420552437393771832323164946905143546183507998757542213147349509450845234216828978960932111255439924817732666722562785427298692984591847202934169728077129984318964044144658093752567632112685704104614161994772350055591218767490328464299788778331353280366125828568199059030890337865212763961333779620629931856522312305423902146150157933108082844037811201623745204959274241403574269999037924796746561375492371000610667544443927257835431553372165644211762085246055836320623159677746930666397088302248573346026894109982212482593153583099317074805328760261355412171532600454054279237183906631963711713599439748715915094778179138860151680558226973814140916448278944676197489625175013583247583228990882305608797896467670993071998104410271788967719044766511727280560311459376681368183061620075099454587319245426117964574010021795944073744792393887728357795348436390567874787389431319090625271512754516136370191928261923190566072566121885207344065815084350514372348139808749219270305353365750224743799352280810544777339279102228248459141279524922956267307721169761005521075384364429214248050392522799947647612596495465217558265287592419236456437163522122236228547401955646831068718957132246365705549214961215603176453572665839025596550954396453439054518028834895630686838085022902742901403684104537090288975497840871096391192817764877517133532446241438995921474419285427513576555222784873320184372867385365369583188942950976464330067941002869283795466471473268239334224030453811264052846345810502585977293228018148303923923049321822392952164432809587520887739868151927861625484242598753131514341233487325001413000317017014437224672458299391058083850030493211679555804553310649671780752436553775290474524847234734201852000371926874353963942856410668095650248129763509663664019969577742943273105328853847149274806747123400426226567137095774696874078952580020903010310768112555506778254661274007777639691440108927643731026787443967218983688938357644908576157639689147062066399591469050019899258252675664322848447454930479446518003512868676233140692973206822085070193358743393267291593005775687245560681093005459300212620514278896198440623242094758731377083075492990557363886011823696196252322975741932552562584723293835168286953251229454021740213957582667815523583504772986851774772086795726551880155502551756185025316022923115743262099695178130590022161282752204724176482072084576263975666270870474965612634235237799423108387880213022242715651125403352798488497044123674439452694806780687241277444781458607662038815313911913945262653707852673064263706849441078514758783468117263800465059298541373543747493379921083987575964064209184170174349283476841755008194320446603693143944922365108794444732332296832361852325853762670896828359571010508207572926866614581306762108181899864788370370983570211972339419866347506797513604812690661708194404471223743283655833436697617621026172846930732948879677560453212989174858143299533957784481346948584347405128515033506128792765044350620234122131378894495748260481530615885948573272858931059661926906522629972534535415824131826515567027736162204833639249957413096205283560382450290886466930815889386110855260721373024004744346653409552110091501563601345005981997078311180593274007619397027899463155008989471657129212926717040139866764776302913886166486811255616601833335144181098210042120612135633701543714210582757389916869511327851000450107281478359573703364869538558759448795044701007138155661859823708081592782450367216811576056160677650857955981182299883057264033333573293678440162522790884678366351180728156132637064381930984852904437086423511037006136120330874787570840489539948980217767281269099799578833140388048125649449526988879915000470543843392797248126946946306200336074148826513103643132273238902008283922893724019038022909722607830792646848729358806308130752555584295503328478020990215505781074159174078413252904576756491824297752788860859674622436680615021544533521259417723377639754393411384720192170849805184918381578662723207687915599720665404092570132066442689000469530663044010249623160386768254608406084210170172297867033231415831019092072639114997043277723788322060757389622873758748179261927956754875812572147560597336968192997979624777052850471247890099378645441596445189268715150212325323169857811251152635178635933778229010840330466896275253324031583350654449735925887464288540011166160297060925410184626952719620624698112430235892979347467018348733186427945336774076822797611524917614534954880149340616641793561315756248403392554035390417034305344621783276428662269499288998871434650261605424262907742432163924027808582051616485011233706427617402947238553494160523232005182140222331828119644868564475784714299667311451310418523474512740587352208354778818220957418065813713137413070577984347175486431892801495571399701566367385628140003353349584143689295074393568930944924505312755459912758333435901831111457330138357285684437243167557606982475482159725373065641853203311702701749603730801704139903005008843260435839020090447243707986595786165815683312375517012677267513530601293386468489405833020346959338950866176208770585337943236555703244367761176421625381457295755134792141288112394193377779089379477219529113467748726757230384357413870509891177320871642239738715762726591748041952987599055980409859929780224187287643828411932597203139283810631524134993332191824382360418214504785144127830508401995774532114624543469625137799560797910611991204729219082403996005827635240876073175219050305498056435300629705983283449658046926832448202992788983964656040236072406333934186635186626527520674828172302611573864821686169164991367145634476970439264893903172507054538856500248289019841692634988275641859583379593586770379879610267405888122375764165149774893435795748882294481988869146013317076968346006371082312134568973437414019838222167389761128102555667396913535321604386969873317139501679331185494984851445987381672010890865998642991962122013705493648150094546373252824409194448585760597849531902481955535983071854281984795140821717755462924897975676407554843475998317097421752875012091824577684585710565163432291683650234514433218044494234101850605151088840615720552910687429395260851803425357366350354101558126362145082830559783507027483815905645105828950082864314961019751919283688661741315578147560079688091170816633151335608202275015699331884527779304568997454748839807785503612031761515502541300878458523318284436806737990269050248822231001119399431917504966918480841372693781244029275136850736083924372143016475390348025735674212426780704939220901372725636715506987658744329097006892637459708719174559817689885337754772404523988575837124119034217116472262668793170507884909772878142363580881842962560414275596927464447481241725976255287883081241451237623776020935957354558350044499450039817119733717231833798289719288329884076988297898365147452876729784420351093644141183724007966043010584970590036185653108311013727557422632544004019402219107543141713660211278393080141579993405393571725758410348013241372243272857460681629180825769465501827967186865929189999494049156629871493693094611604707105035249996613114042732049826659774600013112038265333578035912993442623629739819974267830435412669598653478290642623322963824830561910181335771230486447601688793111431076661484981001426418161605526665122358607594648174281049116951078557628513382591924622404134689330583408685889314986237245930235876300400747727694337234064316271001164810324895403546533221316497706014395383795823664643685970641236206940728975686786878677724475358710340308002150182216543819828985305768273123677816434595667049154292471433076191387712509015722660848153819615854132209649293339258848444626658714975204475802243285887115002449983043564011643500370516046315336409276114441369246558691646326856060292864347992378711143729063915445794662831636422353263431055760208581948060961849201606733275626685754150201605414149856232447391440503110241133069536846180985702685690257940001321825309842597236495478220597865495511257166079282516462792582956387347004283959744994515139132429875524540718370209568942167704272053915923709081201269348316764589601508841243899689646557124599381748209252932094233375600381266676096513706741879912079180365082784738650074568208231686230132729117620409853258720012376933901667086627406042912594706926247424489280489820486599907167624590659832772320852880131698425756627857205563395772676778019445304502916225364180212728242966164506568959610204929378973212706000008624777160209304815161766774222859322308349722246538277399670260734376755226491870730325110309916045080329011255549353387265720144519299215426941722060168237137848570232526691526510555288883519646590731967024993835144071625581026528914450141443275419490677786541629631035376591452884989111616125639840617113801412008191570572800865476044672290528765347664038826438996562256021755113308013438023474075793180430855954221867408829163373049069266819064088706468782374560969601329150623780913131718373507800575887849189205573585976611189431744398384124491255041631766690787383241732563867672855214212336268075884176942878625381909352564121980217880715269538872758845830260308486045105039008951234444717722902964496129842058566215096974138381159828648883609768706875605675104559067401316412126470980125349105393741745610236719136594708306383834189838169578571878137174657766407184085859386781946284036986929047832348948353596686538604369785506004902069829228858078576234070946164037055431499934001944862255578394547906902527041317163535841029283822296762706734390896379771787981285937743066849904437616927543429663318323126485605678905424669534008328836413299369184975167025412395877258042966929036606978952875463316551363180296606210398456947721601783133784395605072302038316646899121869394426083908792975197629699082225553725036117527632837558369178663738595962532674088997190737397640121847003725075743681101227405446900128062089993342992055567724753185603199110933950023860094343067570696109422379637592172230610630761413040592473080659831912851294707630970988157000229007899239404571091802663582760350155789567233829929693752016184346655820402798658823408511720242672023589497059939036680663168227148445009095310983827928416116019242553853547693772022206956329583595367930409336710490467949429517227862983238258996004900894229087511407063126482433563828420226731161560625582905277255163410293190559803721015843318889649704062500573650037000255974254852831282264418570924336086539596680523066327562351775362222060614965372679983472708334741346303658605730059977976244048723012540448363730974276919955253996041197271540702327773955542187403025191443183964991455850417274385364681966227169474067595576804567696047537609709374573899035239705010370615293901230106306214811373443554087699228871978019901401620065418131085655418684962001295677719223132748715242958850655604589573932642639303083489362497207877077249916123938430031266210282635192424187243623825780717767301382447096125609574571791587746072861243264748199473063753785861301929174019063016893728553301738972532227108039127939915679004554715314136900676938403999189055280139855953432876394501997776767114917663408382646480265891204566385218424510073548214858674491935302904716801664785574754092524148404690425846941035791076787838363588469342053341516233695079777160131045955834501487316332748665407294325735089708292568198775840583832174210813766057714646659123403488255208136353535897515880591461716602048539415397807172033556584117169922095366487634166506463338360062095931265379899265231592877795595524158954706349072659618802641165238391232742567837961666614001332327691779303049931712107190795232307590228696551679864593984927906892811173580458726862264708561188505715207651730105938860294578166095665563338150152946291907990003979531101124642908093763299352222088817345302933223578160342886227999135654053657258197298216133351923420836664679879842396106460923710318106053488821134407516173977903278042160169529292871670342687242534911593492397312738529440278795390961481990519187235412858859196357558383029654812346842120685714596953987009723085030703237613048276007839513245382214654450120192487901236380230278148432553918652676344771651421034895197416610784512064110756264384369847143312247850159074427819963362375021289314450197724511030437895423754327559857733460772765526073480824263915810857988624714169228565424384397796393438432273198366035706407494922839355502658852270862975665540039909398358951329491992105357719810451668918285428505972760575336246237261981061157877990460373276110301054325306838050385792969751966423064540093088805899938304145251500329503706063814806750224009217175958883376095614590695113507189543527392926007363082641271032816409794134484779328456598241216939463943513648280844372568229464216781927346956852608389794524115123284766577184591731288789080543241381354059653859819476832081832119454723982753035616171944072126577216069155708478075964493228309205556600209362434890278713153589365831862229882817842810105680564547502235463962095652345041879317049898629749171986003498222867115555661735737905564213889031646859387106369259026707242291073869600594290043142495518161628979203585540977218183780321849909427724228255133158675153809545375910497821941795571643942862868971491754535629177106132522433417757278515077675671631705315151818209977079876893165382370013488462508606341898856434687572210174756538286503383334315317793757152293250444969266145911288893485685492526770378234092695664189564565521672627668629780279253451317755599024700332884142968102170847181055986013691970638910536060440919184497955506753018555836472822300631943632321472931444583195804837398085392002277449220906019907541753139692795117402011145067892375289433669172496204090389947832262297291678076052193792400065426079604695437918052163580434818136725479891179366937300439114288528265069589629188886460222862464434254182514082823947316069897380786704360127747430855049432086430344748576952162278363860688939764128970559964255225919663876666679000358919153907072635338847386492674166029531416539901809966819261680087221101366806712498231489721434731092257820480178765310939077747729790015756805080165235713746678240053406963008992973717094988628777838971782610011134599205867002674913656280093533043033994753378454260899290863837994525620931949786078522047437345960455640776297241942462777450942913803637449652184015332278270315486194163260583371376808100042674248145498662897058284812921450492770904345050911588601562586719912047779077022506132708656532300673868858276097426987485513156519019658865397808696213285041988438370089108716110991575825416087533977163827481339975849751731198690245341670127263759010365420643961078706358300801708722609473765458416195621070401415453249478170835165211234409450636264482625806847134308182292708974644085462333548748570298061144838548399250246278950096869438018237666107898693734967765324407517434845645678746682148716182530157774186788576639685044825662638707421990340347975413663142415295961138747276909310223169298897177392305965268874684604018707791655285285811454413224049424884873062226419121601742804193849919758392245728197454023138397161853335201850187632721457564082843877648701346741465650105637248939949938566791265348821525572197785624641766037354706084084753537601466129528601676462076040799700209876303451830370253940907614566983965634409114061591589154123481599166756347068510286551242430171555916945521261881227923119823183473474567936131765478665840991948776281957078056010001960497777865462249501552978936748263601359063639552440930018587356548874488443089177941874486937405511401236719575213984292384018700932109783532329299758037154466594267771613388610617587045444255957797126504178742291578606889391319609422821093325560005849065383105754914237310312534871294812120505536981059746906441741085456037627544775159170424097552858047706355117779066384808703845244600822756963631814721338208204295111630514619266268915776258740365997337830211816834509202964339352274971122192414072222363329020740617944574889496859715935471500880431997950722095803694704834708227599453483007315781408487244181805747347772841778778067896691887979610140517726897715330749781784353274196237952658251054536645873104487733831002874612629214411200417511229644085403927246643675628907632541657050155475962825659420910901123304622618056984176807270358187929987113990480684255777973464022476551323600812868211405377243573004394057321235236976223447480641858800226567899204174796653105927776429085091052643208803849546415096315912823367266444953631534357883334633900424060096450038896818956424027625453026058296880089521547383421269900814888588362518999326323334011324242049212465781228022818700569088660966046235475336537670940849838583851154388764197160334405323046036660161021587710619209927336948476466125388915280642358902773290230165332757658857867544640261329761067759543438052739930213712023183764226450747622383653046067434896144926545081125460610383837926282259218925887554864585079318775625893089819833334691650358603507251969575447243112944776255085254162283337170666248877711772575955659237356831912038100071605768531765812260778831808505064033837488202533318148627298815478024461333267263744664912090643164358845943820750467642268008765886626027711431079029030348617125933463634455358736039064797650244997770044108929893972516460316140514595287234013154014692319266980500858462425493640709645545727804825568758086648118960927959916383143333623226766089197121529005118623288396566048855013603910262775980923834336537761674708342922173146077589159365638235054717532013784456348189750429108518973380839108672577623925140311161124613654295077898229726922975455813988702600345207876048021418342527334373553152398864601434000080486936067124673478057825081620896618106699900105014087254417124967968856317136695876470527055984728483332910761598194000394398258181950345795924274312584019239577792638467120968635343000558238619851010403550984587965750218738097738976938982338001870391599428141107300986893449578753593159061268086106477742258704238629682949761126404085105923250172846162674973266488423348244160846096360644127788796102356729232696462520155633381430339720902839440500853449112432522647449849462649037569274296842973435105663714311723713958019255078864458010873912409230274172622066359227127682954153160148136561484290910433032651391636475284808401937352058149935879569938104876200053534138632602734278592139292098120555121572371447150302263076670621396976119765684640906466650926906875596143924938731906788778185825775316016387113357347011502240018705998156022802555223544142191523963793633527935081345606106584650922718665551546572150729003301878429797720255265899821506050923932407199610877608709207575585869793538448851796275901416365084134131271939512970657491636505685026897539919394303522947357457069422391142397096084475653442603142161865684698328568555732329138021728330299403946414380954731529605466019820481614148921391192075219778434399828251773992438410748891316947097757611237546224109711681601204992097937190083589435070023503185380813836885257964176328471704999194106019044877177576827793036572256099921050749141787709935535892828059933412632964323365659692522781326560233543291185176041153035710091359064743916616261045557092537330287511773777915454763320141440649141544304517811465397301266223332056534726680127293161071967933791108065588811576182309918982859694525610044624403188043638853785396636651375656975070628481219819755732355828688682937451568353046552630228184448767955656455914586122240648059361138033816209583159045373911671402962346663438922369328511506759139192169156055863036597430106847973744788965019491106801106956181318337525000649335604147799961959606797338487697686513537896524153971186530314849347878736693498405839336396632286420347005519202772652107401178183748951439466018188932180632332484049307435050608609906723869404373967654351197135121511232646427558214828032867695850254504444685664199503755151561263586849505973548507381213364282626333379498592227208755497904941019855458620196977347118871082441110872041449122667136574701610686276344449354180696072694671355890892493568501729742660405883272265534315848103411134785531491540352321510255629379020586977577508154497220336526348108788932641118596664243883779878367435139499083621584466988104902197971408547600134558219690335049961875014688686585737502682989610388612904783670426336853178209556370907350527980844458198688307313274322536647907009931611241555372102135972411729485314325020363164672923833321704325793161490409939296369048788810656632738515957894890373736444831933448126247946870738269853807229241042400740814284747437416511108711513027476194193266451576896509406614836113467384942612646732564970135094539849463739968452416215091865759908165108805870813912511978333284550917856102280053993275221706553166398462670794181701709873108238267528639077699547223893840161433539480923318375114291860920851387110856262387229551812742832026018997696528689163863737546399073954881284150835362808946986523096705931623744694517053425558717444181536749268335160658620893140200407377409161867613612951267494436759452300576630768392825205206758231902579759184979482218833633993857881666321991036010503974260374295102561544615354821365101482792356510157358533499402070296042045347500490741675982918998704094418570359113219208590946715965437126439913640764420140895753409900140906436086664466560738819814240318451216556175719957805505648309309375457028554502707457745926131784057165425080192551698103531990201532567032460595693970739323729323684890158021197466590093362987985347295630061814655561307250560162902567142410864607529490743085460156216510169944866902025737008534103250934256550292140256191776616963400184797932985564572916932998522616575284996707522098992466859561411678149496268375126159845299203463174554396615334954319019111085325918316987424031007659482673212650487942349368189739695745971309090142500344569561068792285323055998273262177423108471714670979332078605874341619662723115083710086766146945796964432637588951298346467964822564825049085412605643938394331590644348683369211056817102855410418154577813729392011182617529440494980033248375862284636597998502238045480500386163360488201823729772274979371886554213333780768333259083491533717637195919636170261966615382018026622623103294356396309997470424417960846389810535659438883754317013984934581201664515315993017048832062251783831338952658303810899561051113344104845397576238092149018052664942236383541237256383984583643114948343460384548038104436779186803327853169402493502806078152524469342345949567892121632959356618483567311995226152810815774950588270051775191928752056141618873914096224152896977042248127719898341994371369104929790948923421875721216590334041552457476339345175754817820402153703547657903037393205238127210312131719856042778286682618610137953002561421156380650010492674698064300467308796024444760188388071848949900427280816545429164646438196143984206216138643548019798057889332322818351429671827953342020801770722328202114575502034395990110905832789901215096909064637315331442582842046015829669560413188744302876952678598453399934211556551818478313530900379889414269709389474430761181378438659338447773252854077805098798759644854640626318127853542910268903511432795393902572721116232608317874283303691738077880201951275502225674922918334684708408514682951148120658331645415714360173383516727221005567946102930299345190555014418445793500209304464439693192866130878589580044951919181947265100125394800354302977315138018912630346331154737184202222178016557190952365869607528139438009008686613167789122925753074674110990565556989728799070473872534953828637125056663983173505909623640324549997864933643778846147970574118027843316615419128811611754722281572387250474437082057934655336541710410274653230701961362022159191666337610780593264488011949238681405066759918885551302259655179104007087685677116903161624724653686690903400896864116862676869260091497999965954377602364228671262900855657384941772353034016161963710990266785192678650659933399387483211947028200788992402738932536977474775966899474661545072749855431848050429186714666029483967796723966304548452655164051122373962953943984731550690274748300714706134229714866487242796517891992319356892598491316536881848850298321381819878431852506044212977201701808868276290528176910257256593606947895139512510162352773896681755146049034413061566565934899739535477990663830644154201583209828514177592891401980546464853252633372310009294938752630862972685538759627435729767294470794949534346203754695111734712499077312358192301342352557047001721677810525096163742167841076404797754510484821736521684185709351612016360672244526724331942786256855493319693705345268688526582764875254705089198373477190183665308382382653809573807678433294671354245415863001924056911872253858295727500258316987594281081387868040791194791530944887087073012297453176621705306691540462020901621828955412442483038441341661114121494084361606177680762945671810717321690789076595785704168879616119381299275531578578042484341336698291236696267298846209170858459117649721463992874577905915901734230715141479945274251736402512678264886521106203099092330406367743674281986146076742371173650813038081182366802802550497842166743920276383176805335008897961287379319588416822246639750921434104700799728590241650052001835959933095600961163986539863834330811110556521406622445158264453600197146959648752972159024327781793348739731911626473263884230836377371586035680479211125758639433952469082900303325613108283561664698458457480542052432350790781027183230096691761435590489008805699271900751813305437759200888118438691459449106217249987172581307942405174749701080110484779542586825987231902830877880573154344011624636300343813315603812941901931185098429883515736881751221917997696697626945004099305994695337898268273901282049593603523882283231443565777882468046800062388646147403483745927003074096317792270541492312391428334063862835910667567748661263317103074617100002377474284481847887771116047483300517909887137036064186571057177739449252418434498954328149009262026673100194675308859333687936683150083559026475257600533008318323150538441321817719228165765118950489013724413495691744728097232338507165670296752805492293168215780465850595407502546898790726138568158624641940708998904088241930232794661911573121450472468605267895885050720917318691186035552088085471262537185635885260513721234110729797697511484235228094778538322997441746074649119872405687223698432763326310944160171205684964902839140755895650733120790787630891238879453134846992100320132675352587496983607602033746225219940693345705138021454835904900824128317643143873954733424494965368287101456474262880751713401777624246818094988097239007609140548048140639859570867815303381562206522449201595008656012586140485669560419455759636551602790935947686923396777393700734715321828045057926354695363902428522105194833089003809165103066575326164747259606361802285208816476658563356992068713060062728755021362210266830572860021379191389704959282734594526270906548654502601228994377445644100807096541878944662058328864470044283056511651996123056041808731843882679132524687889655081888750111967778594128309018991401682472983533024402765611514246501612467639849112054557935911874788438458452791440912847457358780103509289709675670682158990870017758161387810498011656020335833442986216980336687390136804797925155462779746869881733262082820162639841812681443832657101912051943923289157405092867344467983915914401604417467667975483875672671340191965323134018614195815166888137578909610991152004384309407604548237980156354777634327607306323950548512072624234132222797859711759822551563990998791211202969736161155786912499437363388592967024996640591985787829767838219076239117960558997221095322888211286978339180227642027160284006760412041847262503631300520685132876294258166142528874384798294942226322228794603628713843831649543716389549966151817722676946360508052717483382394517906409351339183336945220072070239931579881566593699019943745789678497252248604336569740012109319367121187910371110788586651015158231258010134090976596750562274471948338323673073124638358400477400819139771839661750874209409964154592566691597965786743547566537145199269836929636701364889859679569936539353531043200327282510815571664152854686914858911099602343022746299143791778890375563637975676330190932415736455439536001634744165257311219371611724589212468012953599210895672151089620502235567256303443490228002137591592852631558032483225430309855671446363921997231152875621612397746815559859996317213859636148095623873422633272936953301245724681061345932142984966811995622995750507703352299590612039317953011536727591249080443202268632913066404216758157737907539837853313349170425216522915282437989758950981808950445640721617144534765440100050258908334859004290612399938258533873616724920713667722083544188154856849586440132360964755348950105728816042862794710902752613331404540327832609739051460639606209880313532234180628486779422664409177194578651937152036541563617768702287952075646872126834543558040425025063958148718029917453611559023928063826775874717044971359813734884164889396063448935039227897526533581201566353577780267821241739828377042955678499224351236970280297230437614148725271933028744580789043247326701395229682882886548412901639071625521005427700956094389735620454413116663770764697921988179456953567376432734860247402989959196668077870801234570036001542345271871687606536905857484526702794031217501943633232351346484371571809732292844319877002529774267068142154955102707734399357043587083549411537749589535714004397032814132851088053210274206612080101437851106086125409319907000036795025887514739229417389858041204757832373750495944853632926300606745580620805700946079240339383858678640463318148686007937835256700371905894759677822885429913770442821933399045729641105672870778646067728203524565835492832429095020086309430514932855596601037554612263872135848931475730856055769447045145887448906631249183805893670885792350087654369647358764605242770692901233981042331667365746504097293665743556635081514118341666414298026715525940544375129994290455800298265301720950732143392378047963893885489187888970881848909855158686802028815591642141852798787266976107326742784347314509223209107761612212790058614000664131062214800049658719236487490024686254099346451459723420770962908748942965890544941492990787091795221998489885617112916963154874570992879987180839591387944955400919539965149892515981532540132688322167645791135319139736266535282151382788265444197473843132545599467794529060491804364005383096587854833510437956774117106627580727539617376761951430702615601111103850862923183154788066684142937230153956451955452577711210211086818812930574648424249190927543516712955769537278342014940940309312433409959181192054077806229385825045272354754557676565480460436448657300094416175908339510343897751981421882124815599228842996836849103285650512573138885437380631372330286483013950811716751408304282974787437253589909317763284522942755896124579298119589548557074223800627147086254991037716958457502297345490029810630860590495093133572963730568327296663409682188176629850950849937410104964433578863176854873274055932776446420550543960337599033820335689008114843299346937745994919890490700142207103630737746384934555747812980187815264952835597408607870002872628399624378333686848718986235007411210812910920493723614201664796904332974715569116147817498637034266416964449942792851609702204168068249315417609630256655508159587578358686037109825343978055734356099576297982916398995141398455047853769712760248227936872084770693464321267584925305964261462807749602351050782811523964558339978939394387719872741873033124246619439258886056825905483043857419244370876665705921436837345186701806314900820127723683753168912343406677041459025743740903535274722857339754223263306090051016090662856294507017658157233668429341061402138179725708881097825213104694040714971434645126737463335319562047026644045441751793099941263886735298759698214972302192764803348178566168189838474855684515057942578327229105454101988069644030310481324215372974306527181925848067239443603106404439708461920793477344791003429093012671201379214908187857823079819417683168462852546746259672614108696788958452577930407360706341282963373373297316990306723106086668483377730064303250241260173091640647771949462114008283153417847927760243894397363643271722557784869392752859098778583303808091308018562474926367350778973208088420577846919464307272034371796704734434896680832803812033411193019995663216456559882166649281431088930315903800399315006399528278802573338135829953414675141135198451634863266656223568974671414424396682829381614051712584948450867385531748908848706442777329073416092924775415372868813922980651398994996544866515764526021753764396702818575186883990585609486263165252907831664991235140208170076375040416604908360093893168922281651771315772490247633357976876773810394592966106360363193675954557913479271206403987497376585002651815489909417109506354248363759491539308723389541010824907090619762997170755186719874384270375408925946855525092907942286242731681164354200572636494430416908306791190761043256787844557596659573852420954457129800634101894937981292296190958874314614691492159800789477023730074957316828852608300274796680953244864569550665613451071505324160897900701143049912215236462576420683637433269977823966280043135364108653500645624987662559833057670085000243696378976649450691295725377372897155614048957351006594263253423207022267233174491918284038273455601086183969950894790910541965940376940464528610438043702442780165529646470488078568138678020397782081141261673696631355427587722358821432404113231383112686056939444761220045991631002442237989686340602238307939997195500831349311487697644108209365989983128018546495909555460164757674586795306683485146982303805650948820949912837963736137320225731260918192627331183658184314153804263073983422352272449550901014638173465776100372370079926409319886133641220935907620811453772612030702802235668187548261765307481915742746648901570132948131483707910586526124045494440935653338816992856042371645779433053952477638498896452145584542597995356918054424217048822515644400004765598907290760051544147571170882066366730604281927801100538161294766946596774367763497503815742571990390701723627068993173181397603283691507843143104612824491971534480614241968950155727281858353360476141529474943901493051665119398978372816096685900737671358045006356924893088558490582215630830082173507206903504962125251987865471383387662720130357527179975365212245007459617081994823799012857774699148144248223890405577542043178109656466016748180016814660373554872206429505270428051130979649565748872272580157961594576536741094240832201852902688232178065525201245701967981417581140829177937808495397745026276501523551568548805280232310369124995862413199699510143730622476318062677331974465788159781082145225073531338006156292602854608381975561445673231114553127948184875021026627549670394825818506995596029738903087568570594549185023328196492330921510620596038224752803266164228099942944384097610662511487097465937843576295569176443141891814217371245325490453400392536450371109705171305996078736000016511512135568411906696533264315912826764493806870953044049753619715478249944039088916504717610007914396217252230672095897876724145799589000851418726683460879811772777608108705751083806250758266358679736783866372125633264147901732956279193324115039039566283596383179895248933917064057205727096780840194898195940164855018249976728747691947367734593661217046412647902753948089632751811440939209549232500060176285117107675497897400663776502621924533683544386037291293416334299976407630395527369817404876082500688583603576046265111471959422199447025191967585382333005087097435671750041945708720046888351992187120114714655096525788841580907260562799091209194995926288794364457806477210234662536215844053678247676534111393201032406724193134011949915361840044339072769943722362911429555489183985443832522779754689872668647937021108514073738932739405803703929478626196753502201199037204873256774976958111508303433960299159955478027545371912784610972435545878426733590451629937001801475256001890761806058730871083154714136200797278649926743161814678128781840265476578740779308008807908454481483960466670536111766170686691077040316016280072664201955288950949168915028821960002882998043317428849371172909873782756784914859691760014724485777787708053250798174120915095067392659198135429867197491944211369250615319189694949004278850977044239074444010974447736337671636742862371952184678596878895621776617881937423023624739257112475759423294626883674550564196279543237142245546566466614431328276287050390191314373037644763514700617057875863314052758537991533363374883325627919325158233928489494030322234703431518641211783194228476010023653738989370372746548247628174313789833833287817957690380146552274331365454194928596822197919907067622166506118393775837179474636139279835101283796154625089618977158425928728368332718804456540919044766471569244717145670913796247457416328645686763572551198758835277777017261930434393688979318528858363510938933097549365345579884054542322953241349883354838647939450140597409183976192040026453535594051902731012895612829145526787061836209746145750061668984651055925603626732227966779020638327761378683671752231332106863247349011247256239578100480444474541402335240366911392437481565633442543504819132786642516208249566730175278554717786660726771277498571232531279867247816844373498300390073611887526001028083300204477251082367450172696822800291927794696042724317846151412401185860030988807151176173493172337773067438293395278782628392982569563985140073561792668119989131913186744067328385090817015525814144686507391835851911496670746797473399086137293803167307917422023869303485205346279613583927979070758834326575706002990600713855090092391794813698389737673760406314102846971828207683628103580281658842352713254697587682748591736925604523315791600867340767048696095196794773485574855997343310882646161219092219289103911876172912330682589075183052064157472464730003236834738168088968795852371454065356820185547330000482845240067512882583011560752707697041800121156540238757375093607477021054414953561952402141497313556772175034118720521643076606448968702035339603312351789936322481256505067028789235352643914435523114127441240231008840174061450590371135622358579491174530805290692240445408968218458063226955490666126755056595640522951742398845576632528188658610596105413011953985451832330176721372412164716934209286180461421472274264306197470939830592170230464837784256885227170967802038575564477284426289682453666836038567384361808291983298434840714220762668349463028550569175594809631284315464350786940088252263552804798295915049289259094169624174995521445641856235734602119495732594016813103117500903606953460180613896909540667515257032499273550808017578094086845509099733093166317272278926358937921440790568806804295295606217053225650537072702537946715654739820838577014198158918085876983548776208137466132925340950191002124966224525066991461686094530375670163858026413904153403103107616932354515264174470756177578736243636674256290802611507478245227279399648228341810661872989925883171360183027278473975856423358896083511180027997093807057211944880858166626452643837446468423435569367996628850135272572568142998333480734407821055921722430297219378095799920838145888895362816418086414522833128293786511982368389916924150531783350438833738613021645360985883333459999582881757623197210489846915604045202478770220578773917138397241053993598498070447132896077385462460213945415993124832269826460811288759030742945277167726902821924451476453562829878404503040664425970627941316518160629034369743168944034882620375258333366201249853208113778511397290920908816443347572448252519246216575930624352475806681456406055321819968069146774471504275621317652956103274571742632656621610302351038312488675304756852880435625285605067963646213030459862669952057914982692493971143542024893633318095488163898624244906444541792201996208164995780418069722465047979468537985281345123659247543242421435213252209332423535617358340466248200223937884343397121679464476821491400728472189744053048898149838557661366420145438119583330959505746723893365178992469659107364452711059451597939114463080676447332844147980246388023558715584635920057107208842964263044457692479282038284616955198447441537246833267645946905738177413463588834485224948050782966744040518946269948291643515856277420890836147954820495594073305561350717802879696431978902719591287981613688565934111132617080508845292983721867536336248227130289280671732274379083682768878658726454839786079400772814462408356542915687709540038613928284260465778266537235209347038519731336299636114780853628011247272055347935643095641118886385856153087912452034390766578666450752188699364745548034066353397316007754957947795585330743366004126717128512548425383157985888118816827965786977503182480517392708662832896993582145405711639724850672842428886654138558892768742319298078591134596696592651800620821048652165269849273892972466683324689632872360092469476796356681526428189885693265102844549418283928126399920691041164898861490104908360363621580168946203618620624045964454392226242391744099261112023417525963997002944184554930035358974513655366732212937446180566371533616176759003228466792999044090657176797768378037357359643597658133062214577362187097478612872343721534755704564812527159744384937660823268873936208697164496473102389658760914719916677967386687990031156642722813348109342363452901864666905310443855867638303216486333352137994916676175502708565440702961700237380029194763196901446477145421096856481014249359433730873733780024210034326052120300306723428593575567993283539911944552019745751156298379952799138256580632747974571610740592612293232056255901415740552234354546545686179015721171550081410670904318333541326392875874197882491205665595793507241057898543323250393475407422101818518077856807350481307615756273167847432146464003913043178900948042382408969614522995126922155626664208345587002504121361404949681983517688094219194211651609850139741901865900397506097486834723490643900190555048798523448831272778824401743617631401829823604630586397415914822181303620114934366187124886533838587171507263936430106967042122009678050001233564067868933095243784882807563449666874653446341875304914491697185848962825714576260667977015369049840183591134602061455215437832677668219002287983922872144553582966981060049670685379025919256377375477076894707477899464999719644705413583393232575366654580483310414920592954194247628253396860008066676672417177581059932376382030459985468233992372033289400325898033858119235966867240504475251094633514678361363633338065933315510419036457829838992086665779990704771780486525794763122453742378145332498954977337663534268343283068356785443649247584775986204506082993528973783370900405655691384525280807747453277313260832398364404783264558708672183342630207974069412007091704932818469536982450651066740465776586971016268707938419981391679014264163410021350111926764857284578504380966342256561255341978030097677806130862477743725509043436222152049674711057736770584083214286971219553874504719890365869082510638008738534011128961964064687346745176636416797755726157569825564022529896286578660751938398166652548784570695968395439718780045494945910052588617034909162710712591753242359402736977111337843376943463033304924783806211721257967825190060057534963172107749317713929567575783985315743144637287217912481471172543768588828715490235550670837797682255056303181673354341629408813251193305233068875050692758779788869747690624579199403842038410640187957407162830966573877579012554152770675077345948795899835809571120634377390607852140379169346917638229355826545557472799064389823870096330623975244075240107933567577476875289415417922929053427866317710407415837293342084134888476851491084853327708675685572616025351316351452571400119581656911399237806014870248654416682325282245892234591446085737183943847234667955177385293367668320505434936738348170016364775372264100603482923675150621214218042565338211915462200279473756289144679601133933025055559580785604720088700094126457768796612730124718234809646503137151025421992355611644039649976336578464773006336621744592462579236218455627159877210745609332478523330942551000778808754513644197870184584444831876391569425727390198336883950063095791937421539986823009678235420357850465472805883616554168539710669385320191966611988554550510225398077254699657521035029189634245716289933508416677960552125089525375878763152684809074202077107247622286325734047321431858121180951705890727234832983895942075492250843887049826846044152210972906055794833231588849418834182444125905994391760252045583541381796276511275196844787251101284724268622737700238465403175629604666431896034731716828144787499959976761016092337326771706470076537078751513968380367091462312406301970094667105292332090087231660911163450041165820985445298663190335128325567161243869420134573251089131554118936361759967336718083744245792349729700739030352092647136574417881264568416661796520345792334440176203510098782730910911256841685738411181170153493634988871644856884879362743678005413692277637666301192109646284959069348612941211337203556564413119407601397841004485611425222347794055295969361878267332851865513560415804673415349609773325556239381226951652332808618067317430908410956336982410184517521164361531633560175962213049151535292781828543170564464253630700787891106261085900431348118384850057402127225760896280846493132567463508448329186454370050092301647282892359418675964956450937702938117777751997205330195427744106295773281070810392332971312769933349180721006868413514256386490087839824980595666093358165988103992913529246878288036650939896514484227633384645821937924122107083349480467990840634203920862235948289448178666510932495612029425602138099015275422889168782609713932813548293465597694098360205898633013301398109563397321778109621527645960276848051180628128376441305376506033879746595309074099018232216061442078084656715813000813389264872146442984423595314017979438240020890077636764862966115108296379062968126816102766764464714860207219364676594126272434318655803802737858243594456672962501756733317728429979415594235542779379799912085114536191024376134232800942611134529802069631163785354370033368500845107542453292941634645661352728379645070018535751486516319854604375789453564310542367403620600389641069178609334766737864004457378228345739968469399104601836090817214004513714947738255683211630004089023462089491280934186633999887223303544623303717798517229332866421064864726304717809190351672516246280364936181902294698752006110559570190449830408149904106983951545967963781887717467127512940425312379188524441866315713268229311242303397731462178757991521109783815161892923681831682349905638275224834916065725528847437171609961109960879512168418416231271222249118057341099072960092411807905444039712424963183291220499518024931612637449079369780469713097333995538697589052365977333297918439766516567808505230827605464480795201891165062341369681010521558629424599590841800798675013286782453210388271066243280104935302423404781185492787299185924680302127442223987885085410977576786095904354846547092902143839908915115892657480457669630974164199129296805749813786690934055312631261729147021784526106084459258110364085492916493916024695482750962780262144726595041456804402756330562249503291155832152531672060055155374683575974910677962657091988781230543328098364327146237603002090958260572310166364288944072180709274496117710742232802395040219287290121840567167169016989135790777212368159711264111898347006469820257279162557686690035091226883632618870335010852229526160653409254330072633300312167717999709955783553518489896994091558820144472215300596955191737446400910408398883157387196925887098535412259867129972718985208466404380287961752187375001986482039061526155779807009656495846296614469225649995758150402513787587153413839231441021666608944694851001094647089787259638453268777014588775673088680845650014510808480906680052094973297000502535458778093541032231764512940680374097133117270266753301768183593009275116672796386651793726264978232534985016558519702646966556847327307282147600273568887074135793722258882478630371019567818397642995717165659956342537589554729457151504144344281171259455918130588490050302770753441265404726498801572868948572642142540999029960969865794661620383325835483600913611053613020927793588767661356690533342015020420217058341091413074646814890857511461123511303467690518053039687919899966666673720677468459831630687441620639021135720078871317845911373758352139030171214496727762885238478780229929695125140765475264753075111295105145868671528603391611761638508499053954942679945693536473816904750290835741815809483909267740853363621979633649644968220073890322949921258745742520837057514555051821835421839136951930065907939283497147222819878821774068630518563775566195459617794714106686304612755511207968615839350637051856696689042965869952554319621517098186933235419910004663200011031102394007627552471602849304230013572810279545809617003120685403607896784397289531978226140939962727766755719867963735287928155323963256636177092039514961343973144631946116810661785222489306183063769609657754288441394926792708121149148053659601469692023207466502408402667983651220310707253707106670499264029438493584305880587127919229371355439204990154775827346487686476554794958282044505450571144676656228444774383188855715335849314525635552501402067775705360002115007689430374141659183219404430605622741453147363846524755616383184260252873619327768367564387777479464920305843073986708430690404115112173593180777166933296375070040682172950531169942483363981794911811916073375030708475118464430543584347691782062765482199930666020967462122712571234541872275452936126494437773866187498251789758793677517729528851476556574810276418867802286929728456112472419666095140731759289564841358277855483124089314065130772152421318848568424568374570111819251003698933531617338020952990129340013895956599132551397639111055532790322290769026119941576007373384170965641750682707813616898201230587320085566637858452135528480229558616565319455774374973751083106744970215281173377376216343272574508851530385633861119897498185558987659928678398402663827223987863769666769348212419186655978184371939476414605524984178167643842109343846671964804845195559318824307142081388667297319477731328085353674475655866654190555770979265307238931479667386693291412811311272660511715781130643562084578794520195434753396895786845756998525252597781730064437193362273608141286101072995017823416991321854951774543062719847577558533543795828636160909146293727590348304797607069225935247732083121947543809457843660396722147958171810183102751478343739408973028964883375740764335560066356437469524392917540704899184987862192179361825568530856018171747823070043905305585754012576826866408758603707787382867644522875246323376559641988422738373082947045735298652633933689121633388206569222373375160306668801324186278579949528852679556797440568026400152277972638147961328381025961429953163881641356792800300674911969648305320010521974650326093921737253701971278168709297250332376368833179421579520773533821427433330688736553589078197409071358434883437114265592966946571476822151703388945796202046638058374545065208234681433156959415613929242270812849844883705829865519404846965627785874567723168740572873064415623869643461076871731032325241408619569072023769852319326787057457253083914229973525486754308001313448011582855618682412948907303513610358889777637374904071707905849409224118312470271556989964831554318409265012547486468993747900985313553188539227126514388708343477064417991111667467396417456942387696076421358140319176442385106305608503128340468442387038363598264548329001296281709213043106910836014841855608798025782034422186544344325214193905215266166567652756099134125983407660404827583757553873264505550845869748351161497571855097572742655934966917064611079108009264382130888787613958143509574012098657758906728683883384015038771962141838374795197981332651124291588934347789100046694339058830507435049985776028605988012691740397930262515534078289295890725430545845078767621539116883970909008214813067947641514063987690462521962807673753237475137447978021334543458676888003121231263560508952573916764024768371854638971495910317551539008300097897944812274310425281917464131423961158670745997427713690640622702426176886623601583120103859004538799423102232551857900168255708262908818747781002112780546344573994273031438908702492334512452277995309730784255385379733949827158590785927982771502855625729617967532359640813818268813022869365845710972364235681218345376352181065380176173097425568776675769686136296334884087231683341304869513138652178159304347870380050226081287597151126902879033299698511241615649056240378435044743940928111567372540318251885232868893151259676710290017252151891810756049956871789746390063520750033628286843271993757770890793791495064944338944053587469681312002969063459089645918570293244362827984000438137879573266809490474737928905427514500992287291152791682696025354842493455213506242899016664097104571841839836048998048883952575595931742233309230895024656311689768609602187954946059200097004436473855332981312987202142664097993907030092295719799268159279575352691912917346480455167641665925362459744497681323587396606612858074473608141608037795002779430013861884533526925676126959562502708250436929977088745176154897499746656599698221553383174103695589149522532059720985556265552355124400492953253972179405664647367710269772077695595708967810960360583665320063644362889319541697023663287770148469669736676699197761854280670420012092158746423719967995286142077438693179756295960001377533524875812976109388024243356148469445677445729328578931794902326623538409839681655939474138205454261233781122646275276472687111300613528473442998869804700963271521587227762423842848351628584215019506666778938919337130872653254636128323092547676492866691339383044989007047749966282771798946277698756891785625898593540267390917805188051942658407668987421574017278133271010800408264241281822305823941636130771512072688500659640995897723761192223955684169710789640148222312228504241895888732040074094727735586863330310894592522473465978519078033482475405866852343419289268704984637437817113786362953976230550384619207194637660047874972246497623159464131871470006565844869732301666657217097053795494753028088236678636339244302573301817526217176326754834726650269971307994282676965090516611419918906400613778045473981317977823556436575005375583497047038618524306141417456971728634741102428020725331216425659681470752466267268809078279912508191855055860060975310556652661164910708883282225408082918528612906216626851174780236832594894297861641633150837417384020935907921339964829845463891246162991622602182721214370043519732244482583192215947403731614148863330332609312746645580738618977875117799157366194535745043816313056100952967131586433518749581154654303089078686183615206032034375754737721037356385381674772411883547813646072101251315178175024947210014331990036221931092927238301766537535222020747595853611529950082788915427763902803204347462728072155648412413652012308634810737430866689621027095340808838171189324564262290899296684287414140909016611082925110345932249827936617151966940093000394437086430832941157877572912873715786752464792844538722266374185842841110725788074710993762899353706196402811079386648940045466951983423392900174668557125100829330416278784861333751118486649212553836331075293343341928514068163165191040827433461270189571471035686589853187859349871312038714393099881949002475126461141383734070623899520596799279227751942298318030497249739257586593538439593127137416540295814001162080448240531818799106994739911518420501537908995336535620258448432363280681696992351686681529818594604668924903037790471214552352719017472788445932832304643730812232873822844647695196932790149407368121700693433011321382059694863422453673503268741646673953402397253036835382552306804690106434197503659474240616067659659309252336280697637589590730687926381496571711897191904807097443454130345111636267768065770382999129880443260356472561979382069370139301151049904255326953508429764201239005776683157444164407825506086851605077213103863114256954797373753623352635919773693576640513676200526478260951364930621496465459089845114582703752914038432323495300994113488067699468187753057914829291620849802999317133643458858694011539492840782793679001942480705861673432111722313106682353419223255677583911814950783915455248039337805655543075403862705746982838439744018795424897888629249012801411681025861772192730047606807962678181750071521494123876388162971696586284633808371168644828906801841329303046249158743813031480046577465677888326756367781462298592448889574172083785590710345315408387858190183282503588231569256691973486352164970786341077803655284920394789486498048351874402572213835544089784634024916575266055338390440113968794455186291529708826609078178216874480505221303754521045895397510429161372197152217397662317320925668529197866828933000317349960700889883516095007682436219417147342103630951897588359019808843419007274686402357814030563641098166777697096083245515797096374250270243563861010342678314446225188853550555449065286602971273422447894606908711429747527230301735683400731078907432150277047457527115943586264770773579068343495170958376275454753704443620234597132177219356126076945058698504483663647950263743577173849919057863674697868572869543240931818177380289314122317978295730980368520078349705985542487275466413705531509263076700328920992048318816154591540922780899108661636659739962073295291954837549372430662780642519397577397208709546799227581251465765961906440552456138951156076059621827361651981908620174567000661821606652074583959308566728108296390207244198902340284648497592083311005548136675733338746018355771349878261478802592499594283831105775798124625434119057378285162688014613301436109406588432477515069300498947097409438627774033962106428359459498910827333224727387910977544183040065587812238037861165124837190176222865208219410923830802622017189326984477768680450212528590110280354801828246650396241102259970484065725639842087760452779092737393509363319564200854256457281292002954032495273366697333487780453985553336767814103202743132407467972487522210884227725191358182333260628529252627845334970887494332467943168511728022281159461194329405777710345512506601137136356890088966677755841549329209885329543884979400184065735404649507216075494951265824733436947434636710361522172441633522794025102505441307936180104762811402686402547158100717984743289806428505299520734181531614635902512403652341566485056386905074708103536255652465632939443800963546345944464705905282755581172384334521861923313598634790457800399014912730617616023615639448565584900228730611633072053550905692506823836200015825817790233985375527281228796800137250389472632515917614806877437640711111336934100216368365125620396690907791430927165880098763367900177367044477322577345530845065856383566204596931722331352414274097430611968544219313602193393013963925681136430129278991577665286323921557542059222927376384661946893908323963334724568974761991170433501728245075024250163843196060473320685459370893367612454314840552071516349751030734821863199341670977551288931827313423445068655491702535897780846610552336248045289259586190698221248105913870142387783563520645288482180767898605899061658056834531638658665756821189719441345477888619201879532616666016678169988955170814264127062474005158143319314203423113001217645225957130054467848422938241770869833631257084382054177140809818669445640315084170569672651044265269737477761841421086036815233546400586190166460383996581037240194596257327728864630367590838837422826306061196898764916330162377931510638260555508373910159584888022285665849848159466568279893626619584750976566392064015961410950184971120414277614198331983883656631144524562492653538431570695885437778328669044231369340944297627251490919550549581147146125995155829307723668273293717341231785748501575974526084367369600583846416874211643550369816100358520525941413827122974378965993093627507793369489809294903725581972691413366002259893273787130418323211492290798640321137102925472143076389981884669145348501203835210508645773974328220628101795146908336014471134464329554948798822691924111760163723524572644644817575066387073339616799265677548804879089371616024107703014102188552097851130444253503443225505283247690308060167080086340785321693330891379355592676794388722479176477560705215509352278630452719669320036528840880999307296952019116671648896993022780328980072551138825302423678637536203189602424468651038615984920516034528114491154427192349627310733609332456060967995878814424467814156150407526868075948875030193173041915518321717722341709727022710958654617986910563894146921008931737780099641798465854662584736816017828822111403309765531005815335359443114916880965271481374845026116960776307998307080165802505834624531973107202991809548928680457206377757003965919898808625491975880986155680662024898682594336362288908889603913528308543416984520613939152975296244979691336205504331221397518766400693997854572440234374170640737832873779561153562449210341694311894931382682598888417564644701296679169439658399035826901285564748823734249272441537622936524539642370321182605661621562713238533574149459346336601203658372050790478796747666029051373688029493761795651354740688448701221972875734063507365270336772499160365131913265286813496552334719445681391080519453667727089807854212032357798405895954363403307589664412050120003759627967584894884435240265484583183883769026676332374888009800000771409510558416290691108391812975192518202063491379353533353148928578197117940731288642588754748143561863652574057845786871875323351840842574189209414039351380593543347838468501344029328682921375122438779127611519709620328106208264100738798103504694103804508378832498279983635505036008468626101952771371091130075005200569954544162423976658837703073293263812472677185226266729363022743851794066479513699319558789375668139720043380715068522486725426650669075852602890444200663833784437044746745277645508060718799677997961310550652317548060131111212231999018562684709563365915796400152529003278297313822951717257022547148729665305338526662033294773962971032700924886384881272867086219967034278611596969998160414829460761699879384198446698281305847113927086506594995815276942913634393501318721828577146418171040944052502585298277209050941993070968949797708035125460026213899958417280383160135685279677229584122301313735302600041709391695381927677336228672536184361373646123400873158186862029026305929452564159709289573377607897359009185365264448402775778448895189870454995410950052612720366171735939091163324684296376349658184776413678349247824712072423940129835129951632614310280198281651888155252006977704813807299019263945989092052262180426685888739688889787286260890701575698311332888245624230656217152537276536221681276771103883852744238721375653673299773130702832455039741575476810607103591770331299829885758501230537433791840716036731646466272496451797514505857772698680216046406750337339169412411184829375053516899818697279533137813975571487961504727202121734381500332719479257493965232286278233175985630492740598467363272785571248887694763227731755478268262368457191819952202985222494853949612517781294643976571345453888929114260984346749081221916098454982196354424862567107521651996970156604524329266269421320416749131245999691304067113327316989051037238077106250264500165275368217883675236798868471499191046465539265682589963306833949885297262984769413202502558935713802691083432435085071025088323608366716728391235001206839970117447702425364818978117686675426099210981592279784698283369758054906401570925132878681435773061048533530689045484881956953417513259056989337400740760250760820303243566356974806002042323176813314717276733858405569060496354505673646948298036202838583846698136011978097087119022673297056642466669598388994309385391105255991114064994603816097605066560288759406941877926998672736319415724821281714285073411892276028607523983625512965537052169342778825430728664373291406644047820199387989485565409316842591856507274834093703682548288129421540347689460682656966762302502693590562908085129851426075733543121561075641377230117290373810223322988739494931535544499572105065504475183511933781926728061111169788690294275088123548643885798052959099561290882410451734605576524521122339604842128683954753479851418157983197564432132788958033938345964500165566956389408699665500300148079972955215756884374826182893643050443656815376249248732795782214859592437484730697038491130900624944442266508282992583369059886578943760482745596888487083544502738350181452139482881943880424170944461839420711613195436468127408088199116008967695322968422232916501664799178577098865504045089711189906249784857241739184406214148662823955707935412963074981336210207471488067719103881410930285168065974773831518564640851555182924627154401487988348679276886010732983485684842131851233813004205828271162328642902875127716377131898247154741428797026443605265788295947527347080459748617080603441032009776672772042951583615732275047226789288885296059298477153030214875986059554291959017811115155721317301461110405881603531450903164623386776690133865689041095857097224689397586976293740646758967896108389944053766599811726786160056091374473926542521360124189202558605617915456371842480864660986208832572698598088519771862248809763668492416064441117792840482483085325705045424472063366312685766032893633580193361716419021306818456534842066434556631300178345610337527064714687676359011744872222565589576391256457722840283242010411890204483381328785376671246469454612615538207624497081368377980859880963627379069547578139464820778553367563406088047255680724406831684320397474866402559324997240648057049377344684785334519596841983603450827662992053142743846539474604061474167007319203353344418054963338543287982510797665326202329732108373793224634713121241900666702762366206024672579309012623899413078995214569468661820607345342398118304896789913716050486478244821100663721138448336728377393655870922446685986299297182603620265987204591349131446553734153942950022478372197460355652667026469552701043917334690836348396292353255723667647107821998456724247385312633417949961441534158766473550373384338241461889602997796410901346237518717813827970560523119356780013571899254817915523672879364854981321273173626905099418552984304640016381952732473995155384159968931384841348072387920424817434859103423945280350145489393611079114759574731905193981438130571637927574583585000194455508011650369512696494385327069790466725566209455653775160944653841127890211601353654475233644928075008365566633679478594085587794433407835060369323101351044630334713982633725379814557764480228101960190193470368593850244738698533037767329288512462194291992853221840203868429775960452893936949944919852524067612985052132255206366459669334628179413681080195655052633389339052228828251082091116184899007723631618978035746214328829036237985925170643032095661223200405883645461537273488188440633796265698454642746652391972920728406250764436737323295151312636337279858430747195402991069359631450095742406596291271197345120155161528166212853538443497873976905667007861215532430897645650021895744186740131298452415119454561613760692013188715696038851234162190433235720515282604506946194192028764270068825653243189880201616695621711510272599454830129146786789019324116661584783652102254305291445363635634305310584197067345839098925412857015388169122748548897245360191374746113670708365202720508501710767791194762497289174521530091943830747378103111362035206082218285072124729426011588986855328171387378701479799881603825224406057278473565033398796365670869584874496115168317653887264033778055123052278234734150880624474564667255072461288938570087151522444034025535532375496721785876846082753203105271210860001461774426216515301405110394938478198784764129643903786557222194153971652455702742716522384157113516260442023343139177107303669223368918643709233397735744763814053622837236509402352950488867133313123826636467681668346517917591973568657132971523188127584127855006787425014499526902121054740864732621675729407155933130407931505690543502503997366758665330442671214290070352737661189961204229041088782114190267475635460061482522629760546457872764644231103580889039088662547340742499581237118542573852382094418429063009091764467761545074390270194536177210408388612219906740032002519475407593907781238366300662662077315416469043692946339209591107708230765540727130477143215605081412000254376468302039787787996276675903224879573291155056996694140514587167072410476656174237285838922832256617463011001893308829228131766168785147585861969321193497611073931874410121860727889806333541375550937933049724669565028456135716733696154666581133365377097373816843806333659240030714951380629662157804025985113032447827072619187815131350468334508841160603036106824561445314739972321083162888535032683421186850685393722177345666494604923469552851004841446960649105919925723876395832764274828622369439740853451381713060667777975196127962577926103594434393680452046321353931763748626927116573288338457475259160133526640797396811962083568791843950742513210067919835092465761505691417451917907235213483794916758522937256672141759190906556164095272012340674559467706291255133433022390991824182344824462962404334307912112447504819931895622321609609735132091053649682406436456542390497061457347882333728740644349425797027116767792311817831900028236404844124812612022943465869268166676559173269779646071379183750254968238979433075996187778220230916562819932383000899578041122087335922956450349583416300905549561143661359424878641681891134457857397867227593923636348120552308499254105240835016119950953790505132356692065654798753915144906851076841910126928958106890515553626683732596445387514011441807659327725450773785312098273294742233665746662258413393282122857780053330025758275536008611553700955068684298222671578996256427137897250163175648400284845674522990722711067652890697745172385363459378277907868328151393838908745071841720316200688632370473457906637793327774524007231615564587788077199262924433152864314986696786869510472451920738522569113456780810879010675478432053754281259396413366607283189808655217787981731331284373200239988497401117597081680086794788394285975990014483350095960145125687416297829956718118944624132479560200580633428309048925441703205842284443424556093451241583223043855729258102224955474946945127448229844536870056938277063376087320533365733746592678760981052101764953874342341617577610009645395997245659449117819475353973009433132485561713210605782644204543266392999566863963772058802578486610899342185586495700453848833463955015201377105721761065028998722631613644375190890347900947549146947164690629915289003269643778334013882536631633013153421531740819467211269788584660992119945673913594431842327767854125595748287642565285112521682356339903434655439153161433835074538858088334728133894220193944195585005430638835634810024996344545536989229089314049203781765165975515046016833411510197257536374055489907722027677547319077049003064984579828776177797824004301828295693166892653400020137230830447776645893292493207586537279884653215743021316265252659979959497931071054595714749054882289568115945103747030308439465800093852770748328642167860346154126275805682178071114004967950423033657563940016594140974429186491490038646045732784561928527266938316956435108514077958726258454613135588525041883959554237501719816988698137041875111466604064617974020939477999625604607993658967505843564739640553949490770585906310075244477551163433488856946692575750432982486469333345612643285385192348480524462655107877797252890362319953189988958589614182881994281920840532913537327643856588435212687078897153119903785111912042234969537541871999130648597115401737732847241225299512634127355821689730391894011702454081773287142867667804081678663090038592820506182339894859898671138138923581748542006497283963410468505916039453018155328304527588220316300515440888743767700085220461089008857338997420500818147179206465988798454319260016386673987727117174186881300770517679459697794315164110678618389742241461750830802936561473965720615031789143537998842731170956572743391445204723343603657551004516186946853214852257537009321403092129866304659326137778023335150258185881140934443802557379842253852493613795682523474274700082748654618037015547570818459267953423606520964497327410275405872557643069792018036212171642437073904662113350994627390202352216631005701032233392919060351529489799473949691418139150000921814811589275490041241249253680454373067555828026569469122667710132344644861329504300988099728639711100176984000823832778234504548768070201585078555446893120478005823179833149915773092890879756546767776933696564511126430262842828095694098296255239785199942647912164106341721847880597879149124082371169618239261094335548203403479637811866380646672744244660105010583766202274420807091859780575892946894279294389152541190525745617076166261024107257050698639215341908004850684080103426070231878639241168519806800904803896925030507140641561724196057696565543805161029466765709904608199897969756459147266669459553134592073590136657176965726677942641369085217643163820722278766152934933344872669163015050549974001380295339283705953439574160714554174223220564949564728722951025493251312836233740057330180843189522695882994593687613760075762354670854983412855203152692241264382788048549919694109680349417825094068154473227680600685012669129294453155819334942796574319494072777527914040886299567053537175341149979121688526294895632706745680254700237098875388405234527513437324985653786387073397369206979813608964641919643111310186506347057899883526051741526189907901462707720086600680111861994546055192873632237023927123727019926133386356878923921593508696385683899068987743127285486000971419493413197284956840476902819405936847568526668113804283033660737744021203647267566279969535388705755186858920183848495797601994081450397801724894895190165170710001121932323700248633073278704148136413187100643757405864038946950778553748830871895211863109883906111541308924433126575907101994793610815490672012517404480093945303542698747936174565753400319974449128273042790639522706002545519970595864901353547297241413880293289665701976675166430998363829132300235822482470248522424765967241939807417726111282876864189788006620150622678331376560749656723742859337543655658606596754079272283207478813562764367720701631555444013611854137860763134221612717536115993109339912020660646511038043289812683378246866117890918838810519315910975118334850719286782138445042622430124696604194277694289277322111921234030229084927548371913207590215135248544509628122710956459123250404570159538059513268731548720199664987142638741190155187198531037587787482995052959084843654005087400256099127641006655660494454855919524625485336996557604355261691533699624998010860534918965221648608724911838290480319875816554246023831739747798317713531946952188888446288689793775033205825925267500474305436297090668629743454535180164252074368692676559840109566246925251690542495633495290673738756361145558091756249575763061420831947740123662397783237998375135576738862836676580117294217065212768620794603322024852852989627100820215610349558365390852657214499495694961437642239516263351213715741866438569618848872144833470454885998954693999410675926908794986972840565188858583901320277397075441191027587558545062812645828295951656343626911295085546598502370292454719826362795259093386370284044477791472113546415246984614122126407001993793394949269247235975212780889761275859812471264238528142981289713224477134047271617858997662387140283582825017776184978224588469580153523157925088738938796978065756603534041767832675131799260956709626651667917101068132615198194510633879538964462095316692616481533244612172645181443358134066188835815685379313174525333824727874889373921962307627905227448917027825477224813893150254252758158723730491201607068127711607253405523337985903359227658354214240190763862178738035803861345227716446391912965434384276072232943607952574585873578418343348736360620953008723378173262795922489272253029982160014259199654393774632499251779979198698869438168420567679244855360696836517533226640898728452803111377389358234090667574815328406196532155696486550979753882404071911891532488702978615036118729287596463193048109197306265498588958812839781822755901996450129935598199971718779066392994695121049652819049863453082566701713472004710464537525754067908159517242898905081158807388231820959155841250965083525277566768845030057502857265519871571637783502312093882826165052616825122554369404103890052546836472024323954773778911215314015032171265609645967665600948985777490231060579090875639886170731873122544601888416045712761881545485921071477928974919190748826251391266526014798868469842364557867655937462994178271771367956165053579040589282839288618344929471717386484165884861995274818287757482323748817764449735339563180742814679092160608664016750559877812997932930303801415378628435021968784391490124966958125010884658032168093617860236793834459957460108064340903227407569351229881866318309806221508612466370876023037609487861809791790206557920896114625170832470763669186921939677991169981490071824185136548747112791425943479737488805625350163511611492986406906934634626404134275021887574503599164011489275684219609969387922929635905650783200876477709805089864120531052062068888446433309943563338772175572989249702467405795056529739091502910990050837702944626878631772498179886216680854068405205274959462471018697520322010429269985050451829690672839061009798522427884857079294620243256314457547827782910119002591851164470696832094851896755048237038791467208491959795313288321014448127294395261824436800925128557251066434045401107704174049003397135443549074827848797897849920427264016338610801889639347646283944601399426371430073403357141015682168642258477933664213611547303330225353020345639421116373294580438146784430853706867341847367726791120806773003088004147684085449392214949659010716667501494183829427671035954189621952193972420568844065749824931373694127888293861826558120574274288870159149394121547145471914589814435788715269010702194459149331423854493487140027763918608806530849152192331855787920145750778175459696461649110771337593346557788936668505930575132621830306588650771129541904812516400765510287636061366359356580597723066087464732296579503961926297528078391845655805434761981166226873433441341396176746018722372703385435278552329347807829161521744540128504340574562264618099128122146250946085008817673341612793159403801652416864530526496143415393934967533938851639895258375487872104694903909136445608622390708967952520076346661208650279863579342751094574958129753056778223545345394780706729532068994102512304502190279044902277241691985857556923935028782726813584942083735566778392247256917754577509717902908287681587052402602119812907772599050946970331496842279875483962765990231484656555794507548972773778892951901907089425506003257948366971442208316625571767357659791828642614736811929830541913180016043210452733950660531485936598261596919269389208373193502647959780786162117525325487798053322398541295618855422998138408288147988673811711809763906932831133263658308429905376282839668099042833765271840538167082665208952687844697112475056153418137469463972054707634470976543110547907037296557814079313728278386986224831800676429156505992680921564763124067425665513624976874588002164821037654547251204912426885211492942318807028747228157329670449857297997616146614183419975229471613032621514346183565642571236345263024075806525114253054544317073606739929945065706654659545671851112457088461128911049690334753185461219739469000899036510562625098687564899040491239020788053443052403403299491363104699285336184737151133749533414756572564458283882771330469330187748353207035303569522754741400840056367950577441327180334674611775920719738153780136317159544685474185924695680312554962843858145510696884123786415121310807956135674802710305433206077795357229459615696756657444795646049614811146560167023640006771657411676782377248630434167719007488639352460560776311138980849924838839325254473063583985340252943008295033664991176568311837849784614046188356019597175127097834061615103654348374051443382665879083666502128441211645086927095995038191116653209227279412652531551826099612581366347247382971124133553379870802599120886948059755382375498901362553325864631908445412685580193529300974760239341813129615661121917449887924978581129162234410840046175643326893201818193535571792231739768591511602139466191646573946251751906043194396713834177079777954852087979786930590887930207977999495412387166483612168858175081520690357759048835031543577361877384052268822405150965994545541550545040155208126416790735965338896366768684971921854320610177152236045327953714478609804609003467632637335750172834910105912478297223048072318480288689132157786055363689976078502474747019242298137631234987331333709073153908844517630672035740890696545648651537864627542831385547705958625582682240915828021010692634766962022053376498283141723823217182249245380134264646875946316155273718833331493263449105597913274558696964104168569992664571685494436724183012291416569694611414391120098217233704295702992331171008948209185553723271164405101014246658368365805936493860273598695413045412125614733147103754757341492412328390196615485650067050462533586799094278395968854724229142170226086885109589248156398882948723670379054436303312359348009260939857772445315557828572059157348451568561469823392060716800240607605476108555429103504324560849685889923083646242929830312282280635373866546721046307850090838746591332063607856672605262624910667156392602243537801095776920657205330067806104473201319533289709467609522562479355518633271530684016544369307612019948975180382285902343758855388315270108942850388020177972013859056275690605855619941211942657050087377264515090680033969510601268432652214672647387280194262955708269729892000983174809044394150384661514694105933632558595378909830906903921123564964556255570621392819607864492249161328816087155253603420629679290359581897598119284596460642784591959164457338612378828413742505476574961024804784672134542829763743391797719195598575103874251263634275037306418608161539447126525861871720452377175599069287934307765367764336149803211950245946416767852892334079333004914544218073580055411134488362787600974116231933992811144064026350198035217845565009444621118296915507773404318214014790280490682398990261576259719041833018257180878258803347768912554881938997234809952199741343362255921695339051081756117620410532062144881608921228974367124158083595174341293549439444012480491905187143894236268564530330127171089243427200575634255932785483119895522731494454559319277114936779002528645595116814419284190906041666296123774246093665250477495465379653478052793660267370306356798358114879496427444079436916497093248929725223424083314493532848873492000410981159464632593323897187301425311885542747142954487136995698808288430547614921629349552812798284503486487520970319261636836323763698342315602697024983568949661321123574382992908677437712173584244089599804800442945632132664902397452415703577188765659008512488496346118366783996310366103055195904661484134368422115977633376675607643662648138019914931576607425640551858421980147528466266115042004141393061436968536876568468473381238016948422805111497640332913091937542225953300111928152839279476432510727298838267600177139182828023719104413265231505950465598129678207654815429948054025099436385850296852671766928527187034887728713619350503372945439614734655396989220823960566238821435314238318511813017552334497190067206336991690034648653675887423416661930475887500662679430056962385353711028666613783566427131391723352244546164100565325285331142247729982105354512057453495883736589985468440171904085591326326203427452479456215366677457741672114012996388437283417381179444803565373471601490302438926909642753744581611425894103597964101887342559979519634660147421309027875949829858407303495908675807628483886228997403901131671332974841529112977137669138207798882918412760232079362356523142353257948999658587150896482202031331596543414400028939143138154250197218467823812896568218071382124683662319514208950776348396022618230556110196618377974751275022487020552552375688764417384947607134848745280355889947814608406857008110764654926684226044918036053213067309001086538627778378267637669674110650108042253695738440074480017846756979591705530404531087055871335784194409667424078877214055080199976479398526591802649150892256418919497598395289274442976055023850368005782793689903759482892633809351021086430986150124795605042924300495004376879821867459395316431782676251895498214240336110877738093247980621909654543102150023859752787292319985932547102180203479565805167038949261845713076210146883894247557744469586470280267539497850969140168446211575665805396160061583663791283074419993435533241913526240941222808046006651821986738132353606762928297252106221548465747700564959600241210301961266354897935343018826692908514171077179807855508278819455178420044516432470790307254591636699153864782247214056963248458381087232263943059916911118312596075867890155945832800806233604594970031271145548436653428265390787384299616758948046850023537942798463159518054534808707541523959382756359265084728850957176778971627676865062182836904589327927748177715429729889730820612806382617800018431398002989279193835725741757708627076756402398228785290245246217671340951637897909085035340954465778984536942135137872558345334683878320543555160447668837444324359258227985664525393793560738474179373507083754943293647691010128106689604205766325047624671473774028618555726943608167832041169863613116361739233784349503382329557008528202655966660745605394958532045787774665091550282680574275986427713637703955419840556988374141748498291742391572107207510364081115096358751818702167251202071127036206082651647681560969344420254612852911254098810332435427767984335951719170618092806292970708406329790288099003996482546134859945649302924775956565398210337580412113365342415754485398387547663445930590913944623704595981407719444883586003555885043881869881886437425985271019697909534131719083801508212033135332511319586907109949334200715056193787837871704842641361513009696363923022901574946493719885122376027628668292812103061331208743201850450166322886394079890817472586741159226161371045421700452304852483871474346025121110688070737323293847201640245466365114993162874810848447374650375505494315220690796225605276181172786341638809728921087659544606374487746531136390658238646758859574870206046027982147163741800073516779628709594886404467684656788521692734376368179529413079900880583121521281565475391363209397121951240984549392020430228890919975728190734814266153002140660476041752754934541808165028480121351170592382260173371771160783413880275536553386393140651951695991217602173688006465807210609789918023115111873143576832376856911017015378767599117087304123530513022397185177825272222049057802224881765691452565929040128240960626949695947164170928122182384313223327805695514689272353240775086709801570663650295007370640897887882264957048138768648036412077496934364639284131042755775822832638039003785357837661340286753290036237478548238083625629330532089525170786962892548139438510562870941510553354446154549135245741680439916450779615041432291664652747234221114540150538166248925528084738724394695028234252127737557600999761906638315712723121377005073407238007541443105730755805647045102231653920785169584321880007796393356652042853783763198385175162453029802456518123734076370670010543212961089760507324513128464407354100183631547152046639269271547071636659136899212832112202696076740285121559664165397975454703347234616313278663632457317197204943362737591892729185204237148316962666750795245066374836725519739409223049214057594496126691882255843801806750045402276009663468988462687068687015795003474383506669466198516035365100430248727871765292990425387562705305499615075973510679642702831212784675629850699155773139185593334853421525741689351635669235271985927427383156881778053881727837217708444122202900387950888114402095498305272257639098601658962989341148372214090224365874724817704307538273347845572069591294009107565012302612786997065692775727228672278673908822294165483510985101964189830152683627067605477021289408144046978609495904290670138817489841727261888169384872276233881994336379395539621700914088313670110370961844898405307119250630503389214643601575680599987269210537262469939275562022104781296355322461328716475223891552314855473202917933331412666009516579087135779616601806538825095810026881785519403847869167654129529465879596216892963080793185259712806697942843302561895755335403130310568836388947942936143541084797523774246021069043736201038782664107449321275636632257195998937152264010185507974375303468286504580407447202420426348964916872914317282485867093125185964599325715690143949529222081293417398244740099072270834185968964396534879953846844028691044917796010718098801819761797314186638601493633972706792401219064958263311314089792642033869372075662876383482634396123300015445632155287524556496512284190674760064752463138248206516763711075941164188503791037427895563934367915296402048582312689515409179030339223377947703890502122860171050347772502561162570035619746752296108471590490156838579364735214183894207465275273886125882624436085170292764338593294766907128266302967833489233640407129144589837281490240062858293403454536298414613144892856089753334718408967569955753526304453788345773678087982964743383187115430272020522379789279009470270895556551668624507461631905712687821796133580164132000864642847687938430940913949802427929977809314563578408204622233754239775531287637521749534172196485661216612225136207250706695471701973154782477126231541716541922130987548536331034467960070455650224428901497519883728938303382676873403096614990367951362842905031983086625443774317872377126154930721576738296143142194776394646678875034622487716081376236002435535524558414992911049615403363098315223504610850542429869221414550568672863507198844039275836095108566395373391371873054162056014191567028561040916470644094212506788057280174683448576719666421219228824637669519464853584388014114476809652798125124425892432749366136678177806633753488155185562800780317341357381184493243439170795319106216854253415401220333083101102376450096475972308967098581532443752454381754656912685399695901649964620749538554823224905639077695763991335433716425096938115302043981465113315858269879704472266503583152057304277350577026473976277744354419268271040060142689695357419676612155698450094169020118720837570800161155888127098158121401031479831093576458486141852320113040894078531246662461345829337202008521523295736374449877827819965661391596968369534701134411933614360023059506644429564104604857400356261278322579630778622296377641957713711696663989003744652188596959959408648309297316432452285362561173420929366651675707965185000897280604160176000449887470061210607927680184818251741093485845070658984565364688966895856187413368021755825764374462292034065048538644626393999650079247122174865859945162805455665198526051351567230645188589779660711901532385762426094559273770295592880125345168566126983577646906748241372977595935773964806405795397635376629653943323131378639025153840409979507253845786080095753563074577405713424482060706496817676949614459189425899344338643354387692938056742375991731464710490917154665132748130349428259540093079393066658368249125014251228626410848696288759694488890623530143794686297934802149377593659592261809833181626251559819484148155517178955802057533011273313851444151515244599629360181989569941637623265582596313747562705408619858445071014947811451580828713439077942666366250345540221618053173044256070881763481729718052473174950923360083056459532572027574992026391823412459219400604050522084586202849616152584189867221117568107756896323456853513686441366729330872690196590285077389494067777586034026293122614871261788182594272084163349118847840993803417420632299406607718156807730213484996468943552746577925783101931577650446250813615515803497299885880672506382741178608784574076302599573831279840570300038808640966169422446530398141675164301355743483436790216987534293927990342447980467358426073994757915406167388824315315354172714627798768523369573146674172569031211475086908166115859029241609435640669247054615720618594179593822584068471883884957355993537662274618002254054307856673575538344697273432612780545728424049939329826951477204760958065453733310413390055073638070411785372475645997899263478690217945205059420099570135701545659016151179685309453916733628069116222974052066075978158832233348771783801297671148483426534842031069791509527342007948972043929563792690510002351780925970550845097168288220569442313611903633007907333195197096708702007030000762537075945090256131041717126535393691321577407559987356889540510874229417554541391522792378780547798951422914799215586611296686879317812546924292625584685050495783329697493817307855092600758093339708480971601622854656770746503546991985475244718461568515961555739884470661395157373028882203034173065601500041211473614500970901432908102185933979575701837902610860015747583357973490016591406658474220259658236210145710954577363744687445629966459447602008829949215923580693442465885250948695163563555287865593499374297078208634285689621621593481974769175470470910443479026043079400782098102134777493029725948936244897251334757112904354902703647906927555619941312090771699488527177579512238266689200571122690150968583605882645472943236893485268388954667994413265245114878949197360462647151006237396653114832996228378978439375160710036038590850598171638694771352122688522514687963125060724302422613125221245769159328659296301464196589623429635445066770153505160531857897853481818037552375761742933449497576320431096673425913774671831867445774064876718771686675778283525193523701839857080158476300241341134866851396329944323010342724949314998560375982162236973624541090761203815179615095258185841400371858968841798323496723889077730860184555042123340535522048163188699402926111428886270553242430736824883328202896247960396061158588496041696647458391446942782429624946018043017745293266537741295979259836194346050524208923063767315616253245325491189445418003076247085905469976816962643232185206572943994143657960298697081268305282265032654144250788468201711729444580731757879910261649190032336425064246201238617295866760276910384494249837044331144348557560085382872526733406006126437693319212664139991889231389651150316458540527608924226676244828545454153994816476141133120635036116205534271870812202968603031119092257124182388314744983888889944106081941878467682743448441716766435750248023905832084338453945268329213207730776706638787855770065377278266305584594302663322923555956024396905639674178503774176616696867047547730155258014804847481843816243560482047238910558709941476229135452122635911742498606558575916629731390979410234998512134375389697957301202394632104266475764500114643806945899828004362685064746010510839308704506030227536811999000548534892949117467961060603895063398474636710304830492455087472651081145180673038912236539072236851957691414465420504959735713134421341760860036418317393661500434746395016989293623320481492063655783482652250606285865612028103833730648171657457698979077877428030761971176746509375044567050355818909015572007561153624941280335942182167529326887363521741546133707864910561326082489753464279797326839841569121579248663488285717546227060275108288444417077816761030587582949052945170166367083627913992714813304614184695917176374958660211130571585139580959750103913153566799752139128568615581549099827007443766222970245571289932144778883802663960739632917286941624183713838606887228959302730813135794615787175308300720771767570626867438544449035144896076863382673281798227507920006868666628801959214439757583063382027398281070964960238721347200066400628910329261920498026737527600441624693858726766369155983175532294637628177991740416281342383953170021160522192991982001229234612618960558984134082824324942757150611473863932959260875994304563947368944796189716944250219123853866320378502656861960011659829948149670931046087447266805417821203466485328780363402735148407389136518806693890596943273360864184237006877347000875482208989831954747497865272340326921201269133053384146616564450685304183370668032502848238841498294097043604579529573938880550485508713084852717746423579936002556828506991942406093840805563259131380115816102759337264708822996449445546907674326713274981904284230440254471551853550479942024686733161882378478935327409486776082369303601087333126803899644596818690245106760913945911825006565118807462413546382481826593410383896974098920304978349260975867837219845505690025713112924219407476849944861671973319065610700677658025292100971065755445632552315298895827543002810395517487660296887347343228097654810674568579838598587705837345801368152937508387010870431331895234555985146067367088289774077103219299583302912442210803720186191079341849144468845440744147889630328352235260642487425792964398705043870896740325027459054178798859577948727608724069457961828997544599211001842739179427308769807138441095700036711046675530787529672113827283386642217602277244326737080346586773937265591021207260190732381976912150500701710093114034594956027955006770543454788480499511514367655454793511315040472217395166053036474908794238670129991289356400242413444492720757031937293208116600637233903628819764464328399870229911105529372323268292340280702777015899129276407924952401915537493325860874334195669305748951590382366981745817166699430258718304185626260218242338823775885642271456216249486858843958170482349650262324786457041030921968980039391253331055431611766897226915368559025061400638778873060592510593268227183089248387795584620818023071893155489536613533818167052168409211739410025076833609459897522466714536608776097390595229538776053911941359066369045886348756540497637539134557631035366908853968728331164876566118737812332213326181873396627092072571585462128496439015629051066923030825126389477400174290720601728248358648209528228040621572909723715808893099640412910460864411645189855817053762356503808114781059385913751803752803799613804884893472690932329653630558098137585139190717814218085572676372658945676095674149702675524712672684807533379677575489272435754482242562433954566886215265555419119356700105388101399577925066686714795039970680160232107657830275917455254324134738876212267688851126003976677124277309544651682129740207926015174983990576695827968868580907677233945043827632124396139478742156370081115639363768596519755427007542203549342221066135698135002845347193803928952846783532344776656625929819037233036984851697718990917475697894734723194011801871154492149771665917604819980141540770457093061113037692792511991949348780146725092017642583112218812824749041008586386511700086912897646045910753722081083675555879350548081625869598791995708455927917991168031725125239958090090810292463028779274092533244858526033218135596528233851980294498015188766223465632968752494689349986391661274821701089018581920931755965806953192433925470130269528860566427652591528876057420097741343442784854936527521687430855820633699822964507435308364572476555936290292357525417551914594386360161819223174487825555905439482238468788027226842844592083499161749484419001617719603889621756574456478845903611105192445638105949290630227101274730228384526371471181307196607130092146407246641961558203154460518187111670493013665674267998674542949352717960078234797117146423611282931475248935978840353440826973980509411127359681702373073498871135701549867819079037149142149747228372280039167863117686432352373846327368831210102544041045698032425340230357276990513223811319097560517064836535490877663894291056157980560520819740552574997239049350038682867795428464458469033964181369647519617573548151982920468752666134623808294348056679562949635730825265071115204400799196790222127991247505703491134801133862769428588905350873026268857551519980746702049514967991293633839850310106258005750965118512474445723671135759753130909408662493307459681024813290756665888051093494527550643571478349114109441586227133039803928260691270238286903912389548545062359975234558873577472064614634848707726176689963821830898933463939424892583521002283149734541722910741288337963869252360832592628003149902733184685723846561116927658054494048651306253887679199325884462086908131613589158926487745004738684653175493173527746620360124414777933121531960693496260358286355708820249454480946785536340537523521789007282062550893870102551253711400860897379394709208242162486139407156243752340127660843396853385120684438607991512785453515338245577662291932545987535239939544921226973638924822374209651521355918251048700541726733231643489589386798190281914516525838511650265948457973883072990642376757498641849303167809390056631148409885512453773021767154829256843819596715314604158338990380787920437375215691793597707777152058750795795869295659959485609160656346717280304842931320003753538625142774502076087270652090722552796622653585930112050463557833558665660355013526196346742736124878640672930084380956843060919064574510955939693117437590519796791857801726263381244004296709570430932140852300752286768528151411536826906169353143777109865049247530286293743956057726878398331095545094491372293975669334565968418808233950374098644007193399837810917384750108123648673944671039851167056935694855261422858063689603465530116260454202255828321092980642527141061797096261746084526371966871577967847590364070097837934691177345098071205262945801113844690269526180093649367785803815449449065499421413909613370538957061266098695921479639267005793605247213116328250072382103684225783773383193502595478365703603022153251046688078756582005849988306480055651904126392243850290730381618264264223273342269638380945207743385245818751907323431226687233969807828776305126685002340814073314138892388068957794109219142651488639841611715886641747511299067306474400660783293884899668077574082777236161478120176484876903655099544446183134420484346880254218283437674816971218235754889412006614748158764510106598322809176076401860647926003107370761130839331324543934469952113626379954189649644851962012081891905503758192365933711223188842537749351547621363733515662854622001205032757901520596665015877977264444959835642823678237892761739077765154847053914516525733087307657505541305382669830062355792136744322991121998558513233633540382191615015355010921915705857756151010608970459132291409580570081604655076793501648590588407751155366700753947218989889985864837267052728609228630976189135104166372249324126840216191456046493315990641217186442530400648664952070773856571309099330192869954371327019879991850033095381007920694106899665283476517839322138582161106153514765512416098645594115911694076303279342228671848332176653290353057254166472509524541681927320817555993329093565993788816633544500026618300254623514663511312054066269690137483135902596612634340840610911001169851999025541934972244901207157039494732814297165786901901314743962543133546863733852160831916032850673107610867578135790353240196037755092003451590600348028214142534286181299955747391945591345976318755545226334668439709404194455576390194321572666490852829892542267764405698157415449473326245145253869453811935770883466255746123777151312900430497781329008931175759808720103160876125903175136684298999338900255681565079698976153992302588155410930333473562742481149809217206159100693532660730902784866618228898478679366338768279775275992012040209456718240948495574858578089792811743520764719560362939612619709251678626225478572976306994015901740356919265531988573367894832987894691388718436418284767697852285205948870651772583886450511922176140310704155711779661885109628232955643100710816931451109496092336360135451992522309113100341723900298694718556572727665256064157587090215260211926824992960608313446672135256781258512968032877003592157885374658574785138105160457837340711837908493086154840884712107114772588731792593405004990045265554455590959133123685109695042361337820678846444585256200985419075387823549970778934705568704766984220788422934888001715352650356073854923333097841482144427643822032000941095039002168083903182140558390357442793506531919005454270779512819249202837195499802988839415520902600036510091775959498361173250130274615289646479396725286230379073579864512271446180833835021028384911785812288223271319039877560819498258848672370621072493042712053953346262084094417296153502557397374246911835250618066241035581627262204070200945733340888016891803605779425053967082531508260618443567355490006069833089587114566459401645502635300508340257853075142026914376325670861199176943796662074418459428690080373345284330362571196810193263415315845898163669306973301610513059590281098662010986558489154620919580486374541791855765344980170658467784522017570133672003666764212987326284313442696075780029966839645534350927861560835838299130495040321681377650709784339485236458205747473730132175006861900663799941180710541932916255755382019438262514426506354883615048281916497537335944667335572797873374809264885907691302431417671189131358988699493073595453537518356639710909557614620296150518190751854594852149389060056725343457238087668693941437627180254783108125945816884177009662912050217416942113095309889210745492073265218633081880826235396337100025816401685231408060086098935294682981358206399700074426650551656639440469817084894561858637324444699843631033434128298618008104489768734149026853413190337250105870022897726532521773406116304626810756805148129811256823463758487171756179618258920051928326588445285458962230278729938094689019385002084850702594685191636525551999344643466460130854816995057090313778054428053208092365662437148027154425009686378167100589439022383982820932340979596910069066971966768950956512967395778476910777013449202990117890089363926724215123193868444470060257419832133815775964567437319247409523805048304673025660477314764828021167752850934913685674462397420738643396446288423212458511972346010817563104692650440602878741181170077788133537520406893521799349795270798403665979415027230206515617760268038992200872401927218741751924672776226534028470270848082121966906127502974183211275766387660519385274664499745366360096552106255967706817847927548782524486005436142373248265979217064821121394615171788664233438993721857922344756157405096776589992174338642102224236475202643307511186994265582811936200775100725059912189069189053595864972750549546041506252168629752443067991682605673805160289266027112486605427069426047353403075362169140244546107363817712401438653805134780144566942744659301810659908208697077573727539942484181204545924342702957092794057698940977506996730084644462046227572327177680901978838300608375331334365336364453351062539219059302406980954134852737121007210719129014715191619247211459672097658791518071535097998235959695175904735981524795659382736821350832448677531159364989951090399504838059026391410677176259743822872971474072374285094305405380860973714563653424446985103766029748004011995962182875303643178793195083015517950512578832016533424028061058970768712578676789297720359623544784723675944486895292776709847646963092802609348197089121632356541957305805633394748161728029772857163775862891413050946832943812825010466542221962716677107327273860997407467749880061234199273946141395766201425665284962397199536529106949681013504101124008397695621249275871902673559427469971901479878316843674900792418612845319916018307081821635168101005459447970813085928032669331419357079022145002696220800384212733062030105303829431734216449302446144971373755270288462650668571497396185218107478994316514039904473707959946498477911244184197865107638736442139300013463945228576519755028930385261538294552270197227213120989983555511762994674601690970978537220222581554338954053885332235076017456086213479199016442393132571848473760097233006206065147294567770052797394943122631343490800694347506428544650358222524557908018432293291110028669350180161978288103127534951219445140093036021565614432078948862182744207941164745381423152212522804413956585713280153798840884754966163943816898062331986933702061449256601562229736323355958281563053456449638825812820217494273199661802593821369066808086062532092549283304779545658943894441594830801690400155320242230318542419440239885650379554020336600981551541558982026703657905340759404715275352061899623462733191488813388005608525884624538040962505275324354796436981022006179453345274645392060983533213745330624299230936893125129682895193311164049238622243801613485901552135775945194146253097750017860800497862529762333526702778832890521399985786594200666241757781650019075705626087959955493137894054301865152636958109507488646610225360832117668538130951245481761786231133961658318262425504194861449518976910114445456610645242806362924817406109086896732639796703682176569226880603723721925859109810278249783447028713250594692141866396896745384751141277255506917903648900304495275203611302971206978603059873923707248749243435280271664964268237527849313178964507999761660208702617287990841498672263910664277018813243062295064252363699996054417200397149988203128121959055770370788951015766904581498440260255732379179597376199533289264199293137563371319576725510652873946393453869356546121441252621317901676738536316744531488001323161951949934189160607341483520208682483912129187902614662774620561449314851167361746719589796638351640376927023437506171698270658754441214020938885225003067291185757749840554347728751086183934378149990917884089844317925952436554950434962410799338217203300218998542832862813736693914608513961949561001337910597677361438905749412772730775558488882814573909651695125000111239858285907808671710230504212885516759567862377593469208165593231080440529324149462654215293353272123508302738673829228868174350271225692743497025359099901966411528993852550745086106089794874497506149963591611124253676455087291063355700232150761935976062243730157508915602193370445610597918975130270746706518913228481558799586500232112283387288833856057221372439243591807247650567742592076951659827969147571302157210644392665185349341022597254870466929018083576391745799165608619861190684787404428452825336370920569739739708976708508456204100209929564161182395376650654688886826126366257144659481236184657556116604596775899589268943546211309940583063298392871309996382155985612549655906187895681739243335199360857972911274086380479283011918011251178064133607279561386569475618568049350143880132450881664284342931035779958236791811349267367918315000715632948549633961789530207775822292211267210749601845054921195416835188445174794403456494130508847816778062754117848000150282115767352808542981961781472420657328108425176519964604636473590682121221134990629989687907463052892545132742466839325634647685248824221525687004605851847643590854995890882625260073982415155168276962286664969569146666410361528095480465967649459691483507824309022646117053883460773792252681891799908432833053352294971036061449751204063228220536544261707153856438228051808288848875118268045807397909030186625301505862935976275885579535337197837604713419078280121262241655173655602282858838511933474389732715629700751259575213898122429346868763845446796513903529960844869605643540702444907582256813760601549755173140507315065189577228627508407846989212514122741814489583201319690932009875866193618751817212094614800135694510511108356597351801501118742314305561442491458957673032039823374918415934363585122949177469117438876231529343730982895580311343916409573348007161955437449772038217307739716425762276248755957464307499497293274424048871317357532563930830554164348515308340559467920052518513244429235449711208350484435130987180542749197213797214204358244346900185511340747922241337043568810820520708552319050451639999115243944693484532317032276612595449113879830741333020922304679135058131650282096205374887507731487273423986095238629415622686011660164221313615364293721243683597474954690535542878587469564812279640404199732905618120303893415523755564272041785117235227274828742072502980491628256745380880484891496408289655075583636706009073211306998346681692997558366799344874001163522304481734727622196886935752019270634965955767658495554789513582783964056752455778599099782394670604216590779893614334309567748634826376229895378785010924920107789725741136899621113954710716094000987799590405114921119911441685564611965976499015064333986974403338716697477118639244440004170178916598140677922117209297407307796017484749931555902007921438547562550022946126696619117714246856958247543221044410914835858016736530631731505439537169775180851294570151194842715132689355878606748479227341898378261130183411804447683578606605008380913031335225034314903156387409763919919434833791210116359839519808887869640784567986733121996966539305140254507216037561476004284209846373008847909657362720585341901317406184841309479515218532460229536633961588142224112313766396785548189062951983291469789147277702916997991204040125818124297763824960747200284032575453234314653490189953367837125105435728131252413527437189845514112360252861961177120374045889486829640066144417759517176812279429111664049285403523679364202905652835792688889714398210929989032970243933035716639562131709872696793746096683325270331563529319612927858527538858076424543100145618228610605810193501922576022885008028080071205611776888095182120223539711168149448984048226197130931847467161932954567254315179165510340121184459506031503931359180133099790847805549953760802318649676597601934156584242821983983359971470629420282078746990010144851656076433911549193730768760661167487128664387157481307567258253575283921939969090339357476468698722673496221060250406672377358271506629242191506295115423718739106566486308307413216361696589742104501416057669565837894164543132762540494409113851064477949591091664682592825103484008932270769401412561071759128496301843935088209469086403195540359689451896392390243836993350619898764730298842310507509250314744367026598172021960882757042283125117469549579237285041662320507325225209547587250247355461686415644220502008241773451225159806057920778356555419327333590114624438378497330342057180966299689399636995551701784223520540921419050293599538651048384221908801304926629976253046305980823315631334425506085295649478411607692349665098879473608866711379644700483250091587551044540869875877076651306026019343130885762157586956821482683996192260654796824716221226418099858329491924819907262562620805875668104446476202700111719913289037032759959390190711291617799259388027660256105643893212595265766212038716899630132509391866754480821379155984542667288652436374502608373197147301387504097917711571000170237681076622882541598194092464265817980960538103159429827765781423159918775080866850631942459313160936054124797951752074117127537040560847578974293086868520392463447414706336785349644978495923226366392300500097993253055272398851568068146102900694310624400155551547688345773691714540062101779190723702002109715296274137234083524132939864227966197824029242497819258107323026860914314850774323433381156521383158911714412372593424238956301752830548868252168640895304023126314183222481258508125833307569004219455018349417101312087909680362288244724442252968360944839756176565520172268480937677979247501361544668237549207346901645460290250955567470124655289576664789846087505162747270683353640835177369841334448983858768576216386938788756799945239395985850539055142234721886670498381208290377856992741811517861768954825221993729297011464544216071662045641922635485916034514083491534943342390441206206972665811070881341703426580321860885247349169124260521633997682440971790363051268142818537910329999604228573556686062377229203860010728864785028908269401483332248199334441426340217361355780300252130916759793506761697808079768581170653888890828395685212898496830657232420558022006738807838518412408666212365415030920102362141594728838986795696853844561127768540701800462847641250549491022432857503236428353082646866857187323418817588361824795144786404515136549334705683618425784386730985824417149954382816955812738295488356697002652318595027074695863782775509367038660184977952010815400747266588181513498597249965182049630550854664304855555990218998782482635176309957388493382596726516472627135202593206278813419680340916723443467059056700799154141271422165633547378049239517027510570964887483671599522029962898831197586809853886192104156251914761238350232935529431522502240990508266608288492061319548376279661995651881277514556663723932978534737747246365152250597121901153398488844056145409467134192241181816063984561938512471725049691270315305636664556731904567879053252844074052243402857808216743661788041103578931879359455097338516273871426314638253215389481561992611971955274282466720646997012025569753094748971999831783178577778624682495510126946511205087472911672414831184831817898841754270098508017633564029368398611972948051118150824139449573131366570849376979406669938044924442593328120443684259877632373174921739327361841673605829041527185100315071021865350051702716135317072716389802594384347099527222083353603903952281392203760175865334656831561571939119783759301373064260807524297859508787938344358756882441344588320076836493684235228488022252299678545515576463013532187423331600381386764008163147311421368678847937519670793918195133996251171541236758470836051882647427883048264396633264161282284702711057133257462509884770850381116746679492883361945580871349371808218856923284511952325271502361852699042681794372817523291457771025992975690517815708630028519384578581691376117700032926981695199259384372441493931375589166124594417170528513508765055217163432750441571403244765655843138234336288105325962736815570349463150914829016139489355158919779294830014122655720415510256436464623844228259241244682281522723914493080046350676398675867144587716406898208232603163457949132300807395911186588206370436156871935591852140385582056635994292509839216463839896863220234663319248554309689767835276174037996779557901950053776035108800030942304904598385971892692140664207261453898466522591277126314319397927366642873846480722347594831528149288384946215126149107931332424530441730090197828868548070562519914623961416989376426586117469867596819271679895199697481379028441532449746123420596202877785376976335991360140775442117509800237069135245052606494267877896919338633649762011751108791315678093026484383379959176686066674832757135781666015611283745785389988240913067465150675831144148796221818406519670231923387219563836590738869187981563936488511780070563000471638671924849526389224019235363251525716490272082056149468409866249563317969223988402741140635417718300471994866375651724373641363001224116822414643348866217961005200768918552214306073125712160458731190526764381082002977681605847903288094615616159682355262796402386892312544926957162453306221524941187273101231107499361507119741576745683838913062049652526245226341121258420963493040098893950208642864482757175087119404536800499250091039262487141043405465732937386419919563118457448678667663642789024926215600606098877926923244860459898018194974356005685017755701988663419206155138821122727707545236017007122625967643828343456183528314297198748338856918666249157208600202789870591871641294928583950052072597499659540021365771999619953174530302410609523294415504770303192291018490346725877769179029873636552573761052270623908250533020175846285560501938846604425869559895700399885724324853293236393212559261392294590782226131746054729876993428561526765348306398620614188417489072808967587066956973124324118796474998752490238115474073160587960699956980357964383990133991858589557777398193603345956412832530761379716336778612790521114193257717822613774563785772926881160214518541636070904099151886827482820010269939702617292406311603620532453072298588082345445446752942637036548632359383546161237735810405644172497753471422535975665757100644394659565350913307546657025692890007020904541024253685890472848945716973787408769781793760316603885676089538464776549820223442900232407969342115652167298416916396569446334354207369389058444215845595339859458499842007069683683555533345862431607482966360934038285882469253152697283941806344842625292336438797620254712054694077690704015261559650523170693438268402297473806517286987059587168187508615015233952997789358662284311653882733187560195912564351979265025763526074101673442130800119780725296255106815633691530645285088144108944397463674918437584474330810132335388351440945040120111581860293494146705528438408875746146514508218534999434786832697680197383295303003508386116915024733523676711221167766654055547444288775617442514589141123890288289909338754867503415496630440754186557940438975065348509052725063232900816095134300509262710834202290866804910242134478655806416890399801314290349106493223150537666411347956819194049922740203815923672561904816234645924811749394377297062167958266795769408518422392498264471294734736004790420250686966422255014759206781081762686871092503526816642387941324192492656325201833273016767519918327336949015861202402735194837101457219981404254218502941480229333463143601541016706462674411970813424274689070635410420471820935972063791542243264335195807754594602427185719953357956897247166973752310305381093347061478076835459123203012280201869449743420103173611337448832395031665865570401641868418248379131868780295070011791238218176314083362483299891401126246444721337433966911340310967132868983585305633011660519882431768584212407173810994382811483653061421832116502290536463711239997513571873234161570378703849498104548645772340936579293401034536834433408233903296963125747402193860644983352246973051166520761878503984619665533770733930890576614178568150906507527219998641333542320391719997965050131169988369889245369634955187693443823188762638458075965764096079715775056868303820237862064983890799845215446343187939909411216483514603958708119323871645987902038237736629138598994617714726795706362822962105098024394313983807068001204230712802937605544337102956310562288502870147899434690009447381676468848359442672438543376606366588956181045980158118777104917531934703569763310545032163402882595054294177451618077057408945772149387302031556292415898143904826870013412109001586835978104625167922479172429081706850135695253359520814729953061378899075818171345724248117662419666455706261046696915870999999964504445066597038803432701269984355730045003899701788355592117432478055320299021368921861879350317747504917206125198185283711850990239660290940389258035432526147888694080197009674036574221326623505350945236358711322743480161986392592762647995087401883068138697300253533331165728046412910322575139334190671486249471923075667215481651510715331023377718541781888335236179580941223734058162664886860186343533207528801200047638501754843334940956528462950382190367190863105736286014113792821709321563405353036587402868788267414913663823124212799469070459377306106249414852739398498977986641990911361508672094651763467671279450858802534041421618609084129575620870508750517894486579286449246781521539210558374137187599342967967567567708393369811900480542988120699005471891711686146249463628459155775046700303004248018800898078874127912538790487699734074248533120717328214861219865863937841728173209351323407322900650809342446893819101705711760270069972069320100032022497521546745446413793559396202095058997222762237269504572690937045864162799780679142494983603248636702239020978208522830444896850108445783049383118509394731912075310484309253015749108055262536286796730326073620668523930868883852780765870330800006879718048365389388184032780128150362124816666741738653397215733451000358735871863020128528908532569444018270660639346369849145035570477731323469567191829276726382396228979526719463803115317806919127392696764930153415779505197244111890585241716035461555324106443161778637414955450371818897230957722728551814450697531041215778168373987756400070492313854133839101457190787332270347912432465511516906196359574044773288665506784538109560531802511990465613385054462111529922791028714724805774147881490805660239839115592952394469038006931094331776416725410350914916133575313101285375311934604783108934517526639423758085473159605504083496852153633692800114598009903063282807317916753719525160548794978569202614394376511618444065239159249158473700095648714279275632711161369510262184573848483790153372782040029222473205447163666169237348189826669366674605204496434088909343327705783113532583655200290723623192356083643843467519874876438083064472331756727589050383560344002448334321104274532233137836747620492308708829420568447981185171550766897215982366571070549037606739111614240413088576080362577317761973477724058035056483995894487772020541236334120331707300326071700289323560132276959799958370282875986222463566026663310151986850218401657857380226456490611201444087477144679737729561934417364706441446204008656026764793071922836940733764456763416809353688904517178671133920296422303494855821378297021525288462361796254620888984515740043288814070662996819554813026599750721294015364239073406132378289427976913492670235370901414353135475842602260718341577336015117889986018650783258736677876213013482892534520974803292060955278829292648683309276199764378120255953015567363784376668319941438845502058952210162406977853410964173221107012356141617089261440716841055440872801204360245263777972966732734509554593498571688164495840660341948156283928704257158018483271777705472314460771342545949964498508039157429732913712866192031504722628198925725980483369250676109771762649283354666367396376563269862344262722072587242631509643421378099842293501654520780553202485297446320512914693346286249549514166225895100736934340599041783060488984209603667621437171666323817937406301627678590476130882094549209100969891569662204384169100505020428520196250301324190653128702245477767915639695064649488025687617082575492513334916110641934057036037105960201715798475355904731750514693326316090687047803273450653288677663412627702408454025760105567551895620424173469068754866312408350963756071232787578781657255063819121929863623300291531549514176269476721470006252503606327822375978182248581055517145526200121756627854239244329966120807364802533620690908568238078775532632632824274473168252996041760111232336218165583242465940647454949484179309416221577975300880509233746465980988854283140303874663931324855728190678244985979395739082086442492291712417462881752311099516601898239114906263124524015037797171101467948520085833974551029520807434947783452938538617682173997090671645221400366856809871875430303896925019459006967028162803275772557215412582923321999535883164746874167366748850505624198104061076827799043044836105485271572086423678033813141509209282322211541662593006278838264575550000139816188669621445261958416697608198700509418917673729959101712105007346524334255743149114895271906199968476658777297387116174404796151502136200912540556289797551874437253879659258589190955687996608841154023211161214856996851328527515275799966651495570470820082837687511396911918728988785360759115233732365361780507951609484600287604840818610208677035300392412784867686720828912125168457253727606569049880213844577433783820172475211846116145844578651634118944589083985372637559941614079020103045746262809327942511889242417531123952984707372386195483977509549401001204534678184086512085115608580692110312240823786299177577460034715605614348543181410881572754813534048901005298217812511665211274249101426179979045033885421668446151487642774772334805942149834699377688167017490067695913138406129463144924522573746971360293346046720336202203546102986837040814296517536203726087654338920530443738753375387435876798220691299067447896188023927180064279643374499069310779818046151177546604960285808121719090774807868758187848915535901494936082536860679192208611488595681058704869652555184333374264182597939182500301996649329828207496389985844773928916143098458147263858758152937290679413240739054722809524612192201320770468596039667990730553664468801772878685205916065760423587828427228540954577119716925886947834646946067864914195529920229819519039509350251685686570245553977856300204949504467077456628124010935144860001933319583701652197087401701797400918572616816916049142587864728549223475734973618672117392421349054593220775156144388647856324417366139820941802609680741201646197723235672031655631456651302756952820085377081752789174244191157635150130559492087680487892358480081785852199263877030966750865386904322741847099021225611666595796243412443584587611502392037378152002743466333963372712172994527237180963592305371704459312496427958288064434016487537746200707794474494672965742546421688953568341350594292974114863214173363548041759121869841646481024279644973577732959546633865631248786746954720700899155678501611735004976228997563992048615302514272117305347043321724959503319515325349898134115818913731026823463282984397598507837430061687902712974667819682825472723518535824450886143991997523017538276133457665718212943020278545706228193011798526886966787807886031866521919177471083677765467166312429394509239076315583439238525703031351614991235626792575369932666204697306349875346731125908471703165935461944712225268679016425373264889559670429957824185081547543829113587794107773162891281437577465377061040812540935882624884072427848992280081626362607628322157051710611959842588652690633229285479243870447599776055904845802670896375138357949789468729296370398894139736875413838136113945396120771244688148418573645939748391417612115109928319082613056401123448347841300385238978056984300288077395663426168271209052338602242545721756054969667349323240962767440633086330847042575957758340200442510082125708132072216280537546365877484390453645275111342567391159191373088327530632720453637526160471853210908632860107402291678151470695036474594124108554924497405137789594959212737363675229259313692712459021534027348834535674770591731502026764671057576347630282573307362034441312855280960212372235941378760546712288029200963790429141100653781136312454146530905189686010193858089860905286822136629530793471368257123474201102618259161880675563832235977459954796799508163835158871948389636737144204396002998269798214079554645339895336177201822453377676894440472809649314792206710379907334181001629989105583324909136099022100334857500348492320151839093657743547472710268128469239185577715492670420646226617195860569586596565223721767974067005559761447487807572695245399121253719742810933969512468818930239670241797843195549723290709514889301779245673537947553524601985098877758695623284572173814828906204480252976041898401980335113039416983874936433221629351231537470319029126784115165387270083541736300531146014042999123762508837034004137533948614116672137519370668552548501136754859946984999751337527983738717051747009425373116849145997767733062925365046695162433480171132391992751711727190491918214680577361462492579164988740299359456461404894350267822942827323553870418083202627476989722877233838432376666154822850295215970047699283280857078278532059929714320014103585952216599845806044983396790932009832236917412249322815548922092704261034013616461120961333799842860190219951668261467560799160706549271439550586830387570565815645840165725128724312122541590431309842035654189898534606903530128863731683533489912405017155227768962602441629396930932812311397958321114104868364684291380323023896346046368481792973884056891141017727325994804811729135647294373963089981831001787565506979255752742904627019340458392868845358360929535676421881287902911913992738719314295435890482257710608649578796775975391315852493941287749672890763969561577358290912468112857547175734241796992922771175792324912676244381159206185723439257992532071962908461619848058461744908031310458893356331304314605792782557568213399799972132123472535304817949977795330443799909589688042553355692879391915322286433106150585339942247168413373030214150851145797301478609172109124817131687713937355731224861932742696710698064704338243571067322906359719614492777261890027861622871689323360940225930711143405512910682744058024519139036630766319523002716576869220350976812059776695128952260531021281568633883075919636030112987525809712369118794469247722758041267277269040423596333446537416683811986202820315596918617454408562640837361523860374510090645535836351075991944732807999325387856252827674312552411252151294773336606872942823264642301753582287209197244192809172163348329654102814599980238277312482979489100088485432100861043833494068641821742346152082657072149343056511127458391226464040349358730397138726824071818364945490955960589101074897062250242267691987303768029450188002340281389824307551534578636428602996591691522567221168723707116147920179864056166998846276099952104241117919541569931847915948612963888767956305155737993727727839218144411364507517765102259875975407831581985244549942959882356940818048824804446873594992798404559388203674311176783450574247346604125651418766214899113040382545268495961582286381353287334280933310989054823136906352739518701684974478284925502630396094864405819160732995208515187089114885097739208495131321034974792368036241270959136066840511562070986107635901077097328407104575780389472168320813941561212781413118981235080109302585875083777169607741218363839725099612201530324750989789729024964460048573343786408276964659939515210822032148555993152829018835246487253852419782733416300804422337753374223362206626635365526743078859923895619264437154897045911524342242161497353856825389620154249019251360435558493958135938538403185627195425449663236934599221871368710773380405896413281083966078520545799258392238036404622198088596829790982861826864369984847546013247752151872486431998128133480635780207993297800710990305748166083130383827849803419243639403464882552922915841054152202760887991755017168692680088382376120940084463572304334191615646214734839407633098559302047932256888772279161146870337640537437428539481575444502739754952463969427493271449073458439642019334440351037733064128487255992496535493449548224465247801783864236129703194396598385285438099823479991890789588517874646996032139244122559087709754456168859785202362644847764159537494578189517917179971642371301853930055782525952079417783794829700349158461802181058561170012939765388327550381987647166591010931274044176536659031774545460676260829297829568030770291889096909509915346609595870339580532938428060368004428701054483175153278136431094798264003410990627020018457607275564038194630521295163452306763308778518910760911462051635875556174504120488204541446642861671008140813638676404963439657365915525222190322634319411056520118414561697720196511948402036186219253088240902589504641676691115653773199436542643736798927275966578890330320670501749997119793348774535924017043100327846211534374423471075024749406719225716966597023345119344968728170084448340630872690599626181083027505565510969297022129247119185409220695524289636895946906020329402508686203167538535310840691456040920975262518189792810428150770422247470241263290709204692181211830760649758631954150338925884442261588809369872556239523183984867877589875617952986752799859298513986091281945942939558687672480886843832358212307113447465457697629561323426039474228711993101256826754197255393715777399172237495010893892812465260341500803240167163339450823481322586066543578317922212752789786542652511318903011377193191135148096112693972762586842385171014078780009969670993527840475812108271452314261723254448621580385743988774382146641175211924323346007198800822060811903524968000569479634780353871880080634263589479408694117476865817720363369131897649985115318457679957718267437053558589965639881732120263686861954702069945382423446328815581575943422445139913115149063170104370005525568551477016199743840167327326724454666941747114229467437196554933967651356105494764968153487674421994969228343482857682436458961420820725793374031686718731798667709302888390761473023458362888809801705919548581639272930278919208302618279551654475697328597133981127143322343071926487712712613313961592658777337384408200303882892253374582582901503928817504694318291334982404660546972779703049312284121879361361242820998986002872747326775989722733245236887806312058007537759473969472181029633974722388725147168938389720801027819483932748593501758759517722767300991263734646239965937798493298660152244904342512019186193634471506692756752539717720090866125676274574597915111749635105862947476929349270273102569047118930487636745735701973556729282646959778242673318964970101111170188847890125002756132378834115116215846194208377776865785518064630202023415886082804575387311707327987290869391009079541802687839569285383080946484377522043360314020782415591190687910886968369960436719581320243916725345518750727296880159252176397566800113758960753344420390557923150484582190475041307607304982819478592421608624852532488742590202076198529813569907244312212315325339405845145718155704984162830971674394226924499733027012149194304485581951234163236489025002213658112915341174000951474736561167481672401648508293945560169254378161313970868827546534236193156275559152922182065845297265841847624657956321833875007824786110410744044859735380992126535940102423981799070191795280755901681280452497925766953126850707412829151502782618584619162501457239572850590852842760425077398226108493265277603208107459665327989899310350806814141952474167374091753095751657390199888973279652324437405168675783088801767126198848970814504025860377758515505701582879319337364904911983096973398965343056163700780803763781314629075929086017396991480240149133498702088094490657973029022181709744762320338860501147514714184242118421425265144411887064603390197961959871127937683615001740133833847986631249708877761003988221134829611702299786192575353659758603585229866872277845121824395270037669421650104567737841091886495940507832639713036626396940674022387176256991038328222472220822026894120443437434855335696613658972403482822351440338094245374087585031594666019829775048317597507370059229298940817877966573685130432174260976135326034689597572203761783443868950653580981408502998050000070668165936363918981397335315673849752625892578172694785141641244931264192085946045176927383338291839041525489047165286533362550136024829456283235911985341339728979452974794633950626008259209245001639594077683465375401825032725834363478926508370343521875602572007120905721008969576616128301922469471315766030231787064021715191243581532719655636414265451776069280847329839701721124072848685326480331292696492250912082849029023140578978156125205401397052519524645149554738270453031403073953234018592067495648226201707349903565423811564461615933313903742808326382806989250484492143026725668605652947201325666972259943180031023303777596830492492760460640002440468563119971515466688966731467060185590178443071716412006645692900408072497636213977577778437151091667608218359401627868279206406584979350709518367112815366508392342721140867957981042776119348629130469299140007948616348586750489062540663736915613487234777652545559599197943696427555484037085872331058498586235279400234781447306800002214476780983124224730538143074388049055032751791515856505484778450746541543245192589746331920428360804305897806681020480056960817981670122112286738843282823688118996976999632119157994697433741474340148610128001693865660067705637895652301412372961979019870989787035055358535007262644639606578979448662583418934812929127229699458664608253537392844885289192494860487817524481184675344661853859326086481217700636126764470438552803877155599101539701249242920997810695467579090516578462700634669581309988076633293590677080080932689616859661118482646547195140196112629707099052426830970313521110683365554046751581558519306968179400352227528003075785220885793004906022439318403941089701605068561215337555575764214811374080433388504913442784256117320181679864430454242336019616505242631746002037924951495132751966166346905751988678542408905043518837809937957471084716406484638450205053498965600978676707093195139947400033883034210273718943756711631564136058108871204138474931678164726199677577616392776889700219379833194813895473165368056529399877350722626517926585859776877556952454216422794983005575239170622237726967702538277798611144831893505758161340249059662700287614089704298707362018472181617702177785000013378090595956001995113121755852602392787627127460562820032052188418903777083859838401093938890798546675726830578246937644042609223722628286211289976547168567098372162970735127538796440292869693257626446814838959072535324906401225305336660882767921413887885922847118684974280410102034408526022476553373406346982849526793810594237779944178453808285209140058324397619012365947882257648557428959413397333747933490651364713511809311170308875489207735809925121561793814561602023186573793925161578105136188577094514438545846555510014605944132110097666909217273106533931102812695296990543841865243057754724175096969898484947515386193076801078959161949624874178692318789718722257939293763082847099308642718317291511869694147562001048481010102940382189660262492326400993121147111466087303258942133172579282417718783080113376554918267071026379359774441383606614459436263296056262141923711360464248375707162887630834375506036491531916556455811711136191546719548101873899111839580382623301210354965129858608294916191658280191003625509294552376514960722707681597600765554033201446410273919797401834636268314599271345413531482048757942408518546995653062663627066543340236021513838355940249598546373371980070463638522411078154035842007704087114243649350491337064291816400516530321900800598528052972829638636604144634259125865886391671730751218299889310795964172483024285266454121369332512607130300724208067612927495791883845625013174961054370050424160663420089033024827965452905767243532935829639353569465313275509777061959188080272981431689210602515313505292787058363462345795395062673566221687093486566188996294025955556039795148494554005323429774529136474654080879813063376169053229781504601313312211504058677262146199195615698352422423449881406555046585879575554450933011260523755654706022332416287476629008466999013546730401512323693405423252922994222063364077887390685332617810351975607381142568318461972542580633013009209177711607910179963392691636993727082235696419644015104163602420529286785812735635445975480098207670340278203034035507049339933115184009819729443042516635732017835551627841587985779711709378265768386163624982921089686176647348095436962240893540498118358198428250432700924107579252637518100260889778575095313629150857310979953149811000404300868536607443199928590268262266305107444607300648588729950136633768559844814346309775086567221310752210377677898440869320024713977455131674685889391396253833683827676684292950453222518858385719758031984341570737788323588313889841895718920120071354960493000888755024432255798423396557947646432468582289112447783172592575764395484292183817815518438312179756497918145586820945764268701536403126370927726367172559173343053411876030870293781785298037548873372366166946148941875561806163396673254077736062548855003053414605070718170605023078643036101632744805813654684161616709283874472474213022340492025980448358582541692441408679479687276023869806861945770393839033888866738999042587560327156510497484218333950493769460535248509663975711495014762645803237028368791687319499579620377934734741919150618287590040209136148807203797490126745174105541749860773901372091668364238666053266386116242736178034826112516849495895748747717967770022282259883364596676508600486473399165925326430677460000093011585417182760727699446480558359499064528555504888389003098831067858592985205596493647429658590374822899721782307216778205967265352952491699133010243691656936769095664676135898963660018515841599043533675611368371195949363161029328093527162481205415993139675848229038091160154761917469282107369574729740625100088718651155247997084020894616387529649054579060802712616787289289249654272834671118398891292389089119508932888829769021320228269185482444950050525881829012859421974486377097525839006307227626544282418591998772987651779222813172273953098949249802080444452071783742893076570078499586204763429613118007661618359556657388305188238711468366119817604348227238333419459145939990322015053937560651160716937534417668624720405015565538641785695346263485453229068185469940901990721045187950672085934808643528448147876103018194577019153008076403983184214608451178188462593351500847858412515491249566396948106525995418813828032805111400520143444486728702370077221914741395309098646724100332063228435171414283908711234936551707837606660572803086851885463908060566818360250119528861914864087638907226210975613876431419013833132786552585961855316900184865187748578634574811504342372311965525152297790607619334188513266588303723036513009705699822357994260034929442105659050568248688389948715447416532394694716078864541735655179364974197842817107968087483116115176435873817146253193226839144563497344917101588887300278466266212653532198746690193800731929566360841947106582191578931812844367298706256293157310812638199437142715776536888925328480831333915416563213401420802759340549495107237568142265816342385424330230397266498763399027975885605787318053989351976965255994418043074812968965693962969280212068019436825123175323819539262131652131425067617138245088312353977222592578983971387016165924787697108036772227561525258647091230654665124295010281055961333390429614653249662900885727810251940543995154854182450814601219505034677935520506431034220799894304894491727069597371434709893730500255735631353597858766852259829348744898131285496615706458266073218948370805498401803355705785771929608625675738298235478089244621073087183993907839605426965334984196864529020856872681289953180682512429482243559871328800545901903629148591404544569902604025655870298025177316881200208588825554947313378961103668541727413324779459300074327505427382156512681884633340385581897381529406880654893965072728257922034525947889990921171835738206306387292765652486325409622951484464241041644611246417734990236095686428967273365275630816831659166486142775650666575877496115143436918218018496488728475693447925368048082819763435133886442462479722502817216413403969319170307756426459508253540390729657556153313876570974408468373129522726687583388110455647377266948590919211724556391048265982643228713911318840862276856839999513580499730116329671775334444340570530521779375622163570417890316907710319073021616235684498646352857406465492214209961865327914760863096316079863611839324517095358500012742925964197446490665238280548547630740772594246600625401706627608067195650800361462858933116298413135902416907295911217302624240045656973622484786346162279709552473935354125100724958871941383871842930800567074776532348097532409972179573104046918409467812936599353707923479617100562474087965611691398712081217748793627801036810725193071691307678904212726436978210872624136581693687389088844350126536755232009198417899044035666414126251384679117237001240168941445507802981132448388440227318740517812138592497506361951506208816287012331365103670000980969026385785884362983134207893850743314375402687915128454938185947065038418764154718918366412021130769066024909005655806607310305871744642657688236992722166384307998052470270294724521856527984549116606832045698178491346641876178474044343357793009151734210250122008404047939624251070174850411393629766941409910481518567529504079177871150317542161747346136740807931282124940412797052604958224204335170549506659270396735492266562202454401274146356418995934661908799701072964703852444937686527649723994078735185144544857281826294964894729395242940445743830196086947052910562506168899822344444417019461841476773257167483010527199791745401414005550437326565114255363935148546519886428459818340904642888276620448642351985790194854988842672564520417877300836714148342706689025883673381603005926871213772722779786159730264382914032852662680101831265018190200388442850261745790149470869737991896982680721590117743006780668349869481091197362034212106576757842956888595381736753177323392615614550724355647994061881013002408509855897659628138486745574017951438624186527118774436708738438679735633350070508625598899237628478183123885689882945727845261973891458207920625989867078965763322605440510163837448665374329487958272826696466685282521210537517562270124735778803540657719092558277684776984636088306828261201515513889963184745592775537805119150679774620957553971257977153210042912148976546821084472865731729961504654762604275771189659504656936246338626430646448546397016508183737605904362522534375390653863312138254483568364297480602893771597432818575855941625714673122190976777797672917617420273005547573854458103348338923718232038012043002148273580983193050187748060856628317277597402812404190635882212914736780343817919057424582738380297899701539825786729627095849515203642375370594760791831786810300358433574488857370211966603142136764983640390579003677376890519915833070099702763551328292654326498260960717076084519218196660520049953447782485729858923524689268334139728430541576394239843060848448003136835620919945515788245405343940734532149132879792702545589557992718869093913434449898018232374696396539667718677621993951156915308303842956783736050094320718322209415171036510652417807482204742734867829279291900572997388777295017972937998327993213300838061165050233117747060364580127173149313829563491788855907957632373188499403102892173750246300502521303152059585043099298153370416130201677179142015436267459707538637540101394300662117092439179951175157298420697449129397523813628936058783338678965704138420349966627753008863895242855027169628846748901529412286148062836037406275101106037782342315008521208065977356478274393701537587133215031656818690301775894539976697335930793151586873465694592589279156506228229953468176739185717086718829746309478407588610216867161279637261916025634052109367944604951186858006267250588958502262918053627872247413635615759139045943082477964672562408505509682746390899354085238818300905868879538337146251883702540617539664522714684700015932426995424760021773801642161551087724967559134954927417608157936945494154811525475706339216344408077064604890457313915250417115834165841667090513760105644770979204744826038526704206977649335510784438148974936915977108932153743068398840744436196184721948664575792832878169060831959319223332764013827561559631800808941336721314243172954354279575726919941832241544286101898915399935837585913527240754023053011674039800500670252770922053126951468669863742041972681056875622544181411577103383512842516059168375483186144587938943964880821837131140263005705889788839687785653941627288008558032138456340715169852426366239536765828986823795769885741794464504433880872973831229276955069350796453179737795428943767239918676037643291602103077421369227756727663889310367337464865261173706636107894308947155592457040432402589992177358128385007410794637837930214398521358433566064279457616343821838407022999990984630834230859608616213561794500131060433242756877512690474789839329916553894404580002023056928819259377970804127626553764489435873685437819389196522616876069259468154440643161306280004143686634720011967989472661093520144099474655798112083822872373192305058002168837671773099567252039579746355903360011807069519465516533536945951372233987249083686363224909834635059422701011184036074820900955678612648688931534457826957909375707538098558293560768262513326985348549584427121492619313722530931874299096114074534508835926312819956868661405870887253400081325651877946778330006529943489841813482545109050216563532171810334752591163506373550201707610056419725569078707751845209643019670925499664104118552029617203172425099767610629414928966230944090568827691063610956135428828679254002940406987635409481276254676557880089089567976729055067556374164671538787561185175195683976363436435342485122655227613505917452978838562103511333939972678775823971312527020487184244115486165829763288410563983744645154544218127466134626575617050052727339178172624406251024830655986881301076086864645498600090855069928119838561503352923461789448922246161259901244491894880728151639436568086436562793615500690298899522667871553761579232937684548439445805304732621060049535668904450034624778121853305303474122908919210857206382095487531082464836525503562521901392259881904601353816175064905310203203340089775936840646804823470403504643113336887850612382812114153848388717403494981540124631020838286044311058935530193199557108235841903695434063318325792355486240844870724118466851369181718941807747279019880777745775639166332045235357934565547174652882862281380222023798755765495544213743423523321933372390273137787341527767041020777148677823778504704060184990791217938597672636112904460350957421676198561542038338865875462685795751824384313487778458342413732899290668781205003749968509605525905293767306847859153761814419839967319919183763099259344771645783689245770364698800458706603684905552309926423937113947445073319865017982458542485774347675965205699922917891595855071191169090640288232626237926236966734829882951160924040959611582534484075914485921880811740353064013961664000529303105307692667792323585481759293685473192415651093053398085230735524401233380064016763597976954826192716391202650883668186384417264626907879692412954427850042889199899112971554759477246242285813648693784681028850961382890619000852566879050892296931345087179797032818720019973725520367110660117270957272398848651863145002743373286091893184357204992206252289642266433260163718451214468299231925926646054667033643649769235364043198833599276418588846000153243735211604599811981744650103188174484356763235795688759182417497009298855524902112394118363698579393646473575578871484418834907641549546551676975174507426287361139102953018502237345132133621343507194830935923998952695177079500865601418033964628553529107042918937184946050848474062031099940150276882125886040258283508889297890598151237290532485884971737104203925013151604541534721708305045443757228218234727172356414323428125312321001670126292850480945037109046688440238966896231651611564472128479174853153849817094101698542311707214783414329478993467148248654142919026726047067944720192417692136442195070840665659453964387622010470427861419639518330938042681783656793461269334581814028500585584041061364170474643374139629227420776723309596920538317170115400249096641629223637971444012077495204702774056737900238477954199945334247318170452155097816894269090465843354842441840800865434261061586017463138840781215943609283392046819761097339625632595191674257602698924984817805120574649263969441264021772187834945758351414608829665823462953842952629261225707431591253633647492780464942634501040660284921399283289710325958022612996956213431244158629770743986551155499814211849388723566931576538505066427014095905857312163539459539771572941725956195820458382390160209468870135922463820802035347087935678434165181020481182529154996128021049917488690211446292293424677198904630609744193245463360664144514367238130534033367641957869791608417841461274836647401789779716804340980566016299748387902117736835186342138764408914905528875491157327984320145220128543545248434005877152618410816872383961759267288984292366880858432024058459369904335707572787561591732703473993908777238766533339667595131148434569221850298964307855822085634256595630067121579626607210613091799327140244234487429053518415770147173928706799681873412276319478448411815351729788682897270960571395208416347321822538569832582812680221367513051190195551884959876763630582480771439030831924457671079102236454592862959018430245688296784015159403211397777138954939077651976130664045452278072772660661215869540440889004795414293329300001383969666315666055849981252008249129543972444868562396137435824460470800960446821795177218427432352698209413509540624895193216631467408332820044541383444467789668971069556508989084695832564719839610987410313463679740267434671918358805132120033010833491344015509300762578214874698503525780479367445309702361971455616263051254605536616154958589876704007003739156764931462747398763381735251046079934855104624456608478779934612196655520390162007562281183163900861215705683901085074790918280111132817837376869647259381904121722436748934132786354591006462018023701814417707310617756438460185433638248627183182883472134556324656402118449759477352395797628007601295370617347542670676322745079843693383150513808208783814712026280452664405209433625193269558157676106951439849636686899015483175682173955056909577252218590273082992460274557350373586704034991906396774512111970436516604120023346600834150068482619973289982392852125020088238256675029601195061156333782406240261295319438078664693328062213760875158868750487966020105307991555305011438035210837312148133115191105317064346944848074230416625326623207962653894055334025315968020346970960296672833275601891677557665440723189593633284168026717660962573528533238416908355812157329521198472730662922378594637463253362484120266355090503032536671921324672255685461686142703855277049146744317210605909220411595798632342432402018038793895266126253164516943619967266795202101869086020343388827436140075827715353788490895602188383052078452743318398355837388357767932976335314443790543433528536531623963404901203933129175418961827176139266251109745079600505452602406169126581019018769858053961325244552195832350722610442642191445771586604733835536458040455462261669826029323494276468039819918580294679241800770462030516195593799856227694643721794474015975625415942307868241669852600752897093577525106108079384881853979374239566614245151805667378610019606772178130148519791637670961707415678242814357428786957198337631673790537045728960799453795918901504049244073496962327921328792391563863000099277222943455982874445581686705648015429431556843928143314843781693599367618610655693957298744382325183827880060938546540417338477782547253242534582729150578326067010844766041769477256053078278508339585565920496013670796943005089222795295278839485438364146522377849826973677112001053595350765339383123119632172403170084116518580477467606622278934503700482959494115027911081265100105724472922448096647916497461585300030779572935563328597310177323002950270015101592940861226984128463542053546888578291679484584586377169768635927661248583096917085355160145973254606167319335093427441828574339037979061482734564795972363012903838406039210460585616495734151041507553976755020150867067879142739943332380610654219154430594206516413542441874605619167155243064306725221729795679772224663702405729802295491946640728083179449966700540514261043060065376575453752835428381521926443390923478999808998988728599467566309912832952241511124592807338734937951617330382307828140211086816801903962228839973047496559211021413673012178615256301943327342384984008989381727157727115140043706644658601874766175284465522339494280642459948509233233592835539240352928225395587156059354944665174268890475180020557543070149240628556301414289791774389978977861028826961390040076226061769609812637744286933794481858164897865058945607350378483342112513601502524217221464633049195702593272291401421415425781785311308275047016162057418799873097278409594897492978245588431861259254317922391954959657326154335217931133083004230321203598943193852526532833467422871237957087661500528634475330127732242260321881231994756222253299331747348606711391858321509767002472888037696723706542346595880738921051493898218191572710491558790195953046573829598447254783580195502603594028525349468998806108012551285922629335010716812214456227909739784959987881058887777323575420649753594291547367340485562891592781464153204918177288220007728047615033671439690390523094492153934122026936652053539880050786695707836103922149448272630601804633281253730376869979910470674468998545491891772629386842563697368617334006120353565632419365038769329644614860550996377083511852213291155602371792804300071588385505243051793107846293287420404682102828004305816946115745817026384649996843983073053408881026718699993822864512475775711457484172674682942146372072150320234423200357883945195854154964169870534175588354193633968040793591534997895571322542643600862698058025272845581250533640601852618493674208330805377002741085311577074581948783023253206092384999965485163936663417571450297258534339010945904016895288855511681186367619023340853312854892663296870719507926970002002323287690790511350422870725335480287307724296989579592785982391647088013284062623642327888930428050916571656441164991112009953166374079623440664374962812531707574339680694969208595779925310772542238167573979752842481358127737143746116185607154169392752961699700963155759622802500711036918117768449103531270916734804607080956586749707242491894067832922466937327584189736567977750320231319389968956220663861421426739213051265361523207971388867579226588513836724213044070281073216629359754547955843729789591342040884032663971554598147294561064816347357938954364127130585848062260593809545702923463270195543003209236788011410899370812202394926931835644789438074281757133577873374903474086982508198133061752415541004437211287867431754840387864113458125866799520203463634382314210715601887458075782821192632719624857982186165946833428301427671742189653966317689156478656827861735523589967894553541367181293645828243428998792109778294311474342198634541990046084864044096952886002940721770362235820386494111673156589519944567840875293018301147175419378837612325064116979994641728583781541918322087569337852394165894092186229745220946967870511925949450854159278470752439733099281324991105816226096787775488599537997414904757788182893654319770832445021686522588545658738938355113341934451906563914710959445310649570924407417402649395729721225489147798729162639125366896074830343856975244289350814614351940857399633890058256760052362607020253309476494209619959484743095605765895089488341550832162621459486633028043544751316836952531272072667431184634467589581022834667792961307041675476166829472532434109892282555548885806849874112771632612347852480820335550070252713126553089337834404798256803439052286199445469059155348532174408860091253215319610833336383593673950163175285406741018601431879395083459887813388746161493139663473570615466563710507127819137032154926990751320503923734407067861824730907642811168204636192404692188410879766898443322318997481828264939883063822131716658821408589264185567327931711220920206394631708356387163480781761525339122943771668103662790427041841637593825060020095082313905441302076605239950931200780421328937176188837719442876038203728561512291610546458856056212412064163682991533829088719592301710096816847279424305576343922594677048068376157708030342837709975548021557471216385410663846465689653503344624876543009741634809806250512315789931438822674049773588080048532298733736782410393067433325140820456915442163764092308946586293018396312315287253522698588810332479921250036382327710880319179687781821950652981039276233050255211830983547378660708759703054961044564820280981067067397444000313483910078105586771583414451814359768918344841425153939734360849311530255934060354601062983138964494624230547189913478380675106499120161896640572116017976793056374121706891091686586481485284627635977829576799688176873231649017540894218453707914783786712937689582695352795519177874067658173862556035141356239537659866121880160677030153267132186452710360565933223082338416748582092788154983262166769757713844009599629010249576538312758618192030708708945288489402713668820888956987838296519112620804712385245146066059330950416208990728567370659906833671161825492734043467755463497421848760698129491022960571385865623038871209189508090629284983621685282465807945937528983070489473765198730369658264559604777988531212632599566014442426708211941597442775262147618607202690754947397304296375647035659873929419371637186028475246215795623944393826701398345748122564213775885471991544913059780011657584406748262389681930701223757557328373118794788447036403249603314013817530501809844472990156982058854550818459658990232970384667213707381643919934710982614361445016350149264492994882333117680098125168366692080588017728137549123388899363719244586365676988390590221170551282628031796989625784774830007133131215221035630263308101045971055477957371539983388454617345705027461052270006891662869243495670667769349913146021580127931363116610630269264246527238355380396032563854915367902269131836786996746558087772533449942714929013988914348687468873246550749194056015191811322103214435792235692177218342860437080392108787279032968939345182750081717546807648469554266545569945381861106624006131141531691256580181614704770723414296751873887692909476565931972501140147357908664977812887134359311716558484630088396124400428077538776985848909783830532893456918943552466257877839560828220704956840182755329838112068236060955460969400853393972569761291075944222273255998925545161761875158310338714420991544438529824332322237270308045593920666510708309403176450305888051136290556456470670996174142357913136993328027255015139812327205328100270451851454464709074137049499111794334820921040863989620567034676359998505074334774616562399103213778502483348992839427676708445163932807736881610545008661141935730524989457098788951327000677896811929938561230571638108858177478777283456572768349973559158637744208116279954106014106684129743626299315967277025834301901881974714990472720784377507700499255394025836133550856151883734713573504336805322745271255652493368324180202862830071935126325599270807504936759285104932326593979031596829824206173205752036418359617348382168539824966498119924272615760760267399895839686081142792567156146838828376846194900755098959853476752643188255686564692493807961823044967859941870435199596026933808395701135911947264142739839349353999472622311691478297417224415632872392584353067097942938223346607551562187083177520943789332132139942671174086881694387934982807604954311769062859718559508516105427850510438498985183409934813028549181310821293703404927415192664494796546880319464068264999843598293341733154842080082770048303271081112431291941248155031567101780304754994881212375875510859692969379712685671847220130889792819810055276930248163056242244931657260832421905324563194417931725116750193384510103457344874885854941719079313709509897122665337064491942250423555666548482565254384619263513170451292654445283016306811747677078231903121688121165665673034700328679932825175631866530854707750992867879546589820698191343761910881434620576022339864098827807436420257622332186817572140580512701450007783683705905809531188115841362750671877636357389243550840914701304324561867762305573359279709082717827854755375918166407032309273854193099261466341571604731171579586912848934665967098977981114659430759054751884870386796223552415471534033434212142791984779200683733549748233131228116438011177478970628376508477698414852510225292122941777070786780432534526200877548422746640752928368111081072452061061249566386110562321055895628995044468319131771216636533108963592143669433338125135357681493055738353979175408771319491458744353419988349182003387826822613690629607462999188832918263341422865052418884591969471249319138448267183690835329775879979784834044563104399370389093924165490546938996623493771538023473067021606773915855918562111998153206715485797071054994123076322268202347131040622300668101286708722616866746598012990734426023112028963146902466088630652753561891355599829190128681142174825808511023832843941470110631977492480408108339243077111234196662323875286120056497731909519560657515048127940836606138519470198309059223308178894700174025136331865347477237195190173505052514134578373024780627444876427965226634389826167427842316354542653077981157194298301697827971223008717111481982404824226797948867647868930793913865621172826006016243505182385965953279518881912726897871992099863842104824783095319206065375039600792172526347894281430035706984387418694083579069790606139827769289277191435317195183430050935925121238724947939858024212459016189215352265794202553117542279709744664703297346244378887639700189153226938762059409788951339137225244057419501247901018191777237323337277685868788093299250491008551867160522671410470995940160819759687280602463505258811273315109005220460761236467031404921150731933371685402742129507438125209094171950130380778350732249672231865388364601899219244423947941489936827152478570740108448970333849777713759375683482900234199226471213485160385723107207344909750802828815918143390108710434901529320789237631121064984050565854046427907669521472686606287539725314016539784111043397367178288327242871403726130440408372778726500797689855505854390939972980628233478819924542701626638689456512764081099995296813502649502255204810594081372684605378497194963870417657960084782313649671413113871323435798483876281726171276623158967702662613913854155736214562427748188594512202577981771750936014649414281462848138967191652119053065097218919505235852113408817018433188666845742878331671872769753036942601458370256795247663522473044103499676524127058635376766798682096413489148786669653894641975431807332003299418432165303047290294441715636808020048695865524198502332163704085177509796561234992739920789017353828957265815017542656834157644439041219902744168238078409554672171032813426898736918387583556425717659268598605643188817023823777275781447116214156115911689555193985645097256593960473328772985086813813814884637222148900657154605264174646381281922000342846615995050822316017819484518590406626563829231025544664386603544078595924212080361714954396927858571439685949104258548128934312095031793494457527575848853396743905884261659132543312085041258447197343389200905550334697737659290761409970109348972633209061247744985610691990773193667091715399676868996260490945277071268059631645816107423841424601394355170388032430731979792517997885294841633592430779674418818273397618727690215803771005026511093337403417265353532383526767875198956896838313237367833435111589235576282130277378154958510378372245819265216063111381916496736773621245131206573030863338565488095584677073380094142438486557129246940136997390887587729341104736703507239904788481588223026388330309664657730275875645427437882874181367736971762613175528720658145602822839745018320239680319326022712022682805253728518533092198744144688701158801605802526293994849930386732951324961110794907971543034452134356645601614992789626938118531769413908362567775513530792448136712111494365779138172902640411996584328900895986299668484220106952376238001451169619514808673663077860059371729476021851659070912777409637807474210525608379948194935220036189059261400771977283683490752730684691152191300872756277465337841020180528602413042471630702897768196415575987335570512354336048508362118124459228507461520167062592355451333857704563475253080888795617924779032735440796341863212583830185528211347762669694925252091427236806225399207795057296021442336792550127248516691475174427819411398554911787624134849307635743659098533476886905024698984179397345746573745794555121228975294936086662203297758800441999198495032910148116524936100492494749363298838745153870135799418227442748583524335721044260362770002145873858056470011972838870095330575568762831256536221775889380859446774731312454055993491009238303382492704014157438448444974435650790322722389258447381562878627057778797915220140897559531329177684596201083314544097305807760939299833838516214637129656733752613031780491893935708001522031787530362870643327545135854500279340485120750349250370407846491830329714104839468854872544396340587299780537936733699795449235457958274804296922077609293039044348965366425846969457863154212825560494521513495935384208342087682539827409734814245759217333921554474843476276563529779176154752298946909486098080996392325772309134478960456000628748664538818660102016839284512470036636139720716560218080280028574164540560685220221773453240935192018338352271543809801291228185475696093329583526760779922954380515982713492161320102614518549976090502209894173106534756368047148813486118919573785983918053449924090526506205844155986436384855646150286795004208790193042769015741865117716657120669344318456855405064176356088518397483621203629258751059919314263200969237737491794983156781742706791419555098998507002632989536336559216897555070833328694021750312833278393956037501408899988739749336817416061282933083776239309495288490127159246543708908412527487725495190412503288791604155655776902340327025143232878449116169676722731591873171449455694161295013639007301680963300497290219926711499582950222517664680316503808310504938838891223357958328115569253827087409826290041868966580177941062340882946629000699221506449425792890556867285209002297814343403232307605934739388000335396481192507211416422923255843962696913848548917156317853505750016890360956895547020055380127335301882770281792838172820881104633514335706271922293857985676244297902288233993842168881301983660300546315668141346511711365219270703263026855809611107913025679972913604425069594742553784456778638328838838754802675994979460809007374166111827617862266392444483362751235366715684087220250894047163417936584218484638784022779437443541601271052980738541258864737530361419493915391383056715137807005811689624994979981447476071315944005883513499705391801029689440819873164782107657380535278065797338117660834293272015146307601120524874685096133560747059808399702998732236793051228886892390497998750400911094326044911236019114649111197333994627350507435961751352313483122114861043726216307851468954802079142776974451782269216866433792327004059545915420440739901848345479993864110766850295466736466341968220940860422832682432208413500344630876143828683421374693185795601017912879345917623577590455820512357554188624243149376231662466528066246596997102559759596253466376452429231628975526193232496945023388758173840034320021507895138356131846547277300288749719394065567809202960971750592152835522078239932748588419217873649984209626961108078164268545124861892592701275968313100311967064451160749429018213380561315770648400120042444226232517178057551563004583550554636126186379672578374404257913249458306355246752856926927326339953861666884276835739231307512376830712591548297687824475242301888214907142717807660199713213520818965763522637084505499719946215649483939390909984061765959637189444143449371329515938460772720555835874592753865816251069991441955622422147704200762946881522602088294569820711139535705086004119035846894376399405642855064232242018875054641499364220207396984710974752620213441285724488890048036277670150729139471714556086417314019141508541992609621970123459564900036790715023607480763452883654516050495898887175571501293060203267876081896992056990951405012736019330220240364761761463884297096311269446000674862426872072321257224704816318599084253883618265569233523416138464932538836033560031982483289232958534489715359607059181413089064312095139254893477030068817398636690817430521729357359335241454218413686837949512429914247937479549413494506409749449399318884596590641377265790756004149726385803191049892152757444309310718123007741031251105721602397524711648150978024855668384145896342904361927677660904730396023355555363776616671550740690298397588551510731770846034828374753878128563419855972371853497338048503620976559074502533089077560255812143873955168610933907235108003704795991863758144406375785891774338721310817983145098844255402576221403317871203679074762292222789292541080867952794261705547832652725095352748159011594117963049341888246250692941190176563146782893166829207211224404575227353107585556467850694393783982775191500698495481445964190704841843005928838456897710757712717679204403389112481281225510771531514115053946880452561296519987373326785517875433299731938905535031738840866400754911917043343865087590208294566431759788223021033492701518597849567439750159432958412545143062994696704695133288054145230110512145301181436485160872203727466041038412183334539503216724213070017703293076894668007327490523762908401982726138524252658654181871826864524372072791591595186745603891618160749255085645258423152228784590910795272626926938108752923789545050209678330067816216364100699344238845995315146811101204975802684020598401486348677971692312738313727821314492690569048152881834744595712887869918551145832914765206994122537011067071604674417393153545799614139940449871988121826018110032646455181117520851129525668555360462901035378323877281992265516182856819323864550812617950096695348859172519704794067564830190077772443715656230663561851565631215738102538513815682865335325463505585862724268776637795459167901042158174056863740137330487391855337462558094323634096515871040541074504855882741292439699486685372351606400856440595962411843344705087173786807313201501696603081664286564922824485596024012870085511850032398135047524365128625773060236167554853952606633405908666306924903607665758012744874623361566615320122540211243195665323241755508533143922121840566741616500908537722397924566962361574629755170281423462883289544296936849960538350592795760161323525536664267365348638174683603313912026227378399489727841451987592964855540239979374959342047232534376226654057706317566380023353396994132620432613282467751000245538778446803755861854250107150751981099141006748081873902179544770602002056438880688998768967509998122897399860909373613378840499118526720967575511720609663494312038485292288996253803394447379870281787120064935649486037362177501452555556272851184987101902623614888577937610471170346876344437929318291939691817961959205828961266731081333489455756693824189599634728000108334248876626877916204983430842121250133924226029154915638582363840656894065972199308579464826293989506531374431831031444865631959256013781534845759370897751237698102995745862631287194824542543976593737914872586945214981488580481113448642859305299326378689776807285610399630009059512326572680565044823011627277990279364048434091437098244933077919586027910099190993770397463622600820824381422254725187475376066244598529860034124906043293766882928553758906273074119303134304089025238819191658880045808737435706065404493335879577808961827184006527091792673471492547609217586518684879548838922716240140773522440619889827458453354326584348534549331104051678759898102672419339534044758762513423254560550409695413702165064651635614587359976234828990368649999485102014270913584164413936506659303651763432057619442342361928598235076594353646923825047663103666606574707979275466468397284845239965444676800546607192479887654594492821737502120222301666390357641714462670527853257707918139933909945276579123964250478165126847867737938402222087765277754394208931609324212042815401663468609521577717031009216081142646310862730623648210942954204410177697258079440006099463448015275545885694336136597821609849617156252373058717241541945169601662049994803320278976966720111264229807424243557930826292010914530675818454897771768882585244078276812139367970427966224977588480817149841127300784137990416455669609053615432762932868402939378297424601019326058235293334242208203705103796638528777844728643469007208989392322918966340383761894176392609832204023033092426528205965785163392269067895833544410974456539721641120758923929080245299833053498066311815743052104786432352396571838924698166583530211958834641886268016136932387086353750708286910602716495800972559783595368509965021835122404220106719729024981441330596161742292446098275656189779054740605362319693893154457964793466529820757327399644567752490791533633656229409349901652804997785917424779001719883700213154994548235024651615751427347000417084058072554509320420080486641473595544741259277844460509574033510452443074099554336812555664007274636376484500752054722719329010735612112482203255331767584263985502850836487433206371367607586111431015849491159297840376131246048341482252053763323599475748343816835549634969352304192740465101609570373867475328419471642154457772775606454483314420562992095639369894755475870656955404022014860692390060793414401723482048194497686746355583460188563705984680831192672700757204444243263412375673993880213109985758411932257213061936550667411192696581998493508315506327116015868774336059078938180997003163608297938347606211543987285532364419462159892110265853507261347811414803710358891774471252174363318673576183371123993157910592647228525332721935639210954447429268847311216861389584507999592874041565059049965425367858832915125088524984033292788677199984918571009788539780453256002263213102582576908668541967130089904731089055244524492748150465424508067217880666640400992594231573315720347352472164889748049211132914707880445136574282147657483662676086754206113401811224332617701021495826245547344491219337533686374471926421600272987379851933982029633844266141707351462069312355188388756505069650987120891324974447863223476585534608995743339764398866463174859165784111976557308011969567306637720549484889372794170280918373613361113134301074278714126138422592404386878875853875192396033030834352755714816537168977075852311077970881433336654278090484960799968818765336244025763371152993180775123052253695080592401618929999389541102402447330975503118006452521968145384397356135476288396991167847601093599813439906504963869990685310258134640429773868715181870849860716685831422469009286131587040853120571002856224630701710244598639593644142383273737355793947040853990885713141030634859681437086869710340117977787938732819817687014946386189655641242681579151607833723782340235054616355394883687305452559910275922567596602787776845593963544186248947845162590006291808044452988286416250299708139339479593198976734651374391303038464083953545770515835157696545790735648847117420881177280451890223511835551671335548579474730338349288088604021291366908196577490196161089633631675159048423251566864348300666989641481367126225628687465616509982448611282643633778421212087353227777246295775329212600659754723028871462099706766931039048867950736525445334423580920733478232476596089130661410121812524912479722131530804394965086579412719321089167024052261298841729310543471574772644278669346939844521999159031474155206180916354549773661150798274847753004171024866698967860482033617416655072989669748097400926288676353170803997563009656332573830060061329339271700923794873094008118725044869225349577406328263343313686508808759617203431057565552026041867386784801468774942361518830429349457069380564778483550587051986665744291734793410374639780889961127487837073076805224478506793447793159859560258080213581223128649714827444197334406226914658402946841026292718333938995562648027070269337505206973626161513211327977735533628648794848351911351464914923715906306450229789199378267129228628788301237692487245351662022766990084675830709347444907910282788289468695519793394422923173925583465774310657812813375386110450769638116829574376814557525788130753861475784366691134563494880085686727881551911696099183170605372452710863163910391098104220371122557605436406084805568221119706062035619204106038293856177713892949139674699678250778132740963839402695571971396835752740975835852734533574933037353687083663698315925743535570586746549863827216235456336850087950495397651434956963285142269735359077343179428121378256842276366876874524464365576420990916811803351052086217274866427140342839240705212833629806250160730259170073559934459228405212824036046562353002083860771882273332439664558968437631278807105793709725882178128685947551708688437068621850642914567268295907967602972751252322198260246417751293041744457619632930694917480231684644920053548253347275629991796695524953006216469007951217559864220767141910966333367022397519225086977896432027190569427860088980765050926631770744427097562495930520056156998099335071846981929773534571212617554431808065692166187953007328336077064583102129509395658817717553538721787739672421704744748320188164629649932449369752254926068011018578427381761139366500912975357898334517452419595889028772729306520383381967520816386673406629139217782507005637341825952903893285324970670933180586451116576674562871253186196803931724143234746872327303010450938567499165753537171629151889568960998992881885488676185472877508867344316506915092228821768166494185718160734845108124048815762777085819817576704229534836128387802672399291326794894290914385131045432043551083987327150230058741742450395872967343461234750835004977641556189982875738922310279274022897292889720256828332945139837582379434530899727028434624942843011478351650089960805512102817719567386942969821871751753780959954766726113552384912379473505153105478586343364007389675443208472921429622441385770903353894560077040349918263704917299435243039715624538779269687185067776676489640368812114435709473374027093629666377009864310461928590114771102863409580820287280045380741020616046991511253524159346405907670325627567935261945706186610528721421230327645230754091192287733516485950046212984326326841274054413893437982689150233124679765454880364906694102109962169717763636010856141583368493825365525323081746739375835687491511227058537376050365893235861315740419355695587776397051828591849945665871813917610151526365734198102085233127872318567826411886266847606913960645429430251640048799091197055756104420291844528237766142803851500305495958474832304339113123685951354938210291993748715463352170334987072857789809131167319280927342433417205155147684314146937281559494396545410361590387476382444068241198040165792034460084783848577912901000329869706690872017608318413726525270908533180362198554406633992196390619971792753024866297289511251691181949964668704267437701839004125472891105634606034542659964975112404881194171931084875902340342652237548023852070453844712026862864445109946147378879993512553454414776689944946449892900079375956739459509542450002229759524575396883064032801775091640405217123517257666963483469141828003123109826747306523884768252267904923438662976646544006272339092458683868940747230884287002248619860686531370030912928674765129458207126267088254020180066530394140187442490647784871968642180508928984417150627886316857197324385982283181352560349345201561092625923661153206911764971372129400422416569031411053819099976576632872857431926615763679433628476201169734346092254935751594267641174678791139459239629782784603948397321354498841061402553699739437824305509243287497073720358382145095803335430589581546447700823638638800919995050138989421830353513947305501246008807273166846380585503994470122688361027140780180545917574165738213708810159956434494223428529651307346080207432619219208917469674699146749062577741280713679294738666869805173903969618254414476424495699347522256865910560456507206833071173898241267142338392508750893312024427487629786076583862709996293016306543390327210160149143820353750449529247167062800193708485558148030658160644298304327401671767503003961086488496346760284565644788674699637606251312855642333146493873839387561262225175826536794463660712640554452722502795402837835609311141673198232638962425211816667282581187948213794732192853185501110522868470872011947850327848804116276300715258325628411259930873094141965175797179627257048705688318027898266486242180246020515611664451721645122883427999713966950992033719256847319208090904552293505019526453736481215075702272747044079012413233342443643790924837589571461891670421488226068780508588764948675236805131177755414952055528466241753683776252343367391088423008388105708905915925796094779632620316724950132985863964764874896753619071071824631575441120293291471520996865264114475667994949935532120330763887339231786323804436304003139748406705589277893063055688545575685888775099732250754640218553318035358808015526596829063290858360729731123373260096956647869944177913838272172238925284381552236562955439234498100003575441089230829037505690343630999941484510696464076085586331030056179397302015141521525185498943523627841208463658553941344165570354592934920806878686755622081711482961423550389374098921837432041841746289232503107375476330989514198925453777530569990256760623935446251872837026548123541766348471103545054946490100538944739147503960700305958572852655356649026221387188641016289403658590566278494227414616018811603693086147871771497847890744145237215163319713014212328153270081244375164321247003506591146615520288520423348946782233091208933714262562387775311287727761813481224760559490488798385706414442000764883012467869793302973829715173074193046811126431691317248082392559116475049058027201272714216349305371016562882475478967463286801200611764051997980015212598905946440814025398431343268450424551718750269153559788772099312021042511749184476801653526442662089771600109529879056598656374120848566857256383464669319159222586325092374454157078659015209636268329750570973350771770475041944358468254549003757480957148348498442958183627837795348029538694886603736502898426540888093716695995910587592569873726305033314944085602776554224306560163236114387061263476164118157235184715021172211331343566852233615440364564710530539038612894250888957356773806943155656110841736411104013675917340253001398374525372951131078122334965254723806253041171859713025318526227842621068776098384492646114538676206630812802215722255764713746383409433851805160270255004041627190476802676535163235672402532920898089162881836772457009047180659135914233301342346084184561302799743457526338371863430758997368366828967597723524185569455812219428313652028685172692444182601493535055057106560469639885180020160618378857638287951008518223303663343748524680165393567361143213679267174986147249619198613189025698183077423722821930726863075751203640985230342642137264440411445272340452183195144006809288448071307641622192668962351150145305379026071318175813489021218560639351861071309711987525893366126637997928368472891226863789212490772683987239193790804030954293798242737912641899113489564851144625894643247914493638058275851342487480608747780712210728047667938510546523034467434068736931469663554314677420426838112181767240957702473534696610363789462623778757401169453023059858895480129150935864124503055479716690279930221993435347823990664120375220089662170120316306452097382783170663893747958495196847953672521694625635909508598947477728812724793224579929317418242565052031252970948975937530524914403968505306199538425961421510797935134312525071312946101086905841233398817215479878552573467462338907923278819209365313699270403206105987673128249053600581251313126678879784729778781109378821616194400467984143020003730532241157144516656855284000511511454471671186932155096898379541591536516163574410881956037409131404338510326848486480467456283207255114456741869589839627295741760059260079934159985478597079450699481725955664904258504382734949673971247964850044601107861350520702195498881702271223217183691589645676561328508625430347840141209519181664340096782898716464913930936557569413267962509677025054866517766752283610240573647526276942976829338946510870703173074185450843254027722857488526834968827849128580392390275787589705505418918133287121661860706972725632178694281147324223564377666641287658237362624025649527612015810062822405052576679047824883135694111778153854583061696825637685469469551143025516247781521921785900656893096174562440418944610693793099620160614285503345779717884579799796927915575254962472040758730645125489158866558437980082611983333985742168244695417846517194402655744061816657053936397468858655683464390394954621438421870013062824188714699345142114766454327637462992797487617391457815256654015114967217049169053693352136505320406658768595610761374046266511701014613286999039831140551103964437641858181173137845759613483428328067862341733040499100904244049986483710423227374493383939306211185895730549811008710512448291581890655898408643383059053601392043440162626664236124438681327469495761807493849125939018705689329144942561033819879545311751851831841216964678728750911079562893215777428958402753100475335058241391158796914075476250173603139090759667670441313083842655677441430311348707977646371815745412187738914641574404045360046110908248327715964087569567713688621600466642944789160495189777681637683122945175709504000688451844110356132091302942448596332221193772722901587506859093495287801884526093964569102893249199874475093963253873564285247898206738835487806606847738409245965239901034634300914253411045588521330145211211723583136230287912128049264202195112914756621252165476892977128751374163485810449201081013936531569762029280421914986174563922520401546092512838714578920729105558174862543211346861745343133000606263338442983754106578959061826884557387766492482328926487463849151625530644222596932434635136487913141189710502379529571176457010447632190790461499926431501455290611962557514028717295251319450216478893548297102198075736544324349354829908912216200526188865406489854938041904364084236300009394354563464692550978128639648691743249217106692366202718945687867774293374105461007549764992547198901261182474401789123729294499955248380227725927953586674217854844500937684066263297957349333255548732691017199795733217190310797566151554800477999465809845959841571407363859994836114878465989972356592261003971893502231126927448323376465337984681169404708265472109990948977547474010104595427544781284896139191448152841660868846252278342763991516438856246248238160243967167393674164467184923517399581152128658163084499421759148382475209560791481922006675522862209206200599302714801002587908867747461400937544712775567527143891096481485667847205252257453457655604128622707964170545870262175771127940027339971046914956817365964080814997656981478382510346508376546203837390374829656472383813472615853613817348481459768196038059344375986369831555734671374879181732882649154526131249969478874721231841900873812817822466755012931271399289507118257909862612540387088716932426114499675595405220301412829132703778566057353533983538377265911885530881886545608646712080608747924207817160780572465237415248975254346173265895051071908927187181268469202371645115030530923780343080596319980478667371485550187670755736842056927907158334263778034750657647768138903125862078516475883598040231646340751338726196782248925359600655637964167075618742393997928603508180855884600092975003790200594483060178425275724328076737610669179340845073757392662955818477998835618066830423475105109069020406284253465181664983538990747225595836564387161314522871547485707677040774640910422877861378123588039125760675996154031265972326443761531909101426292650064982178851740915561306067873257868059500298914616700951657412679254515600591663390021139883152722199216299275456437796915530187210435460364987472642308302685171217186298443722937829123318808759607808854916930324387361688503192029395481199270625743423008270661305437324556352736280391522842419630843387238371857799572257022117382555925491075950543876626690405714079338534466389895625886251029915515820163922931771086959281155841258918895832908398659018513399452404264702632312002003289167206238640723698686044559546231283554008381009059813142820200678553762890260756386663270601314493033826620422313325212401966421561177396830387652225210871105053095981714049583540878938266953729544742965887955255806603632133243726131807310766311764855773123771326622168984066288260977644040358725450040443681016292677906142569327560493488856456160500880110093704460242124825705391847619942540042548954912265109747819756506424103533615266630690468246682222667614732168115848492653269823947617533832966466844839766633019577003897088825237864323827341312353719492713731603036033916015264239639742689291393880192246720421153683485825881982397552537651906041266575771415701348364244424604520320227586450314673346656901841594088943740340671771559299546678227437569647175510731985237190136102133356604064556348171275517766433972961726038457512088577961665345004800439089172908671915303686392235237474535134364094652206186137177235385018781622805591256025354229800529491125955546930927625283252779111651422436990125419771663265218939124588689928711081737806840433285473484453910570742998196328317938305901043493505865887440362311650279272299793892130504729510124321074966997576945380719176286623231059810846029412561244503499554671268127827195115623324850414632598195973808536712638274001163043892248805718504107080154549337551460396552620957442854393889780559333572836576381142449009078067448892170871042614560711615042616863439889521949577212303577950910709293521380334540619589021233124655915028261890970014922711771848880496538987544607046715475840392133818131669125386406878649173049813467663842337174400589185983863181102016722046069820106276188133182379727307219143117641508396267553618011856468102098044243038458145536102415968742283537568176568047670126487478559334440569280714525031170526781743337685889222694127435682524422064545357540650171019142813022429299685547249005538455267702752188524453087922359693926796017997827279097379762864817907826065617125201058157010253155144851936153248482407095141488459173836050242764822665983026664531474556497591535569504545513120525204422736705040082436228675880385712302005510658602938897682249289967335477604679514041674135420466765864968995936589971260969438553620640821872984463544740085483783238975864618249181909283181115888006147451138987690500728865659683256732932172821938593846302746383255828869426667446138577587812856687132241273362513039247180189878796792856985309200958571214611625415067630504791172240311405425472503062833945854923287684374420343837518539938066527831904479944107401021206592224007608127820802900037601789477304633628255504262797602443480276066543209510721197889748037154860836966855299994511423196461866480787506704200116571673179353281087712633002165457569612168100870550502077900862832136452582886917752897550253911811622738919865472609686977268251423846303437660679543937729316165035712928867303163757065046193572629759973971086596289107574306002281262987409999993967802689045990538857137668967948618337616710581039035335744658665727859795067313171290091309728761715959888753105978663082722524421894576289044353110271458928005129732814565278584849923094745698971381421982697575507672229413661300502556157421871212286510030658752431364100153624366497172209212336525906820155301446013654156005715124128968813787754362314594004543567038726863762287561361100798575728472710334196066015703409408020654651085857919063683454141568275981212301179173377731089956955193052041230847938865602516714377053969761075442291103169212158590393080508882161025594778585477151586510168022588969183149143239679671017494868780687202563436188671838233492377151511398844827764303356367006773448171207170038498444570569245281935696493238833764489261207811818063817055201388298829812949202421794291240810559942798915555626810865850783325597414027994090087542007691356298566798061714625376858502764537343944241419926814604133603514232077862352110980284124415515464401790153257269139545243715607862584809230331120432364570276258703597267832131798023655413052806900129005183839340087698677319258142454252246031036954809444433668577578097433946257370953456079477751558971719280634983758309400800545146981147728471651160207835079919331877137177661007654462291511535060477044869707706757124440514112243486331810672305725260735748680694918060332947870041809748246469114656731393132045367797597560542880520794576875092611932096212262726186916557339197832292372546722155933669777308377822070857149580684800547835693783404743469784853891916133473355031058044929711736441457617569214676199853784963161651895921850381047617931616950945716666674837577734120825764079023039632720813051822535968612882835721828533672601712685270087836485095591069257560155901349191711226022297369651376384794058788553088052222584285756179589276658586174658614994270621560637092618758789240778698450058551822835012882319277929153291276471750824865303141323389255958104676715253322773853839297431539249706185531622542843991473432418309956497909960408291961065850997811999500249749981282109528736404401232458617071505070358441693251394531998573207556704313897845058409386639215815403696774593423750435015110027487327298403880232884345056036452975754978457356231378456983028751247779569893927552443255606098936251283665398282455517544629035169211352177779226263306330703607420870129679828430437100434355082242746788627328003856170348240744229762832294222555006476252011631493771725314542604873743421454674802220926142282722237244277754044964561894168911075720667759920965791254868381696129565567717071148273977937634651516895588874814123327919358257736936725328439646359603427806831515171777755920911166870574835634860191398045537792977350758267053772665018569516946606783728924036949759468579231232247010347339341828733103695072000375604484458115146090257278364954360423493841989574566634454928141898004060459303920106475662572062837728443580378255165256435992303524795904048001115431956188316322782322247566475564161623961784153744482573412514210746677680784058149899621633083797030384519868298169445658677073412650568752889603319093857091954880503344865364511534819539356812777964346640823694527134144678608834821883318476426119868317125074781915037266147388596008711321886325266522186955685262842424431967626203102288008926980144439076081061569088334366595011596370650322381814311415470380524095610204862380646041932534739826060333627484861643098094479137421593188904171408732551917391252225929428694096322375897029558901979830620981229711888565502605683538603273204272547773042899015450954328157641079637572036735210646617590275133028361693521086003865120585532421094647278958042772746318960296197062956265927250605769744036297159074827592715674085275661701504175833405658770500662516431243389005614012819783172551593034985826344056712180395122504524344264285073324117385612259239268689444556205508469394353269645030258427717804298907335541476804893934974150063808585687943458081108372686399395026583732781092078828794733099278369191981423679191889726876248121407403917191692965550117340973680339901911435841023898355484532823345151713445091612967333465325622430486413075368517125446356651787617893324996375089000523754266745760947819857602857340301956270922506742176907295156341434907760383388862501858941392412560181603982359931584304373313519200162061523693239027438056777167185101626081262395389851123665366109798282659695449097249900767904760408519089172771628505444624647985722952947900973484341324166152677672390130311043421899542258351210794330668568577738650355283814225210636054657554343520187083912219451997773941506036927102586234314231827043510952663832664071649310965660428768088272104373694427028356881190248678117561931727428184498214435275618321713347030277974158757918071585459205491237618110648271335339709363306758939386437558980814700695066344494880602878650620812310150109962194376542287248084305926553855976261406899038593456869994894734105959995588544532703978092983073302820200016088961870352272273517074746840298965030238563231694862198190454673251682457329532905573753271796025906307644535344539223113179768487779144724641552029377955378713832559789421281067529337612601895216471197523528346192510596339813200562063989694299588880207604431055140206567296477023243428490517728034040778548554183050212251991954103085853015451523254611831342681330357695111315160616164999570761190594718431914852278472636154010750650755403627522729996090719632875195661573315283986693898620288152247101685322804797391481063814260481900237837601972756106062552410444606635313961699921098950981345615233049853131834710521836488299269422695644777881628864225072443705190617221992630419275397667329641258914511829260764517706275665478041213339407600166268078474228273562348516009309050877792040635997248181059572099739213750097948111937077476856266861858825969518411734793998797511030908960435254115065313989515307535317016022007363233146331264800282017769533527664005266685100604341240633628465341725005450473748224961565521520744333966359902142677916023717505305090130050071115344838768717019540749364952162310744193486533084539133326782061943441528738996526275514045944436697397595877371965304273589879214167658811646596460399228044767697561242772544561923067310659179544358475059290597812185368006358730513532539274652590930120491329789352562869588279511904216877589355392107140094140903344495568982318570165092275492455294035521880178286239916471982264666939279089100244467155495598342903977640574120696304164645581666640678231467095520998557826788868874524531839648905136056371901701646523680539860642136300178259982286917125255376359257858150213485543750153962669137136350976948011811516594784735739300253280667736191481924523722612082768503555991787267681138050754247934491559261957741123613245948273434433802831728798044180313554868705922229517331134503565663849263702523432247880381689458876509263511648799234991581520749253382777890997491654039469350755385163537351373886198684838237610158376789491284896190298422268055570478381883475237469918624570307699330043350302148080358313235083005070298635942056322910459217548292752044215431313760143458185506718471210509571402338417116560771786309167272457537299908166414386238754280216774400996884619924083820892727417041298633578164403264513752922408376483050799260061921344476225710546618115930948041757264013872043957044222308860012345174282471711054825489578257366087681914941419717637683808471361074140585091841415151101009372583230899936059099251665545817246535124295854572455532413449625473734107208585121153881829164636376450973443932964107992050376719390299755616980965017116412985504693335517179008589586944860871847294590052185938934122962768330312298136805051502576019652463709733786241733428477151661343606331975424993593750143296937444055228802039517798859510193607729902154001696268981883181354463611337130222368140394067617725440808245357479414565841522764974589321505029830305786498453049616927787155838388818257434504209422939662451969584969493554597873469408099921580075639277805698144505153915676385167409331040896233850111706074747999121860723975139099406377002211182750980187925947498029807211597753405032737461895003346572901215599058073873485005190269292414623228770733934609869978511485479456960217838561010521160541846061381337645978227695542295089763843208457670234038222396426618650037834728775525718674271988292192960953787322003941850829529025621604922102024470030100042745696594439123043134126827536774462609536509385964827047347995385018293035911904582612824911711724033782568127908391709392331035020452137856863566834481416263801529016935446503868113222221459086914968666343714603277180014530215419207372883889608107595625441164237589999374730681527482241442987440060060582251729702322861575296354466844445131569774653629870370502907309033242381543544667807249610917101694737185445021463746513997286024521997436609959478159897536134772693419145615744245792076769537533522849839577957013078358877034610415724232582071967759913700776551137808944943263435429228206369055234631473185835079087206766650029708193637711909083603100696519038414876275781894795440361353004293765252212333305029967317844691801515756733101976214966144132969791648058612338537144665541990791689270284133459506541376970603664386430133217263877829944831640177471955085244650747150183824851590233506744424993299137227915308229446042215209402605772999803168754232676419387915114085590210679936197107521401158605461753992484026650177757843039091185182768550513641466858313396051161264431069564475714117713510703965399382013505156912227783208381544429456709915267501381558607941987561704454495651925102960570795633738929249585185499344011626982729090440092605377904229456856582993665637158991015730121124584117681465872128798065192494469857080378472788855478300270448278829219630589620186705925985767739186610608075568805368056439379035481592868194133964519556019587994908087043003059151977406164527993381913638154900285508729581264218211687213855996204181535746581425471587068653114659395312169316498020823041903106131625407491972294476598713635219220958748800962421092444527478578936345899410694291765992417930438858166125794754670876131584192319781782614164987806042921383681737267084196788595015327801380944772738425558962032523333241972928079720599403224134271980556562715714215827542397923746018889311237096697898063430378135119635878387882054281280552543707547694955104779257820637444172420688148891745372603291601366073425251008443793626838588738616594513991255180404544155182187546976075789790276093696744453573314262344835774734857043058700608340541429079691208487851300855045391928827698990224031624353565317578009107162020115614201558278688637319318255474355546811671725468706929714758301007763865337833774442794825050705251446378169133131946897152119447243931792741037290067887413525814252563957549995998960699543418861596506264936860170094605447505841386416963971408155125664266905154047537184328725418310083275726058661361562582807993076689793380887831684333942554694641307348840711937662425813553550819447937381347657978786758095520912780156403916699966916722554417004367044563322350529709694979239929803691004805879376343004992517023762770778926155967660137654262814457599163783133401464641464256783807519676541506244723769685120833841008860073870052650905341398900477301471377352928162804403114977400194036494969451463769182792562339866709767422394154136746085963556461421024133921410797943017036436719433535418757523862203998081746478449625162534403141021443954483863464197138073212657379261210350677602066882140067648870172767819339422368126032244877172540792149967958336698767878219308535750907634350704982656991796162658111474123965569878788800891985418980661534399004336249506263253065183019202378412095014474650234984035049267192285851414438814174614695584956530603966560216950542372808967421033446252414106583612501961754237610049124479554887869708132041167096078981581584058011629906134386837114822652358715822526372542095333777347346896740637712561317076439916693869945666955137477609883641583257990672567089121072308509316280594339879496358422260615839282215351947304666124185808569639066191845585536071251866918384379671604298981960424273881706651291425130638651783429846299010366309850174081918510805142326702952712864025721767455509825972518839184622875449838963315724284808759748058786619039475643372481115762246966767113520037163625092700378956599292902050828146368135678914897309553720576851884603149283753053204353834677449196468045206173870739076437170773029433010495093133996166246859621452825014942746385374630379533557414546085031345244414118672709712608028124086166203358593346658931020509817918452294796873016728439919842542947795138424674164657408760538557489413215209242720649793566017837572211840844492378477725523718574513675389971386398863003921899299561234488512456681215388553509226728335662994456805836549163369125011444437405484407378341728319294605353156223960833778338952153289025987042950330188218000304535105725344044757233393356141601905930524985678798746098632128972988150026660124271605790693093134044373882866052654723952345958265695380685948095790948748936826219064033970607313810338052388910753698634046566946924954382972012228896642934655576276134145030921767310590304142796978008321946080296878339486359281162329815026666861071823140508501092613712542493821462786131674002452962839265901076361466217129004811347439271323613931400122368938830809970214291005085872971678052574628988855106108627586430406984454771693255504247293796102031198325743320241769242024351670559624762803098422640250537361714308504520707813226241395552614339651794356028547999992571752263590861466793289793261636809677730711602408820491549164504932234967610216399603575889640370665311388618215992020953028028451344406920756646996317474983579671957528727380285187846103105009995539259441045881299006481270358391752839209813028188370615363079803477659358379149952962389620629030539578054125657389427201099082991391668302110476173623601282389613555846933155107475869425153504181363767567833840184036596772591785342931530001148777334874183836292435428933282200379282197371380327265770028435993319645740784170284108753993003372777003036008230930541872814300466439003097556069630902636474739098618146266196466681178618209996040432655891642911930733006641113462786126519178016957583308844665251438862832100999472238825355100324198493415535828599583408192384079726752282731334363726242394009487369309748127351629444266920957107561007565541262099119365893918777538475166994420125131247447642677697018121505164480660614675669908502363389154591542660333486092280077257122121387983431534006316635046894559952476164203187899088478217755329907852867930021667441998355782266337846477289296864851841829881091881004497317823408095184328247597339804952753473438084878616925218904509739220114751278322214629973325866410567996081706978566108972083217752008829042327697910096524729026530819466709224851332493930630902051872101335579036492314653836211071056266436234078181849391326623067771524627605866657860031008384785358109235676498657311434306005140728852795825466536909976075193282116052287295001250537472631853632816797427722127319844256088277878424606835195300243648961771606600154871636496015721361694113875603130354244302184598068322594437250820048701053075074666631637638443168539269568626765046189847300420282839104895497009551264779329963424664252042506113847952346753679123855259543174105582287576715094582949851273948089143941753956054634582716579139241997346419759422694293786675462435811290044481664737022845100992942952015099243172235649263897516059851146618698940501231107818988968422584908974519919124134796181392436383557793025761407083095684972733527461101340120284062382903818908131960516063493085294995213657405460915763416842699054859895898941459829326043172164744596930145248461607763965241560858511942637373186755685798796728278607709964019920535562958695470738203736497336339912716218373786697846132624483955639015453723470882035651981779334326274744980160138603031369045347672874173626944562944629248427782540119158712272322392493129791003348863870681659307896525567561382101277179802488919579770569260086639125188887095938161068489832147869363118541979680995612039974633222911576288212980773066396461448796611112387693265298363288784475599815876663422786045325981425954002795089928627671550973565820506019536660652374486795771490585503851900246851055478469810139843259944486910706607330902098894640733805669460604785611819715446259329683281857632380502450979055405951602576010083569963503248308100771197931600830697006106950928152074014089730334112280714834805082120002571141771364746437096199262982540579907837543046818328636300944595589774643139167085736090895732406390493847114600299203805138154595581107936309912933416637622278560398529581482182130997817325890955883934465683225167662759666498276797351305554387053847155943473326796323169298432369626231813900773583483072665943647715712287278131046937858178255430922569071938321851275719983255610966203164095762537236597628004245465677530098864641188834063135240771761798688845689440828396963408470452685941793443795035238156306330737933430237262115426527455465007385688714839861859198462047273245197266928710127013494363474256985684987423541511912552062735942099832955528229580170893279966078793309864596888864118170606778871380405225438629303961149897247880480733270119996722043924214564327466298235066767589169419922688944429061366953848731306301243049212360380703004112560532021029754918137000435511340740170245015402658531562830696378771335214881528156335891173220835865608202040727029736255996819314820814141194332605955087654045124216140808970672163169958469253118679463165082695724308503047014409842457875718050539571127409193869834816856245679939659153462273301061846527126790035950492057423021778107603254662175546983825648148060557922618926036194284594668848582073321909787086926930236635894233259673205971691861183063681516593753480565137989347243706797219693923992871788936408207490310629728735320901435203755156358346310115208669102259877177156253307425104459865162931276262244310155330850640426962244666675458155658507616114890379458982761566634574334182377611348173954125271318847023363990970710280420795608315074229021616786849587983403975877801946233572623247914720026065403844645451059748763014927102262359981663502018944959406391064590450491135840930198127588892347253448323175624058871635953508752953178449781290412584979677572574350707111038942065567446851713871514294293461331091387661868047460048397914569468030887033662524955084254031911820269903262119138065830594492196355627587453927742197198890982097144508304468354429495031665659948349631531064430258494654069818359526247531928195388266827274798063432508793110006007171700285086884871001399627288104230906025933707427228011144656030353085489433738316098792028627869438841218611370444141653674887758211867547700359920155119124416247744199669208002941383775473070133449791767180880414185823824134246825324316364687430160566023515421659167064884077200179610003913999349092581968649672963676759031097458419402723941995846254861844777420848026953286079053986589137202029924867376039358183655309087010589467458123207118021967301010321554452296063933900804680021773398399761447411320777652791177969992246596311994528033704421434067129139471121859417173404639305586110013577669700270896285574233201530433950749861243363382243356050127252091127966021942885404904792981249873160754835755736627009337505217745577390198971609022641946974080851294814091910360063986649091022789401998556695684530758977316939350231077286930549748061782723841319437462846335262878917939317741882426318302600845167033511042118694756668771851005106969575218656692510287222291268825025727019823860280250748185713362763149635381588349817211274101741472884302436578559153495741269481740257156894059291442187842300655046201998067944190850495624371995666213515936995896340921115624129336900570450130331529685712057954937101188878499927866793484487853427012672810440433313804392198537122339679661833658610698063438390071673548834162674286695690305139857714028068828616351297763782291391856393769784089425027838406061086809756045219421986053152543618593600296062447271643659528013152735124293752467490243352069427626058091952802063366249942107280057057042913375584953315577631340899659597255806035276543976693856001297205806388955415136063424749268587727768046491458112382913714276012830683047713348351335023137722504113584217237337862948232181510673651993095307964472659196791902468596083918616267390365863564920445924012097287793781753021921890442994746337644188762704026778790992468189205587527849027970162336447049981872773770906244353197640193777348939447055704676849887832439219682790782006137857557401124833840025827471776143845415888930050052169140392970973065017035428042797513804467898212516831917161338792570078360717452189086501623791481320915734333356037206791442228731720496738637072316312611999766947087192386472367501278044078179080839684384502305447194915097140592255901078747440175291654459621500357190203253204806195630691451511943977294325246776585577632160984196005594266235827195380963130564400776244543689871789912404227111513737677104641735158795783372518164480271588957521358730456116764353938430622208034772536027352434858771845381756939929572190821460722412122476493646939696716121971669310610595744351010499617242530224021119297053191341529690696299638815778310101330316817140431884830440366971071867023645997821466136307435742067239181071319333893082815536957197136011117963896745824736931661224573738796003887235770933807673524500375451666064271458954409653521553964934285390816284567179167508947780061719388798851190125413287668978563690621425985557083269838922300064856313884256598486583445053488885786192503067842685082384431014611447772085031819826684151053154214207684143515480043386493863226139348058818503782416679042730095904567763176687685053813322720688162567860475469723873193087144431422650789586899007868214533641853369651141055082854562259846116997465852088195427079585554116515398221975222460835882384687323789036189573846502069038512017134954997563016149178240361793453929262249365559321136995214681882113366259506740955070617973519901853859837801581356847903637235456800045459042895810998831036045307665666914352424616283083862763042444697393299708126585600808085755285958648279610534649296106523908490338401529221691216225475941425306551460336162207747299504108974988362654291991006193068766892689382044901877364561509682770705634497925010573435019342912492929047930974684398339350125164329253016474142333799640997056078445221854633024653550781103555590063208074750656627553640344227162942912723396090861921236141735539874454955077227487156090967082855597274379250138570943761132958629762000084250388420584874231823325197506200494891875833440870417255795370800344116135115437581626980052029585349063439008466487930902785075827747995955477636596565888605091503831780043678608649408782508607594029858413018851614455056602700884755964004526759494077576382035623925114689447554038321470981948710957511325173412071834522481928426307102572751809990485335611700314675374435177887126983769724374277207255450921332889624306403168377947759297214947962529110326847766015611321386314139696340661793473735463109097126832165605786330964282587063318106822202473282345837876649753180279238011964314158142342897657261269120088054508281161186977311015853461778954815718631213604642649712589519604638844597209089462635333213633752829413457796255372413874594652037555627663430680021113748580304455603279339917316026261895377431178872948488370995190414882185270678442716229699751827473932779112886481763611671261797339279959029749543075332746680782423420346634051068174398213618578184295912926512842980256250667765129321754427385065009409437225146173768263309671170233951189514585366523495543364576736492340828170104201219991940644065512016117846568964953588298006925492757330397474168573131759028875321383546240399629608065092196698526041001318010723358651937492619078832128340584126364926863336481589274498347398478523825767001976352581852627759242785632241649387486464694541601238992584725377003200589659097872347947921471696455812834387132868864187266311944101177793861993870767237458039857869628108851103999528886808597646951342682743478627074399439184766594833711057440012904738199090026430427868007656305398754703952512756820865261986324270027610224270414539974935005579842091760576211623020255640379967055393631962201555967423713603415761573044749121853756750561946917105381759774843616973279137910691463916326217830273825701259123006477213298833572942182485857779687614477473484390054290540372867453968694006421493094126724247320336464436348376603903833907356775618451941251863254281733086692886582991966628851158886971411113337394233657973874501396668720047124228357174075903380251628036887932906181063438649610538085866537623458374065676462105099130977892361751664259386721511104161233820369000010032183123289767453309675497136218515183359674949655490273605505812843730970388964675626738651475058399725385446871874660370395975865117583062323246492270580726550948308369290435216347345298035107298164377573186253434971247995460216492327235055522411561985443164254016289318474263519687884479504552708005553901540310937295564108165545501246541712906035232447710886110186399418463767945059802112518514767284667437568285967429581725572019513611824630701669681533750979593488297359751943030760991171898278539227823028395433573685511967687285641983240278535472160664888630773381834374174895534590537956594752239770038462744381542175501263195420777155956245522880538237094658907749423649078695262217262800491721355019114012146097508053708366710057703264514877842587279478714218899746622071939788631203330219205055150324071116732721058926142213429147261920152733593282536396806123567860051756787410260360253994365711930771559075549711968811610914756250812491637029726991028011459137934280877887575899707841432735646865587532215222979352789348751415527610742849480951885201729407946545493863860331892881735119048875655201301783835621037705262684031268448874604178868771560138871324118751174908696307880402859709199996369439463548741414208573934744051484670185713964434629509807895483090388345670413347054127123633657425412142121975948179989597336871213714460945942801558571228061970761239565230054877505451315553319552705924610799454663728594372417800923101547782438566106304799795047140481512901101022253559947007433656875520129646572276273079293938745405695201621158719918004659554173390100682801853081889402180703855765388524158596506791920031862648727139804586485483275070458604450569367453114042198066410085676928052011394014069525472198502066378496678704203438761090125201545053164405913852227136937790517000355106531541260845356070355337129259264441156208403371563346161956412889863648730669427097627390762669114399842718304143720937489463905869779217042310492731130607861939562136250044791874820766815749736150244333583158783936969124289445467325966001233882458869058876694920208592915941330008567614506360066029903929168066297835128839281388440287298040371461702566244989138436530933888374877595589690052422471512207417326540102587062539004397648983976229767406402056839812330237211115906552864361426850255593203666306574022193884606289472349734578407104743853007659489177426446872611753723714386245333984588124949947096247249014851124042195007791550578481387845069229519714721233337750185326246281177609741201084227424748953010584855760698773121497913802487488288459881244187655108041148143407820184361851846207306802084964398729549921967602652927907891130743873861155656881108291177386252067716988784792915011324585289940166026723088437073192602410862168852487419663129589871463962341010361423182605036947149447904627111866809448654150121691385801124735621771452837860271115907354610571810965059033775235493075081177865717747365442155629023267583566291370360924151173628814214043468301362897973730871639580897307770626242064268595135538442283831830144863307555862013148356330553128307183121188704430207243629508948948578771996478163831111388851546085087512627510955123551786639768600628344435788655107558594575854054810092432421000841020543829713093975089871108182940932499979533090652019839116114789441074365526057683120306375965716368979403885906415040030351681753195197122629466538563912677997387001910861044391158841721733272883614241018616044001713613295197825679752972199178078893980631531881477074248022430702290678720720967383132856333411672635288209083913843292794835774996641672793022903924689504566681098642961405323071223216115001297196213810426858649471507137796084902957567815015047849505513479578168624435769705237312039253563939855383643779141968614228858557138142647961392500690690264998745638816937435496610363414388848667098215356161865825420335486449941528231351907374263927223358073769004847373583317469291130717294084136028262119459936348457203693695694142038066675992490343188748608107515255978208532538599250519218240532220106437711469643927347099429015952147551904441033065904548612354639803240988403313171285546604756567424114228543337541375699633721377906250792186848897910000623439064452012663517956067939746170001322134689447097589806972062143129529510778224744256930631293685923334576215028560057540692123617675933809859575398860612995341312014641178320085116902830099317368420265352908472835902160050720236421412587829700260659584532017522105049722271268285352995960680210557023184945355401154074977184715501195524677465351414748927313081759163707134649319745405370466570921399475971460183469587181986409317798439057912139499891375131118277748954397525998920891570134251412215496166389962410929666489836416848426301782038225876811524412754340000920572489704407942608481432783144670460817505149389585136245854312285587248916570694621151894119238208847061466248695916985012567122589137234494768301905773385598018652520383012558749035416298557945300069385628886873942482184127515965224193913491413319126800621851365205911337246173285447026982474189273857826091771625902803151723998728143253129111145044440103387047558434715581560654534926035625255701952948782958612247131734585608920810286619987505625233566953933522008577027227250761966238036112761937650481705612640023187362509899662964228541891605672897125809461926280433590586411643539684208913883332746300180569385036411781130738860839237506856323175809450292289328282226256305020226882821357058956146685550023444036435607585386845303998873175730953065570073890393158950648907447693603796317398723368493164088041249553675321598414687118838459276768522467847250864742781747463922898688907198349765354122504543386738024692200581741146782422228950972046167831236296050959512287895670506422367112662700971984388851379076530115082567313217882051066832439043375269511204541196821729321319209094963650568183263961608659455299611241329969228384274761534962547744635432858689712080209674123517095494369300656945147035615499871309391104967681257822608170180126872632161875202224940574440986416974452037217792798936342295319657732909893067582376278496125054009903816116268591908266173186877570620061679894421259031097831639658148424102517840311004189783823533629429562864478187635663532626618728342165179939906145723592545832403646199920330878168064878139798906653115819987820119696486212931414955402949402927105456087905485164197257935300555757171543167438986081355337928041605395378178039566648871199511664223457010648994549792060499554488732628081898219585666484809193969095272745777498659628170402283633295433722960886850097611984097258164890912443475504544360845576043009107236797044385324547343356966557922390813260453309974746994463801364266501850279175185839808020202715338290660991296873630676967696107998704808418428531104033092887798511349849336942463387737630237367669069722230802424347205528823367759713357385180260076593497863971069779285113827940253969120150936157921905708360055845787958545061788956405159926151486915051653777341154540525863681423476633353360488418425253476240314124867090289058335823515665390358044209822540297207642752214741942141373029977655155432474915804903709512140160700455482166203027573630606962881064547371269568359164507216981917836980387970132328132380072132299962392137619114750640487137099672237422937175499359254632382932791066489146419511233341215717960739580547752739020333424622936896704289737505950564347509951840482766885868578944252248240743106478709810189851974505734055272550058852063806087238898000052325253370655024852083226704594162003430857485176557733784512288842520047467325827280695575714406814591715354001377126986253564361498497917740803264955957888475246370626209210993582758343995679311672390543730666688999905622002514092836039369799178738201188206478064722902550478667559529690262422816493753679155933239108623069225163717232576449903839836805470931566523345118439521231147223374837649912309471501857745194212042784578291450381112426125944030068749905772068603543646957158422787101064097884125945811802965433637727958899136105451935768438441397927678977635012936916413606421497328042067582710965128582126776047442658605059440419891411513581952971590232249586858831899322883070261769053137332439128452232413764860551559107674875256924919049783966349940466165231642039885849664964119197301721639079427651255188114927958615286966503510668290468796679912619919379023985354081575412127699429779374442491273164393449787547126741798739520274170936181922283839625196274272726882965831373079991964561654802596651853823877873247402080257983618601555354656366757080306655995043761982159319488283524629009887895962834085609648709990775867482666859077521701964722902171884035936552228642804169908806906008551039463076979763038311535868861466653311107171405240949355392454907232118133451626606864121907964139035777577622685893191923860315573018391362853684911803197293862549129239796160801475717668095452789240261951834197869443144699986915174180428813840518007654104907306068982602612614713434731503155920266747687406066600721257225021500399475053361707717351758402095054404663514397362281599550874963529529817462945637558307762768303744363827029517626698809502250906627057425446090153852170028908722143699157364439935276942997809333093490120716583761890493996828325692511731092302719419746918957260809172158253907433374209516724706012165032980889146902362993248124243065290898331437304476550578983528432418430901656297390380291800518849409344621179019501830947745284903266222241442045571598082839003013861032619953760627068767504376759790173839248522058392770263921246539592119632304121823982166082871622138996479637135368942135138081656890933550488712063148800572497283598590020987218840235201558679669484265331344625064929182791376537592504598074483141958879626161744954096548262668691333483605895579331659079382299833578139025032779673960355411865234298516031516867979990960203841219225139948245140159554277827303465137151895304999461284369394039021885036077321916335417754035427325169097464904519304478563286373789386597530006952851155476155614895176893351889995905889483322838138001830911978089186304486389422271186978129446776489585753796654627179478052053501168797484556998268840129675840733545759647041288549667067172972571114030272044645664563223593246647504198400694934492943581508023049595865881217299222419560200788296478086537473178824993552560690717257006532909876377546103982284572296908951721330215864777650316154697238735968283217825302255618224445313334170170882210099530740865272829147362111251104181815507623028202448984129431477579152875807384033678803208584961017144308836912768520864975740747618076436235035490776557733176991966835692623699980826194978808610040057307289014070001748368234201420074974993006788725715125717695371795072039174447826698691292342374895520949761647679856814742615001398515954644659531520238291897345433275556175714937835248795508343465011449417795192480031755386014981064949167912537192406132883108847005337249910639066528592815135669383906220780051034078571184465651394459226167415391653010232667441447428375834516898432156722037014341078695621241076364827930778894793951824305180116198200362846505324288560474406577967695022442815328622678235548169048827068517016775026593576229089763234559205047360993530172550014024221187466554263003977045180352633797512724294320706212043669995327504722757783741467325687471528678862034202067114713053377118842083400402070890011762332374516393140621132828665848654307599171544854184307948711724231217060559149458477817886522426385599034287813756539517984628363315265704160704013584662402875262134055424917161158698809169666791034793377150012786933955931053257041216388562955714336198488126566291765642493693995382548620413625021320962148674295980967267551475367878928635462085335030489558314725063074484773533383806432892120721574676127847202010618907381621550794786335734881582431457521700651529378569863498476636818037591703512196052060386671951220870147240686241897727077565304811930727307346138078843171267832595400076752868137794233197189076339883053232039051066597729744483950479966156553842330034717664567274008461608377516211705538840719541787753878124906439706155843599191500240218641026411283437388271847011523577759739902851835959872390423372717645025154314120989969470927741499857104182727109308574333418090045260666397930709500677321621888871665368954999999469411862757454613974362333402827707014701729271978066994673132512379057342924739381286373431818436985383149483631902852545718340196949705601434262054362667934276942358067958237120739328359277198300581918879804560190036849454285974681657070801350614473751878927410066990249712957424749920072058227421873671825022509989160585412771008596932441592458844368324066212993251637199971245550114995441303838745350659794792556592074691231478328164003833638191882742878375602215315895317355077863318145447560820198479264716225898173856429093655380712683125617124193017570509635994055265859761008268318090531548417287946675759890280147944101459578410544072507898393714747554144199125918108119778200411984283199264018790877629873889431221314684731187628456044729470920688903283602996426922266673269697627734198931714496117188900345161326529505318023272354580301823435444469128590026636558815575514000626610636746392548649146125097704905059589140324033724784214772269329010744087448880112577885258012817651308041176792259303115450466605078283857223698048275326454860234633474706730852707930415770547952285200234797415124993081845528949998094204182789053564014307775846128297645967020643193402301513263413875358119148638793058522538841275499105210190861783207999742928672832042905937180208262711207021057373581126539944389796480552755434805152936327454589971606899562989413816827739383953427270474752421300349690549551992599120805168652574087980361130452683209110228061921490178332082933321109218329683946081231564121691013277039951515421144996339166013229311531325892401917895937094627536097985257693304592627127555335438168374907411921933120988921821074214758125566650022049100425343584268603667336526067873283791576790315457503408038177072597425244689594990814525932895912675693323673755525401856327424091741808036586591181290948925513807894543796024415759430942558815015025543681210182395356080637341314159234638320808343319235959618067463452868681503956756705139448730120174110739757679207818370603673819183729178700217056628654935420973354663568220529726669884328108071337145831271711438646583990158704277623658928889858379371458491565382437017128865608976224737459564305180849232644186447594139250648638344661802236435194886119241434797579514307868099435311361592033158019131754429378768316973204269767044794391068996471119475274532468144211346229623864603193603625768951901397932987100219949612658702494165425522201186864277412854841120515549437518972116376537652757245853753505589295632882676740845809445342681299040640973334625356189956582386685834502344947081798715957459654118818038051393193921993424602960825024786666209399884950401775355995365867431607312629275452992960365848982428609075605145294150320175832837849926599987703875700892363627808863197890533681768229884220713567550605764272226544771611546856730247768472500337753813164888773774061111882526278052041603955643171762068290501660419814376500160726423148282600989411030785789035198613210070599201040194654217296171988552527233146715514949400237751404994508575342654974166059313991511049325847673147349808311143942761397138868081168054023580411198474683515202957327330370787628426116201906913523284257962699976542098507435125889189509352645759841332300978555879446918046515191199898418713366144956782095777372219290092282161296278351616012885199694572740414510993947831957341737932186597057232766473327984879645308165439888452344335454243964426670428566684337754783940413589660374393804616972896101561098045020764024433627529043908029402752510406770337326536041405373349937489378721259433076021940743894554777299500724049599477079377653710363462673944816293218562679991242887291403540916925553712392799345009138650593999376941467646411838769764796984383703250361254974238114761092130635833492589593658995768001776497830626314197157221108128854518421629078548863088175657185193263859141478216479678394327663583636383032916180778901517996120469465106546204630717262263498638166093737228469078199504061512798659637567043340525624340610417078724831800981871281333654431427466022157335054361476911373818014012676594629674221663999181314328033089475373604982562261218055636625155437789434399884175533380461502922693671019810370839057820631787364023341001492560338174809666112166082259726005016958995399714399196101138258768788349877718652691388002709261491138509539056701376971990448477844673022716548337241991853725339867157615144279585998090750110886307854371075887710367301414332381103320916935094099053858636775255998224120041736011878427075525352358431688450902115087492362997296930464283679144551983100485345431813203766143346982609346094826059257542783858130187612598492814852752039158636869972759555406833782222551952361786647311540875489089503848750503093945906427524631719791675311597356010255389083443832109909689282355136000966912448191865208781055300627977440848243659793043625718662961915325265004080217070855193765639065348300145737683725614323219601310432931436015783973309897942887854506488890431165834580649698343908659465664450724726170472404527019746468727295296528831477503729010582234098512438504873883386494397194196137286003233381840109374807584149978411325201294502360899213062250147437874000802414494427661771647197695331863438006121456337218743151958412198089103597798098006183754610542060263287209929254052172899199082788368911910804228581883372414161932860820704515230178903852448633657136116281077175458880929085921019151703879621717617251497702806557225744977024649296476485796737998712471236051588422602454743259412174683486493544669936848897404478091067325874042379079609179268463970184697595578430493999377732185686516615053370182261776798988518833251715287382038176618362192662893496188269946631488273459025599124805763510552433742986216773988039027336095205371527605690930343486335341912520392622077237096303195769298943473216751164248243458000661891502569754801614805770278125704549577689309856220417239703125896704164589830402153107026785660343294983448296562724607127825309648338996507410124746818399951259749938759925751726718186584860384734745458698713691456566239101009114206098991976808261148020979177592020578686583515947307603798839258151928295901551745253959737739284813983996678680718148661276078666816025824785911050423642254467879566212936619025910802118915368099335128600669649122295545545247369160092319265227384508663201267785953199829224615293654449511851181778415274897647141112622826663605323029020980728271973336890283137103002168668551889329310051089432608513996773167925462704567998610546340731934066022151245214775198088004213005950311342593990977067919614164833255611826585501304505458120191728395447619039616466685581221684778398100586903297159655698898535758466634219666739754173628585963166706287858859638112434642021768090391876029181080897279208340127550317001574088165152910157956067627944545675171249185029686397911894513112692695403315339652692160582330082192463272209899995144874981678529995760531125669559310938598308078379812355328198918280341269058962962316104566242805925077207547612605048226042064633434971827003342428606290963346640588932538531201512577902480111532050261392552739272041621788212968788989733617160141104720066064483671026643374991493133809451369822811791519092981610459258807567075498013034699866319626378869515833479533744720249096071518374390060927961244923305452722656260659998709811576367376622350406367181052262022839599599891939030540453319592782254098389687266387732863309987849173514782728901144733160616533004472943562475044455596401040204122784494475144295024779690218614009972661811265976032135749668741781664602486797244232261341448571039241158910622555047508697194443317170218064923120719951235388822281920556194412129744589356131523907197496706513739008750014603779988848697161639380749432102607881975181371931406968119690906720357143709710667110800973383641701611283958119622131069808448573062250549286820949127207782633188096748998756063897854719380673698869362017628160592333731410856191490730231552785588020458454680939713174536353892635116277016789676876106833392141194814194934489475588158587818576817831719480118877492118814916357765349514319689311439814196152807333382746522437045337556696422716363817228497570020585027614842228171701290767829564714381016667341403875593966788136547152082830860188440828639953208547937243924720185859198291145337093487650306972770898667845215129098302836887585428104626922050204291312461776841579319292414491490292338372677828171719230038315082655748951472943001872705437322734250851601590528776995153850238971587624802829628141317780977098154501987078442019934600426467571984601901674129807519089780088168034818114552370727754680449967525270216338353210978198995297944294130712676671315988678846307600778610692848151634765087671529779339993459825901969680688173666661208757020904764351900952853484686438706051095549575073279698519448390878064911226533323724470991214266883552590577279581435884187791310947287294707686770564912562028586998147046604018612917032568770004551133275849857330814544534704585452990224651121043771413436653061788592365576956720476368533679286628758154468522133711425116413079830027832260221693692186650812316404135219937858292566722007585122500612556399841970466522031599450883623871808755706745424179012093651375922073953866303073181074575284936639677756709959449210949558943086446425989646203076413046778621972018596258841235120631962205205568272654808395587130176192030207082501675120934290417123405063761676027216621268411670423607664828945609953416715758963206062735892017786821386779602510998895133110045500051783529268873844039037098436533041078753994342367409486969162746256175254490378705857279765800127931221313601899858718159437523339992482050444644331139275063918342312204037549847622454405963188922835712670215086390243334464465792064919523270097259785203637695155593347817362965713520610024877789477477003088327304337973747338574652512178765239057585714056786575602612626324905882804605569870990555757396182812787126402384353396257658660494469682539368314732413451504278162831204963655960976774761336634925713572614479033080747420026674995585374667663917633945068741053084968106870724365139225249835510067584019340501567961573584404987530887531729375426871331969984877707709421181435724465066659612489084560793705804055222972075619528613463718229757544823318241033495660386724433986683516985536553110299329680759601594765042422752544283335745406558123531394121704967062732326306936856081519571541933901537070278066522560141467914879749079509551825302482094056476712678435552197818725117931055030955407682641222992103476853551599713769233513155207216427791501284511844394994593747132429574786549774071864977617870343812955943129816991441407566373413117394082766194853051268952159485434495332471803725977738849000511315748739214863782793832316682040723526559896998568887374242288620934484955082863783489367528352420585363895034830559213249385535919856231456662269400627012703762031899230529703985095642402612268490189917495799818149168931150223092707999735942533211957173317444763457866480192719252941648177678420443343889311303900468306380525889758086095973724121800991115738331060287062385459587815757825164340906957702074052945790864397317113300474205136121821402966294349621164392447571089830299486548665347524871287868396301495230915895745261537680923112357946152352593003963666915045605742018729333018053905055491713407875793767574057130403928403682084554215899312091300678453477451020056335311303748329414266168631055635876251298257578488372366149260317797512469200521600505970731416744106608247361891613124882620911091711594338329165114240773502826964199059135534996760267718005148565600352145410332381560652848876059403539874183324158988967173002439102263534824289670185017552313492491485407418958261722368834122244396825383450711448918295654182095732173697278424426762391485195015706067551022141118816661607880138783176490288976252715612226564415922522896167496935796131720316929196669882407493681534270940985469529258183438935413689141523768103872732297674506201184537519392356067121471600323935759935558964634527096395502210070146658073965695929681843210111807343538380986902553493184713047927251682569959825386404126231922636826711799841973932651385971102682851464481174781180405981733600694104534189021712834933058858943537759632672043418283495540242385816511026666254907600196116230926800088107489794772248108669526194961323582350778927138675109901171270728982474783209777269268990088979464053665772825618106846406355877156839171031263736649274809756570678945442180286114747733519147956541193964890006625415746445157123014655782228971535012436087563449289424741174149429318045361614367126089898746910296779975859751942460704658658968693917544581024791033841801268969951276666318202916702137134554594925864248739764713034367825649116864556915060183417751725271658674672746395816823382789097734481616698449419770377411870119081432726236011280272125422195355681760659405868279844626386477535749262909962440626243151265700512574252520285046797280194678074361992835523194970666128835920419580813382731635099145024661940816821853026229912310149415322851393001009562666321913997930450162279620800322088453578447163530613827518744026126736877491984215528471142392109650202673336244991399006285418099083000492145616584094510231706676667126282333530139562344195982953533955238446014791518523857015356947877825286335605284954993716295612592852966138599861671087222505333892646428948132102227780530026569060515331781759677833219492155649561722894951264666735679034937272841558044926947384183000054490110491625227710224651774416015996653518843964845134411511298944516897269372938223108010707619130562710698617774605327470674667552007407511423342780191268380034198564837742130086348392718152477074648811857578758143486197790329583612433867435227571197341428162451664240221287427273282610343285136572996957819245238149333819865229750455336967313841957017153896642557441987927284457078822048003053756730420153234640957020580911553134647874276369977927381428748242946702921858827900907151806807012450547198551767560828061777161075657714767953063024142883543692266490024959514274064489005178850457172129818789991047580081716810506466999409728472764210557421002042788753707270349164010689351969467572340401625347576727358527521750675952530825948114399446096874086742401627072424056529816105787387183098905304649715830758254178148948740279923955637446509920019790425675449244232138933699408292602787624043859085587960301736749720667542063995796119426288961070420110944235795897396479394788480765767494990988419671097946869396500725743820247492282390378939463335543146190386743259287413232637321552488289089295827995010932263162553689745272074313302683753494903114176518164009995550319429380517139130908713491879153494159623792264859492033710960042421206005146941316569279571929126940052548887119221414141823183966428213940566214168741139423027067817769736680230002942486190337572981892774090864069345089106253607220742805142204584931573713256140960683048132718510654042993627313024658835828957410767568838683118169046432511932373296475532639715666101503843183977022839497276800263210518574715290943751419843855593313497787697460490780390328413360659907285209939004701720689914103977302473295144629743857887856561372209401972136901049072097403038795885893541019912339779385676774967492658414237420557504042149882568917236008149930919987140295082680764740952079526753125865842691874557188474501037591656228487420753802450232332170466672162488617045490630184951382398708448177464506425845540160449066502666324519309703782172130352451013758631616259575085919632013900122342016984097494444324388331256438908290389592513659776058083408229295447072582558726570772661281853992272597561271620528348715507937264948437364511651776907552116226835550765936157232569598306907299837469907279164609753581950623128458266965759554116799077578206773277300501197235764532650765820528605082831042638041340377903196580222164609529561685050512080788998730757973393852834470089251504064891561473633880449057689910521332741377339879245878523510735998199889895807063195954947183146213276926829239292279695328142317425421912049602159175616015077002716048786698670706952948321019880581027561785314645500467790414704957662602205984295754273618053691397785698436183556639990684664401195914737241861032714763254703629440555148337527557076100530172988310593052408152719701246397536418388736627064118038713125129325852009953385191794328210771088317187733655877485618121527256348103152667886498165729862901303214406505623653054694270595530806786754975552271345923420210673575972132045442051202045936499786249621152763891042021275984935277670886588715612226377548256882301110178666368085158885152180759783033929194919173442788922854065304788175314476517220987101656223743401744549856990989155663858198162175411579163474751732490194765130385604212622308733684141937283021351214856416221927286430244038107101401938329644853425162156598152884078292909629148098163212043266691570577921043511476861734279550553785104014257435997532082441076545417945630257990909815565774969194306994145696341727427122649860519443036310692781327033886337904091110026658369267534851473630012998602281931794232194768937496171761706551728039229465748780332302204448345552438640757393720685663900801501197647526921384036408972177536750389629617556682782491866494832453181281681257320449046431909534967812456723123684916107635863245246542542808044751032849125580342921736305617115798630021915038712845224248796366158260754489249599022286777949745485363809602159322392287209196575750299694925502041972918394790838740524340015970294234109092071519610130371229245666734710326801283092676884047939781581853817083276186301171759515018537712037942078548184195546123999908400686425861468964415203779436695458648004648620107853649232346401641100719757483862434207915676398743159379494093516246782130997783679421421903315324670939336295183190217593037644094314336610770077616957788736941308641305502960736982077565868513418089657295629443838201222660918948009757646707502245042792355164692353526511614517876437161595100576797065572054781782847830648455480298849418177922501993602580980350422773773797438145983775233496726406227980304746002906723843634253585088051350441385336896555722598773213858504528901033691213108271084454482186576326254836494384347863032317920912895277748301925799065106245138546770378526826439966509574148329115787227604008069616907984155657511825957337625848603730402329530158101810713137718728264543903008520331538755438185042126314206784200739639505576118232695236308202160712458987182435061891424884759239541826085440246019809344268929993334217089973329850623754711185320288747333551050239774885352583056925280120949227204661028987961226012402494847953149805490540541876526346925661732898811808500512940027273592046986228946091215864938844202880478545297391389329155075027737799206616837528553949370631335364898271919610206236390568813150659405750318325524061425572467399517915923873532809204922237242780565822248770378421442720284831924234836881104049236053593347651669621950722689123287641429508880181840134374909645985338281385286325789893440165224175016005481037426884479282960678696872675498428536106454769889830670951099206638429322631355237986172881274977288222781065034740616248048233942795972421324463001005964757879175608146902759779899623340126178390872411677087021769260669644534848197783496915490448129821510337864422747367781361948713886169596768079784869251861622807291711025753703368982642353896287464292629626482606747880385853532174171132204444730704529086366380100197614467977516349793089450396622503458361489086331536067450795661522618267071924575521313633527236595921306992071012482005306187998368294584381566432459769219137537371782411101800735828308811116226212745460987838138187361184664707043007049581004299235283168250062836684055962810361181307023759346518169391379771115081470213491443799708536157492800122268644423966982696178066623393428984407008245610963294551082551931253988781681658206149184296191502877143773867822744005748256990091315938770926283294101251137968274495292537912683556980163607238351802329620490976927930540075987918025587945565768169083273681397993823479843631566847669020517930510460223228599526432021289096077786164856782542047497074880304826401471096817846334778226278017148917025265650416303638932460777440747514635177834422969707725173294944725476394241745724405445259864002596393010296047515438324486254686881851904469233681978560212549247114061031509659776484565751242878202414357407226556494950791108961585214900492110597249289584404829551123063416433957652985390166242435603212897975695258719706256183220998477626733221361623040375865689481178502658906213300692511284133936036768434703611423056684947425603918886024280941770878569502395120880265598852308393509411130824712848196306423996296979024081500445247308086506441219210718962744692328435357728493086698916433816144033090215256444357769477834359625322669339208947199052779543242696801042623734441754492226122125859437047512209949785662249030613645930895860273675411268889055220827615634361573790758026159928029395403273142994880154967372791746884539621622951912264387222756199569495371896224119590331791867550327484527910698145916441203769978154561775912859723917919634270265564366187040825432848902202805189655121805316460692836996763281808015702330623970411540451876958840537054954668990694102917100835787857666753140288162603078577870817768935012255920530256971800764372094451841319420551850713694927855211679729129860769297253184540296788424842621350993625438606087856706340979177006009158302393688662942819638736908274736246715876616364357772614315793585968613829536620136316248634401643572689758094568921149855808850572214679265009014820662423881953867163315152694137500261953601550931598892007283390363982789621215443545763422989478712289231368407930111078268307700579897537269716940940450488274197483495383371853351819107350896535540996525167185234519099666718972971398675649198568645338760638263295111330095659051970088113871281290162339573618342574899527328964424975649826936436347249938097232142925727473452582643590916436149756440868363521839784491754924221571107663303047786535289465984905203874888108831980474264295511819236750368381645836539849312954517992052931331167589322042545864585378709963816305081412948167498404441414157985568015932437098615538397533218841942174103019462000993111354858811342363978275551507388451441956152252250491789239866354478065389625178614162556400490143842061270117394695503446809146543146668914009159524415580666233698365355258621985922142717909809665105358249879357373866502561624203262051839791028201327679662644137443904491259615483622229967900374962457208827326054342506070350219269800078283287057150158015815561401422706397803638390704194757269836194506985817225224762638916494281557165694699372890033913975025596304261449156548096110185257795420605433636484073128337049772111534236496924132733339717841497623012281095776954578860784765665306602494313706674065662133889512303643132461247367702196122687725297472782935649856467617251918680360298865566598735905464910879567561191503304485702748042488472442700014089114229564395348238400748995832814958850497009004667729215226427600228914814102100579618811967112332964573493488960857613809862822384051922839563417802340537905168372527886404253817871716544968926208538800834448246229544305437044788091328529226337653293492320388323774051575377612794967522108962898620902031048305196331902095745145051661959374296098227650530727669121860042331969786421923488777815569533336866427218225388727311608258405218642554333127769414305021654472628705105737749663377103067197145413615237228348506301787904123467454697215850796171566742812557761211381755872406593991227852186914759636577889119425991617791632728187987917997571646264703536457262933242535021563170974135924242632150278793877310675054654612024165719088708846872139480421337633798820191042251608939039046753299084403849927024047532386197788267162879944536262245134168340998100690517771304499425070818201138282427037876737471537970272755281510922389558828367324574072500883354215055188433513012947171730447710568153386614590512247785326780639635581550761631585316998434336278161979977559134612136663673827347698366101770590276538752085056717850316264954309444325697039453381249410607330877966480639267495220804907877127737958919620260866050226831180028138709313874569137679338373100580576817553650654945910527216880456502127428490988448764720255986749181027890074080077613482184375061715467321065084095806092708367772842000890899052265908999807451054289792201002982881284505167231064681319812834152679453331673253956956354319777261394218911316973690879197771990266526857906602902756161405840974579173603725104002772714280535237995292567653554584320202363800105747364154490083898864195035958818831389121554764213388925200149599807104144484841840132802200875880214530309748658076547444900900461486754095027957586974177324003905706508170631383132087428524467264253357814252777340698266945843224646987783605438535660682893056456865454186606630064846313147477387380717775501814471649135954949303082963505742218726480116339191931821088062894897370337063939143007241093141375122737371966199891828210222099823373025309581386381791358559555898954915344211825771419106604668807528034091337948448267228564371051044303763393084670085806731783284498325034269411938017167123685039929943596641211379894299542256833297320972637841367108635102835453829870601473148114889214995762976436360392629983501699760869959717095802217879445081430742248582483801150065364989495678956125276549060924276606541863846161372194459511412404357847965900367075419183910773574835408846159189587061429651977651848646285289846488394516386024499851621645741772520337145699085725857710421595935644891076016312652206522506662222680436222248267441408407525420366847844865358369644375918980528440808999522682222075843537160485166463244114226322475155222160353354885947513375273307250358281548426631346916608597389322212995708782668997687479565917067751636717709066600780066899195828235754955501300137608613427113913845467096159619434618746324502888759175981641400943135037600068113957029838016070150664424173932880228985098950238218920345851411860002028878580086501095303357131697809337568468981150853857291760187504016969231348511706637144999618880855290359144219867416454414600861749306062615490308348522146659331433305661457369114548582992230958087769372195354739605784416040483431792051725317911971669082594816180917529911629471715746313045590133957270898958073952489277302209899916649414833583440127451402276221542978110804568029700226290710885349072418423767383512521396129839972638322657156330119943188336510679629067031035503573051247615619164047155815383875818284273967638036896329835202832622313526314672153873941638549270179371128371818128944517214568693230555480646470986691001919194257510445305658096092138920354148614196786157604994869848091452009838953134198588258492051817017780542125760551994744066617124927658600135734131711909981022133374758850687427531367593149630362219868733346772249343116487923795118131478856989344477875946687343262249034932067746137304484603898392397334910242976307677313765123286999219789614405394268165586211854693936951587541801721294418744943731756984939515540609772381179740384753495960596344751388958841047124381836511765240625317498588459919654627632162032747508828362774343608044450608633561898399872849726318533432825052325790474179768934778844662979233441127719199408943429407842492525800633585656210093183002881876913942540376641655121980523796441122303735959933942315162105429268503459567286612377706787089433759472380236895198002429928867113762133795590333657537523611567170745756154230623732695872082419639739584023883326730804714695268370925692043743602966862088944596980198854313753882777894877473682336194978365426550099339282259851549463690677382240041323274382513555292629345645914989366090581088579267871393281199247503222373582736621955305710240862539578587315210671047285342591194941860232690593652529133957907543193973801693011720522418023039229744337112552858785648245067610761813741193412426627145607309082074905507239664538806580857550184676163595032971785111601768929186053433031060303107864525305873661807557651682184950855143328830715399338578611753061774375342176835955062309838525773730188051869199623924510502408028940465820325762047801037597606667553073833392383363032256466883407558382386160946975447945806669616037554041024976527225105706566139415885224184849754824023181681033297431749694269845447036437015274290122882868045460136753450976623527827677860181899628072518179811170896713581106704152339962997367230636101306281215187962534056970863433849796597236409445990946288980510437174603367322002323296811466934068095464800563593462550054721272648527372732147805721041674887033941992520811381211198985221509070606992955913581852166563282256640631823389907010804479014434961797995233468507432424310334934539083861027853800726618649722395695163284516871495937418484107436032728232495185613850612097740229261143171620844191565471690701885800284592859785157463530674602556531645804299320651098319600185709024419790925035277411036866051744209917304122308568791817368877251736309206621630250122429321751762835033365875467954542778059267108091817208862728783247963527800139856085460632115827568967192741066078773703658791455779911657107250888817724900665435700520521680865893990712614225408799273504974351979444085773298731961044769376311171073895024662384796411110909603846868516708247346259531651907198585504489118880205099916476274258161934180973535158119568492218835085579441228443734280394940982662565994357666945089479764098231019384753204232379123103199427835371682630522245535762454286786701150027414941493919964071729882896223790025887120898190087539733223973058952793941034369609117861200012458734860927131833948953253162777339846229780417728518435700824556010805357479245157802482455567304819427874993123495081311445313894437355168192866706950937048658636946142984452928540632320283239361602941097482194640018757952476207343401944316277757963003911195153763487666755980024964377228717934301664386452776793183169733232670752717559770805033351362782477512526764625517994871058294277127287970766100941041498189443379406213944959502605993954028119770532540409315710157816871780451948263337042146003198992674866837897255469565727106019377670371018712592914515840150176655941723281021150047358156037670311500772612968850697329902884426182733818881568111897351030541858744327876980760793036512147837604541059293182617196181714520110452851338560972667386057068351185451066672831170283298360934300397364488066906829315093750910018672549460845632492585123794765749644470957942258503420357100307651021077094266426081827293341490934511410885730658830387385100565265078535747194077227761055055399743768043586729102691199348002929656887929825821150589213711626638578099420733467322710409131053497774536039138547300723230904871674990459427051137193408233713427894605009986114355028498958436208944689005281673161851174198087569290455421876382833677175620115124927296313026881599009733599933006164313505166874667975321058076860327967947950283758469520065074638488773782265950933378953362016031019422726199980414188172446661542784433725085717774885709562644518640582315401069890280207366370003630442047597748020528951088838132980734824389995026598283088495642459395464707010060883508251413472265344456457926125139410544886965193108485297812114859996337294506526684691160828073836957273930417389938770177372130309639673076176141622116981684712226865001399115341469892709994026327748338964152506012420475104354554393046766772642888556309416926954262318332016978832619672323875338933819117129743661292125100990625894603843342764751922419183816048494653600428365205317962959538381100637929490648632235088431850073377031515814621411832158532942089084231989043018629971317479286136757511389966629290125995527256707972063106635935067843338547943109020535377715972358396380586552001709880966294741900690594008899103270199383326574179459683967232695107196628010960509076001062222303888077089413984148421508706684705387895420292365361811297730724258746774773870321969830970584318555858276308065627664837952386044257569002690948924481087112856220823788079155336278945293986252904389349816750510337576867753559098770080190737007948692742440381781571113311953134335609864656571128020149495451187872032884312628338310828098454029359416103040923142426016502770502981185393588726625950478375923072785487505152021380790605719535606415957326022016355937780920625707140358640448939940231923533148723113266816004494506029298470154775475716988224774151561210343580196900851357096357634186900528604219940894237601186416616776915750836042770187063403930186602662086874836289642034699349185609799389349067285379184438840658479075005667541617311208833845528818308493389380681316261266928834527357134806599886374861393899951323165105414620147858245299405013962486142651560297627270568584996727208450011845805141864685410315834318111770886681482667658103498348809459075792575890818537937289873374143517001749875116274686957021744113968730865364913754302223096799878002126416782749075855875930319829360881159231995676691223990973477445369374049935360722588524086286523831386086965720532655068856663223786317916275785750153177427841495342684028671677163666925512886562856813549248641646179645421091941590412826718788333609226495492630704520918364514702515376952185219462755225829620109698583594495823535117710755977895925002916294054119618740025318288534622240042058912720926692847647846792097491182927732774531084808435036054735170871368379432351030551915089638880748252519903307338588090828696082847824622860479206294825727382968767325718422806195721045350830576633004293367632538012002633640236826569262139803295298436386462015268743596193293733090616351824949552286057253033522141395620640175991988956633179084868371268239017004001443654434310056882350392282774102619986899167295570286797383704914398512649788260767306024402778079942649165041929205141126354093520051776127333905338544321391164523642838860951971855084313542105362524472765095147620966295055762887437291373076597321580404378211634101742758483699800343455383964456726391804657062280537733306564733126441921633851416200141792653476967339120724277281349398209003888318765213065496450139530602398725108193155654745486008561457097520079303781716185334857317937389649125567359851024817414013199495587009902522439433497601614092326925244631758303389461952689329230725540035881721620259253185398301411028570299811584916493921454348892692129158109311057620622730136142836333783870022788216663424734144105740829079087294973136089040309518874892190815422454044038503683061979323926120470512779163285500050127371557465595566879898209656949035905573837212222484694584726448830456197150474987493145261481944393629335850434279607244513826394308358935277697422454544829819035099058780708025065350844261368052903456991884587523948511341418365816533651401906387147643241625297009428159664477302809723457405260647509211643400385749604992990183189557282009395302434465173749905515918982933706320747290089195708556616995626596829648559547194618012754055512315942804649462469361061789785588021724441469816292225451206087658468067778662597834498405076178221722130005172712560848267245054464931236644452951881328053875174899783361717994414791347800618518409832142450659179158279544485537808902066191240136591739067018015143001790368743551162085956469540321202055526579134590002683733587691180113876981873590492289187028919458398079502058695657767929092831830895272945873190367186004107880142498603920842407531959603448621773733467940023929507839212351204386222580733848114949328856218203926089074486253620761196423633749231076615945550285207582850131300409544266955296528733619967400073978794560565984370275021742883436839092255804458203019592654099956942086963387332657909694345998560602155046989400949478636555980311403589475248016761893207811060066048354231728695491945163080951537008059338855699380441466736528628600882688797373839911082789982809795125153445237352222734642905458075020803537646999523669565421701721837510446351596656969648556865542054380321097358837237388237315095976666320765857410728313239993304769689777917475932829012598591214039607775043723429846761853891106639862599186968388212344373220082875500897328410426819411263794254703175035350795182202643358952553733271341888099114781754618532020769905502403760124624811512964218140444967605866710106638862812761176314021576108703967000751461892415796170232892994001440907145862337899829599159520549723907156966893895247105701971992270352894350908882035393904662678098160200104850955830940524342381955738395752770177464985030303519174800787804220062940401957695637052300701026448310922061025414020041110152585654989276165035218531337760493399396054685927771946335913295540134733109575773360505046968208592342128339985311414198205763728034761608398794149733529101038455490908748895092529336998028106050662642910961662424331205385270213908028802796353924798598721679831717904390665199267821428580626442303297652982957481330498481423607841059127563219674807684135315849745787378515266983660076593356776106467746906665232288810626857387916583241195769504335570440520478132563741002183429460744234212644166723515980912504569908871749173169941247151807879894445149710672847589367082200791615912038796855973939882772979607762416266500932353120095774022036273637173884775065666757552093592296828431586558081462553420242657780836662957894430242068483695610520326501289235399145388278045609124194056835910458740431522638671199753763327712005349965538016067450268392634324100481531408457625769151916780261829923474928662413716392999774429958789179597772001662265518838710541601187908581584416855382030466498096992773852360971941346483310751473885692482201861217024395474730124021492240009564998788292734883575173725745597099099991294941097770571429943434277061253643137722131618582961395021007118253560943884732371335098064353787639302341489409771509382741545684474168838716674469989184600188175291908194041723013148708558391542749650090322868179076447762264868428310540008291216230781551346426623124897604890858015519794811934067692195072116540504945921833888473197980854077652540127213946226446673317253809277316969290955580461497441898676871167703732182711963303835165227005142531263365225310679007030298308733160819252564362146702472535346968280295550138694547393688285091537056626107913198376625406769603102493356340789452485695642963747660695532498707270175545739946856375683260832594859970829451753002891737952735042293910763230633269910638347846616765314676416237446615460044154674061570774714433607049753120635798449584408195201307354986539120256055203322259534788823193504574030003757565538930200683757752103026320548427841629077594584673055236544237342209894874452130304126533774366304434628603481410804976540915330114246058913662093156549323688638245282360446582340516097228462136468860273003118034347530187472489580094517205089732623389995337051634929231878261472486112610574201159383223366975430735985940500224014099565942522134917065587625943374923760277170191389606106717439290380776364258287481658022683109398906399710077457612863995675864492259591573806096774357382986685307642129240964241175397709720008841384822838675487475454155085256011539771859144016296771370628796669019436903777845215904177909956630419985533630452596313616834254978038322271557119397434237641513986294393026712225244578583399399472266835711913487813917309310636679839772241544794550365114678346422673040958871388277160112119396219635615902638186458698651156222898722888103634605698053842411128083846808666559274810102504397998639983902288264684760925761621331292789271693856696251997453015775278581459061785951409330552753716183225397280751657045655121726510522210894550974201539903457989004357161265243610814025897680852229309581841362160127709444399827873719437053940843757741085201593215129985209015517708400171244521093249649516702277653964901994449458250079077249083735734079489329194871243999807544161482637669727742331196689467147061333882286000776913585221780988874490746833989633103493198881151741961087878296539644032967273734840704891749198356106653751840501524653751991941810185887853514643360327887899552692014916281104255496397706392452465187948041530645507259493803378467005897054555248327522547420330091457510753766136779641538889234602687771578205140372652014161892792581061745185087229275669049583298966506820581822813928695791663820488082150937112695427392384040953301983676001581205618871910099610156615189605730199552508355998864084937832879780976334328476153180323456315691748204154667682447635429469433006827566185804317927751574211585857525227411852530530036662344462164799457407904296029675856639920271971701563730816223139904103438962961932998275180704843683241789061067200297101709701170139169922464831434202511653311195163615602162613844380057237267393331285444544472403365808411353304081629900264444527510636452660435794026397045847860038740793521078515826821100527216210283374670438292676647419796233836017801579517239883560920569249425688675194770489486609965135723181452644615946292831369496602342177320530861261024532318110340139111912363581281837423817007882913095173200834536810919462857321900893311589005708904220840483938765003878810556562407645542723401792860009312831549485756246508003122533392128825676901788745079512904685564422136922552558441628760218202978094174860386070314145949155008392742332001160449922360206697516272735206048131518151931650282691224391599394333801127500302722651583340085091520497201009833028487124381716912955355815022938744027252713165500251743921278845828859928583235528532841801639703513058499010373803642175862435173498014113852907766025977781281464268769113998209826860992269726936481276882399495984590011657927628532736988264674483322340201380199628118654861143741735654106459333284665145541638138911399776981148936188524924476688929638273380057410024457370217051980721858021583374401082948382837243993567107438221170275267834351091756332426812045021051548195876318653382908653059080205197390859196926299650884548750294369197954734985324575129550939409910795326657748083513975067190405345200374713332820357469264008109985971540941063165558595336334935863220297095876680412708002800549402014713332552205802529934233588070351904908955144097748126884368211591288483891395484981277810212533920149277848363361387013333303297672720406154728956742029338777739017561239203978608402217123178067907771630331344140665893591210034205408493168836162839728110011317030263657807493715632490478844637227479003504173297193076972804037296926697498523719467476992699824314619717203884302231069163954702152137591481988517857765598588258931060801724930124727188972145813994366421099848753419324156591826568788248355195464313559301940209557625911312941186672983175977018757582658832908358054119484752670545953881187656919127057380045333696330287891867511576732928247323599074074844337658725393402747378951461580105858851081186965390186023564316222243808637623632803668622739814823680299945053920101351644680992209984395164546698604239578202654231760932886657731311797730627101189257404933905462865501304292269133942729819614936646942274574152783748229574467936704343377628125453146234202563920269640705909522406179172121799764281609425506769717573477909034930364368409728470491433500448124534092543846937248607811625612694154467382791988702994340897846659008721015753534406395712828695165396235590046104757164897772488962661016755754179164746234206014153912585625946366511825562669156918388904010063641405023767106274092542724917276214279066112436562991105724936727571744610882022280314887548390765882791600123018644261056127211446211279075784928755481675766472055348817066441598758698586502588141460316628720085179664320093347072120745003032587385677771792866489131679816692996787721596292416893560741069828273443637284420195066343270360107055757212234218272531155852813686049052303728880615322941188189466068936545220931695644737339618496423234300381647118552741226214826106549692589307786282853472622661542919537577994365201824196451902227301515151215540610250147755330126789662997939543024804150684988413423094369665583961336077337323920940089484095004609771232808423019573472518312167597310927252901331653930363574397338418751431760699476296705574380223192131482683602800719885472262432118051292071403973527934479825920290407415018623201852147073955577436894831972368405553958190201632124505352336307811840894505973091877769510075321695592323460994274370332216579358158677883986064884631628593610104978023884232156424081851912909747267292790902170384594626046147778051586838560188699554704034339374809096634033463396511663863592232082193666980837965429846104484088337622037805462052207846622742434723168289745154348666665659440184295183762969118361890649224753846986448873065499081393550361284626804014813241621770846801822585074099916704982096233621723120419042093318058578695814741948170113312364922431469315336679290749107538001218578296551691714101138489843680168503153420511051420692277089536886864736100288965306507351482386328409008157963686376486083299614111611752508099526441963708825683079340763556029840326985723916641905866358360252802167053362498122074433731469037832880723879384029826219801387338315676200417643219095093836856648201787790934394343431294620059053794238076700442120115533500379480081366359113094242342147235698721625370618348768497234064304250105584191634309512291867808385970054785747993890405809460850947859271249018391643528285826224730835122681523702260400874668944260008290779192795895055342846900202737242391099468622371860636124184847373825601070429828250984542243077598926695172784726324454858741295870807540307688380715324578858449917931294527809603806480418947884294038838590583514348376706383637302872405655916611490602027327691095717209964440845023057033668760427957940412621683847956970218072383022136497343101066523036917286626808867457436711693602618388286849015288839796621025157451922003223677001321702492612700444624560514497254133138911731424049953254388038617358390085551075085731945968005252060572427617730195876113171785643964872243916972365683882791879458368922553433375304439408673292717098875895584218014605425157593432616017269370500721672098258592740882830548465118922021699485553294464037153170247537562997011807207047809553762482858325001330353129233838995829881285819353561360325576361058836147577777612111082170432222768693959795071150270616211357992108892266588628138827839443194956579376843761600003696346320028586158734628285187666523868007399991354511282153797668904098273538995349296096150424472817972147457096356260332085596559141377661534033857872648579905838832374902696311464223596593506509066416207023210711767302206660320137257487003282864284379025559108989629735938671473247516178340504583655171173482659359347096077688366349445680678323284236500209873273393334973830244957674190005930275324576310649130978153550100989862144242826981854826323946440223439348453504990150241635034462726692475073615578880654896370635687631072110720896168418803689237616530903504452067408332173971809426013132217928831463438758673173688691887705971618073385113103256936715146734468246059802592797556252801700174221666451672789449783549405143155000300651249942193232117967083428336108950086438087430914263554190825156823335666688181039953507069249101076196494831878817516232076718408553623403988369633486982500921841123255843552240495459710883456922209153777211952837327931918420109323326962840176071022560293429464000393898956965930456079731805133622854555472154696643949362209478939622337197753778418200652279131227904194953211576240466159495137446882217029273495625510819907032287675513031346721905331614479490622144296747284480036218538245927550452696873898165723841311077809252444093970490383349361531796348412615690199279835928603730298684766773986168046714165522405553804813681199922089302570363501597706630362170184675967702451332756695539028773782983720055923301797173965728329678559882143873880249692949246464995613114791964875877259897233865823239569544894137860034131963450701387881036473022304529329249881921971855656308124270210101130264911014339824299018319627811896389660853076896597869579846688286372392334395470826187053073641546465335619256400121210678058412053512797740602433151898551742077928889872709179885548100815424343906314402094710860775339471559239777805077988621964645177412445100182953949833322799934566227053052000247176197719026539682841494227887243963833663209950458909092453133294681824474197529981311696319802569584866001748909876044554094290413193625148811639931890003010073178663228957680695387025557728171775421977592848112828293868031631767456560077662540764330573848545939774136075233016627186679797980349906911023758779299997756359603189430103034504260440857593068217819213233776010408057343320989851863604740289032658683915904272565410501867286172742750121405170635889493829213320595039697801861417572889879074133520307865374615619495495435055284594372984543205614904157897432499437459835760051985677402960912382962686895745101675085184252848001185622308347532076443554858152139623324446322307678622795877587533268407090488193740674592511965035750434661690532544488033697456759951928740658502986760392116967396766027201711125667844384427904940301910571034871072222053325167377067369370677631402437472827631714808926427848205969355361095072793168053167896934357958790559307153957081980563177229845581034280811804546442853563090789789872345558117298911772787200829011842830123446270929138016348691736961013201571252949617062726496193427248480442182040427979414414906945280351123761209438578449740006467572138101633012026982638682401487181378684937437064551112813586580014002779217920671430574523530937758185844302877493990931343512967005549663584971965359864946069661901813137918419934948889930760315754993197210145447372018130595651323813911197536040064020744598936768294658381492168668372426421824062912491238243294864608791395248250879395334977918810851568580151956644705613232332379810521738315705578915922805197854352637765600524318892907574788450757673463977057324470485606076219606383103964163911442894791737159500653942207658811990475871356396791876780405319308093314317090345142298307679093718680211694869748190705382025551272985739228921164975778910492353325526110238012050352675531822462407727266095086102760880478655407600197928631499062015670440249676482491118829172313393510203191658068629832935120884886934113868160250471188701212136778140668772664523920976432289740074445084871121103804071916794319910924313730637327096759275841648969468642401632523612966230459494837044889565849651353755289135757546861701275114416369892296483032942019065071014269560327320495185107881581651101488783999233894019884178660035665287417201179503083521965617931694010925168403897192258617194037867165638145003168914737542676001742457781260718211779098854441351912497205262363920549275026910247296158338101098805427881365665658301503800531438589807392773164968003952128440358522613180354391890003233527597216958674595494628833734731568378107443171320986800078460625614238830470602876794388200128618045850928787145993949313116572164033462839704491500392030735799451514526397599269816896537320314602297593521159332353335895598113184311168441341595036632956470116689760895224770180930863937336587703059136514099007788535490419344022357739647914210518466002501488317926930821715509387957918693300807441644883461304301724516226149013804888946269590329537108283768926936220131383697792741435059655209887474209495277465823024349766826549887936123945379233366115399677900454749294932512755151151482283820219001013077108059119721868737911056787220936629238461676822378892593888889602659213256164486881627576971650396433980884185102291922011296962770741822090957934807212919562967386948258057717289653459586788367966411750687858324685818524413985170166789621486582352010234297578287251161359679620063594728784176007679987508443668687767512073675597804328903570967640914593872606616683137668753102278865248528680704957145942835347995874399070365926887245063377542676377112806194207393460850952463029856007576440362732208066784851613621014838327885247035700556219631818626486501384297409774265565640273731514702030493770184501784941284771555631030206508108091766392379928327834571258686109137685184128281274513013496478366099690671223540620841347097882661099067514626996238196900258524158727161974152174520642379923747690440649963163786518589158171635667841249587237503524710578735576994871542685249899472344308432730911242978993908766841865408017220921816407740039489725492649258479960877836944577244844697120830693551904600880694760082352501393711747308069784444895398104228137884934773690755065061215627792851124312327467933496076422566625637060674071717072738218353373102598015742847542767347237073787148278954884033305810931516164742824479928375998918560391435720825815067934131033068690602913268991866572764668048819182398902749351355825022043984258453171970180836357811279089524024024249647675988821408777486573550689287082538071773723306042241490013304697252026384610164642229077412642902900849659505303224859267015119526126106969384843046081351330479398609332890523101259656450465519039758644759656951696542020674113008263269216318830519334231341593046416832953904463817611291583130997255872694274976269256396290362470860596226044530291974934665959686331389268728185640659967457889696286098509410695479574129979984346533979773545251197099710680336702308830071056040889310149926949349494551767448512744486025140209165360729352063744445802393388395748584562058029550066733807923809702446943431719694193507115650897986828235578684762635519130618494901974282163156033239194275000901854387766541167021171588441935060706521807799024727273007245414925112558572720609463106593367501491483803646320735344021911107016967219657574113532251083985811327998235941849533413676778707276535551352008079808865795425428671393072387687107479548597688110424222458001948703851189342404906336307947699209461056531655770804930325020156674113150270254012740021078998982019304589926092116391335137920908277719100753485639030386604470921299417082838160814033471138944347643008124204407611589253163802825879635144899282430528252841783424937667074378332683316235371362376529297195783059179698102805363508860796957773776994031488455256006794429715068323982197432445209233233647102880297874246127688367275375911910876583946988796277176513008488871472436734145312112071980037524088416577407260521300772355670502103555169064343116227056177942223835136088305175589347482885783843446543443820668453203389889239521565437176808158118364488960755107240338236477981953544927562661290704725321939629341202908438691962439190069348357891685612034456440437086658471384588651571181172118320423095841773274831969383546458778902990068783032107375457815149698404808477758577601412086777486806382631243876772325519307541251181049687532673685891171130230842781930467575819688169774889892462182796458052479878037112176284725045200234095464155856419967969564147535177090371348292812570567515502415661689658100711803538078305423556517634618629154282514161996387373224844273221913019425356427314072618119411940049377893859988941337567173479453268868525906435493969316728374294254769048328355841292743172232857660015501197913557610998403536069439361448925733040051839741163772867123527574795795070974045623236969250105600336934486762753732291348676434346949310624170375624804527774952674174585323292219760166492017280744478043603095990610139839186479323187457406054702575762294043088113052035532542942745851964070899893972674252739950539529975315380813208002714713917690440812395391142678685013325883244327665052871843500211279742311071830862013223503800061655408357810239084821134808497824620129353263574660565409833273943117020641867168781127392986672347693160663793463331605733098699516361206958509967820691075611151973122739302868631581837453197005260705299867912056545257379219292044016978398735573791462711211736717429734744218690028542696678037075548502356779887619909011765866684702275556670980406993465603855915598733873344932836594841283374943051863258898182669267411349379356898256496679605555439716569508175895116592705390304675456135363966437653521028578997464955460080626423398841915377751585948002778182946593734108625099606275376306908783121639314606924459460013519862188140342435066850604505638225801280236961771220811388297488605031202712244709081426356823548247467979786149839573850619620080141781894337960064501030422883238400508868374123359709690823918056222504960675982130821570660686596820051494501660763457585333884076085660827065037131593304280180857535446035622903036270984679277055394466086648658573279598919392959388437401921184932830413036994945614711593419746508096889792727458613648629793529721344746765982964898194205429417375885806519257937644632250571429643467285495570318013056491222978808254303874508900201341783374244120161405304690402765328756863297545954937275476873829472953452637775685451883087659334860227085365282493829018723328487182738417359058321735771463564080895855217872161054324004933577149339376724340877692917468308510707929658493629120596096540985934807207543150797959587584923231002637646128153302792318138699418389782353171157130392808312734514967100687356998329415094470969618568794188276672144310476764570862180903837735770176328924514039429226941443036693365061662792893760849439148048633660808213023490380782130932592915227305985693841823374774306286524540259179338063784233294370322816996593196652448554440143526209418699521189522617526740046706264707034744257281022083735689883985108250817943115224150715563879534739032144136835344953111162633492586582623122983687096236890946722978047422438723106676976423569269223815376225517214245423440583707201343182769974381331914996169749647787037055544800857722770108667017456947541047262273660620431934674922196730416490108445668686571881522951793728336888272106464612516010214250012380701173972212950086638475111944193153984908949612386552783624663804784591270964250958573324546306826113951643308656517120012732929909732209503186084333039643261588600124527778238944440261309612579662316986180149962147906563377211745428288749262239562201989861606229192375216258765276008821038477557480726075297370421321205422388246138502536952689310572746272711172683818674868780833820669483056446365845365411607458200415490761936987637775987219941830772780696825934238833398703779482059571163450561764238668191613842226236556447802181922501777001982386684022098071272424185584934527924295776451176545996177592015160838575573726895874429031297666085972375957870997501703305690179983790581709081420133706617843443540176825038568889111039204328200604761579934906392558319898954223966566644479058007866316257425799098212059742146607216191556103541255816453426675665756758835507333458391295517191754862201200149336286541765996847438445896292187613197900968694921787222401867431969712470190277490759582247772174656875171157307309638677998121553249473542592588428509633681771217828638625018429356990247145460917296251556677961412967519776593726437469810219918064404180499859982371769942781533709820773053856609848847114393179122657593186532690029169857293955529253726976679029840483931419235968639706374343349028709994660376039745971931217817284548777512414932741915060343948424719372195085366094944788317091902533678714284669076340124365857731601225111793713206596498420306245365589112167710275470717484080224717398600629036180532472777999805413886442427487718949304453881539182159743062847378948563036498802313257223326438554902922084352663666580945833786755129571149882611132773998602541503545188666642753308206108641087860195906236929694450840585724268744243033110729733900340126583472648729985177489363949639575560850747618686012737677572732286998248286346534020320780963542027871258617012303480522374104356836992450650293904085271800189434766431633780908724557182273582519107745959279498860497651714131638986235871905915034131944527049445873075713290518580115424870499713687502952313225654250947616739111437117319175861021034831621094652734266578829373719315087745908061475017981453013329186996700440785879389368177778913015607115422443051890430761094088514776782083029545403605940086140515061527858023392156706941806093053027005916172752530243730220575519849222817016829264274501948530213899855200272527538133046725028538050046380662207849650571570656298642561922954065260382104845401829061398256691442088498758793934830900561802787541327717623314590530332827430814495352555794002009048517074512491617854077565650446521826998626537492729536839749481101306561397019890720317997118795099152097719772589406399714289923368539457049743862599943739719795708638652093456166831832278768180630635980042581757223367163444999244372075220529303816451754484141791107554721318295740877514173106695816704307212379300076279317722222004908954277362473195910387708716144029871963637607715815144145584061684310165472175702165598058214692982841099497793159823700585787744613084008217911571823790044486412030528379154948843386248626207541713994049824001545566566957045954778883598758690596718389524422389265885418433402018432387826540444001153799303084270979928639006276532368942531187762061074845669075040186242397958881036756235339078692014736146922951207647174735669105394824072254394500186113206114498428662395284469533835728323306541838030057011059121186151503220978348871801196603788693249247639752691474871002908574244284057968145677810712188218363595388987952988068696561889197646008538279746002927270908599823459432015825759398779455504050014753390009223908287020527499723173618316862478757856439983466982233124127761575662122905010363549480736590934763641750915755329690720100104790163700600609149075910463271976455302323439027575681024086138763929965194550071817206115271204395941662877394893893212162596039846300432014766096054227492441120519954968238481628280806953262385193322934326811293506688200007161827147185065798083822171850901832138222235532421847556296442281517753177977335324302537105213476751579133621403783617612156668808397073756563037471291846024335964698535200160043413974477414070412372790641672502008669344333610602998307392724471624355465817543622962365230989390551545681119956404890184625044045786471007037759366800303529853294941259353416232817459188309140985072651452407485323910106112722676284703245374798057421796889562200925437434928860407137385816717664654100423346244856450259223793124984968367890365158186656079509493679306207328967385700725137299335241066221921167188109536293501983954527768025885007765016667852461086150644061810635044068098907122405236253455154997348393408655757007006442319337678964058553609350145106933318631643179210494790694547119817079595484894899986924444666372882031393189823426048806119366160841709283695123523712032145204876703994328971391060315523717357727278935194276502690152710057431630364965474607676674821095970811598473798932290070517665892467931010140234613429438734055639904769562962520008914694216989619922693566024603989021876496057498695390289516225816630464849603485233714600716709007665530731873560277262219587439353002472308786641197687309064258141354300333621662688053452669641865233196718322610824309002023666222673234139225612454527165740825672112881618720907748110091108976779469605904592416518340991462434773832509392000228261644637777543214943210626784231048237852601532700213432733767524488867461058594258494385195401978681260994753852630683836404983175454636701153072335670877201712706934980630778348801592509500089673680810047608530436330943771471488633429592096970718243341977717885312206377110196335966419373336962094820449232503372794389152812186808890808736595941173919111368204068783986999591184266816572780153057608917800283853536672267768454462397679989327274442760451182471848138448482031776082883275019096661111025324948805697222029596260612447593733186528762224329197633715971742428278802067772422152023506128265226012874728253722348924287877039321606763877702318869907346942133961223362073686139366649366305539080513276521522446952934535828148112996985139314557674984433921170223081650110828551667128489166550788469268240143108610582080105896623411828064742439082479441717399225655756207113919956786252858391450847292883499197940397863620922091877174310527445196407134140335856989650902076903665907413886286934505906307833390730892850046792700071209249978480344159311438753779740037157555412747270653080823663431227409602632200356671431453787824740071210172308135011317949395708274211893912239779872697413829964821907852092950018692314657653074229931526693550679938583535665938934788595065201344432997930935267566847475246692799291165840256108557206756334331402076641317841817814824445098849351769531172290082530749992119424418491510057115530942063651874442170779877184055281476864398373470923425673137214241047231444078148139384672185735579329546851674403754062674770589287428127856353565244811988565948027141458664581103172956630673341956801662398981484241632092736567866467450089842335140768139455520882252727965434749224593109520857123852201949982577667788099058701514225586855475181633081160156472312380307293165770051458496926107972451751083788061178017955147949984219484635566112858847594617259058732603443294598395966056328277765395129397161057159186398066861771350949066007292095691236367099341250595360758009075990677225812741702708019652558128773849591395357332243363907261584039254153701766322491417340847171259497372428306945592523985515615831597004275399519167802466501379663560587634707365632112082942095195426096180547907483556844127585607063741956798026364215168601108828771721646989521227668049597207081960486642261034533472053105799643037185842410843476410710492161673606939219139153955917229061858443511705716236651707243950416398633202048264047972086814663049324180428339616528798266232155631446079250810236268508584316785049648973522698204302384735605018209039053874761994124934826717353196654137372007893454960900360460704146724269532584422428872255034779073896713172055160675879985350278556668755411349235953288549491788928257449868805000313972020379483556732189858773140175241106173122925919792906908053101530327257218496710523059174429259798893567149553019367842335312844504732966661663846029644832846220454531541570377971453925516553455798664366245055630661937532634829998541249452154935236063743157449278108445830298915673243448908638371173079887580862416374580528895028558564082884299007740151380113510215923775482098592188598302631667564491738918764705287643766717451459771404165922559416041101395101490209736024990435048185219065104889016110525897368765114186931949896125127741463954613205047691409792727476531133135764194298901965494062138687584943900402567565983199758793815534202142312566261267735120193943321905449768647481683646179092160401173834505236748543614638534783061231567256010528906274391165650286079900650213744479942766190364217103902804796768366642191848427836702639174869406239248623056994343560840199496574314141448525240117127970422166216413729240467721716450549959036788229207241967857148649142580643980774732565243386098978972569849218092929531812386010428302529621689627720750365106617479274687944172965144779071505710402624656676460965339512825640117300040347081699546223563380874771456827206527073047349545349968305715434775081375500891713343347892387956069030235555538507078073569958778241073872135761404590791880706886335151239678664798261667857194135070472218554074107411066481893861458077824197829586926406853933556653909430961899114300774951795855277231221187969540908577869567822208914109932921305086587866830201233830011025691613090383916153308842353058292475132135462262335922259746190040710963992178156490616008567642493375005348861919241617447190491603172138450182533923396677901365392489304660491876772436636047980741968849723851843078788259590232068755340543058094648440139867842785297625616160595332471163344170417108751829528224008353407712641532932442150273225252834807255025018213801657812092538563691951921120425089603681055182146295802678860391200180158259758089991504416200155219240125214819901500209581277203900432291547886663541736996258319940319341507799592289160642776902589091188526472220562860758341659231700015940602991586992974253302339451413030967590342409822168837764602036327542083964295578548337502301051720074474891251014430581666906073140994016592450787587833286752775115043767414718263989820273624209860335757588227963024918557046348089824728046538048306292534766925104555667753121904485617214743273170895719784296316692138410841457435152810391567860660528680829559632825134920955293955666100385135563878618495639362615942877550982135118093318422474940777071285285250203679531830605578562214653447959668673528188840466789622605801044839483556057066486500310034360631504060693849067823830437035898997693871667279626817604789511447131517035890200165309874766469357267125923584090554993872981866398878071081972225298524720751701211499513664190988434144144669899355241572985391232528330557796650333247720666530620282847274701122334780129931739140215690942663237874363475669657331001604859984045668000194759924231157897669482285616089384255469776130972089478019582290526600555772953460680755646629404395617726338101153295126136759067289119920823486799029865481442066209848369656578106200402965977875972692101726850166288039149005840973546640688283856261758312436961763791434597865098686163003619520180608808448091630487662761888068559367214863134062361999615422309888994637778745428996857553620481251781287529375583413458152994684409705172378477773478998407271140341476363322258504271245320155933368011180996314841343402285319309330343479701044404480376001910102262696627355883453930798657808543315739028100994056771124423321227541145123995192065899127021001018813492705527144419547814818507800530324376017109333899093314372858572299700486383708997683448669235087419201170840710092273183036258323837048671304369340173287161273188212344210409392378874112223194859226891259751940673947514240882297891101048503577480211964308835063273311355362431638888652359777068686098112642395791935296159965527199427719678389597104458877081857153864647151310983448672200168358440760276586785466458572879271013280218429476276741344969398523107478445112620354090440342074646537507224928412961751195198507258801660217182929134395997057716662710938827627716842214005289535710308917185221382517389346966701406280446084704634261816666270349390731493457771043137748534894001685614698750486835509611725365270243325654638871725811163078511927592179093813132171217125421775734056723076341859756838443214311210374738044870905403584218694474667919539497247005888546317089500190576044361514289405851780849859525456950104049194359771727947576892119416143604913289454387922188870305303306970451969025201374338689775143072030068932327142928659633651189253679765356645241557229694476426016479787154439698183595128675347640921541661976351883422509388296532177325460486384883142812953515532596404329649490496326823985804108145264839020980711096660139752115978399656302957460280962778013658212313299727793131364856329255921347320475359971870879567210415493239067460887940474189194923691859273875727983468005842122542295383625593225665087857509893827210479842739891773034885404066467994674930541669976878070011383348938883812458051494459393393097144283477937256115115371393371395619468010165069395496511703832605359876473279131021580003756669649686081236167099553357090693518380698662230638023686453695620932183297307537329647719424427614447644328594791376441250792741732911665825794835139846109270881154719652895408409043807359169528483728598258604802224801837470828442513168377487812923796585872999353616301959975326813512732316125257647944181361987988325016053934467248469832356194887481045006773937791013999843682369671341206542895252201780427998519597135068467099133972370997117191648135116499579921052040018734274607836253179532522002191138057263319298577755707400592270158515448551802322866348055222263355775727520976047460998995139665643466039000711503006303812481705535154191944153782209062891147089377286818280411999950646949845219012384727142541422994184027311248973935549774496957027560044673610906097772716125084614670590587901475274585921667550799852153518522722982917378346520353790604302340126109416248615814330686553436648618776726030850134745697927141685223949115627847718796625232283308023374289058369991451530441135053397106157816844438543226876972505809220061623157177378909012688386183625589486058309076632584906177818398033869449663346071178606271644328623152816066682511818516033892223772775216220684111839906992834880514377991441460996727191473224679911996071635521833846474972228527789593812767461530192852465450585336003948479332184448908631511429267115813024736411121918296110997068593263780787230294273527624840401759467092119538875411161197666199666204858613614786041763782520046719404459120712784836835638314144611744203979288530626812143704303547060047206783295185463775079819833210155635329032127560338010119624208727995058958524372193174253169042293283774855246438911776232075056415885195592793274537179251716468834163732005263864061468492588232376449058390862992146654131697351371959875439106823410577768715450751841190561405288453004813728586816529229097251819945892639156544221969067466867904433107181635113600719449491408779404408531649665152444929581524045775884897227164392896357808467293878204072598840733625043918279038617653504832054643303146540920161039027799640507585039187282749618731789155711797006684746899547005545762977967772660587193903515268545665887908421041060413729216336931733074940667052581776693072879338540472333327006954731299736150373697749017205565207164949858419028405960122086593775996634015490199151495304198315266668748601750624307139684025713982327658759962328868016619710735081555197245642222332742740183049860914972038335401988424289015351766165665016117134336148660043038472562448910171502574877768778499700171068384366678082937727533849017523200541704450191983093656137686972188544585392999140498216039622057724792795037372677979912805550133040975415391149098586022123475935361228455788984124143718299807674407209885572936152713526449722722270420688462698488755117646984360709246100250166968206738120478881085651968859579957094170770404586815599484735439143336323315308769195240799549556054282454555758831428166429787991450345071811747112779791757766507333219905542939985981777651707411288504216440299498352739114747507693909827270395373868465160189409511317617649320268676377906873240494246428226437063599671017839396975248131391452553541698063408395411410706685320291403010752953001889578467103172852289313747353931962569408012780943773419020765948426210157735899474767521288855157511087081376120919642271610019963436830462502404180284609768373834301251784896689883613072329652135506018185962442897839669753593896373903979641803055897831779411083678560582292785369590121662847390663290104441211370688980709372365422236142766795532291174686613870507543931036918682721018527316120516624265696889971730091913501354675932504460403051575958535756036055396650584101197094887410668757815409296091487994176147146296741905843632131884848579657386629202922098190247077912195256282137551623573417240431463041796909908667061458676738545322388517266953038892936327886635684067975571925868744148592040456299267211055142912274170944565233036983623337585394899672763601216828330486480125448708331915801716042806660459260551566470969021668345946945144592331057292247441607533040972276938565028553231507058317976859443789954900956305413336765008806612184984278426474286589149518177237301430333991156940859086520816567165517802240531560323227547893528722354922444209328679276220177928597067292421826089591723575524222935071065855956756737429859025829753611027325848369544350678784076514866668006384923127222547821557831501561922368521906204051550295391823382375301572731340331908065883009210773587346961955659730578431824322422466914622252645692851337438009006561747688300980730994009962462135198858483744796146169189475770806366964562352144702118561075494369529854968857044329827556976388262818078864946194849399990293080767841267409214025599302532162018945805917736687436015370119415714187514025868977589082681999312516492912437774126915133955944670591462767711005150387816650075352439417048168232355178358744956238068317143324317741785672371457254413732272580756864433064914066613182015565639466165504936019831675438566340432744023088139988285490175325183788189758090420573163207497354876147210424642238671758195357727201866532646334001856489930928313563727088449615134106389901589006801416776207380647788682451114823630214030223630983513881799610623434284453325313467122553577719502783017140384510384031609709623564166399913908682522701256378762233114378519036286473327183878218160050077893558291461545388629822135584448584589051511601080743394765756693594539515821201412735269744105835413250563581382300609917385117322893708815255132853668886838509800016872341682361124419100449205935326981092248803315096964157500498636334713266662455422934641343563463629191953801780540669233753873801274002536887859283686716331875321427502834210271377792842752904141890578853853152326651676349468844789970527995231299531879536374847865944674422420139053239562681232815583991523657591884090036244938499906124296193739770438979898044815438784063531691843242891683703626510389233322018769909863526621142147681741070780013421713807786486202961814812114281651973484766609274003154800569410872070671289945559679792866176691399982656700170808165268592391569246153637105948049580495175672700916013079726539794947614504112471513203859029689501289917097244883407891150247137975998540263452882724131368864670582014073765277939931273351997204026538617339031569113903441437193764349331412122563915912998863625022148568471303068115812962571422213955014492829912046526291592455334633531806280219398867796803190056196102491069575282596259803923220112647177890482550578676035517954280618194184089561686828139833955877350420540793822487025948699676001993951580887103580528726001577762707403254734076060441882067760085962763708547362409694948423855023141016246586224460978608022298856993441653044636739583933877500726944852070533910238400697142176077338990814651430944575380045259474337587852014709943750275961259590453407749802514716695822283253269503046393265253709551083252281279031069387145411241179541528710034144823010378925293423880901340838148124351257298866812358727009299043592969871394134401032995960333252629258980124292155106462275971399425106727703794918361023676156097330353860251932002108016685810946022454130865463978617570702281888433363297635369573408919594017603381734918302217876336100474049126074220375077715066128630592425085523236581147284040509691956065623191467808181417210447279133278873117472752419829079139069593232262997684825339498643904454617146062072355504744367936837835394554813147108928242080159946681082719229003868595498463105567943089663655524519915570420113642335692626570556564486304336978812000205687059653619145148478345203061852491131608131100030032851979114674263840742186487290098291150700587968507186318775375704681131448238525002433966822716464316632459628974968043268581714271587433235047322231547521182610813910840569083888177937455702029764108433784032020022351368542719015714577265943661106517901364617929867263100879550899987301455224561704819904247062037751435778850434138865916312814036209703437749292989474825513214004596331097249092072395960839570215677429732039157444901113073950916205982990587099490867365410718111358759839300007866089411772313825440070304126970366795372650761912014899818219441511212480572358030086047525292384292771526701170100800274574951923196260169056013318361441105886247940594526012147491336493428650929957867352003198944866447894200381683142752427139270089760471322762265738898835792986092005393103915172608104164428066018726120360779784630136023826866410634955551887123035187682138170975117360634587821981469800275260562910367080936776069107169815069937729894551624889146041642522933087085420973027930928752474738604016287794994040027544042378873862228246665415862600754441185795434344094360544829685737132140193683121764695664772377627814633783500717211217939973841352911893757113570721686402552322899493412303240257314173935574063967247672023381214181779998091049582548404910916587350248072463497326337748170283431866552893699029570454022900713516859309552786885921181647525022912624085101979126969926120501511535914075369673148151884827392091955849888621610791446333429624389989979186900518849181408831426558946885299632481889956165599328596307414625521130425139609387611880167355886240192949332566920238169210137220433102078595069742722357519411654887784188289117826498525768568794759841784422585957076117370496825161928510060423734438737981328209326406702723728474360622307909502963773605857262512308375182757123313090862736193742329990763652539295310097040723173582974782805581457208535847578320994002261495274762668287684092733081388365819692568477215033961136043121172076774556228070573276954468158148151098251785261207134928686677267734710932208889622572919559133399461304562904433784111655935182453018626946261093361111785066684792168284182189747003611313704288871288118213449418329742019743603323189274977352419115259351445235781947030943494360266952591054470402176977025225959891486193318013088251714577437762757821284830786061923260387189153952257000978302234168726111132715808942237329676557853267382104643419728088703619636897307132999587760989042321839800110084027672165047697767970158575556287527178757698816783124845901569242870073118602385243088625390904504819881315156035915390571223981547248755827997528893822209855900051876361206579512078380200144075019043161923595778911935020826909635778980359831737471589401409052990274707422838642691118781832912478279132766273756693113532757639198605588283482095250097002420310367189943323367574449517414535550817383234321540762406354397394198984054725569797671932875608672717941033219374641251251316270639139752003714908211775390213361152147020835521439119501002537694644577437866775974416264554702688178279838088497852230695009921385806224215711519425093725488190510062619311105886708456263695448782584957187033438559570366182710950506822294841816415344910159124081531259288590681360736149126563218424676685303575970843288196910046742251995861822562781802668739546320192444493922211456216257946983090480615237268737343626935853449588572228423713547723038542895269583981707881003426474420536522294625200808833042040503175668809111392444566712956817868760764480001548646765278811074730669053782969523317442733249180468767356030548219412671572457590723919566714735677484355588826126964666408272236289868466892391365505996643664324619180643878674320905025878715599434642065685120431662393455550960726022858207308584593802866238682836161761885436377575416275978350184809042173263248792540893466738021280501845451927538585730681271146209680790084756200238771484675066024558778498147112670499738102789470216625152127329780153309966968090463547105586940894949852658463035576722176142281792678621634991418047835554367759100731392532378806223467344483228132552894662054126326193987443920934781374506117471955139179631666917581775003941725929427960457203450169648964076735172262141672123626288955308615804066366194954768860302153684636879092007869831217251426908605708797699104193188652705069271439085701963766110036848040739528928663968416932158500331900115395500327313262111478615889803307652052459076882842588038741600379742145269647760239540515931258275395702662276575321195935192873469121473658404143840461979418600070927914088689957323666909567765925445286635837878171317124301679215304447107274892510868442602006199338255572054204550339119463935220133500372589299700498297744936303225717490357567704676620005486191491823737709443289559207046684012444324801182518873581586811386938268297362727507300305248903789163910567081562405117475526332624233718059675547519135482640715038068907034906037010006187796992086610043693347424369068196949205043175310711671162009367928374505495736494225662745557607987373321967071954290656763176292409746057820478686035319054515338447431891001507887528925660257045262844800127093602805792613405513554926785258686623163899214943068781693534671051541179638423801762447189240080691873889851984923251105017337626766684778872437328972052071091169744617608046211672131876027564213722252919379500211418226040316913512021583723229942341229796815617332192207468037530494655706192568705879209983064775459984984400103560809978608080739641783363346306942250374859545436062993388441925861788040898115967270041844829764865000602222338531951421610083987877020590657441163385661981285539675161329705347018824563097304187906317096421498113440398805738925619006875379383264557338999607071635870852488504864181479716253104897884366566710833784155970993853230268960042864498077023842578528120275042048720409932609227004272233507173474259857335079581071676913475789792872426424424077564099314057056964678093239018578072742157849124380336836474408357178480526764793541440068356327209852532808851456824903601351582293119591598834175679288902984841893866735062397433078733703616697581368959565375970531070721761324427994218578727501684994648200982001970366665878678984142881103234889224196749421657698668966493250652685033540550922104683957681398355103530070156510526986935049471015110935955995597739234938804453501780574089351384884810790315911556359040614719649736125564134945064600983749194148638834602691044908252074311984594499693854125061996412446155781669978859942864963653393861982395112974294470434908209778953896043342196712589286290972489763341419062837572530408863639550555895245077086703051639186412466088467662231669341135477330751175721040630708074937419920868369703574437538446255877399256381293344291023587904637735578191485499032209498396341190685176297639255104355743315860807576124063001584056967300808478462877325814580182917704862524571404982558812285056847876980365017011990472550387400011320036137737080541684529034066465890412033852735786282241413926536590483463216541660032096504734769613963779604921892739035693665565384034652698379307243218538805019215050133364525232174577130679541062338587469928459442425366097803245002100621982549440105735690138030663041588074387289527240322283444188504416370152564976330329517932608292703778756265996105792780382302315507214780556026419816039466487441184172759489275777105247864328083208834039603670512315296375147538296141284717461619245169529168956941298181790183547286950583820789146329810183464736295329639822893533801979183723800678616347898417072361192500542647380922068724416354893656470268815724032706885714306262254453163798305818709595774565819632938358669849618898736304433548629022174581918300831279454467138844176603375609665586064214039191113414605208681891051653295505651514949918426701514331495300947257994088973946939781471847203025038132143434521525692126862798750890757215651823074333254255396501313014414687090815167348740439315331019059080640106132527336475700643455446994539052968724130053341887967168468151649289905771640873631799210633750500092280391278229712158193971663660766568839581032746997232277950805611243733397025533770452680934942021796585503781900837343883471514764246295630540303603473627559598384077660142709246845498436723969511309517835353420834574507232202756871914991799047737610835894947604921772595153346612706507507948205065432279959027969131564491270923185556057859733002996076004231239542330434861230754047066082051992389786510353636661840098880014127124949637392960586928081886661386186516636529229986103270352751886573750098514362998022371012883415405082300215678400597820257356551861508378654408951074546138687956794194082307951327451850484865708630769498931330312143614157537403140074403889064088451418976955724306513535010539365405590833797398932109569525891893360109599213955816480883496607765049020613033098073482706858800875113575157240921141112372629047405519582746049493635918380443804123541923738083755628637082608769334773657630559972041854277583519542599029913012041853479730771711081455289921743493017146706022786747697015254182665048228931086368556328202827703144506613167853050870098304788924056257064386045190004376177405417215916331743203132443914098005017836215996708586423630940007078974198099355044580691655588358515573914594524235987573825863372297444599734881311882341639857445836391427564981722287959131022204282196099675071470659936072333321762890296748801142122893469085690155222527203610419264894065205186418708782445981242583958776170875878550673310083919938114834686547914076867223209001105948169911338884866007645053054952893176388351191882150312086139967177979435249011848828101039557179669290479307434765326099933435818657985294834049897038624869546434373254864554345822868851394872761790568426512497365383777270390859194280680115462091988381966814963685953335276414318155825835400448153818521973214499600561105546909657253289912633400821671397530553315202490348690074476845181063296725202163090885586630901806817412326531284264301154588492451025424850472450673908766686608452754684582467782963794570917751370488357247937953522151942597211487083658151119882078883095910690998838739621931290298690759107261503795746888099759449971864745933676078558239511117318605911875586842634856201815779455716018981471765315778784157373189317814039648919132433675147358986405721179135240874396211326595769285139391765707146797465917333684348795812215472643140903747674355994824755976054670344030399207215309961912655548606428071041821006286503623160050399253086137613152430289906219740386703062150775198653973380746043800421698790041508573897921278508702533056430604774865207880094501067513514852576391811336450885639656031658115709757139993913477673644467444143450106780518879121594625483127906198942237639316058465801293269029793630167312223251095604904038647660078169255423342840256999971809846857301890148757466284481761483477631020451533847600571248235763226499766737477853807333433325137618235373573682418592071732385386802799244375266441220730754076796767962536859820019116380375474120720544879737585819393518157401926445406776031610326434260723397485534503510409952457831756662776881569769234545621364068676785057463147267116699919234611957860193550203854005735592306931303697030697693163045148034069595461098387479071872985879994713469567593144785663007525868973906731930910037376300755468452894520520601721778344268740551952162505069052397252268994099985395787935539473088868738606262044674328524581730867318314696667398819475840558490464752764893208171476255977044330610724230337701429783219293880363308237325579159501215125413864650387233381932373639554439568609605030307009407039697547445287350701263467252215870073819497818284597639400762473248754300865577094679547717414404613427165160572790920186864629180801753798416817438824201842242863226799255332148509040843882875438182510682337875716478195253945609743638426521362795941421287079749585709471171373802557644253293599482934780970576002333049821586735085130298194181485590517956344238414300534495501360446014693802608708994720509073820189268783128408801740781797379088698237213143636890626821640692834549222326895519657212463386905934390327320697692293199897954984371633628011157118825661831688626608011303376409632108080521170634603450489840259715466158238473668315453065971627947796477360240835265342247971523576342082770506482046903471361238682814310308564885128775675182304677097394795794880734007697806859274717940077886212318470810605184116593484608534815132886045326035303211568816414469502038662263794955072192698392065364477461729408672341641870334620643647880471117725707495738973454356849189967329070568089456134634410786400520757521510915742976594867708584714125657767812865854138341859327288638594580754089040844947522113347028282871264932133839187226810368707405805375355271132358778217560200576520525065696411356479276016073252627881557277025596049289713536861923682969496700595235284238750641666324007350490439950929014548822079062887775581910551220723345985264699570654944150185101096717511176164331979530161795549186426458014066679724870821068843966840771791009455488289489749280038487230354109104649696091142105171392561054482157597682353441533176004632626567046512189176153898629348571347075255916685290162692541768385385710474449319105672930132912769331773633331794855691600899330194846274931599136803987702782677728118982482907345543721493123876784838734742533911601375659527084201571928418368826616585493268294116170544233826998488148815249371550534539521198376784028636659491589453265296029589126842708563366483166025629287047744998726961245826406809098240433779346016335128254079044539387307402361279110762011895015870946747633173854959678634168781032725251808102284793642922240777578807934365152856921603601637802341780015203202370312997400632264854810555168629065810910047750496194832461665974400298863461877693936870187714644101826519202378751633496653876285023129523804893463617708089126703876602475245811389542431608416549723345887294353675816258262627320928692127373251994651484675776527743144767488783522309801222274978153656933277662436636740963188513506549368554966270275222873779476771675596653205849584795804173057104487383136509041873571826486937664002926913510737992122960143125354225830971719010489330428290982961782455569240856744157778148471330183925420489447595624277830060715846516246657183095048212009111383662464038539919255799078892023084206991347889913622702396340902364528760043843482639077872341318412136503121223922385869067378476763911335733958002373084444586921712022634173584951028835088091800409743461765975617709544294591781809609473101134159207589898479830092862405550270269284915695154973139997257969920766224346063683182978763323954697393541113007961486885364750395683113931356379844538219375875179789595843895039990865943385695265088837617007186561265657919318195167808050064134619121678848518128510545547482026780287922422904002729929614833066565046276577601734931624566229648166289785023624049603911659674328383972887652368522341101307089852925174374386149609240692766082372999329696341860608414203218180933064969922495161100983889875785930017461968228042725584812466106626405270751385255192600576558349400821599011758349303145791686804018307700426073168659951460913334808780973081368790745069300028390263264726043590122145786366023968890924304355079868740631142849190996266653929320376472110097072517615260525945973428759386332057008692291120743816174611724898136838049021533045082332833502312139750051175936326954727311490320269816033577151388550169474917422233837530062376502852807480895522023493268303107481111220253235730502074638394903272867115816830779869398206569428022281687922363832297066274085577019056694574263896767861238512566784564405688191288837300360775431045882343274949520474573907769880121367141442028218002427899726867301097924216028810332615443786413278773782022445612866564833712224972253392958350747174305133672802233319069878573847335135124072188123604412571113479356553042678552828092518640068006456250828319511994069943949787561806107297162788146901103687503074849361455144109694628201018822908428909691651557679084112180185148409832548302125633100485242195188501224976878588568366159034229081508757073163864107666101401778788309885213520775185220168243613717826688012477544150597656881710367730766422402795621410552196287225138706254133177709905881415621938270898198732610094849141135700364187334380774814710180956284982740665967983250627675332574772731464844024237627859757245153123017882963911574622917933689348451677821676680008509469283967592576483938856766647249028135614223402986590230821564910688877916055920961420581968960748795962206044143627847812853294687600919446610059220600118172897633132712885957739255105778482777137997896821082782823772837926331489396321299799029093825143225450086896222816800912854233786053876523218636206539654708489812661905718453938407045381616485565173236014391077142374364534707846933490081735399171689682640566099298283200165557011457340781155698227550045550618797814290835672682924759942902695265191875770647432332829198945943366677765616128100987729431617291043397063256596160883916166956986574030277842393943648894215445277988801703025114323332019863785067344142409259544622752981105324843363978435450087982326057094649445333191498450937326115561731873094102294503289833890049259441901677337047317785902124059987223417724998372149743784603460058202166927556684209784178284330326252948679218750060272217436087128068261015193644602140786423800690562035663932798047733012398281497279217518908190500790016323447668322532484903390246109420640609552489707005672837346577736742214654954508974327458835926290553116107234441903859094357172269840789590432486850217811303340665347198588317595689167715995642877554707262415826866891005760942266035435027698755083034084923990464402008872913230464352329619953212197208003476408334808131420080525157691000965848670312360838131767867685127640664746521423959039544304411195353322543413209161728237357263605677912070165328889007792176518973144810767417537354285028804814573628855378518001318523486834567446129715323164536880972554724908977142685826578187978406103542853267831359706217691460662539442124164125486332407457066062880112988022185257045694178362236577920751088593550965446266582273560529022472036586684828759185618196924193692818869085496262854470838201178998132871861064489482580506789177333682810176367389657165062803334237244107862920089559276897284257808149063781926675890178170357779585529362978045162612399572574587667472987451154577136151220784458157142869719175070444990859464337079873449031086369619303721677586621745936523451532788277417116711362114622930927940451956463120718754728478319397433397349177164540451289584233307876898396313861216787988421189402059766828831025304566318773438074482263168151123352593078063694068051999226565742663670664743984628114236874155439105203346367743810725770272877659217957194414277174269143897300435646801335135106775554085063929193090718679968136806150964203968499639928857458235727049019377069477857006388169642859918794595006421483051179193573693286247806646113589486665069332356823026361758029548172174474206495951916743023860360330131585507465593424865247480904457292801328670899953228776714409344761044376952474093242186389289251942019961331457953216757902779347453684906469284339745054181643455227999449641103403130507102848236330285482665569886953582350857331887610857159598953774501821422467975865819193625240266466762080557599151619447967716409922428134249693293517080702389994919845183406248573613946271769287294961272583895388644432682618625627735611323743679695839455056098145546569356648526153089169048787371191525560824443434380844944548753215964053431721993409848650614202741138482303343412231368150643954358222871773822194908868435985099287986039471692653950034236043604566805486164213622471922543350444777564544233901513672797919839736501288376921716502836095281754306586932901112691700350463819391172012392182017560466205851529745363876621495139886133556035414516706624147184313829000965026830800820844774600655056543913689265924116843684200029536475200689167838638437907369018794866634930862839862554373690271849218056938351905908732370868356452906102470866878747279258652237995503380756046002229190096993329997863678434083431231534222279151805952466122029859301955909450574265940005062231660259621563997103622228543376275539211916141506589342217576800648343485815415568780162889971655970993046198356176088327146987399493758764419747062699713686204178163689077644301431274638256943625779872428662075024416110183066638470277361355121644804852776978212329709739645913876523996799576258287138958464107264421491212542231569346344199532929532739823445765598363084799494936022342072689840976854585963798946596562673875078467872886104386286774691994130875233164425502108639828444673655854105210426466744635592776475417899730971938555070434230653962014306976936120682837332654382588008663241240334260503210812476339500094838511393870159604422679483840274330184169958931881888932836372988489965824290659352541663532566903018221648593732808674235750599690081542420437698453120332403883836131623947079324223457065379308768606764443226978699231618257021842076073874246608771831689209479851005274252516662305266432244929261936463475637424343077478058511972703927221404738555834988901333753688205187796689236789291960619766548497291219377949659160190117877460474996868006866496823506671435035622798180931631832156514239990948846657572348347316023377564407210765690751953122726043596041706646184935100119484229357422563847491777331549607460245203702928514024966193609054472165626918782464324019308548554421067626310757666283146903843313097107269883783252635437744357050134524201091306155407276956567188658568770815694397960864593456326661988212450332488091108383030805393993553963866323218471978457102711333835132768386805180851273462407236337344979038695503517563049678185067445513203498418171309235766335014934492924476014374312342843273994975009096093677036591776073241374605143301373666248575240424426655131083091341009557082442394777550967496668465970060381237311586582318211489079761975510515271002393244927081582815444989655476778085624479894718685943923812637479767069137411869672429947576293351948663778273770356929885893032046678639656411748192280083382902084793560326150188298920391022582059640570416864522261507551154105615166327414607020593922661404274491032332715290481092416326828221910738851774531176750298810092769675484541172681661953133129768108019399261300694150626238702511243571425415445769983617855936370996479546446208938187147012660323173253723260141169186514842916335622195251501759312654246096261714693838369057570127896225521707436569595188403252635716474317814967615218401282061875248673149546275559256071104355446499943247662053557428164072762409789975477314764649488424442752613576950681559283696650743627393292272694423858320407918907305011016872062908155541948461606884144006211243097449861347306080631419995676948043112091730645761320701677167207485677098186099501629060072636700955782329776277099651475179245820462847105813028006099032756094096568877871564065340347474455487240798185707128262822216552744704436419525008280084069227519922418425811152543740003461885653772595386515547158223827277282723893360208532611562183019729847783744684253021062737250921642018993970735494969407573268366561760403526189119593820950210728029106229943812767189990342367475632786039565193136392538796566520268542652237810011711814358248197107256606657398629641095078536372526734608042292679200660851090353903660634356463496407091781715834878347994158711646873608402208618159151866293488454204934072880660120588007477474253219166282343983906114046144550586167852927133941472115137915352707150584307316038007286335204855205979611620692966979048766832577165353324058011378119960169007279298349315877974818954094774330821693421329341202368481618870443656735081040423415682858426484633717447563685224603735306788746183651188679263971341170730520078699247062839239175761227638862221798602240035571347707290986474784495562821257919412504134546286338534129068888971108954845712617188414873190868273649555844854502860711699692190415757008493673891049639000557293216499539700516021826287364537372948713001192892873359580471655219757300959267245347996924481676932791790253941865061461080256709915172492451695161429712363722875638346723005700116716703659729058723168034669481078539948159965368819501748290365586161843340832371213504717757921066907177789408751552243231045085394818563307347987094838823336413285902484035417809851950364229672734654472072909460711575719830126969941845182779575561329331909105460055356801910217382639371717393516872272544997671169567836186129714299130666743031255832968874897572960470918537022696402749713926266723565654456979372345630956257301456777800783068856975487670148767078529754962329569228689294999890340996209707456066131006979997874794425690448967247930558682838316396182547311118713879813646574053427561632682147952345844872376226609726989789396024785183710518069056769224228374688000773018752830938824910371838753209434417287896436207358260465955559102864754623713498057799307367643690470759585459784247885112760685424289914633855517384318129179410432695959710789515452076223263895688151373854320711698046333827145534212265948269068435490840042991286163239605749017391718122674396235682766830200604165625210003798785856307339021763898505445028773412574050021633368344075517390451534705493217505375418916185088792221406036651628686715365670114305015240138571028337112269134514541448483445310545892309397762129016139728590603358690570333229161106163973345004382734614661134459832395370915534588481765301439979529116543692321355505146779051690233738636175942485550214297623470003682732013373665991791889921345435235008229490943341144851529764032255714967164298469941604409118135142947827396136751691456637735815099367390150645303953866197461206206030524053559029863391246780156268096129130505687073928514871269951462466413995157572973018329184681063743056874926494163997784880588718530860797228877038924958829145516725735395644514074052968750926790735437219225249103509791207048953996503252895576609687791115146920410268329514510122548744186323823318120645678217277703186240862933343742940236727195660099523622271838342168131246933006731292083155950008228614382202678717684069344728435603881056896103825437319824522072941847671400498239371744893813404679236363605848616673366488719339434377055825151408154816369277319625707559065404132126705469226470320924796821634925630474207300658765574785118926932829397111770861718702097353553954556384021813979946791913747110774222661420452271100900505364663082539166478120989406986984039534449271448445554108983721434245637981291393508369651257686220428994761633353239678590922457146824845348302060204749779888393187493487554402148839396147657112015935096545467908996314004310999456488164637601418892067741082038555119508257890252413938341462496376694277818992246259419080645119752133679099435846864036560113527013909354046416259698231230047040473571583415414755316709517078038744046496718504628717116747061932286788633892674930130863142137621303326018780075303811107791999473434473110884872203903412841965617391093621486796829973733523668960090724314462091118154022609337977954576096007600382116605319756900547245064537999677689162018447629833746122915932108179748026109086612904073364494478578422060861740792283621283621620308134582737408469143984739970343061616614904745929883432610675152686927151828647167148836692686238527347242799882993445070421566232314140141156055398161648863564560345725527658367310160579641942235364857125401886243820693200660340953571043706175630972295887844491328749290433194995887093848579260843785746935393465433977199390097006392410176905197375451519851904805567418132905841793769633783472231559028864295969303926594669063763683411232300610608216163018907290792334437445254738269095489276825860234994039730191397863832256875456516242810023623867536858727583956496124300877286482476261468739764514905424454708149978249763602283273747568769144599333804718456006625583948693049160800361965407000032998525496787980430091088787860397283583517024971369063643285737110572247934181457878621456362363699338598495970889403737711177209294971739294579280337622349461817190598241930068343646666109716416112317353507971102069237746055093604924453454377957755427938517797716185710667207082550000911720920712358612351607219954718960467655467377107031193090449441451228601803650498265728551859416822399764268478236184009131430943321952577630375824096567447430844241929587738160201624895350593128480656864326611457386717325045582597919938932960477545016930879377806019086062327667383074930404384544443733467969903690196712856668187265972005323849009632008787566543596319970070725152483005116089208707746971386972782094657594805338152415215118349990860031650078759698632187542988302097805937885651987600317483145755441680755361414966063430919818833312873508795572842165146996827410882601011037019038599838985537974438927098815775212153291150283736059842992503698150924750295083027497108841548921204165852528199240869764117869452257466756665046014499435353231812603129525700877115789026462063682476004550173152792392489999247121406158063158246890241449115004755341248359186113119591165812433876709998478795136713192541473232652328760090267556887823931847530009067627893707353737153631394107309233735537163204480932108216576103272762542750055979143317230333608574877763673149924481775584605101111748701868196794084625315724596777384017443816899429443503846079824084368127505183658769623587621067954344399017601025915911574590678429164158886405045007348360798546011327692307796617080585799660736529528105416477059114748818160177906976963716810324321277688076085236788265006030611355621943448105500136052001058931572399376932231368692782642280191213496155372576373880825093273298127825135525129203280949793974665194382849928699670189093568702708477292773434083280457448793442064897569550606318733957036427725500027542557839929549133622650678757255362806293346088176078634673407291494826607334515776644870075593898111421677699008358297233128080995836689345610303165706965752914517347798483234793863720835658038113058699993403240153578369450053309435827681723675070644356082597032131983349372610797737826650875098571331046340608573276365275054931659929800978364811186576997827038963927598011031908703907418816039175451109856507514258883678081169989402372482835115610063865087100815500938685773318766863980195630535220070254584522025104748515767803573341392319524344944356023957990759585807753051407093776879661898899799296874288930696943468390898194057690179181206111452847475118940639973166654002761871988416530263257610696106294392230364952523972613217747356364774991042148968900638289525908766824511929085340269819110551639730282178200206438474932718050664498886636296244797451711468222219996070502205451737556924240552214270725091542656366449010016865732154553526142043911448901703291674251850023616976514520587374026568364752043635420409486490187303883750453422049793455752919115270109801608003189326352784654615321168547802885177969500596450934319051631981613563108647991802150834725693814445064215859522461290421561016841316355884682424472776938858862806270324122840302073202277511442995867351979003578673917361072865820835735491189123537603380626253949128947266960914240147724755697443487938422634961963574567094806755973765962327439514933236258581639481417463673712123604856799404342848205147512592902769830512758162078452661688879192432480058031939503693655772813997727262606627391882531923718671829925876481094116688072091153040531455592781329172610053495549334173325924510312874248122674026376837905034794478751221920870176962059141818591376699594150896830629559462746211218464968861550628504864634417361339698730400056916704995200043629778285113787425463186349632225366310530194479485594898667445955283812603951838404071112484814230275004842634244936458495658782103488186911085820281408166640129114907402579981377303085702449636865995079232777849617316876481375247337267103632074261970192372946499974901298818769834488288093272912476649005682467954679000815796454884464777659038099125470956933982744373636569686663072638022509470531131254069048543341384381627510780674930399075965319143532109023941601527508707038892909371705198256459077781715254906326307047212727590647810923471570231385635031882120388988062701481934987802514129668377984930527798109550151613299498786709677148053958314433469410889764459430420810171113157631190775293090711862560771217967635295835803369443127935587151715308159395135936120320826326549121178242506119088410147008270729355735204597613061613664358361687113112123762115965422254486329366353266368430146073616272051618967003476605373744456043561896067951067941842448283485225971601289071027787744503145594718243366251918953414385761362564866727658050307138752239860808819361123456837760973390751133590216725102780833314445655601046586399293439578174528935639431481930613392472010099793029557105656002261354160216686898806058228484886795926693867837154422619358038723894933490838706979890512652760096942141809120350867389267592417362242141175098594376756211241770135768896866290361720761441829186181418346676261198683634418008147347226313874773018778161442484708574272932381692107126598909060457806003533409613804849215433424501364663709930971095825449015074889739178986998191465280885284238418129403702100493892381941020881112974051835129953127653399424007368748380847216343025189819250764724522879111984670361335745550271639993303396603281938212193488200780324331045478046275467959511695871963802479272754678382867231384230103368635353760486527683186953036734098414455657601938463119063067339306943264248862625545259843141305167376229620969980023090221423076297675151181911509049870927188255302259361087919103173824700375493083982692052871679098801109906448887120140216647824948384901804301705859599056141636751344804723117236801859869675592201419530892251142633693891283541614137100440636983128518384784477430932897351409719268113677581535301076978428676337965323264617923779415654792232164437723706763852135259877278872466196928231421382859666304174478013574425972455634542959543198088896293646700224029209301268351288281856138802212926871516213205645078089234408880653009064080136825750118781382869401234657983692701664778352241660129509435449629370213278624928528377760396780221786400286838479601300464645541236075136995591431463525407129583546839579188943270797359971918914528013056688188278567581189240710098697850605384645065549185991998704785964371457987397761137642696385083567697596273149886953382378860684382255177995798951683647565488707421916572643569508257945222502795412480295485474816650462387260059355703513554473943982172844664229299022090579507765111415602106594079974933670336552724085217385824388503890864165337963323973685935342874061660766404150544942895144928421134043706587332938076263116181593982693009323500462731115285113883496943237944757267894804165556880841119551406932253451346540386780591284292761634605190447139937270578610244162349130690622549376489040338271708606802278604811416492175131507596765134385673466727522761320261916009241235006158379025152817969729855523270208249229249330292060963378347812478565057387430498456695623007943774657049955214470461516456105447832887134909578567540472743902929799845832658129966747265377599105470199427503751402981094766254980568740588006129693201303578051642111402341167050941968190381967344198681170574157894135586322772761909190735217311781709082261889851670925162682478579551641179267238132998673882209565145682513056811493516549971107302009461147567061261861977359271851129114972164993945519055235629385930592533391477506562892816061273597232651047606709296210190924036920850436379026675552601146272759437772844067327970697060431341049269343225559685439225109167317934428253252547167087710597013599781995785809790467710682872170945257446649315441469180838833156062921247210533135229741141943824536784998497790938114888197843653147410335620041122900647898301133772666088950888132840966439688289470801830693729593364437560406590701717425256170074997533336346222349963845759315430599708792319584822345731593141648896578516587518348875626177181416851652309248158159424241203996508489822203600315294712001930397989336461810606792408732988714340660139718250117758648097818422662251469867687649556760821243769653517799013551146342423242285524640044729337739296737252736454899731222302338703554315793094137398067185063823904211340768548418604431629657747095773104969197509455815463582140682231455414395431696370490147255727234025651295469125683317790109117845166812950935091887871443936435483051253430963688399200307213456039394315738704145181296946283786737580746166231855953482179725178892070411296489651122745826781306870747289837205992864885043115313443392944180359590123912501340390852323925183253010442170992320967399454689194720361984013570502157132786364014033671202589137295168870599375775959895705307790721173878058426515125002287434653362051648613166854489720405626770620169720471418724189041323568901082761372169009550666195385826333495595471837956115785128633758674865024159775639070703029570900861313696458510213480404830605436748576470593035528022392816866819115484913145483361894083189419135888828443280580467531670431510339563407534412404289217449549119464112318513143164525869612400891251513664671534642786335291364696071347278737467133650783292013940689115919423696274754015322412540697948097435946012326024378029437786893791334247309012885876863901260945956120370907631403189255190373962395424647084581087109201463414948072021088454581609080720327309020327173022902783815718827584778541274999769256993593896514714934351842549565116225488115316152470383022351430558815804148718446569073560408117549998012438955502828519080847264164520538843946629405490970882116651564977470681384323880731668910944274599192950510371995671928593582968686592343039083558580588125396681613471858963038288318798092672859539734898143931187516798523322969476385264379680230134343111501337715385238606002761983545131473105350686852013327151028939825222012260576886821648539609426761790130419994541666731596929051662382863509594993672377512737903239052703238655728959748123741693489609719244400601149829268682483284417359122207575649883805657363428366532829594364300628420463911665974093288678580804273249121614938010950337905229408904397386118438218366048353944104512625092651464616241558897529355375074400209168789929604723997290680022614752337219074483392490389337331785923444001964420898867119710540576302308544425005235820101467487415227915846126135520719123325063875574553805327238582884804209365478348502289663793327405004198869133506653232725552536606951551792019342758444001576878650828203616816998300353100313177534513925085700811147718909044170279132118506000139957469207597303335468365322674148904889112797936572407571348142983081356102185425383503249482979196628379979895992583021887672599207378244318302299338559296898303813219744402038538259279745066973110797799040188826035000856780582548484980862663971514278868514046237505192067597842216132388598287428443378935596576823526677961094796367250660137850380620498990222870497859331489300408845255877501216305232980164222824148213853084761530724576960827569637102370865813654075807902398406687708804197256567149785429626275879875265433410978803275867129139617392879434681322462305723198056403186774412111061341491465191135261669876706627392492235694111545988263598195181397880020075784883517991694065565453339750890897932814772192170301978322577063634485266692340585613767205848458659965927066788571496047194222555563224670103449964952915180183662430491613810128048455211312082788365617094548665612317826255504534160812787823082796996932204344984735678095088463684272126317719876860489883068037982816345423609135988481284982231769692212563605738806291735738376247120293836523124446519003672169403576647298361286924047181038233726086681779494542303088349817452260379829408466495385061447622663556656492034575671110313466673076875836985783142601337340547721979606562889709410786909935304281126939847421020023331380342948062956170647621332313784517564290307905280308614998847965412740124479327440378627263396315290534561792137019791835884755097799294160648791143875613299642529775514225810500719360584289280787223457578746192125516126986056844494883775525073072755285764969252998199017266097295946840214771979561382566870547758949404179545231062232337592529523613908388273537433743119840428261361468611257299339306695202897966688574545986265827285226924662959951506288540962332510431468043364527345879358395400195658940415706623820584225449552416292832974171425381091960907969530242473063830036535757508865196308728838697120999790559854088728866732777944475241277162580431354500889913065908835597804347989753694721110389700166499058918561941276856935001558223667152734941478672759491214558718890320299003370006306651873361841361690704150973954855846748462911314828413861720425635010571385394971614385440688405993794810229081763803314658587577937281397365421454762864698273816821499406621810016846484372061601087134805911062410111440242850799525420603437604241708716844607358152050532082631315800622778823075529902178793483403671107595395018129638685522467515080070112723069921932287828888322835313693239960495928208308992211100414642620843311940095359694247616102630964276601493571248672627886886942708924659069180962184684601825636620644328193756737014729496203112067935397662362267956993490212458866984714186036724455491831729823165686566841630969878243055141432167775513382863900880890249538311223257368179237984889792116820903634900909488362512674377301487254987480643684058031160946143484792896360412439854607553618424763502632327319213482930895369115000564573116741174161153581855471645696211621407690700057913011756199704170607692394280770751270637173696903816451818011461585285553602382564331423559771217365182271398579836935665367913363482997622355295829883100480840891774059312736592844813792697180711124166157226127812911778154710894236810350794790885996660081043729128407256231505910409242725966282409659681283735826207695241746242119096473356568507396348903008156290778260119248548189660584406057332835323153042608883367823181818355556743428570648610721386350803035610290045917300333513672286634989469636156221334816147700144119441855003047249297914967314239222023901238471066015891442047208472276294563885548216754508630797019548773048456300725727141648847977842307530328619099457535425567142931056766631779744870918087694380253220277541593062370290712833812695072925315783175034847171471886948026428225402426394558943797885131300221161275218004766195780976057291755062277259948983925560498719679091666841676325026792114887345231880507206406215540345599417823073863998717131287743763005831987674087155408606329745986978715232101871659128596257073051121519661206777919729723385993480916891505951592049083970118442328035494655642352598945266019512089095578431958101359719311394253576320701547284736761055205781137830118432584833987913831753167368661473661545398586733081986793431176181397679058157059526381449830813179748244375583013837770931972056015866550979622267820737909029971614437236964047458874359756582514947424373541455424956654578396187858855442508055580405179779705072907658006527037868590312383193557726991661017565194283495543737228632539445761113742363706662550911446140374806312222000021975379327219606130199416028799161710697922461260234486173413982913034327963172986023285213971734624902693413190684642860736460547351056653510016583684868146389100091901809220909145440328995443289487928922661687423906872604199734432159403067323774469826197093364161144670114487160418787049332307487519077897449785539775392753924145716138972506144467168463674163654674933482870158820210200230850424621149228992352933162591582167781848638494916357826638868759135502617652543328874606215331460420876759651445412795037688849208860206247401913422294269509019033728264678941833594018748024110328358949661828989232678745193149193129213645079168052575463497656130903725449526739194772809414165224381037229526475371019113133310289390600819145724384926039800284066055229520013944689944146007270379049715364374946841942994593468097396792757632197481604860756294467802270701283388897640934594679544683707633932557658752294858426182134763614557866088273237651746711658633986995299304311427766498182344953798276186916994290854884169627498902496866288153537712126113075765097782549520146475020178362519324383871202137704026374444954716215405275890309864919101077015509740817883526160681756721489777515905391259197888445298438997757132721302180237993926673398873758424901099309070677359101449468962575234428660969156913642733850618450096308953819796768774201984982172845500466610602561524527391133497838506169138363509058743464017258824162528576768280292726707132154683171273236894731165212573107910610168608716035080615486106068171353047506974682933463600130491292181564122524475135880896335716649860727311470053378171536771885157332751124814093303963185575066392716325326868684919460947435949226906422706368417851464286461172152497392455033162477531950961029154602531589556825170256876462028984530054430434284231798282683648843971442075276276284598373814243462794779534172895187920223824765443244798183785144422729535294837033673324360251792040951974497575407336241135032726059586633061103379117284989602529758473484419907212450215362165079352700323329284262992361762504314144377991313126748466738679806256323411715392867026472176246191891102880864900973694765771143498526228248599269039441344407398339610447544472183029041148904163809948279057051622068808681099187085897715221287722374638916659545294350146994908991010469880749840286486878276973654206211140921869042187605433519900693022547731548058573202326156006124336819721011888270778879816012103818513658122675204734724950770270651237190632654011045220536641800190735344133115457406610545686054972316311124356853922920644494433941368046814638187549472167903930314728848569269889744628831803045666512582725608843390883098625602645096575355806868180465734680330558345556906274926827505304066545145920931961150214007442314128166313908855966915762951171856197353576135663286997559511005106343756843402102923378490965670403657518841741403598902249406733669768544542688057379433061709172665143672141733546419748491453549839166122914535523732675347304059503856769069650207492456233214010027085508605552155486001933090496668177449909511714487248320857337138826844131453144653212431687509809814420662028389125814707048673629338486555103365948318846546695748778101651850995065436393334906023802959555695278127278695531022845273640975240929170636593532216945492825238120984195599536603729394150981657550686069822668627962243789786065030441822641609584763111351213723958268279217579793416138404481696461087672024049026093633243354953535733609428255966077466654928363976913448337978869698510156562378823691376749763582400708689025786293959064802966550328290828644779345376025301425514192804267887302353653805874850172457807305131481525050701299575011722549062563436716764886101474024100759850707924893951399514276037897300580089828199365011531652387692193187164503227977094216280297103599641787612186587711085295848484706053039020062978059617807536471874616576264075211982141512750608234263643005690158146954161530294425337011955706701460109636507527685066286915381076517643698794904579837184650832649772544057590942308158599250684923938587722672878282483033154932193232033710643311063924476847505755280419778711087730209782274327727342982216529140264737311874496146620868183235063822695766924538350309895009265907518056893012893374262106232865040852885262143488931082676763493402111653732340615376844616165622241435518108314785246435419586496520164330883067959776865834731666262037248627231488093097840183841402334592892294247850711447414028135390333531628478899911291735699309268735512685625115432500165816074303152527254145464431690358323867714379507137335008716611302336717978542633497354539124502551530059789288607725504788950307719230230822699668995226189630917022307624169386949226134357148045536432465572196777037166968261470833227695107096470706208930866918774952365460320227616761089397334546216993279399464570747020036146508601083200152588130549842311804836534310351388310999669424528419903098137030459768231970548297859925884295404009571463494180448482088125432840749963533827269272380556025160910610085470600750977034158081405417655063109127961055630825619873754031651788853319733051437460225933222633694823065925671177279841270397316005649262269665657902696102357099098755406359279280260169200115096283441117509430638801974775919723233533378533623583737968569565554979992782332612967318462995441830102486449186009360458026792351850276089225686836075043315299906735125249245885395036940190521090214312866475204264596613267781198882913271204639086797325790020567652788746461891435368935371676346515416017142360155776423027960157105476097146318448696376426196443042352043630941753579237259883492808995485031524792691042527768959824792143377389623852538392124358975996114133329794376627725729185902329444793283793777001801738063937973868096992054990091787936402650718661513727019293978907929199280786063106521256124465043521614822335249669543379511087840930391746593688754303555264078928970196309263878427470697027049149109970360027085953918711263747039631446967511149965710710900088830898169617785374827960796981101087609894295718924486645006750483236568250314141585949425482376658702023474446633873260940317761180400667416868189668300369624153612148666632011951684833521142134008549306015311790613219810785018910096848018975782086368839483444436850049524191165688182909736433136882434674758068096908227253351606769341705179463587413924995032566734302340908539687324356843123145555792149022709681887957640398260933343981925306875111374918446459469493179742897601765146142396889978425134581143179104439359044549807461390189611011539372593908878367920069088149610873959373716296504069321602439881363894191052784008588804072161012244815637951438232680046115953054435252809019641156692841786596722851888621381295987470591417363422738001707530550335301482584750634239165252526444829866510666176892184162014370414895454685455843060778812929773078762580067121862773612555803585402248550294949740739501557888291528086539475360228316823028546255446971485935858026757298654219093601105146943981473715790756947526381995558007065055550621699823313780833207791752197941069293964288738575146187232100179516545081509789852340664146348986801704235781609824374263484056430407341202220240722446965542361235091080512410452849409221305864387562308204968768855766665659783472558666257558485500274470912426264688417080513428163054250298598674165143041976374629497738897976695354473603694100868583427052964004676573501884143464580660580482852129672389013475865243672365002960844365844581086828589947244911425579231302434739343414555297388478466966499211756533570654249678003074118087325257638516502930941072316938009823678864239134298875021746267183884951687445724060195845328413888483290859321190749820053006769949851690187137425599399590648337669202493877767467588601295942876220288245070769204696328658915391638249629695255228850074865557871381765298254200510311222568202177965804517825427593316128102306650537785946312972500867938465870227647535871395189400970006902929844311667744337447118699003808773692052785365132193363273148686464366069842174185291932908262046093747676665786751292081188180297513588010805076572864224096053738040487750642139345821032545308960478463253833172055607291021870328026422231396601931407716803846254099871023872346738991196623309450570798096422013892402354939942491048430026651881863279655879118768936701498658301801339536907751777095403294814545863024373785442266377161749287480317423109843576947160598811042579248312254680962818485675747094050321892268895658997343663238970681130124347783781603250757833543426190153144125391880069455849604873658041444845383354935151165061453209296530985535990736345095397602681741783455035797639014701150951443831711595543973588286947349030754024371618107432325685601630765763978561965644272718683455552732497998007675070332849220668458634138080212640838349718285279778494668376830133393386424451671721147472220087236442961037786872903959163495273298754807661188681474022059038904416796404957259957222113102304070000506242239648623477292546560674843424186770293603145541416781217127751754040776607419698076734810518033087840994501892081588396849577532511103491805280360872571168782647787141380746767250855082587141847399835770566602443871048338451086896659330839726186901556641599510463927925784458389660587773160275674363179167512887420801053506710294262284123737930767712664686631217300834729709994051154373756502253297556099894118111390874727510882853575964790898378488579114157990473795230029222720980441826632114052929924777830205907740863240158223827723057711956439033015328502305137466970338976451832123488644665420183101178777326312356881172890732209496467352954965160099838258122298725703163174426865211348932018935985298226600062921197000442160151272343129933111396711388705708463331025113738979709037209745339008693657055501217615067682528974454423653280421029616810352144956178095040400011627857183108737813547846562110638092514644938549634262246204321701209008912894587850915349636973522028947380506000610407625397988204816651004803571559748259430122176849352518703125227933922458075349853011952226206166110606274380029383074151728280796006074414291586667485699156916629901237708370312876079796793865992568301595388826555402262584219517356062322965124385957575811467705303424043051048883563022380066271769892773416967620158133463644490701554493640319469386587503023075448723076620389953851791742851927709751127316849298926905416239062468867970774864128659573372596249285214281112989720400036629269355117519448998999147691363146992390909019164920526838883388282047264580440156191884999873893116647473227310565736777764183983254046185861933211857385145107949841667267967079694758446784752748856106652511190915648554460593843821811226357979299179407427082184317547646842249758672807514313396737169500360652869357353637720177418158221955311341331859775072065408468224063996803485857460149941491347597239979325239415127006241639870906718935363412133196973242444533505730312784938601164970718909324046982444222642690626491241177812866155257716187239140771004293103552160241339849333641967528937287720128955639314183518257193272685641469560143245738141938854772466369154499032405138913730990700595803274881999518648987486513988903015117819481943597858906083700151180092616946841527869639331295915547850075802237742346418511481952954878266215535478949863293337795845607593353961406530669378039890627808221544141004112220889075677413824844907513437525923294799997216270500556989227561238681508232736918017678777323297486419042395267632283607361343455097733624306537287488406073754753346853038165362436813149337510944586107333128298327930574483435308736713626472852901228524449396705350620230338963561802753411657840798205267026221806703141080635290652838707761696228288539042333315696409918654227333963319747493216474057898216368826769026530366763995686951281099698684924268939926831193907217643163257746816032656305898248458686379590292072160275622899160002497216278215192142901002849610809656906300884977967979176316689520900528740384792662632373489457812004001188831226909812855887824128140987614348016439498083922571439783965591505534884073014274146665136287929186050635910708023610929478756702003380208015964498259680392471563297221666888601539346171753046781863608633540878778438217107354031770827464014339326743544367064373250072046953597873683570451614967454504769432912531996663543332053994333269784297361093107016999321492239810367967853548503751703721766159398434563577500364477879832781345760538802707086985983254348599540586909246200491667041522890408143244569259078489319002541016730967159421050584900036729240164509739601849673191937825188389427179803074161107744235427508542649435222244196102600875878880247412021102979437687176230539104122396048536103779985880451686561656432570262218051604372146629252062058273888055385744120246691633098589327508918820651518149664349235489780481529142083359963296416452051794933659142761510872093654347199859134558125813947472732978193343696999402580324752440307473147260074479498473038066337623231004003325953666762825677225837868280457182008606972559433380271019284609194122647657511084734435001817959694380710531149701622012163504958195017683108113811889094881067510441305131728784999806417653017871349467509665787958074548169777098102020442528358878154350683714674364747951592249500748868967621632055065960869022633458035048700951710567008941262318309394870226943784412437552439527360206177398706851366757209412037654363141441405928116373513184710856996617467843250321202871462818902079672868039356551733259105971705082055498856423524123473408149718093167667990452266720898864159714479624402381542388814342995977578775235148329987790136461772870627066325684223189261905293518283614114138914364961626806070324331839646794832764951633341478532933401257926700063603982162712775804790229484479310342427454007607847173675225769359152053759632732779104940282965202043206913320092996722457326079040082220661434886444205075310748844817799216923942304787761294935365436698053945051795825505748855836681734402402659451075943548711808141563663633970880596994683854003356209601698603435215769759974128718757663218213430880203794707886595083356796739309383551807819174124175387693759223366044291865385269804176229326534668981868956787413682241171151369646406174767070246301993839328953137201558374342071741220580484640199497595113200979879114391646616884630976923600354995919073044587015057290175521716590592592895122185598370053079543001471342200164765381808102120673731112476232981782204156683907952548657986857219098959044536753836139524248060567692935128039328732672962600785917102882344555195316421403708177801794272182784380684615092753083697315770334645519253502072996153672151488392161766867267884622014529663256179239329919667546074033975317276666126433054990704120495388267613090602400178041016524987950550417103811338392932300348608058507544526394560421325937402159076672123976719491532556853669460680525998498711827600956326284877789934803273409542122792848319931059654667593446309372665799142541899033332901853515348466871217670602267334189196103007997865243133100609171972749987057216228872910942383060178350900951320348886897033671436452289969810215079888002439771068909871694432314017139963711319859780814756367599249184974358516231750313407961999002320030767362963594046722334570553612675689462970399142970700718878253797619547743767911064653896022588879156181672636602915021460712795094384343517085091463746774905021524771513631372469995041443276446005412034093845289272036619245627577194664205552182714333748639050435928551957289879915373137258253961050234977591958520758924628558876469928107552876177322244015870608173050728036315955381327286348557779986384838649524522953339351248893007078249692152368172471096344051597682804902666923991415918334087439821306504683204301476395543137783893333101519182612379476036213389392632322437597642710110864586401727104268276129831517051642393352873601348315085849998615094168782200020111968235615083836650954935369462670517397924278576223577782174732874388774480866671719557228404979894432690623423985770301086723996144907677315406690521214595148025797862545707863452627964373817623771032491823563739321125650566189920677162891738705647412880294235041882074755770086430527178921572891376012219839643720542176815606088796969034436300372152954424711500108049704098735597353456216218183848518242044192310077941039506171511029580225793787511452083153617959610699826042252929924911584673043970840847672837429834209642995574408722036923335962018595679319561504698650703693232235636273106827438093929176253448531320431273315704511041926705695899886618247303649036228982186993530287505598931471764171124454104638600730009326971075104237949879005983012651303337214014944262379731939710896620745144689540186043506600668669662835136485649831965880062331519785991933171988374413416395012864729401544044564334224512315010006359720297141041431058800987262754319172883437536997998555637691010265117303443187731787593391136413383230038008140908049185204902178837580147021140418570161587533125081065262072795676108931306811443332870863905187478092788194458705402141510298050579338916983683910814040221545247833299144352305169513831044736745100933242750656741401656634461758599586511146958974231363485747164619189764489563815240331238783201534706701932068217516274081692709857707051283350790928957809524536896589138770988107641899175397246064818126032031141535648725295765784646711392612082546359046813305982754398966428694268719391412794117455349445988022397238186162819791602167984508150053182933578472474450865680279551659044596048245494696956658975148039006923189517018554003682878363924869784354850114621398666523559191384818508730967346121592186199267015249406574871367800127845242901302122179834405954907358275670513621529255574367791361339221273577859347017265359881472345888886911115575851110484181895431999318729991202272635117082464986404533257398700978915694223970874536007173898126506232420466788062589842627619882152789467993400757320284904061789779507446159233488864616959842518878984380803464387665412954725007829685207292380896557225531676890411563496388302282616021873912198261112827694474869200484843341617121939969977900107952654297017091624420921048013318156129388629827816151397632921504126362934274264994521028045984663959764150419767139532656637690904840021569351646918968403344166969191114805273473608692270213787585359582794836844274534869471926294465022733576380255646991411040925448099904908504288474361429277672781490568795465109954477189075300845716785214107078130296768382496136476307903289222761032510747251189855755972218652689572816765447218125357580614552443723371541947015651337092321468559423908199361267908231035689364803720849415481500031707455420135094056875960210345016168775329156485735576120941180504027159620271073992609800928466134985791999332180074172630590306410320389445814938067534457016075370300597618090122423208087000089009813309653847263212032514884734547524547042713132291851989542435371029333085354168064346968245700929992574170388693140086241131916728229818467749070549293700840124745212419423845768957972983540131829211011633784654305866290218846397771423366299970991537176331901877110422585192234340576700646531492546068311383611442926443985083768207184195361837838783557719190367427378701677106524433785601462892688983972112681034637989010525987196030678952395383722117773488519825747759832145793301153441193036554596059057259605725472949147024551606823908507975614517315127658292009104155157277254773784035540945879802827481022464973378890829370348944150699185278882972482281468585295345085030700010595157390718913654080580926257377545490053279833706324971599460444849413585110957400896031260443289557050800369695806569281581671340674321842925170225239367176221756453644484705302237406828919019851810778158969610672633987287915074212417745374008788644700219666537638454115105629790419671696431504449674850109800704698804137339664988272662305325550691859134850020758566400095244410834748454546328239164019028438004079964312301843539762139357392602914699767934458557440098132508577614181590559161705457264863565862007913297960315643394675004637894372767086596201512909200712575427296623901800985837694306741707161524573488250883902820269050610088476698207494758686285440685980813405508806453973670324351689001647817889664309903554763503822173407158494045214624426121291410783499064067363502405131679667067764521569133557713508327247955165085959007340486472304618838629845009133989154036833186799308399254887945960591424862742790699445554980385884430765115727032942843298010844920483230886512936857045256993660307443586651669290125293087698074462375434811651354586709622286992640498057130569795265406247103486613456503503345664437740155918185298296198253818167632736603819188181590296440871614876926046353085051093542213204396423079621102713511628100431665177178806560446229247768349300113193501332547096065329285147275130700185663440581552781718116945460561452505947008687361643346546631173108557820862626933087401957729541978161521611565316939623066583516772818324068106492850915019229486888719030919786904416051253909933243864245187387912901626324271036921022528914648704149932496631393387154612831794494910171815371713828413272331750573995222426612650843418232961279190646699931229184060511770435348661146602195527824259342956482816396092710028855668737916736714259840493623109868080573595086474699496634607748329390026612108863808855838932137634977189845495917624545373560157121467901615271166254933906823054844200688040098939675515676377210151743473264283563856836899390551079565807058723261093421326369191248295855299169102526797174030147929569592980425285912811129856089108053924758232464335012699754241021143525259835459025502683327025871757985814155890033260667861837564190052091613656705571992174269448289907456195206253407113377260041692828929303670451624167676185246205390839407802184267094740984119304127494115075518774030491593304034338260509808224685533441979567248406465545578551589938486856556765728443324983245553039586504111374301187676808877318080080187943415380998133675563112302316474478618151976693380159635012333758988114025223273159223580977195069019060717593510784709043196868939293708668800534452611435119352173831599447670087534538941948394319019177810115368123727050520557442444107816808520647301859440663238060920916848100307043231128690980457307564915302307192057993662660967953943205442485016175379359701552730990666929345610192601430701789755009894254644159832041770235337531548805254497290066000646430166001673205657842981398678247429344675040433171463523510485821063033840433921384473178787310702391827854693621630005553416978650600560645726043190492200247006857764823868117999566315051295353569513366691550716582006409658720754417781327971536882690620556486215821460763217447068164274602536599306257555700974164346804074819782113996725902673586169494979172031227301056354936558598449959128571562004888138193145546524921483751560793341121804322554419906495423018286180975742152734289057217743934799052564648208398056787071650950411319668965690923930776473916492394470846261762142164980480530825882247092505670802749376337052429300131570610643652805395193560538726853498688488435947815464500979329596539317484302340199178844987140694010302066450922101695371188211662655633792323193166955871127596065297408198340766116388187685403921044937915808321070342265081055613804293974722181110681781551291770031732779208694699488230686042742852678871324834978029428011706829033510824993538262913063515731752145998660114033568119653142908815817660647750193438522931950023603215545558104374733075624377334137480195881243537489546892199698486781981459805782886814860518563691522540917883264136204468040290387618838886389341842576795488842000566299827593870955591108758174667215482116427205518266579281383621705882864554021105202174621614042628997171357997934473223286070165478489273106731023562657058475553290301835287908928574640289631541459465062811911506315349595465162001419913874818766102470415594380753452589932438356877874430285226063404513695325793836596751673420717454781663601053108321816290504371744045940135518465009325465380046036800462432392530938984750844744588348114351061340070657221848142655498592747249258544670387690414231622450249588467587636214709739997813024241019458758616773380971091616244549277187581790176618366576257340262018224970510524467985125624574669957320574522269698967729251285499241833224960095508470855000803054066178018487014902626657158336144596735257373483424161441566100059106755687542684369362317417094459302853084602313701707990941802044022945721803345664125467831376391570261822656279015466664963462975795620658657291285572996388620476431961835171023030191637319715364493513079620433059951398281714143416817752434875605555283024112152487331734624886699743507741697226222419957924108528190177970628750334829725402579109631483067200124329643496220404226959939951244437516621320882262510592820138943058385998997650529701514319096223356417293211949767256472234129811043980412732464674618331384544489022329878912488555092780316957035006563855907847729769937912755537504849232401211427958183148278515531302481052735441270333612209096804110250689016704079617741294422780163986586665533489406571121749017089152286064070726295779955136906440243123609767051917516158549242986125617655880476134962416272471767764523537234378080815638175578707080395625062552904537182682661791639907720445656441215738866585823183160966505335191215620508180058456737906313046196345236193214176290302900669373759252927926336331306660372434917117433512384266760203605728762542319665271022377756127728532024306441594556552869626190995210501258927727605347979273391153914480985075680297527111462900721128316541852369786359099018363750793859608817223733471435120458350566908746737005369152742835961994183608752739200834862001028163475790896521721720218514429037000952400899438479179421852916127441221128331778434088925398939694396408535121622972768456436790660931769653984050473427791731787567932461496247352507050303507952856417556468582619921782407764557109611238570386146204624823790238002581980698721656040858758082244995143641890950599471240425751589111010777404000971336317334364951652467665935364276178653810766360297990080988475743853451380336562870831510124487577439636198792608299980419712823748949877988367652274363252376208095986353624390004858587218289290236457555844306662198386779347712529709546976903967748819574690385078915553015060295159447132074123571621694468576261664915767551759814881033741727600686881841567755720018897567283992844047414873700885772633368324898932686523748619843873963608379015693245579712798218414618332526186720501208138308849717574137530816429675808636347303181326601929740263221530146977347481698880428290258576490428395745426385354818039617274781399804155523818679531951898160428772079193496153662864746036535093629917288383130485568365721175410712156929466052416783775360474132999625678587184007350266595432052821078901277733557616673193694604549948654059084584701147496888601328016052750064556553409495252904461514310718422475663460795459237398062459489282973803422397872479742886461937068097078517326272161440165555854172603018788893504427959478064132735468975041294362578396591702432947726315474186630652783518201149481762117703436352641718046807063773056591409855418122693846359668940231261509483870714697064337698169598140059966245734014997089360609739009143656747884247743056471647775254527652453506106297349969632387452923265412660296173540980142891396258656245244138836820459612898855295231012602144229393602362070369808850374604146863122982017596507464026501708069797240928849956385625465491931912938244572231201285753709962719403693993615374247787644700690379242479031313589704464509360347258613734926998569871917823722508835250867862079360420110019285806733047070531790805463436033722164377908783862029840912527473424786852669482868762281124827756650040164498600529845064401874713170613862729943116842954377840360435657638758759481915678637761690161963205084380324155783870376385111039596113563552692788828294663607006285772040310281930149587306627256230202892524435239094030956290480956068106042315525264370764111421701463354994078935241476532224051997400013659097508548524904003365476554784221536331423614270134622600847673960099282645519134354768685962194249762284133013245687381467460587552757563764240204547106623430102376130509387411313373414889224054402527644654671100951495456430782752355090240458313649013403075639581780942842740089914698317116201714710098149168906042962622846777932326369038775396696866496821723132844748607036114798827767195121739578735202850036806435604912666275197378899316909626878596225834349987056841860084995082352992788924930819048836930732662190614520460180794516890775986920283609320593673766929409497198622950370380841646107324588566221726610164638464155076529970751462845500750760921231863829874974877231956417473777826638929288799220305727413144500820974489601987294029110549507896404490328965453162369443726641067320682574282965094257538855909131539087185225900143434423616143597939683481872883953853614886141767916762695119882551958374092129590606209332507496220912451870413652860309168557670642155089831678982574389483626948598423839629719069174902057916691410132185316721774823836554710765619365849676099893429646680635174969556365215089609154319282843886682151363989055050012376478772330147734037372456210538224771011728796468989659506617915142882336251177654665179791866190209146819345935747607767387237709068666821044939929888834199927470303561026353310792978772237741872034448678346533107694877861943336791982553414848267573516134284956548183396253217093537145798518909417754748025420920029345902347487171836227248776931980829447181462970713368365471982148886132111610758907552392939022120498886154482487133220131178772117753200436257361914479187941957244499358641502996221970400179988625438270657256551975469009991278225051100106128023193600173560132627882124766357970729174497521313041586915025196481880471965839239400621844893866028525449948346095054412612687689896590546839421048177382694151020654945834666286933401847483241121553658686883209126145742126850377246608486915039976526336958249722516259361748816396670921709212412205217932727814181014314221780178221497515800671845901251153217937478281143063513915601522143012411395621930386167649556097649816459259581280175948307671631634519468329674439737723405373254283565434553296995483173429357094329796129938349180733533501158513292553204591217022033761555346339020668282949739044533202469923653787142624291191927294794848197989831286152507837266663132039986337139935038658566761510676251457390700391627558161024042698760567275604044209662830193305747564020895788744256128981692862529443701310607364939048826086918952289550773840335794636008445121633723747760739845381274688279970610434805393051757487190152890829617072476595532282312308620763447575705207726082069394803563489926430075243943465956646673576158627688504255362092868234437713110193265243160888689008193093435101828236353336956717462812706944032633652329524612298005044344129906052901398379253603922851085253697584916579116696302869024451491516798583282862218838131498187113366651356674930030583601758219870535720639702571849837629453878504771215931305145541938144277392439454992040522464732606596178361605113907602078202008764979541515876488190479973351772911714760688299804123141171797682259527813161097591441397808733521895898069970869712598449024439419881383089758298909518627689698040471050656107579929871535505724744415692030824988181249084718221509575372109680734679135674776530234283325595359607930350136945294413789484737222348828550690644310719434497982149967228989702830770132178480332391116575692983659519215368390915383631368392379127210887840288437216127658308249586866576724244350185163279982137476930972921385275377915567936007944972306085851985922813630944885802535804845063320788278945398915259992797272075732489770666170127709081517643079686926776940644552287632357693469801838491496079781865204083494099134534057290647238186083667062601621718352689996523087433470955642585597111754659811587403957529456875998481013533608250492485829485502701259608430366251208136254629901291144719602958257991728550427632338476323059342127045121638553168273613063686182235738569193938783275447570192302647614780005718568596673409716905701856485376679333095988299846815875390736577635800959794054336588001086168437822875774302191410533716289754604713819552978595477712631036330967897613435847056186164049085232638371274410943077901821365524750662893638715644574219368441583133295386132483139199668009875490589499251841884530785769671954333642297092483534369617479209616999148127630087067136810232297857397188744697469041894729057555063494113992734178120104935261651917079235286064949405177011277670721797623514605431958626904527157273417412640192878561774323225692273044451900395720250280571475916685970595288184148748340327729722485864600880759345123793314956416533682697953184252941337487568541033371557012835016474320153215669294918211947337782303346168442471263720145349705439129671659857786637670645965725535968184394745469004335102166163159427458284158560429891772082195067481131808027763492346109091080360168981571830155608948257925525382846112811960856473781957225148885142030311666020763760420368609932506219351447679470386631864071979144421612134839218971009626429721939742497056832241424876242689061144224918671584478348752995239963079760183962039184141974760395591127810635953897284587786283509804910684145479141201413117237331988810184342068252900052139959959381372913389786931315241711467943120360527802668701225987532222335702059038952349853240413844134221223642077099669660708822156363916578960877975288053215817362351570218315771524285467989093863329152977536849044131371094257832086376710830896787099196594923826217668915996542685390082720966373535215483660188438879487320283928999221620724134945493751190015258900802905819126862337713502140772845618803899197904511854774854167162809450146943524471680254516955742013362136143563170100938866328818135281684282208852956164280134792997276934371009651063013180712836991421601547215721839377538037609898514840881321629416474102004067462099514481837581436380729858322654129383034518806941433780519101874608174850439555694212852183778845912501230828925726255750562231246390743523808877963459434724918969733760062555804309692790021662718134023077910855447127923270994161187568660679007102040122876238903156687744721374490929911235345384739473249479213797455780407404969101869723590008841677649617948162017492412074110894350603475919118450477390586433545751920952540628541183010139680379803259849760292514891490588877562313174053710749669214304303138336909516207001621628767152753241623961122693720479728492235445588262359079474506204989731586158656223578391150760789629669975967211277037711701553004959645242750937136622759789642345051366711280562886607121910482460479070771232589738380306427368177197891475368444906739510011387009977169556667721295815851947346005476826775363349373296844322890175186832222213568228269272750068332340085189541413315375270372160745764552639842405949060355853518653636951048618455827122562987967599257245610461793445504170886700613436779945302631229326547234544572022330143337343072480557816282931508065997728815188291345338751011105301731543685473598431622034303248266602341511365755048046496630912382197999165043799467046057869182950856377547176431762840788480004662118483757719412980928817516285731283907137420476722237087426810603656846916910279484523233084422148007057412909667175778474682881589470734183462667280632062560688690721432344033519639956811067852241686873740056257399441441388453672651896842983908053259087319839591188622247119093291140526152171003071683637128624335119869454121483890201957319221841006136940006308632023833566323528807143780271094842908329622602500548900321454150120056523694373191710503142200433084952140177910757726193914994048344973309089501094850130152497619741094605968845229000498351539844006004488977125163119280035263295106568834797869918143698337797564587423639712354194796918703852046743091861093199794662835613951383148401588247774749700597545747872761296466649107004594993024434593279093667013560753657801809639140261954513190617069845447222934967310903534973752346201189934971042956322332384479395781665107529237079070281851450616208978957558726899696702020529733951893526473464933717766418215701335799294834065632524594630845971265461384236669965383223072375414075348558437791215950132344208016078121688681921233194076620720541907788624949229306054288923542632542225845518205651055080435409469287031356562603372429041199994731116190219214280909157746056627652731307334837545467918425038869780604819860443429864701931438717578913283448319732958330861369896813433631217469887828987401426409432880062890673224366292486931852572935461589191770269954044147548109947394764948922803792898520876246582218025432911958525208747669862120301476142913809280903070643150195047450717382714092189441997835113222991192906200133759012123059923334814208909747943014752954576356276684306585976230005642393169695225556706206676395287691783908830797562750529731230241958580610407795533036270998304661422189757932312038126635580391227817962828797018577139404433047113345329874071739934671406801284787211059561512938213741174872246381724760618661774656926799243776171127201609892649582917503882918418073867196742556974462272576372333281126472002819443364651660909242669281805017484099867998800975783351127265853709641495074052112513739617514932959490696240669839115375981575062412211423753972685744883003508370389335605377774595573098211798604567258332894371185252437407066050326526054891969933440778279210974006869839026695513474052433116007099470035007151783072645654998132766500417028991588165326327213323356636071506973298735576919863682853017539697636853137456675543550891817605368256120618484521147789657699789610235064841893407860140137676894142554196713914232960782152343516484297157770955098711596788326203102575216554426009356364829374401128714983944977621040876710992477415146034624506704428471954214320143975771831912554049036886619658493443983639564306730735081454343617830810838403665931720696430476806384420870106916390112800720922589447712281321346441329227752830801461792684954137517065714283614093655211487040741640869982400056837457033542301235181951815697496996378529849332482238873421262132402838269379000137219182053127533644018013481097811221707286630481510851470464447344930520391964070889983631808866424268539061464668652775195478245655312603693919368932924462082858038305307465367313794501179401635772984522122418326970391842756645974777747110071128377904693466397014152748841379632099339839332167091741641726027124557286458500486428824954988544842045327773040863957243683858592435688125998154308595323984773928250999948085564517403279370170831763500250192787558562343219992831276247059014654979187093558676777094548030853952289875466811388020164173488463562797755833241240597744480917148006015031875993636638372883741831385141472787113161838842766196760996468031511947205501503372403483544287728378793184253531139870624348698309641933099879766443006976527767264107786032987521896790017760088844220525848631952425099925565613662426131984846718549776369208291311660277969644803245011215025091735551137452989330599495030572894574132360933050586790176917365791280268480109550408948864248821724322954910692669628165174341179855440676435412607497246233712437437249452923271998751013028107563373351155201618456484311689608363749697944086584845656683502938251222235012494792257080749418968227461960455742753277045087736789418827869744900165629379489046805865657553707018107972841250673915906604367958713939124329894376185804431871328887422885439457295880729027134796261121974196684510266870277359284950331483643275794119131093847252139196980870880849254897830776954953760500306978216040032267236547550871634792449185752944469215145756988353626396029468785516782415317774463853401032780454736019862080046226940512252392572439009077771021610885625959828291157761715084004050614006299532413375325056050999238717470660366307697142279326157153054762050947449422764604233776007464704424546569359570220785984351156178520228588037758149186050202486737471494337095827804858972910029887841329129477267354019598821878901965457937996391033058542330722264193425293924009325242284752829725508554488262026527501331459231453297056770549679661998558497654855784369147596493331166856547841237802769556274778871449392150482207709897818278367666432249667582620591393296408916198796276794979416448230261376596446757296786349744622031780200488982232164168770866569246960845581100521068733349120240006624339954637809985663142655447543108219637385684999364274428162899632897749813572742440271357137673054821786710362064474692756060037675643143852831872389910260303343018734440789385642442916595875784204940582488912007277179891618875741069809814093832589655841833157280843734849724289745911300365936384395464038388878462177993547117471791072255936821519788691155186998347309600911409878532536436667205212097220604091771322256850395981553289629793768266520439231268944751311218928183938425789741199286564716498375791509222845954809333891837107857501540894987984687140443300551229700999180543114998399533762572071311047127892884479929458078851068901676573377781157231278797943221742174734819777910298177251075894545686376998652263701874954750287959403947230897763353041287974098144416719790040222205276741262617686935520013311404794772500310970219337806372843052043785246812731644330591708034811605008039141793949786569680419483379791865288522289272166078356502310718614903172284170909412116362665013746410101634822825738367489583742931802835037073660167179970658818749584497192488797168228664112942836925760238834317526814712009547471677318255544166960438274070115745940634328454440475557430602291151172729093884046078440264988145505033256107610930173654910150981167292985413383433283949875937672272793160259699126200806116357743597570630481271176460099724261713305834206576370447814613852471248387090400256877919217920850378410626868369936740825961851939647552815787307161725446316170433686431090713833003917314063738988034888050977026908843642462866483366690142326606991394239345376377607047276589519022933732037656040898339184661374038337806800575639826143370052488798186203469391241619033350203529567299193715755024748205383207942768044972439610771086652129719215345772000664460694830104862385816555778353273719217115174238175554021426917105855790987540955426118274540325193135362063966212703409564499896577866515272574944857020763209522106400670694055408479173434638564008755750868735484982583093509299128477847826207139963738522671826193075568500714525379444243406496074043637223087036824523257220660833572356852054858167484654304454262867102976554582303932723959449946480118614310386382620652114210414551083716077729475304575011230522227961221026281096025026121063675397384562325242630123747277610096759116866607543896147585981118041861983073747378612428503217803690393139268442221782042878259439177694442393447262639269386950294352274727353320097955871869432196900261018976918141440709688490863531996186539522696621456872743697440047614384416495963483832777232898807997258198613737710661279543303230924222434302432751578219868743990519966517519364749675297975892077175113652986868291459828437591672403083502359382217152443984859065816554202613769984095933984426518976742768895645279169229316580092679234357741064328045993465963870630620442657390484884504768045444031316520368311997785393686395721888841687351165333061921098376740891898941624646670474411983557677560581993224294171593444708703473210856944492004020342074080479161509968788138795057987536746925658757260417990503569017295049741084898456354169094108791199561091885450191805352744226967957557596729839909567671526018344712654988335928912033934616049712694372751058962695975229647739724274586039384477453023787773741022960712298548578356990133013233044677911144392264274596365262677670804528474297800099622199376434100314344591280327055568340989847771238057234859272170126966508838951874936789751016655471951325536101934103323301441848595292218998336668936038282415231854695623972608378363516596381830544444867610041662295664718155268228375695115387560556477361159617745225837689732782970078424715623051973996759664205609710632668862753841501551102350608084025052012923277703392855455438662845391224516177358634788664974013988180784464675723764217469222246400561337619137348142790361649809644905719927337491566771470696909890324747654399783277806432331761527908388154136954404689981888586681810630667463822578242611839541066729552963389240209187985456751017745188539201632318185516045285593582999394993340069128755845137842058550475608851871721767712958639917947756675036110085688672150143526730109906036127347918041164136823293962906482474278911894484662797091658570349414681751857152603906973789588277699565296153463395897085550747171758581521876704570500541369705832659160503263215127395308133202289158665983787101778438233580875086310456055010457376231640999594979615384818126083881388456457701980471394830212558288290208863677399472824248224093087298644130170961396266756578047498840423662189736387422048842388286714372887655239167070685217029353489953678131384233190765053652178725490782291452330503154928187864824827662986990472116030135136377033503477207732121394886693142093307336080026315020259665279245918028156302673144071792080156607795586214591202337649124254153862959105183995283784164997252429434391969053774822522317424907214322887251853954216337958476686380707332410309685553998155448367423242497941365989041074191738275812730626751230312175974525571852839781652228046511236651608335881039579377677695181383048307635252506217076971021005980471870585645115660843882751656006392177732950776321513448710309675209831905758717771888544405254562706975070703220150642341060812268128007911453259331411120302932150405106280355916097879431884383200106827885750732091654191216794050450082096805129280823052846215531588721331561115140635633468347485166459615221718658144254920002278804760371353510959980710914415465093667387164443515034116380097426756927098721990221563682198686472722412444086409433994123670985723207562544965110933321345658479167498388429318446425220543985530853549304154270584392563508913398063639143072661918569977058753388321193297139349130726629282025250744263245598695295000184331469501649612576738595129919644367053553848288866698029478460871072461648330145258470859359523259818933600290228106681935745185356046451583851772717995439988610974308208200221487860390764096729184702691007871041396468585090037769828476739446067733893394367688120910115298363971355898621311640014587808873376655829626447666422920917750748457143096000651985559793876721426220993768084764581039034098832042762862051215907283450034084197190647577123198738204677528907400102231962019756449306698114449371808645252781744530235349323689267645596507658212895994896084227342964175826890374051997816773326202304208867078963007952006661232871330206493886473506291495990273778317000091734737157251242565254976893175800387638626592133931070579969865611391970288393134992676344267621362232480619613239057113996666455461579295970018435362794853047275968905291218629088000955771703793590609652659013264503666854024111453379026113684238071654402835841430374826165653683013565084607144788249465560654398834722335456702273191462374243536826181677570616191519425302745467170397602694069637079702374881195508842447970710006406868187818193500996908543464498610078772619659856569225728110074803753301466707820525106597676466053740773701213587475579906519349002956291282022990736226719112155688506556480746984845858515966112169965437891609371781016013631905469228601274836271067579300605550724406189571752533047111974847561019199489447573464482350093280322405562942907879622429290575077878258295595364698545280484288021928988243498079874363620708252732002365228420805174391053694224509408712375674905685782216326726425199560449188361107274119328692119425416935420753544700902311403052993429455054010263805282371260204644132573439904293141058612934935638784827055478725487725257334653829149266808404449886245261601388928956930742432810417060037839716648378968662114424276706821875760099197429262199705746879690186195774619139418764858431811010081263170986195296501232680663800206034132446126917443471578095360100829809134367346574208070602877004704320622100245188389938473059551796222827193289559305704479556229394034640570063556440197248713040799239244775571162646782550443501982614267859869535232815489441635898895235239233705650200834479607760231598619244782531664810048321647154517989726863557856690654149944708855270910926443450872384721599094444980925701467194054033188669876592037989881398602509620547928667651971601429571797151011922390421291994531412066506613132417976812994255223529340191302743579351640562276282156720021920147817362144390202849591145248002982596514992748416294084234541753822976500413699603672414253135434062467749122929050303429676617891248556271371916336510855364263946026004683455792171542199898923454881697276012614478864513703752599594673893244785526492638439610478978600088210754269287742457546511719255321455368983645095666617675057383807804521191246261896792275088799064513550463567891189956854137421025776444010234709740413785700108474201384943872249611791709111950358221494746101030113273144340663574588068645463222775006802060235553559163566697908748522657033891966894575189646866104771666904145041897718498173461527048937999002124340936581218324572359689420793040565462141845605458871323192802106018008873520307233100908532332820216587538274314328382666127022170383813689542755854763202361414775302146269266021128924066218933211593802488128241910356805729085018103219451689617357498724906414279099383207034992013816770681156617804778610260958299031403084365217867256644231550990810177869024876884030669797998730812292570889094840879718980467784092585034179409408359647001285012904856099161002340030716296721646139671862452863359489047511935869298711996150081030317502664555809274357873141058659373041522577579933226776859922365554452603944028401173559803532131601346543846740343357634813778642730789871004341090106069992286935967699526171716016470505056927976516437864310875423653333282677693217606225522393459583810459914266664476801575613644462372646317032185541138036388662735044893390101046295279326059620023810979834354490192143534999625346794785110627173935553680509026888984944711943554741711950258764054695833817008165914904922123196302584154207055927534407611991343258488345918427677789234121854934159365957228203315595328301202542195030564424383001602429371185538345527206450109349303983411602131687396931623502781722251765424042042409210694027029579509775870005223800946791710809108197455246590110356284155562240861619532079440469487231839763876869792476150429539885689417296225255715878387137889288734600727661831505361588749614374401388620529122327211104023863468607098546593277045447959146682357037341350920796911693864246346553066196495212989355255211273878989186999952579369207240638710502887927564696253283045743737542763563567383285066384790935587625846880601547032611558844251128462270584093713203644059472361957074170473315369446549421195403649450625252627961888812887398667713175328194246388428882288249334101191563931137001717588638983455106457319222940737388614655315351104349720133635639201740987090222150025223006290117940434961034637967161025820613587305755984744405167936805400401022265632792392295024255228720841730124050224925530424293881301084523545407350176406295033062799245213505611238229778925285402422146688905154326764391949681945642571424869564682662585797841120956963693233865528265100226634571793864163185556410180972866924362876381747668665331629004514955309898037552956828186200789146713590304741071330041992941855141610325990565819344721110657845435970837898495315777396761938104935438594339459001903301695053453329521539580355082613254695515735966209205888917423466601234021054406910874149181872520798272517010817501139738554268413581207588620994900937197459243945101065690285036301294354366605484775324776247399115342891402374681901151536877991806079020749713800451840160799419811732135156026907023758432392544581802573861236231184922483540532125796179093645509645414451438919371427967443756106082639187261166159311579187518842275444301277240739579355364709306392778452918716177701615551123862048365262780117459781156412267370443499513428918238847401438283272961008407575626462394445652523160249008636208100893157136891977765736405296583443309274034055128796079842222921506121858154945997010368004976667920618122603145122045114007730109477650673583438426489236197547787799176808627135690017630903524551816386757749172918352743339389125929970655843248491068481747876668492621924531096597860609434902921726811474967196640841146056716932142142884718936201830648088486557389204448835207279878155780610574713046432863310884673618322296981174317643373505164550817026482964540106152152200796030932181274638196985538987615651647196682639319823506022040572120723493156015155976025750470251700572832249053822986370364497034927552629036453456892910455795423051902275488177236828386927896543007045494338266538081939289444942053889627377951877042861865027417138419643953237795526044106027449282023753236376171998630607251932900121195071265463099845549945853695178543064879568417552155963101310295358726912390617273037431131701886307014852319291575272261014430799863332700633044631437092442047515627324609117346620397917571587290740592764612975549953909712361902730542786917587527366851306679183147938209888750199229054471454002324439376626716702878928386884832509662052522454471498735243806810252113596529592806292861924439065218790741187833837770333781568336853105385610306256451518527274714565491555660866895165650904927526396786773398883059796346093634386575217928816524670105645322807549500279697208384856544148870809656346068727808826613023342495086564770596148983029701267391251141912629781322213804060702665562040599268784470627595679484066728258834611554641157412843890650389268927747312533977393738091587460286382768003228681191691901380129383946708998092851000396315826582154663245763131244660972287900372786346405210227542925080881711786487098894898059456457150228357805383478161601975033631719072483517733384563322778845144027396311660187373939272591752883826536754555191563461273740400936732361814248116820435980411633547790517500559982346841168612765414222673585186847368570021491995638612563293328817230948458236808888191677712202420981622055472171383399976011550910962181022616851124668304866970988304558982807342487921323221438214652450984434154892848238118681485065343888738976317435674403084813423795050488300872696601798221766085474113305198146145447448827482273821817614114800156497817643511582203922791670064745978723697351114754044710973332438541844921261688484838490895032278736483888483645907628155368218430787221359583153573431220294528111127920054964115283538159106612542695523644501993489778559144123501304642055077905174599319323011742604834413290179816185642178869248077938579162274963718509752870155329862720510352552287197569938992778870554863932936848054915098451975048790149070834551269472755285015877387612479469709437456228931660163003056275491649248157031259462570524011145752975407127913624854283259665996412154659005333874766880959501213148612778441396881292046742604492210343418159347129458113764717369425683564705875206011542908176350858726337379474871004293213317002441720706966368138682293981883449626566628084996514087535872566087597050994109483713158173338016182049582628531121360638265843629648215919456833545956640506195591758717560811790627457737712856707475749187333086791255007932117903085092148512887176594466748011120573805100249390319690299387287382872864793557604233056593434666466124678591986478176018028874502132953833614854039657921900180512889186582449038069453880792703473192058978962448725715063163787951828576434661489987378204941730520341281768499496206354184408205346943863154755151951808277046714880920410618156280671480142670629632571060135629605374898943183546471459627881302555177133385502505800509997794821463946155462766676609075120168737226803176717808341218291275070255552254355505115209860544981798716709730403945902705023768382304325602747664915972750510304539659225316141174148456841785502892484151486961182848697830384356940174690853454567636866139126182106806330521469216732615791094161883928233854528965978741201546349078249814743088904589335622108419309700355875726763773922480229019539350200224396084316425423051339085115032364237937183618514297756254603230550515768135883056648729281444965554312820562947332783071187629141556699622316075986039580297604905013500472876425023397380872959364389825857137257725084070257515884978272982791954619272760793446341733650393247222037956744565044897831336845367755080349024778763823904778219218847805929181211843220400475360400548409956188064103378072432994550830749545694779308743500339576575730824477151662469316500043187665544920092915732207275516297830207953994919109531574069187009652408907422350992906034658307891099887575272375920594278640827431344715646310934358725896394306007208388909653853027174987675290706124612364653016292664153798339912174879191683760165166941942595372249880328992035251977473371721185846280479466162119358869877838936894083716240957536609142844395208507046000822632662874049556700609757663316639690803705802522642034338805863672915290435493653992831005658318323616206490802285450077620355209560504429412857113982795164570060338937032499961405014114984655601253224824345244343238117940562946017708346921234089484546734848437726387003800777212471152170338615294932315317824857571070518136746981714165039149178566677664483274867748063393189924955727752271728128438226508351859433070089381533304393217451711920773771635085256112610288360824401008632544708428914344137986577091481242905735636281768831903331299185183008639844115832586031661017614834483433709260897355599190284028552024704704430824084847825968432479991311008962635632657319140576130404773189828033806904280236351301324553864720470631502648683180517486181603753444470000261935148802970102819049008454848656507862323424106700353587821396770071272818974807084639239586845649776986207833379485816009061091173200522006063012570128732528967859479154719880112504269962220744318194942021540735296574182886887518650458979617822467694389018467446361937734684779125499559721645805422063241023155025374296539107302028141034786547262866247738657956176480031847557128513022029694410851092811759381520968841877517629640300894563246571797806452156829636559069483309345132885180127709641754736841829548254647833708738425269676211710138644992217396100801920151118936743732883096892500231287784897116262981602879051924226718225736838918731924159055208676840354604249342416887486577158657265017530405642088323462662984834577863523649020587463922598614666652743572632862622639376110148143128318577618318705528013984445946000542249101848209050894320982872291780427495036665703407330624661856324023670352320509882452969611569476341820868931006093325092051891236118167867342527512733603748495988953487209254488786267996291479620402577946685953526721191104494664374936032205903971517261226598488818884209021155657271514723284607863015768054452217763416473968154550940977626605016590475685652559249381255678260560550586771711418165208192450155465603842899384414744002430683895053374539323215708083384413452485598091238332521926437633276308785028356856868055331076089946510631681974330582688752778107579604131821471872565463459195317045248344130724869721958167239471593189847024105466184431435982941680076057767997576435060910359208986496618515453190714429373770324059422056412461537596115928483876530803515669250244154986338761743657021193614734238370085116598703441966006015815678625326027562371595363452707511119719092479183733243204669595351953456530619493520430269881969069192035930003616439664717791939038265559414688998394823151903135476207628020337221005179685857454278507957239290132799681920581165223326844708101106148673232062896537326626295779393623616468986897755544109106877933182438138326355388405787338910691623490003958024845642631411906369145896240785121882478951879521723293882102728142803418767070099216113034440890228485949056068913072091645749923597877375358996600568596980254542948354345583680658538844259527266269994968507145899628758789580409293578130159127058626893117346030701545777398841792528348761228320280267144448615633035836707600490290493359773097745666048911899811580017842691378450541136023139172460262975041450225572390469195237279159705942597312368559967942133303416257650533364195590051002662123057598951474684239169544993970427645063997566598113139613769202738620134843649476670373397129691460676553056938104256464113291023368860361779088390097509590411196671057525809230615962712420821777096626995878226260936663069391966553324712832936630415995160250973941997204321860550718243880386975735729258090776018349897003445756090171224704640418779053011854880707312604557622352496338375931665026072220828502480610202749435421013104098395688619357278666874715032560808246447267662293433076735510356635488147294855508141631708179173412602719931541599664911893670616116926046162413436683509725077019910363885131109399800045588431538830682309271074094700372355857298072533740568217942166068461381382456728547409995174529645699197384797498118665556907228426040442833517921041929471668176379698661002681832552948434326609452201530164173727696388216268776177617920819745529005939166491984213101445702138367016305318653992609892355445907236105367989315930777762238751933510896475475817304477518907893573377966181037671025532419135953124545764600596713211725008412504684375506785243985312757541759537109717845868072700137223050135568058748285426677911981503584956192892781988927568980544891097690342868858131601951274526118999932853107711702908014665049372521066022663865942263261527769026818275878518225689576500108372652321370238110026824285390558264043358099400538016594800831024479600689410260707512208393113827642176059228073296911861334631735803022639244050886367408646708857893830556496580961941453153247141484195491080991167400522299629861075573574956148904759968003454437981231486244404412050474377530468259737806873290344651988534444083420211879691877336041503301434356615414312668480098689249805627727733036876014282603186373096479452619108724923656847639154493894303180442469427377500167224190309015856377149901549176259583560310163241636369901880564758138101430195493216234058489133239644780354498150266809819564851957250022401501177579938748381116840670421580922723626112743447024913946742135531264080243253200406988623643498215502698193619379774690726783734034223899556359114075782334660619379581900980069105518893988671717674762434685264803464790464264727148952222671076261637692995848492041368139288738252569092386088957059891922959307938237887449117783302176989870821005104248701717284348342862632302066129876051015034850264365758178228870906630883809268982126364988401588242763086111908814301928598439061633623580786087692829781865072222835608870716856240261362072682210430242615076842256636530034337355869460989901576933837191623663123821128756976622741058261771845498102566541872008126773849610418334217627830118367265215405764876359855330028248573224088145088004927671873785622951990509011848113204501712468606689382108487171638785908891236581976829180659750406190481454533892755396181693341531752146820639857936030355719017483163190350134672372286157270263852663929536244749371780063926147525235315674974392971292448854607785945868388641638960122829387138244215694113925279987436714046456674856515357262653200959793993512095398805771696423482314943226255069022274707203673258977601529681021540179026851361918327957567601043109268023885990058094605995836012545725584366397833502504271613294089610508229112054162989495629218300574327083256809207789118724029908948705967014887518541269227156822465015950275298130138184983980462064162765275126081657862203140044038204249614307885526972573111062604647446705884509811566022320987458140284461627293202147500160493570124091854723358718604885967230791317373227837391892085632935230788831421690822279294137094552738812841332808904219182587107621646582560022459046270567529283539297986485898346383775989039560964835812743984483969150198639875436379622646649051775888690885369395296000956548697297517945453745970528335241607429624430544856537348561463752740102382244655806542583666505586326719003500795021976924728498658279351881971085463854500360515973066448172610441037200730923511098203923305275497672651066689169112295635033701546803146052176886952816872319224790227092860599618271797295548332794543085804868888667065297315139998672248152280314050120706381405420958773786598192753495048165129253679134810608386034451122131791691569524459312681431728288159833273673348705653334441533708554667775638138386371217133173765523788210656437515676921615786125748139996743431327339619598047779719440546062928614893946720221408331198611697323279464802215986969338962949982497067954567467939170829891040667666711421799211502322593483730380171319327190772740921200738791175972789150620693397032209277893443578815371131987750667992731240570019874922834881583305440991459848358961166904644687586920805344519693547335163314998087059097323665805349549090721476659071114468749131636274301266551747611227042036993006637930049815403910946284478802528896475250273355023343811588648373316617788670261664787192339928000854979440531644762660626705746708075696285625840474423104294899981584678681216196469806242781277630482430777688837167946536087934307874160716399938039098531474891787497824783743685348227268874420243443525751374263815103525297935049587261255754544917107907841072529827075926533391515247846478935280827428357206463201563368046755890762075206362642867443943649743433150728861250018560859877512975971551901818747646420048788001689120753223317297886439634952315858802160899892181814941408564782119084285285414555363608890931058837856033287021312507422543497094325926037154504901065872316831285236628633932763332137038941435485081997459183381614259222382473313006599308929807376994016105855785861203722714636674621883176018723879790673510532927688556231196290537809463189211123421519310154627035860738325799946435795389090192130766678735260763111102970492417415388411056379179397521783608733943554712855112068034192739111392712542119722450605108824320918433037901622324451226697390592184921156514081757869311814333813958277636159100841451356737646061383156281002374286817009961433661252629554840810079523383800356644225426797999976346989620071812667592723276890046626788557475864407686819548710373485684428691594056647503157145703449703985070439976751414109592924095334872989157567486104991995013744627516124205817115576869619013549745196991804658632784500274774279618080696031456287318592652727641519304524127469146458214301374606609634119175508429839896771279719244134572369998210166371595908671381727139455456773503895304417669573355511412366376250905467613127106012645501861903851626769492372581384505695715129765765214874821020748137079266247597672729492810708402793383688344659753729358039096144091102101689340005280777750736501541007653790240450099850662043364641356669558276114910390562458442934861592348398414822703721319604074668773223127766569350596953917618104325274431978193692887579676479908415189347019631350132271548565724418811508255443884603970491504861871782682396616367146750182282847517367971613261159747495021584809723858900118202113950582281269710363170263123885943233045617181223676166189018053955298750563744564932873228270863986395350333130125388673813111220185410492466993999078884148379643096984197237035268673047458321126090510722532009396968486753142778929103819344696043926588104458606207086278707391714287446959572672670247717722434017611905393266615766454124167010296187518970863663821738143561945951568326714632709368651293364980091610570785543706693544531793783005735811867365200238267206883248487214672945684613538108221731403955818422073827342453657526779809483658270737245224204160627219164508697994142517595522085058988870717118715013435189370439875600951538332374126594298983673170626719798994348047878777316014704444292133755176089904662166483155149808738448112425291992656778268852581352892597686182559403590119810055868673297055864461761456977709174900434938339122198779908602797620743276020766591764832687706156986063696272238002333207231314037697754821410012235870895591043746056294876958095554098121733176355205243007988002987444059798143475570575194055023629064390589747208570020664126883801605927639868356681763315362119412064634574225665179930854231901403076137002808773082764753894951044812097894936803445750119660030126939592142446890587176496399927266622156364703502050013070358746729613467964719882837664972243734193477165079222977325764365234165945691590195228420022798714582635667152663651255101525924473019180162169632994880349296443259990963808522173862718091618275004553084000391596750825647694210073726730350122861065229961409145679539711035238596903597977523709401935371083976319762581790342617839786533865638129142809360337364168509509373429583077360545253747911016800492700575436123776216685872454065199896523003182741810049117429810842941667040949230710680488120022307932989412432391420347574305508591868205537378476949990844516262665966306509610960991798064085940285261862838889373995545452658767959960174511852135002100336555031106099726846575971505637112529278884370166117301052726941418973261279857784308572765976821209896955107912022473153081547236389119227177514114638577879099675168866362081828591728020211999502456851022088654600535103271654493872348976431322160687599841309347745397169310996862642600535061592602681417835812143371660266089394438597502615873365934188967484977125848054013423831454335509933167857621382169795442880785205533383519005032573556158733429930635184418036188564317989972458941494567650815357969435050889844531925029117638685296798626485767785627539709579432026690166038315081285047351932643276092723034661947650482048436706674354152187792241624142865033697908827906755012277001541745379062380569201515157595868831395678099604927653457660560390711241536375139561875453515749214353656974184817495588734942401034328807428952637230012324944154189845658107470948115166319171747480960722382069840718983313098626424682300188593961298417492590669955573183274306508793145258338555108095149122991532784475269311232973371889400015853328277975559077588074708486972267751925208130191039862160086026420026345825917889751569418708861426431878209789724494161556026088711883381347317064586069141068072526715837000951860063590134235246771761948311174022521011653773192492039974702435217655259428982571693350090726831076950669575084140713111609185033506841507553511416174110342756733003953994492065413558323551141112668901078212309513544587974617959676037988423935051835059923295555801440186157010029723877941140964327362842670276113889491390779296111580542550882121233788482249724293851320516530886657051895144704819928575504498965485959628625745215907014530769386681090924544465815165210348648175425526235065606771427766015920112352517219352720936815471982930236831403832828733028945549500329121491635748356359254591836337587731948888753192975506103999405006734169406770445184863811306270142000965901709490168115198288538775337452334839448571855366265027640770954832022584245681646278591691477047496161121045619450442150610113396090719846522017853518605543775733843919723217541108606131914747543247596400908850694706647715778940159303681656931380165575255237639896628681503118641611968297025476473651299470473359141925564093905929715794427716376504257131398108254005749619257991755170965478432886963201232662914407109756264032156485361420636894891961152443923086210128839464262229001126352325099197070452136227187234857741398345450786915762196434945097305252065724099659708403606674159765515596035229321537063137649453506708093133001996712596185559868858954954368304603307581227152680616549959922583513094539538161287538791573536884112027723240144392441904457754620530363254566052558116558463365664385321478927012183996878688781674474626941950110857593921327368292587956890153711837204332350178420499144906490752647139945928836896485437260241812451613126668514193748241181071561846897799568206028560422880730819150634743989958221319768095121466035433104781507279522212186457776942128156408609270058771214104583727064797817567096696499552864336573907529937633967829873519452358641624216774384091978167351035109858707927512581451851158055942585523313423543510928405766241570164943493544879808234280681272586782040875380042240628286386117089985692088120320092212837344970971101301577553288461880696190055916365452554100106826546465894362028255173003282098235611507214685437578846807558787006360289621092824371648321048318696405590229036687190270627667115527208876488875972512187350114177010766242061735809380936652072662710556807929425161042511738504909762986098831953681007215995231647919343315411010063178506610517277377615807265372833554677142099937300713460036061983428841702433795156389501319548768867080970169533731427314184939679636915162555440723628912219733971630249238202561455666988588012340840718765310543724023760559568902057985913129692991718708520896807018811361008782398813897976967774841426938650307416606887577508155748504634139116047939245190285198494081965950071811704744706426251300400684665218065964469631397926487460661880732603414189555504059655232559245381040687563756494508143558499946566289834838600204725450245464705592138177491286149020548923186173178401675372286411012885502019184823053534689393211854404388318928752438527667811521966898265390747249926877863249144831033225217979029929902639104601961468802611854769680003640738043659684579851829587286138334663011785693741379379756175299545430558327009163669090125803683302509815660922123735274023687454012439554503135705878328337686369064085076128325815100190336574828320474259735251369377329240842398159820836244231643090873650308453127113001078706291065816607549029414533544581620640185191991027374260500504779520774906086893395753383413768871782399419498743590889027216372011500615443975152390212638849259462746288055812205425039290282061216005711508557138749249156176817024127465759122588650928516170201740826975374837824545773407694843343063625783864981250622379732469404516534871674096456893461153554274130760671296560504199593627778271853235324801727301700145037166672710965025346036239953192910967530397376253565101764809270255804444696905151267204525864961663901550237120403091738795731693040566204605721976259690818119896706414585661260109785694526400258103638933639183446986865190956572200098615886686738518488773038249898214350153953687334544646382616965713911260407720735738848794759169821066043713504911370788149838463120827909667039115271227727288994709308369243311478493520035432475034092052413978351080458124459919921322771890057718600465544707198856262769180072181785690898488100185464630164657580592189002405763758774473811465343729138385299400103004408947441900310360055231948490749164146905732100280368252369045361232351048880394832398162108900491714270900698476800852655190142999804242719730544477153273823728782357073876180595138777822550393576892362797937056976140616115514223151555132581783940326258324743856504658303657544958753562819954373158356724950989530426389188025381434125807451525142761470849187850964516192503558830289451967025356354621036862563208720966783020520894596038450097367010779342693138328832320609359358117883835070809141917788709110115803258179412500559629588795208658626314379221086887954277232946978651252083012546894576010175071334555610181936887798524685577007908213021047617366362210239602321811272470418460744738592176261983898832073592279456840131559412300392979421878251269427485577880826716665421330609136800584299099979943542875344276371301375104645546500215845559240873953826711904591440946673907703000532582517519461314904972870036709727820427292011808752586948222869551099545414770783970865021518864646992187234158249255613162714195087935019360379224739598227787972465811075735308591414417196974793683741961558993164935204299945706248557017325129997645448236473581076655216962566015128157923905560934457969489123824848150548452328801843240661840807658584420614090649065461535112067249396784270219078749857444496374965521725779621234572787992134515751805492362920517987017485014264362214132331609029713955876101342574672275821124006433869011016686443555524184692737371479929016293426502766421649247938980067036375777800411839770914406943752577666070281553009797126822132022417832232295810947549778165583330622984988588827046416443144281417953146290148372698114647174192805433904631013640555772160085410188804807350879004718901255577378523033186194832996268357223613598923467151684807125475931037263972204982853036816424169371120609202961583321185639708309431279682177589033111760871949436123153968476197466643585592567697506007367444561347724951745227313559698104339795850291034059479084700874227713888832349184017545312529003122645408959339553728735556438525774534208819839126263954291601270043478982370045011238989075639585485940641551310697639412042939829046648384241987996880890797299811722219563852122457739491699352544979472268990466149294708437049790382941740857632357970064605428595073817082415509990307825043813255507147473761027676193644667241684745903624673869124005563579966777442747205992480791569932072422350983916914909149367256523964622103501897535947873720986179547616035245844584922456034578731036056937297341051335474835408951018946625072606307360860309130461120779100783994137313133968654928931865866004646933242056830278168190095839670760571219177805262789164840573869816376058779319695463028310220331018442998478017622593437613467249083884775658421504616925151156902133481181797418753154314858118240483752313846373962042439519579696253687136237481138223745544308823707227088689631017458827861295266028856704298846364391517130558626548922806585089735040678292043995629250197284491027402654213341531168370387984034645693453505229050135247165583487194192319627493247128319367382656641560267556375696292033479982670070433235645794491354571067450939733970838141856322726780695964694399089765601179671157875181655912209704033982941062932238573619945301702198246046298408301100368057554645894026337096342815882974473219698479021921362220801925430363393092057652489535396367326847752711039190298092823937263958433369523547545049653211533981838292356065514131804802182823797490012812804508134688810613297410786294911970758024765050239251445562624000561278013060708978062037713211211282909810656566439403290088927744696313183485352308125626215554320024128437877463824982545750537706173225623799230456046577136230223236652487354920362672157999515497999289408580580731030849015761702127462444545861165442317778848197223578548516787790826206468442003305666722729134145914442609564760291985493318821448147791312122386175938062518036590294046959519980359257914726137411911985347052678298592527107463785790198479887815109016301824006012217426095163294147568606449535785408256040630872955272072672037293506267906129845402547166922508979698065014340570079454572675388197082309228230992921813963871883144545582738008268969366036882405961361744937910789058180361462826031592069326728377666309231930180284507682810580445129305330485126355900146862715046708024226254289395050502860594426748336805248485144340032793836829593648606698538549067173753936410097683869023168644702982174146378826862747363887219315219856795662603487900872432279747930027492545600445155320899006989613842383353781189475166177834158369359324498862965517431255946558198256325356734299209780545507732148105105185229038256009993262907630546486786435743697738596533161184823519207146771047652519281253980358738551260715716040386315898929896499302253341334297563562303274815012547711646579854627457637254725748068749093284573740346866721183621088048321679647001593651757290065462985121851384776948110900557530086017696273162198886890537780281422199452672004561856052278827669824209618675445226159331041253207219225266574689360771509649271744818474394009248082138591685202706202544550584902848759245094527643468444046788443379184193206954807275434294076572344818884563863663176450695397840316000193679861402378069569312179991780161304443676923933566188518868318142176906235872217716913356318912695348711923465989645862648953431356471308812013803693940448454400107433075136235532162446697756059127431572787026090777686385435955375964303091374579119880754951546905735873301875317815091596418161874550776099700517613245736166871893274564345791583495198573652220055395634260981795608006181496094799384410746293922925399425103592168075902375165767553707871298263378417898763911742990651721879330726168265767864397296951083624827272733600542321471379808016695410756410675775268580777380321430964674213815924442883983744155117460901455705268952417254817346407798841428281854874903709740001438938229086798249404263690649467553606514869155493348116681943423192657169764862903725365488494254543038276344979299924357533107110452609853742159581524994321107821829636258536033274326259827421577198606916752922141842551116816160174777403015837104002423789895356841071760941340873208122440260975501168729944701246594012905941963830032645732545456186077499039548409439861634155890251400872503066668398543155169241061212130859096668946940702816370459944187065108093065820517631930936450748249354957537173967531095899819095188447822787133342703962111979962080645257443530874404420198019348597184087841492072095205105007040882087533665005739637502823162383656371677112546047372896894976839995022775669824041217488129686275334894364957797012107314274083659682352660081103060159132972143375763327881549989067335597752157555372750595205440333532622425707662124148645703700186344177781385590515273332735681815357999494409336856610304458173719009807165091077417295666970617514125962010642442520237146864525987167358786898614591721216356899282518357434454853042200144076680761142930891799972454167303333025161291361666597359548520475293958853053714846856380722549871581039245635732183556564760555864462685247705639571656929497028549858589850574569453114904683268313756180485084896158038471985869688315637913609422010621985508494257384064415158509853722134115136626661410305967715787034231888240333011305177564911168122454134228510766908380218114524915990272738387330075771517075174014911522072649148044426685872438176178808028359170572852863091124028239202817449745271427373208217121812929351862428072664696354233657105662588455361061968952236042335495868064270620217924970483027875020189604760566414790525227143125039886652685629579576006180405055353593073467394805916960232966635521723335259676414748731645708555509163264334705280089953419645298146901782670849834808443527053437617438971564466161693786945793586493507118565827991073265769918278002096038550433386988694762582606335204424797940453582032404862537941011221821661963267101121565215399186451016752738674719786884294191479683172264612666748270911883407649812037547678941688047128499664086231886810234265995073501042106646700437427390381763084103783990951496142803136482378504140716969587451256808289821876633295847982776344931990645925865520052424574644628502094415159601330024191016387168921497219355740805700414196651963285493281680189458811111547763208980834107163900901300200236080431109336487484043803698205473926057993369492883609468194059576471905315611215994946595489907284324694179692673825146546932652231748167922937742913684782400978874206923302740137765914061783117621560207390108265313727606702078508710640369989977816288288158038195410250765442222427659803761796532503587208275715921238747766209937486703808803653929068583186225348311318709758437872372980304915319948497748426012801824169002064323495349652708058149887275562018341551901714014637049540149517547172990403883273509474949986819011788425764478465311697351264424879817974101882229505726107918412458957411292182008423504508489951091881830263389474258024783359205618237113964409994298816473577043965776458433124466441792674470988227485106105682661230801853086863956027097555493330132591899770414747292223698262660038853430795125366552836430342001334930481447053854357470084408524545123983160570552750862306800065998184321133262318824831485789279281811766919896511207687503678202703006433262637148426230124960979303460965125716052732008721269161371741356104591369359070882129058049152436717259613735420495870212747637929610222281521099366768440764554507306255757262801385566802074994564309645918933183401009053242378389420160040590666498693942963441261380367109306709222337205457376578915948303877796761435846874313082256126685654259348296139354308582812434841611039913812055513623642528128854806172034176393102370162232288484258581354450405365992408083222264344628183463466421169004805536630166384524304591139417605267728839068336124285773595309653611758702327010828131271391489395163438287514559403574759738153500996126917655513031553496454648640537980335919181587450846911481942938359057235156710546219432641273741521895542922510656890512439023161756885516168947092510172041618690390723707051461655388213962934094773760468306794740010072810552751428787528302842674992834977488399364349670525636255421154609086213109905976520658151981232788177756408743890441115408510307912341139525322805129251354783674707514678969821067086423549887465796246189073238873026848602729903743079254310177704560363090895769501148426428271971967374540892887162371956340570644619856110146218508466849849376350500716653656674371532336373877131833166587433087861077155294068982951463359297002033218244582881421569175425796535443659581085378870431395850680775418489344357699460294490118725059966934046862850943417433405633435269014947448998991093534591879957987296472230045307968972996408459673586490253075289350980092884771329697819518198903306284115317870061893139535706637086099484402571329582292270482033783018798911755600900359901309182783346262698827042449031809369118702816644416763155947554263211845136241674198759137205596631258367813834278944792832333132341680552004581144863830702369652267966684176211902394395196178692513501419907491178592778767584123607622663074571271944721230164713928429149307338283553985882158606193810247436226638575041561357894935873189229838800184591030637305314295100930563560071235773352021468949495508825242344668297863200265423791040321383824088656650467687372565873895495327660776196747052506286526589635879591020750887948496512505831883057406685817145061189863309063798351040015531147773760257523522797806191547245472063611587322223909223383880262708370710017808422489493109901886556278443148857115479822097022383446779407674665054914983643879502095610487035993735225012703611165851059853275528484073122324584600301996530942544367775687435682103224919111454126432320426801962902567811233358928753088340398695189061270862073673135099320824290145063139072508997181757973801342887803143384237888833721261433565237402849064800185121276428035830498228547831099388724456302063740573672242463803265698958011074902013631359551664788802114846469208670809212074951242385678557491622449698665134460760986216583695211392911965916500883764471742565075280269358112440921651909545124175086180644276395395419233733028016231250018828981945876097235299038909215373671982046797341302426294217893015202320946281209850797888590918644003645442657163183244718533046094235541122446509077388612221608753258335218439988300443717872729231129098643322601024326644007944687634452176411880845118999356140935294549034207976825663152410567707286073194390793624474927349200403561448974706016596433170183149844316555154416815749385691173951514868434683996731855912296534993777036729768765318683641527199524479744475598441070213408625728048207650752565044118190957468329204675022396466920323915604332970416344678679404739977550745375530482506636501780109141072864707533532429100900381295708427783412842028142096471487792513017311543977517141999459548162965894341597953022511527676492687679761037573569477835371611250241357631688481021039584626938327098244776170483341073399414132719423659171043955229908563256373850282398737836906873546617461360919515658730005881212715149950467230771106008783792847067920043701275324470403588824906245526425828178459374429786813996800901021004817063187879727764587286888556617932676812548992401014965834372455412712416116464089365367203769549993925267471492010898132112003835894569889349924233582242856180263209985425135003168035806047974477133612874361553361401478007124273286182720044473456553680628334839377743530857349466572226891680061602548488465470959525164095513859615501272383105579492199112417034679274862154443222572505739424758700074459514786120418798088917023948936924888534031883135732829942418237279578050882954847434430738537433184553784787585519034762722880461428396835059920223667032951338411726845140910228555635314233746946469283565138649988189144273462316707199030750819960822352068409459832384545468473057054908441614158743993631609739692260129705748179386992465482257417636008039222870628030051867736428940179889876457291204146375810995259180193744583503817266052314109079701288190391225993264532996804636049625554292577191971143132956052168272763801149257489040080675383452219726246550625456801376644321581478757682304177317303004278741602629101485485458932235285413415400444111665818309463156147858929678926508551194727943222677560944868120095191913017437095196697917490583122293284653634856191629921096773213573928075088082482435086766284367983545489902430894042405099758614805081283997569565925319458445266600418291759197521548565001269276793712482485023970183334590429028324127360985273331385367952567391375888959450241431049560374749264139968548371643754530978825577750767598256021935378105233601431479075338968428798397737662590920233481426939475488938533463788961366414241209665236915610174181296228918708889775576544085329647350827440258560560198625177470204405126697722076475819967718608584615944440428281647882761144417858984236798522153209637623516615454386872228139954304435467315793180062418149284021124524443984778009425765505394105559101784367805228168214630750361495221393701317942747661156174294864276340495086676101654806661063670304072742295364686728436602147509946230726450660419412079089459694115948097915015419455983247773694004956857582628178248182034295641599906664487400386227713387189757288426063534964572048466339635342255041095882114250701502384298701323525415976181293249855691785829278048038734567454788258515831927057637902129194794903424160771752802933514025834218467525667586662294991153316801880179086738321850101382209734891549763547750091238039345576606299720942925933223101255311066991204111847984245024537280273967911666185274070105569460596647445519237891495353145652863532649583933854782397086328882257295288858030113450554704641036997342830150203986664097973779847729852436894608872802119104296106198622583957121820672201973717237868505236580403165899752287604858038787893798243766104957589052139939504149688760984701770613174776599158810568709077791891282355625274595045150501813799861727957090116225153093814260379434627494809705436736425927074385406376984518894205431217089479345023022823952661135278591508349661058566146088908079103769569413260892476348705083448891301317604525092195845773774967135858031339433367663706535270376935505224633506636870460992541781783872491764448300617719903708061778323379820935067015343501883657684446552215151098196564183456687442040881486803597066190963885973684692773763629313076860831282192179769104534723695535070969189794897416030342649032699056037323355355278863897747317060532380566350027113538191346486945975337261183861225661041875029700290247751129386422213576724073191195996049405490488956353507282032144297102802459352148551385697819474725310774813064918492221934052177107446372128857466984994330542824933485280635628196641085081995892994612254093795579602539924166345323190374364695542292642110419211563175468082792064630048561396309409584277263841163557142298548201545610434968035768162133575122792498734766832573925610834988520797169805513880466511664229223187889078676970107229293125358101313707643573812698998816625482973592285101478174865272334959932683190860815328440571780494841618392128427040978616989612693619531105609322172526374364034083278245084974107045081875063813499664501724064684563132970183427270394758790573426052837678580523568995133961902329871692521070315188037667778243425368420681215591882178591913513982017983492698022798484405042671372562120639769336620158380717944839229256650923054753896876249411974075043898550802252449418561482828818790327112761454018414505371850954585255745647305660495728333946755492326488905755264868986405183699492038869879269188370825604807991183050235075596041745506808808712632770863754053875360067682446906245987627487851621141970324495575855174643594166647947178725110201680796952741720962196998502104966736148810300369114930976463127040061061399420480069818330901719367367882136280860862739157597490442622398195453162850997305011884076001878352891960857797860769339591129996227766610649233368536879876266549396260094304285934039224265948387014652309867290811467021190070815574286740705914998085723982472693866133515544042183521588492778813392531057322446915116346542830562477749667107487929007908092215055241541984647281984652382818494898140307256096982361400684087263799527614639264237092019967896964018176242033937389634617884413129938881807873911111798556409086355875029057609849536294388844990375132223011359561190185495361805151854794339580186089437018171917699237635452349663372033206636407854996368899562072657414928746079898460508040542276491787979486542713109321118789789548711111014283603186514913328406282330428614250810792527721614016832929643983273371599808558399982203246102397055937094610754517325489167807794759516868302672326941668646177200588850118955147131314199692331873815103073769017439126700968727234826909624624529404381772604104048962263619730815774733857824517095140563001086252362378286419932602351147452939448779922635699036266870512585078251631580510725470682687461252120288067497418665741945215983784757813530890663100063189710853520973863347700483818025245786539458417470621756908789517201211011007479362675545476957300518032060575061843386607615015199111833967145203489709669880886742542070505276027027558181776016279676630197537567874957896536591082846917925171446041538205801926467185252092525689984188175838738004392846645900634259424201388700940813095262049508626720249613487048416286412525892869396766666757111016914980685255876910390957583012723474978478317778593700816242730989288342256678994701035533034878259724759398898584031634393999754513277415025342170224720513294879642423233882778040830454428364050080395096385466589932976732067985561712330653491352751956976069268107338776391524376728424438948328850978680285074652354219201440125987693633294187429339654516036808928534177007010600347961231074141341534766721659947871257411083340942638251187028631937861975916855186405955904723807505860004473490251039615038848076980472323094237326126821988925337189255908835908048329798319965006073337002723868443201801562434878031594991979671167094972449721039132021210823352443059783540950678031529213751431895965065068169383253135761506292846511721027956253262519288517619306652682468916220476210672157624963188067957943030723381765308263185742672899042977519286410995920506135453616659278670564068128032326083016078849932077660391263869931005737708330744236562689760672710117918115896208595661014868583075987958910515290777506603632013302314918447341153731176918972748955968512430149597620443704629395872943338604136807024513023741629309595906077281075345943559054450921667769064844917027380398063159833779313107032898288497455148152479526118965608545542328511522022524857505786525756765198478294277130031601846701701194362428398588225860706472186053010520481294014781254910856775787140595619023669752591150498279551806035751319198831885187883634394615420505454355786054293306782856896124678304046159115009686114864423162973310086497544195399783952678051745562335677211543008573646762380964233819961954432237605590012122731207685880589172527433741730781470779675691856211906673993242970852569094438010310287095173347941004083074978432100145256262060242971525416036436172714891416323321801811810606519775114353900360967811835190192259546743416683646254636624327814920385598536130811001046413245716291303220346958369210507383462590851919214235124439012877992748231133571153051003161269816005052375426901036178863098726666973891880054095128916744309972318578948724081911044930044990815092573370941229548692545873728124496386273415923855275631388577971502657354580697753412126681880508751264716999687184702851381295597523939239478929443093017859769628338458435790808316100874372877442038333726378793835314494671030248026719910313729584708759918237551950679044289782730606807860260637447288328789713987015932400092575793454668894441306168943753809127058824371569905081964195207414206928877796947416802740757438118476976632619993345395820065346631818883715317229486425628168910973493076843259124435842908381451529297668142610679823455023000384465383937210417646447616584567877954540681454458634648057083215311036760002482576190983438701418665437018084576117968090434331640243675434656987820569751628399980655774617003259675850061583391402840759072290001559608444302040569386842064874642060058758534078781376457329813140443093812352169147802823744053686565777013474702072542154555894187626229173275215826087793290659100435111995482199593683261793515702307389337428690797613328128420070141899666871452575912281573351473625638641382073009681774536105132980127774752083265112232032002694349340128493711689297526457576911425464786605834132366809617696993358584596160952307315414358032762699922703385513559648895073483741887649539020282295668001208290799691470755308319597174141538807850469812986171632546592598821324194533317064077361842965622958746843540344811101613532461171999275532472410464106744950448356371756869598632559319230838688724927354768555950405007994504436460766137714810439682953976265533673425024348211195227644494774309511357023426797239860056177173812262931776953080255988081654666098372243198003186934447929459854500594359253881598854314616960397644814072719538891259053983677125461444818610667570697122449002507301698375317025026283244085147490655027885013833397617762535052301179807367642992007587008691323838496925576727415014061426374438202763672848618860266369633399384088411459730617335928894708796260344259513695486043048381557817729181319643929755470014929994415437862330727640822891481626212687957190591412709886682022475135267855632759041611141908931605662750845444176294079675637623145296700491641544539095567836853295064179612707991967660854349008623612610700832118065409824847882342335305732602585105509445894693786386753280606042511031207155230233398967035307429008645473380265016041066359605341800966930410419798229154953259987025182730072847726688080529671999674315441299158637104602708261345446020678564303983333628427840311736349884079798949290770175943714368728500877740703758108417168282189271918730732328155431288635812757226593106892483985487611621753135626019434301240839845048688525164683130394840618625543653597094163775745911449426615951030824805094719369401394878306203100486455871387191984089128892967593478882737581007897976758854268578652635015190223454577799189694042741874472467181563763620312220380534083944723432398815708488121169525971738626192792893510749649330769555428109913383070054838269589126526381684714491909185472041271348104675129144195448931475543268455458462278550003186310231983449362970633595382509833463059468596493439873983554734922617386905293738397902755607047069047917491790529992852775009444501887216003384080373638043636500978419339422810242877777410209309518406118558244979298627447274174993605049170503291215759646528445982258319510802422789573496647024702778357014175962352957261099718175137621869326766061717212495518945110843722754332199071901064277206225601498875010077409242502296949898907906372456012536350799153155729958345338731507991511377604709469704450038464203320981104097066758039772377944603341622988907130829795596757121041773201616066213747898502220654387596735149494588375997332938768030360183321919671810505301593593246412119306537820942714546050007587848263411096667369514372391520012399353328967505002010524645272489649150369031427917844741500412015787710787126881371298183870478067510992564633719021848728806759204610508445511383734641341539300694535051400947279099778398494967858933938034597771713468321441616180405056226401565382472168484058010902146710308993461634945915503671771109805044621717439875991640897323170908026849271428807578168320135644242448110672158504881948921361032871411810354261562682743289020323983278094269644551221022246737361844742346699767340380831024723861686302021849154600734926389410346365646286197939949476045513441899916529177955664507166649279567595036028942012053769732759761681412945864116148371135589743928664596672292606245869156076412231026116727138652620008269443312650635942350943851844247662792389270224764169997364864773567928160140681093179051080679522413780412054859463264922702981663103084729796775723633622024762233133109185152566444122008667455420811395715758396838388783699031862901958995314665481695696349944581085001192575445493967696758580304774233987851135013430692943883837408454448809628070371138194573720165476432495818047809686294423488343332977736764225926656388293706737496512057578931957625620058362016185098406689037260654439265932698083930061727590168504868324251576954401983730298049945316694734083468048017416718836672721170341131370003385920332930876414291701517120663463051592402956533545587470051131064473935058356286554528198179671890430539019730716176364263710494815853801930504567066291827318821827351252729338890324316096921921032569301723634027952617667716309114292154496018552218458070808512058698547173424033357574876304731527345794191999943517555689260531591591377070566599669565016471643207687272339234991504991554264756436272614660997783956392457384524516625217310834070829634997037381708996801297769058672913894548706467249028050183012642189747981514051244193329047897998300410051843064361099863128819307156720790309446937613857910659432183381292406764204812575609465618306040685140245125693634348351236198261861024720880891569469705463034719271250285652198188989731048990990448088275815727989886170684696925070869704553985832839714210185713173868395695105666077791388052300699868287557499584567551392977039247020593534745819946836774029364247823126834984551174298372630614740301569542971265161823107187341708676395522383366576529675916735765442843825887681193726734245606541487522537391638493378291320949798281698880871906966613172847134187639865256299299325382924117931209961905513323131749683314032337372010648388817666567656066141217972184678656738195859146012095153115246761625136717691643979194126985247430473662216769876787069140550510410761657593147926876517709811471817434520015875928657484069382637085635574479696996013389672242051961307788687622042289906986163622187241344860414071645541684749127824363843444692584794058290872362573117340784137041845827871648471875553668460218464686901961632989667976916957005621197360652483687014899293457687772961180860391419824249907934839202313303104916631230105049179999407281490660528586341141648430276700442514994926694996413138441126014138637507994450360690512624338403213763141889519135983705799529005367851854313684262172185493208495771630373848631304118640368667475038103816036090789669456101780925381550932464132589164168582656977111440972871287411983764898863176329073796690642415257209843922984849127321841963374345171142701387114013653371876175142854236161151840317201302443851615423694373785111121579120519654737183449868210762259877739804253494925555592237184244956260608279571919353814063484378951820376721947884347277076445797663004455513594146470132568465714163527810538159640574104176479108876262538454533793579683879750551733737679789945696508314036549170571300182168579972178507442859094553050111432879014060390241754342635430089298178871813441060623872375816958802124262599430621472333266953185564753720721403050819962302210340951397454623088160027238398503958495517822339333877831230260336468651059960427264960849818654978588785650952503019302894967870506850372619968580773837715976911955380637869942874289408480700280756042109971750196372503428919558105876979268146631199253439616141446983141316639115830188781349669268804123873247969637853322442183567232892727686454079860385264989282668380178312064738010624482338622002362617509381905829483609518750279719185431767834315954875463030446077799545657961911801171989336794017640676368177656080126243547995181465845919344258096265226267109690798980881434789364740097467278815079691259771881815765405662154619091927273471452889035829994963254378656336756282714248519073304740680928422313665285077984658742250470979132220382698928369716618010025226221636899525317429586565197726486547781341089074782240937398966789408328830000803944437163975769372520929738263995477228875374856093378229854132544567690255684395961620089565745447033020770036772714149027017733479984834503940960941280000341366274000177716044800797869376819459550320855189793677061021261744008922658692552524176952396865525788123251557252826605776050339349907227878446373521701855027748597264926718717034874539289251497724316162650473229514966406809775643232676783336305517015457506823966788015452050982578172769780691941467782515898131779043484058697824236376851888651623662098861561432724113299837646205206463097799988957777417880398282073243049289662788032537760412352494496946773716263976987558232240688087662798895509807153765029884970955163080075954630148294989877413798510813356096370904619525328588021585608967071585061951816240195395517713040966043635465379132753140258953018186589565409689837286197293948096424809125607178712953571955266085530052594925260347180806596505003837739167285940034310990647971564523702728274188225841579938124628543289408098744857043014680742248233663862862035120456372812455249598679301720637391269974109220830362538620263693594096785657408660718693777871166580389805199234340328590940712056452831840333475766382363038262979020605514852435347483777354789592109526432937111235622371184482505245125936565113539792975538686961536266924935104192271270526753559781090559647978759012005995627802950054252079142360130674882555453852317619444983246047637946490856339529073799221351010698615968883582934129219843742868035846957854146895849056182767169267105440951529190411716610832218092248784560012864167312402033535796832800815848469138110522299981059806445956064954449312642554119478072075388936457714949396752592961495619823623465023002103724528593462133927679793317662234760214553359047685016925031541091734199632997351484764848881407629621701501917038055748280332952792262497595398889976736881305691948217023978780489277539972875970873518595759530614705336581325415772217791393534585153480450800752118540405597206409611223054165469764137716293479244409465698898905953115890278050133396973097695992728948932172934383820747358449214080106006575491401475891395726272129189019541790160107463020956812828647251806901286125508998107500872621231433356888324109063122868275237224836144162450715217869906462618729166105649151614779349733794771977511524609713794100793504026694346414455063138189498592995615929385142884504436383030169596277483342101195812841858306825117354993685775193230291021576216839685298293846421563888627402615692909938116892092283505824121755668699836666244387119655349596527478288212153355311703793513817624440972565930753370763438174556373036299971991333931461635856355621909180320213256454350830217193642277650306892013104033264204256729824027978638840861649911407979644526780846772241455552866746232826072383455456477531777412648872177438728294062533778607741148589261472541737304554292355975805293313542019226027272226639653310985083616441765661927912634707956686210218013707374961360497003298956905012435723468189845629183353506378334152516148818171799414075620246924265112847162170001017260387473552939789010350458322100772364944569579447957618568981079839504805642912006061400215141701390430292187508423917834006580425076737313670170920856201915452009561007959508949750110007537304572577168102854545841830456900832556643255377682759368323576384097551085092927588498262168873046877462652385316527081916006913310676624961963711141831298746698906979545385865173195874806823083475134642150971685760734998747127398839080171914966389520357036661464842331055124104735688623506071375613290313095571805710338054005768975516204858915545601100265444661003169883443501952063953291029019180275433541495846078137113798311294092890598156439509863795554641966583209326142231517278634015219751625452857674719542126351394370902122175267233121139701244883443655040230848121405251931137347761245347186241626248825475738851317762092402156555665758576100431388309706103591064949872735758974620846340451769440624851468944453833962183628822996603055725709851908324478763472800529586600177163504694376438498603544913605832877779143301556237509566404886735449213936946502488715922353779026844986629335975458098996303095971556941320424002443257627456819026215295697054546799432022098977358368124771257809124893348235171382053414951806813621774090392429051086043560964222200882929573834044384967468990577276235378727721505994792830890115012329338049126053484680927512215412852877226719800181414743136741707777268399647603075209670477976025632743918566255803923566444454224724790239472881654012957856322937262544156060185614646021449752369302875008463116626471545976264250831544101659536849964379907625654325477242701392677843081127334363064734054412258158162844436451266469116528208119222653492810939449975636256955669868628720058568304304116449280743215920459717374219787065759313816565001344996732058698639227004836391867278646646469630515187407130250788201706862451394903072474848836248863939217556872699959681712874267935769278166704594052871953225045894658105848689773593882194259279500169374749651068700426152727200669729208518922423516291618741606486470598043168168235819108111420828989626698983154637295868903094407706659291791249298874794943630651686291447911624243602653145005832805801459169376220192231301036453908910784091567982308025028042572442273352124551567447355551272048831646947727711909081136341660418237029166364196112448860169801409138321514402499329663160049542942799969866344435831529190608611160079149508822207919048827593994739117110246438843976241001109589274488108020540903303717938206652847907553173377863801681551738898683636842650810991620821660128137610175708983031107907400630577072263170024191973018109203887692812561664805376288495276294804952262868706464724218592311177512602586998776880451946831868449586769479688266540260693082450917397628960234755534214870103401568068402220293728395787411651921788094056116054537430294983226472092388861075225598566623998612754548982732755801471874944479492207491648664173282201777023784894956734412449487381745945435138120871585983541442973342220093317282357413240871744257675386023025890273373495774935529240722510863674808771918362364972844896575589090302122129411592906661477952172880791995282985591432870571453603064870814551593906323632463025579404554190810726223846922727750220863002411231036877631638393106145343911412201507187121559840462103241941791506681962718262499381782241710624395660081831698430433407441195978301713110250740449142806244754489497614212279360417186085000508106545574042132858634821997069064110437519477130051433845177295083928379255589689378830371472365194645328467248524028035935141853985474074342422837768955303445179785566289485792670871763541402633102051581978251318510665383122525633893385874164559581325908130119571001757966795650416593282931777907121351884619190631325039845947713191920988450302184254343811319698504461074672777836854356732666601977123069607011231475790016581743938955630742411699368721973891464722776035311665783913104701613826636700448309932491013993102736294321895707451031260728498529127105682753367583997805190773113477399133529325740373448911001700327923186340708185100258227737473958181425071287020589337902868324911582595156564738153504627749355622359546282582690747948431791643951842103446037197090231754712925881898972260919964342495384607003235621239841995058628603637830014605958048883751089587913247916576163261402225972478206444905180869102880790296061582126325798905622501445737218461056682416982207908406696492620441467252856578771948545586618220898109671129497913843849335086233044667375098358363852369309002715762279679927280597678538856079287464790626707121053572161910459888848487118098825473922641392975342952562034806435914823996890943586573262558432285858678214703442949147405889106751548494661659676909048131117779784561399117136254382543054157491115649581820585878938092296108792738299571213359535718065791906242440911119351474370182754958934990525785360281781423879795153096751985443277255202308429062074270868465222726756581826411124019026603723356372070603033636284199911902442908236140626298935568499878478536717947440213517452943746278473654498266807060884652387614786185954506655371192025274365601141559341084245884101214767626530375693731358570037530960514382187620144896170283717456658990690939611062944497019415283154222053734442235474852132804518005561830573745374680710967754864159903446710516488616048819749672514563501117864613696944228091552975560734629460225225326996075328805582353879405839486323513888143697766265489605958219901077267805631126922634262324095338355238817911176722291102533270874470698533194060878533303093613967404976945855988774275822055823731880534500817221109102228321600454133124926467743701156823159845129666083681765438452754577590630439399438922745242366556725362947845242268526286090797442743566631226827723166116661298970890931985310655349234684564816483305291712251130111516899265737844982172167075482363012108625720042909807329052685797626168091993391654730098365441244414697441188828428165377408106082446005432559630018275351967896547300851964714247134369306169040823779401781250639546345281844399266628044572156696920455311651206555504064232789748596722081127217678566067235664736510453563629757326475526717596603292961003470889360572182178962033923998967208018696185465182402686723083547040468522877452178065408479170021522624056687837253141415359193101120096758475714254459148104175164505128939346976630085772184328460524990669675657279922001247993631505139153538303065041576571768141571193594624369819413526012356614990661869089905475100514002768276434323738060294063489402924584223799861100001846016478419661268271318723486591649861164967641989595282629403215559106309277685376077884168443778666842448697103636869587767331873951208436928040649659910131942639837113352111273077341704764725309443295720499767210527065431346467146458967500423925307699847844196353748873707623726235520258667104219149213501473836211565906795973493607839748475465453952093357558500950469064236248819207332886764457569759784669396545528650039431400554880203757249617006179502057050180297367386598651563807183183694710215972447493939039031941971832072565396047370947463273547193633060429240235137473778259715099780002780249737786216713297983923633226328026531654501379778690603148429106855545955442960907270471724532404162930713297414277400781523844212611782836624163547001475669988010099361130372276390680552853988122566967674347857081769813383464452014663158860576866863264349792499142702830830762090002548097148114020251054571269660470072447602754036381916733471345996894605829386691629875361838815796818124600284850696351467672865166578503386552556735547620710547810983179106953817398512856982690791913295103913424833523597172112829253770006918586484157509484378137515177162463657594413545079596465894874970068997041864290707691024405706891345325171649222107412130714340056569897952601269706671959210378122372803938370615859948274447812555869816102124226530836617046703392641229526952787852165292851317076950256436833415836762062620738392122009950668344602777901278301168485063837971588349453554459992744889388217215692408011670096211671094368617820971819813789094013640652108711828217812932592522963692229505151516202718266150844157261125952581439554772903607628156254133582314995192300376751045801751892773917333427756714067071655659276514451287343133779684085606833350409237196030665792762269023069191814286662681724988108161373098194312127363003253769244198447492803360482064660915863408882068322186261098997145640931810904396359873769040951447821470144058450754506018125180392658786714353463481941158199360095495724125866335084016070728836364158947746563078219168184159500691174302284612813954995571678155685757511287090561697461168385739945014222850274306870720599222194175637783231578900558862549682243603652751381421046244744337968947613252005180501129636649141441380250872762943656384706968346388499495218749981423056444009176449055768365703134742128531654048113211760060245781080636176021716161448301763468853975038829135545102038008259558870832759316959975249484702843270038898057494635349560037625203606916958684999860122475219092194537029265677463353688540434180419857029343094835872981179595380833208871327279177905728182381205977825242217443633121647600569179100555482110782456171817437295313873566875484914781087411718490247242986652154834015165766917680341131485740489640097720986943097385268286676602483742499369195198901069835194269157961723625682815794791730477781956520937176612431835121803147432725739646647134444487495282851936455204224437809467730025164867701767605328724567279499108602711911039569715705605784633288686371753683284872570582872748178226449436100780036428015769633029164650313047922137368520700863195672702125882605889823850943807928128918472758216893986232610287184790309579644632598194107379683520831912923734544887637043772895536286051100736306955420337059549939497419353375919681410233640797319026903163800262304457918832987254417464392941692182504176863638116501326566654344632671289168290114820023137345199688303531853143054032409927225240339393188941919693623001910742861678166630652858547697300834660794548136984708035152802787000526652966381714695624121529394943062648497692394337938772040521807736219926375292522241510737486013296510251816251427779000988436686813939256958736512956851087792871905809845408061701421333400329004603308247107022780052933527363338456905552855667631604818304353630646786792867237609687263004586641433998821619900751676100167288623018536020059059941833709863102486616175567627756807384388741803554614784814835696425250805747200684437601501039952811814495747443589997569872293256516306333003568074291271757168431298045877482167401298150164628515299661130145443391522220782333412408031571980125527003147625420871035350250523536727270796839191387869193872321226036561460827219231356397045637804642950977760478623011236482605416221760550524511892966900463035787891955303744239496776513910875688235628388498506201400208628902270750841833538538252624968937159984454043064246668273786980626914857019674642900059021688312781588807449015844480451108969071024504837658956463497216684525623611007682893443100872647563915517830955527811554708548905985559615547938169174799653596066330159972110024425392122306082463889516356639191790970055438004473826787341287754583329393321627643191711418450298148117430069198241796815637674701333429782950924513490689977152427667750738129498045538691455048743136222473403306967485003052265743557093173601302852718749666188300411524243842420470545187853049449262550920476975796490457102423756954188651833048002632128757044574925911620354282446567435821414492558039183836309167133489239577754756774795758055163290915006388872244168700425532789587626198744731941789893899776687789532571530678022451716574693032490693215240010919156573330235342835997908743127503195775658721530263636908856060390187877623765662785226942461967504492221459236256851838069805229130475444928250193168112363432572336386123970115886949702123974569616529868684516450283693502955834258409186962852494885140027173845282345290551242605739364862368245352167244031075027352613329599658217458399363950713179690941337527061625361126295039983622389021093130979894565856366359276748513348567753699418693531530620291002952454941463703971785741176623515429468127817166799705580877174475654463184457480979916144708047033857774023392472282140864483001657821353932605391041991423627955462107324777842263354986418556446846433776066975805706501656680455435898010663818156172243392588007665645259138494581424383745742051806922709049302761085118725995140424148089019902559403928487672216256264604225230245633205240061940470741355713463396076354269204635022477130401633333568357513253496718366385834280404013224462730688270728111011034375760099128789701771075330193299409321122900629855110567130414048279173541136522715505506655078803325278531541636735772301628451909071058585455075289990928758842847289378593181914841406347777653728865525409011029022261176862122949244114344297425656276878421032219568746426312634376819199982855719825035253676787140546235522054988343961128974444657442319358038868211365666969719197183325615404283144221700271752088127101534048159108416732645417848510991774111215816596808109353806323962543905328379618130108202957368931185184295040339399502039346406696643853540857902208063791577181263056477352068668254782702768983728641167807228500076478829227346593429310203406021368609298023798139719508377664943234874265248549571341011340783199556196575322265585232653486381701399941881638895012407325430565315334071718811536389503297627544907719998800216905730594078981964395577833632890007679375252415415470454749076925274585771524378945284339596805288292669681833472377876363842015550709757406156148276001871825980915088614989513812746282195808663359667415554407193319559819771492937623011023645082955065771681303219648412800154212289670844542206055046221629303688499814772376497879927772288245178046617210546611470658844054739430220678899565378789534106684510178434062989078208050456832119181009521138073026311883251771211109507128371806705287016824493561192348965889070005346469824346442700044005516060687947455035057800601677810551486835780876461912655095912461994572138369546023556066699785128352590046699988414983104862038161192049406535715637996641734367993314011512557218638184517472913076281191916197777516236966304741089920977886505977330473167602796213037996620604309372848597514862024556024149031375171613023870510952738830959496514730707138884453133338081878083956733943357337683390964303281223232411626535480364817026831548937694476079041974737368525756939443692841999147564446297628070175771012665430455934703600789603888238329382628610274207570004104805704330768555757894995710403974659558848802991278068732231456633397385854605004596356048218160208942931495541045399612846388955705265365548384568351115468100558908594565265175279698029345638254220630735405523534004220948344139461994845327239883315791866446550683640796409804732788530037886156501225902294675723755059072970150674457882684189900096168766035007581606410229147861474324572008746487818479558684071452566998937318171742381348369443823459091584637552179982755701003788812543339766053078847091188367842686186069935290182200729446051923746920214958176509465100259015563938618026884903404763273809021829937587950037516474094219771992176473508897227695547385239616307282050158849944371075824399640863875578788281259282188240514650575938524623103495348514443149391214517202963411792487796487365955905118088410604973306915883446443551245253315942237203781941826463860352308094466317937943515728431624742482494261092265929930702366746063057188143598900442555335020393631783139432105853662593859425675918001824913844289748648931573232094423327640628194808113665563870088932871729624374313406949707604065355913744958499609715889590699432383896871581342994582081616463681890357164552878645060389899129910412662747051829347872210944990754542061076331562392837832191185351155563120049778925460129536166029724673097290689756398552803199822432856416617007906978884781575296707607088823514751697691280139575320343716102452825056109301201862947042981223746012740134483580207228557484855534261286216904307751132509193931590088076782965149929812812814489313033912519453749678707858591398812805773893567415772006069129867042411997930978173246806132897965592341263569889983005971619488917144694853486228821239958482264344979442197776725808994090526429557805497585248543130481558742262418105895749751356198381557656544988174740757940822772879540909480269139915254465224474609677950007423057180670775272526271586327256682635316753673761114962492694803045156982706981546580692372373575873157565596847899958909967769493893569751662956437971104171788365094319760940075782707566015662433620872142235724922029247168998823399290731366738036318934712830394554613896402950554451302379406552345356858640683295243238220358696451593426960228879219999229746416424153201047671023477476697620035623494279425222384797272447718407940687784825433718803571509763259191418655837967990684508011660835166870351847600210809499010868392773088185076242610049679356645390162335542531754053799166146981501818743722018581349789978648293359204172256196785934216476499078961687234727900209229249378682966587157564003661419710248591605147522920295562099597347731571822720491160965910234941826280555859885727034231332960339931463003004710650203250364989806240144942616315471985689115050928341620121698653926380330219145746411409725882355949581968221838003191351348572243221851448289837620974035252558817381285629937316267290276634494157338778186743460107260914776181977749635955979663803474928528863185926223933603551192431284898076057746185792180550407333651272973601531010427749549810124446769561632870249803366365977117231065618963197143512148163097122985496487340670429562239003782233081019795764076985460731595240736573552584732994451541087556829375884210176214107328118446213953339308060248062802571532980522204025074729997189787598330308016555809936711007266047901063349557732859624307079747082129525383792030557676760649254790368242148446726153875536210344768146275320746350758388322634271502410091449191319592373313516425372682275147222460232313205889910226294054938547305998852495018727422148313684346404204722384545572541623787516443058235519188914518196606812288555046165286240416350876276040844279001985748996899937548208975590691610449961382453976881847373631661026359716829951797805923682205945562539749487384134593707083395063561496454558671884274632105650722459730308305342880761765274576669005733879033153335022570392919741302113725671086461162024749973005416898419903719959731398974330165005448569066434142719805937527428586068212488825492505494612668532435074552601287013772683240232005443028866896490487539560507639625505997371667655717332820955543049242076473196553328918919490986747183282695418042175736617309752606324146311308852790264734570087135000579053964729686448001120299880312503190638238537483536789087553101228117203392568006098740255294085386864053132814219143956547123380549777962202850359107724009440899578320138655371371223761598862632297769712253763689375505276320305664023328100186087623482154974027094369357953641831350579819087670791953646686578668006332745000400575354562554522814585327378177272763821159500247005142405105351564396560690176838204037051138006683409690721727878162297029357735174277255256092489352205525491801112682514409980987332295564790965314215629217851570578578479783645852740490842494606455774849590169357079986573938523505258331703228569199234145111042638572222421805560784210881607760473580231360782578269064403275848508213864082016920749156972914463484303293515361084976335868797757831442277671785477879920615645102879701674523963295749419024831737077564479822117334610666549364489557363774215739164819427296335772150349341340586339329509979782283369813283353134808012088294640666595644580580801184020110480675274713152325033857510797890389085996033432486690366552529803368509223924694093862005862203983175171988774506506673546161353801176447242844484964944578960036479484805177596676625353854591655273783569150158668190122791609820521625304503007100714719100126144673965227166217517044706591342332718772284902992772292342634743186525904860552827052093658060009388303373088947613830305734582760830414796622777839448754480189025639891425462869974090873742803870447923670966095241217665284009592541638712152529630217121947155976436817556464730129931366956483998652986967237592098497891968044445227279140982755573067447641157086515686758223976416977626409714447875322083096333015665816102740586176414432896072458662801253393303639877108408186908362045648166314494975362731576841207396153633044871778556663039111815794388967213290357119227630952713808121014644180835636949910796434256324332327923376588425147248494949967649880191936255320585896951102609123013858941193731312295689107848528209202740446834964109243823162571116119151739574751267080509012301169377492326443287011250657425287568735381868460244466854617934939829263157077886803707899999731327098683100146621325532179442941074116912605123658480199118942633990040460999998057742340789226363635234235649550367973131162219380615921173058499827261234753498639865769259811606394713396290692752317482925870972944093800412370083291339739480655411507780090361312233078411814790535176954382914536779309909086351951120956754646655149567570539676118517987698194961718422030602338441400455636001520076065800148515065111049267267227158624110681128729058128166608945883611784637112724945007348442971590064026133943650657060004209382076491907291225344427316244791327831766011689719233857682984788653292845041396620477710934451720440986089872730883589403496364292787681232219180533925148040711041893409699174380717333665982970132610588529937091799389584672367418245243900500504150473411824750463097933273122165713230014210819098968402350017176823449916723737347271378910968541911135427350304417065661366788014102354179741580654527543075072051927213565675592503915646751181892874190309777706592047406782649688735932999212471382753154116558759439544940138543477839649618615504545701391700284460409453679681648356627088495398888857145265296745951318824715808707737827240139909217082061538045225247870721949293678737453156638980873578367282510158272795569228393072414323724450353410906437838393127325517236697903830831400607796677815077409986167758953814336161299003483042243926297049984260275130089732140763265292207766148740176445947235790603944645200005015731741046239353852727040359289693155018342364501628721267345145486643756706585142239386328965158345849294287858268029617268926375694394455160473675772270544263144901357491131815732727648597776220929645760336528518589007818172782945351262593342114565973522634677896332480294409729491893990222080650996503367205660464320488263321439768084606119872923620866218778902782748777540186608517433377248580262675405565014660907141116738355825235761420254686384744337534288741904667220200987553577273439203962701560678111956337206429718139650745916280603615879718301158361113925864256132001336963884332070140906938573580993885330218475551189875942656310194898829695804600160113609000750955993534650528599081826566871295705067754322618399355596751591501047349474961690066350779299723529025309242763369710110375534946284289339104047304198943277976837354817629920235909575253419547952291871866062652281180687866420760372049165483360534734950188170866855826531840688722508143563417056161991917718270509709506462865897993565712386341269294214506439060061141629536941977732618769545232239121085432142266538213206115270894508400132160005370957348145245549854934265821732821731400807773699075304552302599520364364249799097603917362968270712410464811500783473968057558540382050220900577428054599858025808152437356817703468700242067336870176682289227968465427327212173340833384394268773734666700964669006685519556963439034433581105477897532990755987009395335881922942960744779833993430378510128043466988401386157040340634714285487804421118200016630441065481050405756257982901779696192513505906131404152851071237487703063508543090588486222606868677961293391122187943515830089524097238760489235775424533938821924408791731954164725228821902243801048020384604610207680253125817822603337180978784459483983737075755061317549456866969212938863709368358496139214104151738250260080378854638163121154581251867702877661462443499234750322969499581580513379801700613887535813395589377940809643109798570511110330545263346312049011651570456839946562338442587722035730712886067500864103996003583906034018970165686543089684974004663567806967841928860745369376075026395082928880971086694349177481201561724228951764220311549258735981324545072596517686268012912604013318021191820624531746806142305756146645690238918225067366531380722098972025674671838934812054743349006334750218347408173149379684259797104182986882581687738813284638398465534828638115217310159864316586395551571032210353368314088412727581219205331668178466525572926233677370341380255790402023291258300522716290227460854084915968118340321445069115651517426163604866271665790566851143679200290027853476942946344868293745748452728242988199443546003108673047381099616072866907860183245174393396521587877137605703096094714917126241321464081861009101994311932161798532257709990701916648365535043399037121053740647134629510140486043019739244980171744410901221179103360398309322226432435020434099293294926123987168212593753744553573173763623115130816230240877439900890928533677077913266323222933322640765539958710340267646379496058762252928787145408896056741153091377308703267955898646059616364712712252733846836014103310985058748599358275284793296429423565605788696399920043301503047889036138345605529306698574015334140722214350583240344493714555545292769720229273960723192547359061397614979668148408464578190817247995170434114237350682804950828817752902032031364507164021846551049110100920324708675869147263365696231633259230978464266167893968074455304242168464951371876711569263774600003730523626612942368945018090649969451404121354819881770056023634177286993651921822452316566902771826050911406312613549191500088164497543427988228388252798142722849597449936780746858410183443555769775754640885513844885644236517344999645362769062787645384052005110454314691218031690776528569922377290556043169012602966010517159205268452694276285885789148023445104153294656359302821144842313518756375646752122915665368037726739289859595706692869636649192465899990096978516616318203425985096101072628726918692463989892225089014794565353090643585460683402062509271960458461959833605430325163042353370810882571534446150586677008058945349984940891118701943350122137843796717803046940261630713579065308455025191773943216080003732303637890630982951796388442986309426237047748072693915362962981446434413202924226558957019908709664945444390520936296388190477915631697712606524174675694812886617468058528239497678685779152824685744035380585594504392079504739727683762514073533448922409087895017490599534634631402979095129591242004177711412937151494053536616243683228667550912350221726062934741917843000755673841760914116505872405647833012052121597232975108100412419136489576729686635115766620878153081607795052229430380021843053039566358400117897420723027935279992362201607896574510347760897480195483698227884773963380021251381389479436302610189150107160063316344363342213177050088830566644606856916475767413248513615171419256906579559878269702379428324711724970560613102559833453990413741012861093886516136533985523647041896670430557485959397293237269576615739240894965588790295433401585398479181061122860839075080281234657061968001238077388131254107018389783932971467743417086361376649658523240538638628823131246721487901234671383106310464296755807830008944273026856036994346096878738343032859769503207383849148873934531590126166464227753724861254852062106338766294666577437906718302823137844686027841265282542776078766699743688136660036431371527867920506724419749825431584813814034368140859020071758065326960921214063604705523010013955663682470045922339502269379690137061391765949652256200933989465546596002792328744614574637402688509200038812778174808256332537286714179645972899525862599933493414923606264324278275579249831896662711182513697381367277651515103472214800250469939493844308077974142628193228025508864168247725172362795277672096266895910309823072627204188510246827551738337132601187909465410666085098984368288584556792731383644513903148892441888938166869990995770709081231671703530658306204889910110334750756552144345852647919555923833487439640767297865629706219033669351435094863209317556324597211722164200621285150637139145188068270045173786854542423783726481761643627861814828476239303523955343274397687008761567000800035850105571231509611884638530115120284480920401262676497728098972073807829679361124974095389749780632241167744051856352979144024754255536546589243840473665365668155821971659525160115084651289819134555713000195099664627555708118352873021928345078809016053081054743333783908453699869349477137765321080086248801506573881932347488589713957223367285407383950265021606759578273777489634098367621473307249566313178102660203091305783800518756435503228225128567920793591188659861616951035649211683360640106717103356054591698442858173061008101714468872921652849914421872908030175836342341066413838759740933358310260699111874212084834232092160850069133884718490874176953521096676358542323402677784746180735763182989748643690398249223126292290238691918076742278266836445311802813033077876445986520918431860684858163750564261306959801299627153863363263954464221113917667365350720196925316635393232483445477002406284342610488930561116626886713589084064767489458944835595453871018270692472742838628352749388549955559728475644373011692299917548223815167177836598162171608153185833585839631070882398016278607251359706865439977975796471820729876230134985731196389199898210482352398037287519075560951725460221859649769648416127525515183250727811387478327633203986253226362533661041456348948538641661136011507085872717518164977001077622397448781739061908255617989530763638382224178733670090106407564868305816722972497495907997781849611996500242340872588298266259943337675590058691011000803434824284123954773838609071556707009699526717040100360000489747628115717787872994092196779878075442935031150438742399761473930983180757770681183413822409917281844170470035517506690664281534385479462129132298218572352849691804356937130926037149101168348657286735237999057539123820985156849682884326897979458980899117271076553263772419026813147519602396645042182758685293770872057979574717480599064874784493688028024107809345527886794520095100299061481892258323964169088353144231738686022117876129036580864113777963544432933367044321784720218263257651664809589754621105381797430715296216773998283264374662931905668692767679660071675479649306580565956271133101263895494484068648320536629460158758244589150637331384354698340819678433668208834757220004779098335594292205757582120877630073065859330438285739442475922433365148295408767667841822482625363746210863593911505168176467856903153541880628689970962110675098781899735008248478580769659861367810104042566863271017654556633029374047333841653074918041112371367732634030087443972472386145857139321671362627726536796152099413077932663785468725022471725069339999799861269343871608972147504597648131898652069613082379049452424214415665071693643704635724069107866106529026996326944067845322537702115481896233953851528578440890558332708809770994979865839195960845134154138969588837873823864253463873516748829945217722078810359748697142894464295188289802506905028252890988852341451067523267456053332089103345728072905686182465215257447301521871398227129036795935396208379802216780587876129010313974154793024685346168477804715639231646528439132009879469781046010574205024222942976184859476187920133628870204295741875545904636432279232570508118649192114409998052091994998903369980616004606667676576908269044993314354373215986603336074652574832041089832041519139188972762583174542169365790601274290227053925585642975125518487750162182767644943743349453475369006845117705342398302320930201081844887109903642233668446980580486858625727736784091277075405819329590452398857784787078145904751319469968910390649051031682172092388872043117060093103764877551021990281414323768753867072934579174455562214433733055935238040479344021766190454741604555786680747136028666160041708080138289250867293358457224184724278904352201703223410677220388834506916079005389495172023572734813888518792946116697763281308856440842770302071614994846012767734724692720944419631175943464995279928322243358633901585664936814116376567448010690597818633431164228798011699169155255311539975374655706767338306746177301694087398423722331584252133891516501189637379020443911172749032326622234895188852924167817742715279588104147885679710551561146326769444401392547545502663436554237555948091659316804463941141155272799480203231820751985095156920708537001617572008282914613906318084180339843945064318780774031237124746566460501106996701662189327219198740737929360682865365479393463554031416438474959481805362886733198839194388712432994087739909979073299416506338568503684615637167904637227624937330959099552243292173774216763392982776193289915491891485696641827752962634532409546036520809638406650605669975621108970528230320270192012222093880723695242166197408276153945702499363057604784344549619436427625594212357152022690249978665185415466861172471235168551567123173258702792370674550844833015310189232099878741175183133354238078043439720503843066672700770616334435166013254055196543296601441138260624965045172165968282656567786616651096762423753362068817015688887989115089772764271620401825533936568715347954255586739966747261169198026096982324778550336323785016876602606425009938308382534563547554605292121693320807384603969278761484383383862421376538821630330393417977471697694147806190622940137073556285871562421004872372285597023180696895295094778288147751107336265907532336186792943866882140054635826818869841039706363020145840141400652773817255291012293608164977156384114029642586171120170577493807918998110080364605307162002994551706499972595591226834750941989653693387634548582396082600387049471914572680469062838587488771322394359160282364744060412930012149487799678849502484335447169652967005293711480850749754053404987772583122745333756585796957412201260028882636988866741584474660023242333117902525141124859824555317986802155905500006230919245719136881136815321923733663095916072197034413068761964726302090148844640035105452011919287899395170828520427421122069988467526957135155690190540014957822272708920946953518609016996200397328892633932708805289435453984462533103530368084209121226796389891910991457757977433886365437387181494073836598224360695951673400899665997348300979663221950994462421197131474961400796783454769459704694287680113941950832633048103205770869582382665984417281637907007859009052127071142770823924176591789588734260082112506124707666642753078384371729682181398758338838352521566145958308540559980753136105278570793717762523624958716379655138339671205495078126038980586104778532972333705189485018870499335943581847134124732479592811082404866714471281354580306096841495282269476732160981082892064267534006621865816975015783061606272026013280885480440860018572427923196109729884521509747752435044541939181981024709445143604824789377696134254878757345198434266137519573124079257102518140448253492329917272001060950422523996385365966599479942087071233385046877889979720831273857937054520353818950515516095770837593771767287373514391636923102043778785445578171293073652764649170477924121282637803589742712948541004461948720949370839713354435404554496193427475353589594082477864313057713293437455693615519159375680390872324822049004729774127359611934235297780132634043655865404431644554195924215282433764323888183836207945500658610450974881552146210413371030181795185529234724688886499909242948697929157855767133529116789786922982329172013588633299225144607550798225383511503722102829931428820386764875038651859019842217461882157028743272691833839177143202299852356215415191398684248666699079968229680005962367378049752116855064817386397504945191742828196771950083504647127660861796993779734741360059075382742389262412749549427652801022149444621281867666241664351154321363128190177925724560927802759215067630339309706472610254050727653684454207910301521142085428016902581296850241642677414633143484672855269774388630348067358376421879518277280014326008272561777190934043171167208353815853305494953594894639729564268696637670409204289106817233420661315089650411981143239649568609770037844869571727018512248006207919724439857470427071001722095936718551608033653538111772651551973394122911062414497538667965766434155438882142148813183175709971477900263537373565395645252417154573890204593494545975550152816809483212537732630785222364941510203446975324651879479383953192189080383145621028395148158379914735542784738395383220855188427820873325626370559714239487685987298090970478144023132055555743492583041897471090844000727136993530259771528467189857917757798433417310551315130804163481797459397843726232449559090375208424401551615299560194542091139388051462307350684553758964459611026236733802361761490292651694527017336878431597586095650692286032947887948902047900703470147689889926743970415326992957377923413346444459945978399833805053700592824735516640626789289206324841797874810192442916447806241907576356071953673296201178276278085695193734570525898653521606080919438792853023110030599832419274845587547877657719821504655837306841099785282826984845882960095071842063805550913476996696424271428163862882305945156467731315157961448306582262928631096450775321430375926860319024773425205691029853931812441654275174335959805056240396054507875902909211836076257531358201657415268984804334325778190306121773016064966036393996322661294167837211484212061048530698122472835304045073585608914258579228116471000676551246872441097774322511753462310507306999164220993829861825482013861363255146809408626509138912599247181118304527663875749939174952635070488311968833455571677821314851510936824367788967926808955235538057720806983359764035914196008669299824726461421943203365151528406857910012654602314587142587868513019084659144550696726881898371791185872075349914086260315811372617745047333585358669822642333747939277939141974314356147906583421524298408183297870326357558986890864034004553064588777576570647572777568331188221898096125002348917048010340081860738949122910174596669723975706899778569091765990050836620629852711628092734677637251742947822736736658342029006466649200013238345975914323938076494035863400240764755367551964015664371283281883110684181550274429896420843638990193027255278277952928763942543256223605192771511839192577517137597792996813950628076571178601540403623176113575371863991760766378350571800541374706477236992363552421349953469778522374942044127047124369907918951745307190050425701662278223205222021089608429734638456848649175837496295825863020614168298893165923068590438845095769427267167999534049153138401775079784755848436950628389236960456358388974009936693795856696272639474641568352992372629588405105713740712863541442226255316238019720814501834465720664886268723281660670377913257021421780050711723587105124763329431126748033043581188478413251069501281058753131199158784739112501563462775858785127325760432048381425558023774471740997289485603589849887975175109972554583840592042126257013002793250055369941626824913100259663492263798172327889699170890934435251097462916696949197115373821244069297749115475757991464732665827486133572830731488169020168676124002112115434690481528404071671959699662391072466584151028773564560431644464889604925364050212632758140542525840882215144139744573723675105013252637419559518317238073452795684788142062335632436253623900390210896517366825029890520252120320662826495385420762418632943499316554141044839342235302269697316677868054520196253744679362459890605581278208661636797833004008486276134837660694368547610156615234164344803592359085544929800038944713388388307649873108036006024976728962398852095970165346655081828060230734761385646763095250255001597155007070529145925778308268795937128612770680043655082435647495938008523648273907841404355890489928210309564657787749046573172076076194175955532368082453289724307940867584096434184723706223672736682927107820631024924728137344146451073267133693580740454842174036888545265921400259471699127834989752146923970245395275454632771292004207773130763132327072840913904863142014065293584616496340289136917333810271844753517937548869166995556031574519853621351111758472988763011152861098913158755673604920412417990651804971740525342629747994734847196086358353940990695383531056772875498862191524116644005229641171174085013806148610537790279833663766546040894457527319391202806991669077740113405331990319869342460505564800887923148944206573630940617891402089358889108662925923232833847877318502109026669884313835632319854791709067702263764359976312165550572564409902613378779498314976379739156467495947834203686205905345232454615475387974158678938802929725713285545437572783425108922705212072201802314152451611867131227117820496750470702251798350322649481291531591563035041942531015157381304956070509086331182266787249686826932400229574643632503351791093878239723814686388151311768319002498284375083273042387109627075684380351207232608810373801548685388689642313079183712302505585142445165680378097490175688338473663998337881978071233380394555152946028867441433026822822980399463910533329626544387579921400830765092212238661109959534490175851020925225623348429815343613904500359655615350436498160642094316291810104184031865313941653711387919183941733312028858692407682831661311144398548046545503330908849593262151909858476594072962511591374354711638832284897710285348293899784728207332842155987026451604256602370849516725390861788963824670208533819882311440980321057244341410751606298860761825873785063083642344483516085561860099453042158928849071479115647045393908778942403813254911479189341816654881625491874316096353918031848579613159442812609728259057450161984147429836346060865402513781659440622734374585692218528693980824150449955208918573440626934293917277647640653473329977867559024063292599977288034703994810045295333973406772727344093448048958465788467928119871548222536907403893279668007269539063586798177640936963048934473403040206537612342863913746184027597653488905260073542246175004918635126882503277838253027623952733596881574176295578102390091741776252050984178487893936688186854748310976144092653195816228127906497586931437610008430048789200843467411072056905915395875843590692292007542721127839005635401296624319516536626406935588540376842989415320083791497389012120474494790206576396051355629192666316345975486007919959698939543639276984684989089850155876773668609535055180257127126439139113463241874889468996819456950446331769126266070988470048875484383825674053321736657006133551992267663122280371887892259430255960948377661332983695377824315294688194199182731201614255087958464976105247104918109714135228858229630137871829872544230524675082973124279113710302496104529261795462799488329262023075531112201179246309992904676042249547525480752052873669098257755734383719991816587758828423378225594831360938986894290183554547091735282881053532019865786024772135315090994954462611928386526588328614563372022743804189082136866443959031133996285862999116920182362972590214212935322978959643094166350506028770577116689540584921020236935413386677149867607722480995981230737357181533957197118441791656355870557657214305289505968347632003970073340224094901210319335154096638929115081014810302080179320026216116576629492630325166993315453850556606854025728027593598356088249140621456824517162688950969877028137295072584336166483493646529937081204288312325467020832305069766528102137678909187989592507576641685992811463902381467459192472214420414234459397015520501989887479105944735859190770503299973796299119273873578561853262570272761984391923275602679724285132237216933438524030380105626341860683204811618697537005580007091563650653970997351499862908115230865994339510988620783406438467624143353510844274365879346234497860163915369070689991857705763751199286793844302017957740997290612107084733935004490843987170321176027807085330853741660735014078922531611884435451365875564829978255503847356444920393885174323668515178587550478055499329278476702363173584048803725670979633224878084666661514329053679089844438148260755178700102119020007290970484256069431207069577370996644246555357710614716598043363122881556963238311792483600829500209007531140888195707898665933841992828076268162158815099561119773167559661237725346528286882688751587523111478273983018098779709449867688289631466678666363974921151652482605048230989763344610559917137238984320154775531864043508325318428255723007463076770202122961131140228780140375299186729072865709124279966201201087687721158069456283638134625952485158918648300298855142623775207782372347271975910240245386266020020767679028470967103715407757300853494720768890165336125419267269573535503362869487008637898495330897214707258827604248753509216994354292364091667832976229340629039834559064206948044583905007807774497438803635848383291974423475327672815521274185813628450202146060088118069093337135651315656967778815794077795191653479181962890916799931665420818204526209301904378852512015047376047211471872154444512881447644578842174402896694894877468450065097223821346052684918853313219328204370163559861881166994052545551159099272784871704824957614043495094156463787875233924981864911007316219747692096486703292496497558433848536869047276963439545240788388476328190435400261708323152173519592476079423442675731772097225555844826564536200886573055874002566464616489142555788684641899417626445132888974517964395569522145127617449045427013565651568373034565444720864384103856949997243679343748490613200110875547176599333588219444490259499601271947620753253823289819840939492175057410004970161665926406614442336910753221224073283380888259977697310215384077357234949430368741140036204771989079999139169806424438186790934699658826196875792823493505601290783051463044838479926940936715286613449784263161665220714092526697855306596016938544807328037280263839971058794121734529257823467529268110747787041493630548675773009483351163121340103073984981272598498907310492927157285211557164278382588110759330934079958323527701804294334357110417874505508101710853494644915510923209490410873103323095421614250806172048629727189801974958602086876087102044088857804348236067189958912690469153946416678047619487986637125704660387581754045146777453181083216946671375665179835641166340291892117803055665949475055766508435230033592348604078509137012900799504338032870536170207627571428174059003838693833403931457768982697189538279175832076365101834161900679993221280274523761722783787561888763916571168857386600245466085834809823851956060056432696273532865885284344569632749680552810882978940938630062981540345336400911467804194910312867523066038767630102092518242660082126539552590176082528343743593679073673567041663027183629436160011121701410274229637139570702051490060116293232829141922114324406041736059587152214311942777231131019596622990521139806248543427116905718456990084858556233736865641316741245350062953617954611618695037527727463411333742719814510883930104483258710278382567626229228837648522614667804988622135933658782160736655790091761588455258865423453940362597170486361950262982785737578484503306414716575985547408631114954269153480961652890860577510377698848068934679003762006743728474465532829138518509678714329072700616897269857661122097111587297038257875962820849596402518996894148092610107625313865394887427947543199424184988506919302939072699100826564780603350283813620889413557419094924347669944591932490305461357700147414776092495435135613669308327488110005489647361231314421476433322848024625941041904948372260983861777759202832150155323498012767240386766535281586440416975584547437259490888033947373779109004469674837163262132387396175880998729572034172425072507165352770343904487611763258546269314694791819339143592206671455795910628511801137553182849947716435946769219971501508750384593184328567516446373486065810183799190147621928415788488426920951311191890813710103137034296783004331050713667342481431882438755936730463635153846546220245982790284998866906417964250278907083414548095873942704240417205854328765211080633799387274846188036125784910489576266896550853162350286174456691051960013479899227596403238257209699589012121155109347231338033854662054752295986226103635191632321978368527605015879196864708639190721314799806297754930843534702903778233293891511204313253073564328014751630734685204926001577792593358259924019381624689429503654701562110503347641422835450069070480535869943790523451371760882435751076437918882008111725277007763258389061772036005693991509763612329873467419707254683558074583210066139691476412616559199892739871287847921677683785755262296997450583287418491118844960864103999042346155702794663730495196914788331564644551480320945831376443318527476497504619453468735530499450169403563520171453278838673767813102597025277610564002162225226541737385670938071927554696262324491668240043880972555964580858939338385114658765769469840246639031625126998853077209570145852909898607317140896530543040321097472943738878098582929385677299315834635426021596631994451050590865759081901765322546332570520100500392506541234870062988834322073412674908145408802640583966651521277054396485482820847787137588186458157428936000465417851930283131603689618954836510905012485444597168010499288586010329408845018947328653578100646732208694066590132874120437559379749265041489653210432481448222082121794208561550948156977205856857330978446760641147581935242236086451002626750532302150225960173333804748727743832085375822627615603149894131831827034048260202175979158326620338390906441302040060980262841247019615270041515960277948886968732137625306066586623672109634683889689255585917415193998111713904425122658105254013110937891428624620471976540930494259455187785221191929209843445415417684674810493857796677347611914615216060814549887586844781361153186923832277688036134257692305101691490384206544252912370828793634110077193825114121089964055700780765632517249292525159874153324022993427810048944884900499233632954192085643383284984020402019204959000276481082324732462729790701818710669717636436935582434501517681135768117734341616295474352285853437570429371779602861967471939419271422398267783137446857491828218245378487261697351277822236051290707303612834259006194325584941820232164545816556013014041250561329108930672927468980001615159564559224448587393849963403984890766825307248696727999827379140067260069036239919653966865700073352067669156187270354333782645395115364103588737656419830590204751624339197544488496731584598094687901226522581716086996773313768750632937432709259270516523844617433168600614157220669995159596858535654359655053758105334928171306060410247931737603404316797991833879915126215178705245511539417261117268106938682858968746378230660197972834882878394571936430811222302635211217900269655120316282246017933226037677811739919584776278948758481982379714709912079461445274438818273986171123563973138052595069717564700011807455567966273178053842359135950232370467194362709558819940586435103410357578496654572587251090373915445872737103129946806195928255100275483828591596872430407133858033501187979182371261143460275860438711561714092342720502117545908783280957810232221505284160179945373052522941212160760621086260069999898051528275992746290497014178751843695561130675287879657785992023394971495428576660800799710081534982437986010596525388526258865838457377383479864886665482067599372552684679971859339384139983735026965376013310565713841471633676930843620134464430425408122401367159209938774727618248274100161766394212311622644595209867508664587067288200918491460909408650004462203194240140295945533201161607351764496000871286031368981234891124579027395116145563647828411663542583741859412929558615895328031672041819011559834971060885992591520007320511420007311284025037609089265471536930103442214724118683875339648188508772561106729292613122579428004401308323953427214314544428492086694569787651984530529687092715296888355131595064404573594436073648791284626770666079437895581012217305462775542663737235918095165133614284193354723495248717248954242226220909754293231795719172636584159608745680000848395539363197382660983472401138873542698457092253260928057604407485026883743260384469168475600874170616111208258096295185195641112952752385861553681561528244746769029197441709910421956193787493473735026272954946345934801643221490088322140030812023359436980114095157381205986749720399414776415064356644600354911809527107464817752554367754228015758365139371870589421052173695471556158116649733876126462660151541515063748797410347438385685891063283092293383743432238885710617327607454760865560195972390343657127414212437873842993508591359877019032583049592597948647630811635613135055584423577245275465140564500981250203803555283807845085510462435062977108151471551240039223305171154522276077937279278366721587752642740495547324245370073607560561349278100164928056030048748385655005162712477555733960974235727108004591567564075845257130704617612662113673067791012882141607168484707159688982667235443112332938713506466206315704778514378535776300257731310963589645205248994012751698684772073054844047211240340412401567330285913639695188629188872062365918177885566175493257928396207821378474499536083014072267845063489398615379935967856605294323130479360784598735921026808110746569988220064235359953208471578293836400584391685318108002824860833786096556645250630651645714986771861426567288754509052756700402455633659607123845081567039755134859699101124519999433481599650353026890479156733754724644482602011441128219181206544209820739419613069764776443806749610709768661380831901314623565210103178025578510090353997306496214758117564297051981222642619142095340266269174861187520846040072432602602039039729618326217639436080661004342861232149997179584252192177401326057641209419820339617625671936852318838696762164282208015713331331621682599298907036279356245726925168200068683354271147968937935835711987471158367114728114799077864817965303133708409512772522387986953645050526056681118430994176220754453018123557976942089577013853806036024326199725463455469797062531026393387196218875297149827623317439512477317247624519743150243710160826662794838238394552610412341057764464508777233418948300636134983085863717616173825030533209494237644646687448960135582241026108446797377177638396593912501806503677351841994714684701145914736544505571143450127335756925008778033552234471926715336724963895597889712371632027943454462472744961836686563103465722167389550626741507772968271124920574580371426725937290833062787774684003447020620475072783894396630468691197982636290394992405636778418240241391050138436608141359005014787771109530556499464138867813259960200039001586314941969656330298867848928629585353353680667663182695288856719061853405690417884332483123416833635043625234635898006869958649646850060466614201950246499405993854674536661233783311438995693505448771562698141885981885153854863414951878620102844584501463473544929449452077241684253161762282140957041767685091540999169568966893603954068688913568740582524228502009977428905779707592388063022137632354244437201924134498035518508742538922618409348877842288927901009336955358860973823223733303436412709158145896479631497002103807451549817129483064848972350813454371065363998462221875231345849367614226744223347547937403868398624493719012449334240388526841542776976563417228686805682131045626978488734145474128467863101346764134100476455754924468550938543977945376547308813487276632984264052334277496860606593244780236767129986306284905491677979678289207678024534531842150663386723879357438174146699930631099125765440345241071092130230330545463633298216538328226345009727386080818973667633610142992796315564760963965742199292547938375451746447590904383972052414031660205202835069617238413345166879397480463681184820577357238442607917175638316105943329887785979228303997189704772130049902779937759968302037155073291242132180606898809662967479694230507347309744866276635039605444669140870428707180184987746299051370130877733524274918687319227601880895001758322875722952658243413263444325103044955721537548795818146765199756244974481528667908223157600752023343352958360258213731429333269023716294122316165592448050025893637252898965330367200294586349946125399823401000105947367522380063116612055810889578227662363566607366036535140376709391043489178302120514111914332744913616427588393387611339442558897996861825370976299366902905427020788598565256173742635650385505279597009381628785877616959090482671213625049338681565747406431157371005140706121604303560675929493720155358874062571635309143282909460004115339466130816608037093453581154827940857499670544860551258682130391734207127326638085838274262668075628592013890115687738590943246584001847816918138814321127435254862271233061479901633334591666861839069965091066214360099335621402230341948504685556419452025329439330771338479107596267474735691875083030613672296809110478089490268078868771879377988148535269137943011019509197688881040791473215300928233338058218690217910123933166118200218561694355777056660033646438745441745116549010884916212311996032172374870239007181175722954473906511945668838660078935906730584801376446232480881221259051126619808382003915942112157326964991395755895791320206668451979669006494844231605276386210331815369504256635911359334300121743263754379180565064788872466447856111905929225275203709113221324751570893992182514660894874130276961264175895015758203949229543634052881062755680306935479703730271037066758123214138945129596074811079249789034339569422932052231423167171965866773993734702243723424305692567006536453457569892230268674405060020868116462288070124196880281144630098175341905573812095644092972361174497356610165685750883374706176376726163598994582201845741808801562624245312093203220893121808364462939091635184429543530384782005397147446903079291507955273206104572496785459950563823094970999784850330391019133037180944567114451368174783230888984277715721751148058748434044466601605885584687311081182824043641174968294179422044808158644021482700664181701931137804892117053771430350351046623946776836049336085985255739572865818743481151670133328986358021178636572102887451405021579648037327369865560487220866589919695205059999456146934376438892382796284119269083484176509541871404099263238494753089129188060593484762839090552735914897328532003796008890367139000631162105129786193467412563075661518792851521786900252425515483967201720986754083275845884530295448645335394839395788272068905090579401751329089262186176894274354523581457846451199872635885899051855777133715642349984594956628048348358930334710964321362084991987318360413682298425028000709970087085022598828455096997197232362042138048475947545784781081337145923981044737050596348000317862250843857521525830323683174744723396915119705247174744773175113939952012921909159400456463339191530864946151809496166878162506309215654624182301387008438160079736908254052020918358374272149102360188207435350342626741598018237067193486915735665107511150069102858111645113810722054999948817026870382702153189822493679118061385810848720393911344044158753968052363250639365855552192760085100548616969865957339839875179573681705826896902251750973485669393421713290351018437469748324581717738824033266285827915121702008598838099183510660660966056291212578784127604176092928952480417443147733071618296227413919184902258749877316977623770507162375016344375966673467883842833260369128161640945220506302565901372509825138390424630116658725351365464630963687985673927317284636689000658437443584777071156148822950542209856142435563486638099750623174114079363690205778133377338827290568225985923381924053427877047026366411265949590994025233627063838171878981079256297927340823962909241278971715293819827440423816092530377787615853696887357419184802086692753333299090625102177898409104102440074261029966821418949969135133851507644610504161570410656020487160782063082218595106304586647905809117113771180181637244947448156446407643749366653514665890697366782192232316584186878818736183311837264929605156921523814147969006570813870831003834815345147881041332140035579004977456160963758036200816373130472369777945772253749696880047852382277001946211318046736609424187681505832110652933547362943948431555535518899699213394413438247894345818934939607817150450602204502937064521976137488350073557449634341780168016135123315990997605905266803728307611988672947279287063839402193298866630339386209976760236758210450075357961766924796742177239957928589660052253110295056099475721789719955875999733270782837220571552299156825777565231113937922505821543103373082357496735193767348345682083577400107286505344219750557250345257751747942014913079084732079863916205505043428763055465056206167242437768689632797333941619178864573158493941875305107511682739693141006710668798160652470416831632886417367562697118473785078159982213780053302111474429033500342538526529783518860026611518436594616855972294610658422463978133962838547777587340378627656383899745913456062251815685202931733613648656724654159376176088854995898401313745446086100262141649096797261243608272926268861672878697185281249464649333466492341527281647700064413989931957454431627766312429629699052093040609417193672382556157730647542108318622580142172203283094659408949349402443546490163804549862425193295961319377566620193036107606653941793522615665888272824445715852244302429596976145521431672817046803967671927499210432794714014363944623345914670851230276654149047957066088615034103016819888389685406764978123482001938324374675101872306022206762171007187802954962854214679068294208944242970770584713479670496458993704022609412235934265681705946666948050118883616991081464051848509047900077794694922538660269756324818397017992001034564256555474914955238336992530908252376127021889124802729570995117099721912644652759407909853126369674374631209895696034504932998360620811815126866298207179235490506862005674630559160856062942406185292859032754114397453471903342606649594912588824755240522826525787038084088220594674664029820631708684365830405082143738666734409433168818591457561363926836595819660995618081591184774560667685974464637352945689947368350724249519068216156340712198298099074031550463988790487858628812479423527021107725601836735083264895448977221163896235045859970051680262078782875836508100851483109040151353804329322981522996881460544666165215701642650066955368491189506462976107858937711344620263750746635157927692094177235909117393400765873663536466077232331722968923935328356416150616248236858586450781460501987379145023876086564265030583222292706552800525562537028412194972410279787228280224326277359236847676463958864021279963749222585559618134045498282078664365773700519138089521509760504241996403972110303869411915108715276182321633248172295041231722793047025445544853503306159912598455842720329728747182096137918991056750826918037368334817852965867216681797354675859917156677913220938742175055059004558862256077377743555185773223757013653654075607227075158053650385921695873185912058043867042237335644810415388013715873331664395569949809364815274878173830790688306380112903129705679880914776754939697017268870915990374544527522898516338241924324184881494370557360935433431730797447537089778818114022936474757967937280288507125879490101587435330895712147871531581562608770575274754229123261200260072858102498420227908907618441283093564038624583137566978406744597339434295415513665716804695148817761204122916383288753460331790892069500914656809894070483579113622610807523041736803059720786379589954146085608024577255595366984296761768508692996301340237226716160568425738897749554470803837028699884757552086660010877563055259633150135535533201180417058228001311228937240526303297928487760144635340627466301593733138787385907521190457349763656640731789182328104145648189011015375124900733059018751548558902514732145026653593282161400818624746672825453086796055085626279943233981662145248930001454779026556574802054503069802661483581905131870523091900703171730257435942498237086225352191469017691450920723546373207623149646399478349204383505734598057107231875358954956452546881358956165347753518589722703147811864448182387915248955924368532385468948833729510932338257497679846376317654794533462595242093417631580389908580058208277007067917196789250220433163594775111269311192312190209909696164414352278321121205801022976535543339502211143285571010594269780764163405491633007208492351781222308981309744647425963767681003171112609304812416254070815244597619090517911654688374633036702848433022648021345506653274443363086185385098078077944760909550006349544445166657717003856414009470241849608424473222398412267376136904915906752982320384602723959910449548720442369873171893763168694383241644557720280201067004319912305200602705880460718325160949436420272727311319513006135142716523751429913104520162080265313647443224849591383428092766297828250641267726514459503291488310292681833376288996088906636476445965238624063619950993563401741834955513722524786484106373758666586776848051184011586010763609425615156278243835824750701014707363470377058879456000150546895865214155548421297817568215651470087854043339374555620141003076346128877369027409712973138140626610782207032856641086553065104790566624950750062947986771141134302040699522378175019386040960363350198784404238897367172561098627477163678027351092648987062748228033305322405368326731513520950153156400092200014137898244609590190186328914146392389195207486273130534312809311573969001450198404458532009451072950669572984127528415042091410085211703865736859139824709959370778676696923273266096575661445780859211940077798215833868481638089803719517555043160371341640280920890043949812481705794231348242162616697295896633790453578371490606348876937537536054170814383444072209840197673823546897655154569342323254676781599315081441872751235013719290773954119344632656529741363625331924282101539163917339798939858037926824843594233245713201251280297987245056298385085309506504848656863748154803883381229670310706304694949536192200506470712043961822124111569479169383575651042176314740904980223086929203300403885710407548069182101973992593337601490520415877035650038726652868002159260805460839432204454407527047392681836835605239880484949515242268225787121616222363651369343228127107336185675986410537001690031139463909833410526176149641781863818558817049699278951775943846193316183820637486703729482085929423052350363244402999970881504294543167536295055953758766615176176210202066993326949169440361114617157179106672321809495256579367622979460877016692328490647752504881117808657007821378649618209138084184084501975778306213663425213079804251564641206013391529931633813808214371038314675859183337327379413588348917098434135849717670282692241617248624690959102839720130449026009825209854173837561365150809638811242121492657850080427871246819207574479172907661337224175302194450368743326281518557324085426798633499424434763814738357462509295004137154827890856668081123722414818274032911206946775778662144104896652562947248256198353703561031188625315530701297893095006882585519891143514715218258388198633706718042626965328829867651234491044705359712824515710508452560563245042718996102646428550257668345657159953778284015174804778537335425257391826733090295548647695567520182567309977244907332020690339353154715491131267611338270438398409800514143543087085461437582782418683296881531308222825654170473901887588415193523804402650332070829840491776126943815659440107724788317496072478093628974399999983566165598254819379965490046013659131415195700770393041164916217996679070889575678290214480910815314523457112048818388049120338341387619368962343652196558507573338559466341533456786025445645743761475246602554269228617114098093622461782964001481848136015754344238018307935139501070138441558442110982053422610586749416226293759493988084820546213511240283319521342203535619940315042821652048007642805491799768638579069166718840751949609447891625471655157010176595746211455628380508115340574367852619700707969303734813788858204356978672614449164766246959585008898956347918317788255449356978950424606839340120566774144460838272080713845674279231902841921989987821104247806032790366998849982332386837444977868406050056165609253521489994664300575543674261717557028511152134077279270197356516363294654571943244637136191597855106267900802854152876883197805101307230969492841302923122068177690922506819115583384732475699775247164710316600175030346765266498493818891493769155215431433323843596794037716280195744389497795920232723144565907751072326640410373763127212625152954239199883640274163943556251550851245959613361753483944380296829209515104494207480253992933998720155298901190889788096267363326526358618444931290623501965574843087140354068556680715804920194653774903414827660556633731581404670918213124846147397125273738323642790446526720588894154988381268250743117824883703609651575119614132472771823481051769836723387693808519112416501063115843163034835953072169610541291125206971865200764682971447311732575918001181616826994502753461019350406656476944859126367671595242629381590496515017393455177549299541727027769254192949709851802071221964791791390074900422652501252583153062697089337926173987350975118242113645666202739400514423139263043703386663846259890917596989401650041835124224026023641573541471485640934064542304042127885387343315728972557386883658390584243609925232025737009066167892795374779411222963021873143217420276349233664760342351724528065008000735685982085880663125963167268421826417989661220086121157115043950341036171394462928373153549653723448855058980132938485296302351420768010395305029653430237330733240533657866315557396220640736063618847064449327089925398349143554975622054305189080142753249623779923201855365178645466502815185595428653471733562715792441030601472198375876318902363465321052307846539804692079879845183169946696390204233434981686945221920164448542556805264444032698669839683545014137429224242782219914510253933051419728153205789499966714783043445084544268790086860395170462176507144361090942877548548452657716521044268488252625809608947808541726557357434914606184883002899901751124043287986993814000430613874371172848802982818393429044866725937417402461247661344182168564759222600948906135792696780985539514853522515646047710157409049532245211514602537593677321927842488225911998345454260851764567702199144102138316745448690971123304780819221996162328449020184392702476027733846131107745426965243627699245088482083295561604500806436495748027706074498061859374061283146933365169388513642070561151934192997254889564404634306068004399333440641491310355902763004574841342061059067300711866191156802416926954799286256068420259764056555817890310407621885066735512145398542865981353823786942513253362373501402846706985303268612063411969117024236307330039001187124245216011372941113760556512724523943231173008075865810871350939036532829508778494212137684464805962695286792900121158269171497278613820504381108729175403884293409579021623175805549247728045188470248452164339561355882224153435148525533010517802807174730307709679506281404856686893346190957902378648127195488820195110345125235852532037939442244191991386634057327014083114693203904247182980033202545816894227455100279790415280931510917382145407242391016746076978483492836314941143160488701880519607276526547028277217654958603793878009754766355937074086525844576448151601428148656947830162295908404443071079650373129161746530978435740765517596840006653361157940168707240269473516229301961937836288218151870615231878825349675770168627736559163309850114058888819105227551987298646745110052788588409668040758993843197311333091027462749837642214642490088481503664288952606787808003511727832967801879406640186095513202004121771471656474183785367241071446373216715087501840311777569795971229758640590959636334153068530407225310971674645105588436048497539639213642611397226030727056328052634348508687207267375601382769287836029925544039769868312802038020263074938163980800959576249760271910730200492258995191858854873178537712195400012907057431124087681484693976836478065974250941499899222930408140542823433429949472690066550320495793467887367098999123612209688733161044183545295393965763424198757476058032841003326118517786789244581735056775165178838717962655560018858095223640961173516778619758475989070171626780139613168156922109082634093930517063192384004176421150185313081042927844849188042082825014195933272759138772088785982595592897863141793008952749016825707370695273897756092565949649395434125057266277385509710900506536623938019589717478188034843031462252468120424927108565287097285536167526341679731078166249611015862372658737538809213503849566931636959856932805638323006898361345399378762597779544044113463382005066590083890438307757186218901741624242723982675320373609555067109002794323160708289118066601381707858845654998407565036674805163154797042112696562362243032582380569779721880119075234256123594960640254735994861067506703017018977876889937139878656012146913830940855057970132963439802098621955452284971067450979050657588935224741718080537523176726092117892794884245304653790287542287122174505442016925433341707270164186975666137865369603062861168387912910193840092361243358868941640166243883886722736529277280128701340092515106966467758970117041816460859585507743590420616749668773688034112921511770357237896715313961387985270589613296413434155488310235926910082169687493642682993122452221887189157823855365913916984496288209775168461154347283677489605799569196744037742816450802930689255093187951568719782084246066087850737399051591982427596320617587666272068214533573105925522965597361255778387972722849677988326402251922257723330322220410822358407343102668977237771276314839992221590011820101772424979348889823817194719724312351321921140769301247385410234611287887043478867585378518996090775350770703673552513596210803102838047642073102494166870529468323667527409478141034902412344972843977726623217615399379238215277836797784755083159999522389107057904480170227376948244054109020392482928329289857888929519168372669886513498921676782803373471043591296008384128616606215106134622199265073670342292995197014698807566535099321454194530896923661425265547441048984108196648309469225816196878926907930639535556122256473414352464136989364746801070793635526118667509493646741901912033674448004692211893890736808670853677954981824687630418644006455945882190263482621619110935797225083258802545543344753341158775626439921155693546486967575026011988336979379951903581641468960316669425201217352997981763519140728600223587150933503201241120938902098307234906106985859674849437361745234805790193246449769306087508774034287184866643551419466027749756086741067649532984638952785881732762761524646795187797552851478077404597362480171494955952206667966625098060879343105788729228646239951402726678684190351439077331119648462325794036344666052134565385103106901303380852854181754876463783780626407640972061938063922197041862543554365977929068190732095889488799446949424065297615832335608606691156555692761555284639986656399407116345781503949064128888418520245968143595374428333937835331690433464593154859328085523059376597339750725958189506026987417339793266602989513963063841752115425664974548887495502131376598061032626643200370990585726649694885833009287005644746080718065033083845657752192586921440196453491808330513419361849217708425316805721339940852071013421932725802307090910634492138563714920941546626525168287945629078781726608729983051207304496699045012433690409880962072662963722442092366476173755065480752234945251393865501255198335390700759211240105455301038703892085685740874197565254069473677531237896945565808953016237549071042634577259733664757146400989315435638273419807168219670916829549922936269549291748560046645500675982512905554646954786529303274800633227117451339134829141052586393546616212130454870140554067181975857436682158882494159915820881360169348624543735865587137857698603219915642849220335154105789126557301207996026956973931341093864026728991319749004285687656611352195693007875069816625374745199100261094865972253139043180374541750720591863753228814955040789832022849353783426538311899737417855026532635883835096333973985955927270384546655404410982969477595165654931070958423699986179217902788974380607038285224971234051467563821525477118642389296241544088688801050718711961201809596742782718454022104101192537863309483523400781694530785962869419036744974775734338135694640981375889885574862368648966245811175572965477972484974036560134525800715962491207672285535331307538622862106521094591414052265207199912501248913862955503711499164400323751813420288819982125813461695127752715614785773370569333451915557169234605455767985149102427244228162219690254013942257139633895605761933663440042583021274174075687651975387312073112817243272761690018349886898586083242071339628639710239929538077794518387594837535852919334920967288615072803912997297824803579796831580525860627737886810553494668343091964641201602094988465741073682027468727274728418899762821253906220565600079146354955144031103576512680878764407446848022189597750456165058931060949339776702243434132280878128489941689706863130436728410160965661580129865876361406053273844925321047220763165174998355809666304297567732910362647344623466655653796959623811073413822387908873108316213149031411800487766946760761226887985749890639736519851015456530683905665849161136306520731322854960223971417509421418353521614043506952328383077728201887491546534811174665062805293504850441774097571984404080084766589073431530952107633081969956341919892047673493513767699845245118041647224290480636830348697251978487282208181870085194476095858249560516632844999008963972977710061656321558057016341358388073044974408785974113898820916331781278795577321064970792638852807337733106426232396551304334802233138903020890327404259510082691976400932765329246251783786442267296920712728313381533045475930921359638539217425396162903682641653603409722187742529033682195696458049759405158606215583534448213441396395921207252169648553077071044793774026752965725070979914291355203608475258225801886289584187038809303432075535092003910243320927534812344254425129618387839020462184738074398120282824372468021658939190303559556581350977628185418913799568856554993466401832474840896845222521125685352169516437354719013604387833358888783153533946542364238549127098353439723227391412663316658259000102448497240206207221164245885005238966313888073567787823784702664273340628340614102000755770305767357014334493312438067426126193129184004416905840043974955244860207293806439826412707516615370723157215822346457218749706961770793688086147745084339213234797971608785639267849688170375381264348408220628030743955907557921352119900192173903212786486227370110013365606184155889000265060841048320747731568148325769402322014658408553121254038024661112647455713045163640048327566268280815086288788530539890125310012546620566765124664059959550071422461470741364330661406428250397106956748804289158043085992143592691326574800484889156076991463497930364445626570603543096058591763420333183141692925734115941003891464323409158973027037195202570800730728540962639050571924267928213269824022101719149551777202799197986622110932759444398113871934649045549495238111262501457991714156177615197120032827762314405228840974225256928683033638031351921094335290691641037281826290290859664140708416882439347008613317194569577234157685279273936552049211586399103132565925375593176857703799366948493426221268197799742880084641839582124283691085346222870740586434759282590895331999576171274335111625217140393091789868632520999955106497156902750846359041489832625824123417276608693248639026919354926748344393123993565588459886456329946249820673873393728496514194417141175399883141491668219827403758841068056765708698691763451424244846118944215263189462867623520016126606599430681133827385159690078363729202699755766606365699089850189375185647310913046730155489929844946912238709206464824032528624905352358907153517544239066896672622870638259240317735873816726820747346174803540627170552664674539238221652437990959166773339559948204348281022518399037637593793916191656688893919740421018324559977350969978424616672282600258296879756730473103793003089063568558537499902915663627662522870513750480143669363484414677564164690883196945945331223094684977940502174831521734333249736289213462289446597480307341208414935323033060686398035992649915247879116468410488432263833020307386673206342856689640461817590653891522962049570735605870949659468327577511137229388737316848307969476998454885535555592050710598806781958883998013017637208246236649546057385421564724605864896210709075227947077486209014202342589616110777620932938661370139290823270703781272022415641985662675965145387087042858073269961296180684421687541945357586852894007713947099809142351170473702865107282769984208141197425197626977851115052208802456760402939511979660093615218605266970070158589682937048793356812680839728905835048754009414552381770193913154131922482628808031716877661267284040391891178002260793957521046057544215687212351326253061912153259786457246951346447093499609471512133185754919570845049859855876771531699513527384928280002483768420737642113418773633072991617065709705204116913716179090106573793348510826230783168013992383388030208953940463073782369010892143242632895331695831537970994284443774902962751837970472848405852713797611616865393064567886347653735497123383386955213441221089936791830434322277353137805756768324687820241269439119993768895387437946288121371390838533554389673869685450876349012644344726333108209871272349885987985123612206217263623483030986563389327283579766378690866737211730722182768152108880279693664943498666975836477616349403177911898763343019946822586292340576098100588010503625854713889969753220887477162054062317525426446215519195258433807239050719119707311966246572180524338305498499960220224767933735764488479214625619850816483400093159115439193518473298322012535057645976426781269839618334443308774634462267574178388810878875054060427098619784219908759028190468138607154000102728203951507249624811850082930901348673436124029461696197881340084134838001378911664287924969592140819028864881763820549515858055560829533547719518903510870555832125603940339638137471989045815544734836776670249711110127634287871297488806978935891765265993249092304632663218913019686374937907093861025778564141105880419428671276092191135625239956894411336728185815847744544094573781675644516282382333783951246293116183360721449629970992051008827511009323996386608343523274242430698723391607775782051581433835330241368851390407792517805515550621614712561821429968718816854952418101919039648969913513646874974636987902607556665400715663347298379244491783609202023387925903852212599224890749153644197753929530842240377992497925915367398426854356132647239109779953402244949160060984325587619193562433705480302701042252524980013405028604989874549851703085805496020659407438794696183896475546519432620561145009144071709689211995865607832823343063991806573403702420792772458352214359138613161234865113874603262533555133894106864902995680956338104538083307613191227649219432567420664780776372338433358391462594986327339725992172448045280565359380196127336934544114716500113417189998198642815105335666173278587876928634783603228417726563977227840822226241857024993542716580624866606185818067059548979456761623940434697497637978585031435226367562066666640527506207424768560233345403274026639377250134818587132256958144425223638136891569476072437381975782056260443139391708892602386646115483344089897488066680839019204850068193044933294221214342033992252138712286239643650212777795887899150634804558980532331197479319222804973170349153742041333176623895093004376170662066495327507619889082212845048311050511664465464128038831541185861941966291331366041302790479310622445519197146177912547878486164197144826816041458310466673327694002269881510288392120501143476338195908133533560210605372354943168475978542063817677258503701614835592065272054222178861313572390811479584607185522312743124501562178956435302822765308328990286506474701917896048379844337777567127712739481514464558505657305191602079712354939730037521630836055681281081932235157909944197960382845465605324471850959713687695943517174881392704719600445139033130075997496950820768789640383760759336325134337903749407187503381856867167784503941318825667452204304778400944002026385579920953235673932563927614072098938991386856499295215631095680204331525213720238473115899381476884250602597273406813672326822424319450943713595961566461471598594896330728627551786921639358319395478072850460213574499408359264090526851815738125186326851798631794427855533561946754956624282249670374216995410435596002823052710662745538067544612771262186964470862794396236890196984346264403349628763867128240824639104755367944018452875458991372042630741353456700773031817465352337258191459146473827057169276862175778945397506567683931286822673938218261005633395453019930716099424689608651929738606582224489208756834281477085935302362976205854989025574465382727430807728975246307237689764175129474351669831432695337324840455551326838395564303981239054612490039564290038203837999646358701124319526365314985414694557232024150866896397098654746536462347346256022864200668417323280302641606311763988118308245742486640053240744918047391311587592148028775590031544558156472902346827919655468374863207689913313605492521115658040984185056788971973092346311898522917490791085411640848312365959841293720680645742598206247312688225436202623419576852045419831661051473453425002837318741746181218622010179327845046805823207325197654172234337833434592485375395336725781578047170033237239786683139492326332195841860746238431118040903900667432237051714297588158735139764657124348848152335044579334006103643217950629180065769765638777082520697673472761905215232616407464497404742604010404268382767515519989737185434975884934189904939602054980640588525362371125466820022731465865462342761068383436500859944083563811052445859722615751374968205580369423429910451567015259953107024460542302307553531239382243433401832275971772244717886847150987040993648028756992688817480690769352618423432018463075738301058828551455821851059339848469566411679744373657524308968625555094461242213718143019837953186772024560295123094454495787937051550299102250818384093734529262843951838865104104545684911257240772656468673410230601841768843034116573050235679849314124374298595707006549614490608156886563201606967609022779623181091759597585780971651421713932241220876387290316379674719318604031524617493811012845121576933960136757165768819386946117798081031831232811273662938888189372448921533435166596584189812297291120142197341203823500805795980900336315408285049197747872450968528295732669970810470796071885786819751709876784557434593768714807633555725997516217786900611388934797608746782882917346984876941077303845063477442495016829038451232938760435951577068103354492882684523483953102371240538097553598999410529599824201322684736195104604129981787004836845002486195998726766948795791036970518283023654936924628092374871128286522177533606906862598719324329159196078665354485730443889575411851987962945557168223734350027262876829991802157254251887591950726652913413361852645692864352796450767939209714763478316194792126070088731867045351751892953222570142180983280030358527058964509821852346182359202243897608523435865320235726920777746927779847392998236476394668618330640488720955481906048852214761501378117836260683059572786432815269193230593551799524511161866783364941374767551590508232454766866191233358057974224507532555671863796394910232389556048072497541149191269500469545677539015770213615747383968293959199078209516466464715866042302804127882823730418560277429535011732495061627507349129548403497344615848496820760256386043621623144785919550753156627524832133300483347142366065463209602683016749850515516634944764054873845938383041569881845118632741825276247490444282534395169611109416832396552412068628333676018927424170377460086242281297513312003530552108269583493378546896539683741845597159489286232241524250698124806636320973148831709487074086242561603012783440856384475278240999225172197013299455036397225499896571462717330044690366859396855223720996465456626296527476556358354291566286806959303499551845788635881273030941396881994626366370159509034475571424411790210080333061580322385831525560053095427321087942453810320688885223847855683917070862525146655938984787359196701703748455712150000816030117318342830029219819428572514990954049539439141979700220076055542592898956936025427261280286818066541300843397867058179274934734521028252790165656812549519614524721631791579081559649973052813446175107345537073472659326723540331663884306801629208121714087285926529313934041162440312755357885486011327223776066986947157745833373084502863484015944335241541117191111701111467156896965546967866125378778748405979851102121460490642555730969027366111520897177197198408956214302430732425182187110074586035355612383018624945544133960368272563277225263519800740897712597850262742144767761496228780151202515196381448226380995397534642314365486881191258321884078087047694402602449954626491627363883939635916308274852626931332919661388867633010321432230213195418533715179739497961150528782239607206130605859812219107456223629623774089043912369622550594921861090064935857052212265574901769231207039289288312336780645368445361094516217027496975780216485205158629924690947039230701640819974307535919161943563234569111145493678877189370132429335285207373762326262009212862770500209852099662021043165112433732488699361139740238516797471464152283858590672474423840698391627978467553213219149222114936026482738586964966439405786718416192651188114785620017224603137597146137480384693582784481382368837614309215291755365122611041941536974972130294265579931350456993162128581261416931125098862402250188055731551354992268071148808999351610123151282729499452299106120525560623486054726564617538689973296421777274165893914662066724929713427283405499955016079282811760539455241599619869311243315574833949623209553254772942175443193812323310824324834722836212972029129278158034287813510523792339050637098076453179509252163414737007261562520520416377914712287968658192598115303671184504187848042429361751315436828083354864367887952258228202683285010779621448177477401826322350110682460226784726603227427643137823562086896786917640176230475065995582410619209992216808358764402229057417518934783693788553817089969873477372445600309104084055144092800069435119857420631056055205064869448012832190591756537173716490767594928132289619988251367450897195000540937315710456168487306690050418363634701199013280830939897265964195121437759842291626644898665083265843294453001831006908906392726906848923347017420422940241642943593965000132022935007693430299019663331674476135238261688238394783501151878545834979418586644507015182584195786495188270720061630380995122323448757811829952871937786204087092401738001076864178934165466740889699744859461540723154544764253533032877145415386533752002203842362046499034942939066750276758513727549512838141019092842495049444723942678062355005216094597262710492733597859291216583857735643425771429849442484459849231617120311883841597942822437418086738888804441419229876265177992482363961239430318667949161117358474064392560065878327861761727496620973637629322286091652045953430885991576093573945922371445856120030455913682628531198766220703230305646100113224171193177531752583153876754225592464405580554889697692925008441789510505462021767157293977734352212398182584655699269897122858741971434234264930933288266005318804649100505539150934780748568426633291403966851954735949063648082577683768754387656450678179910443303494007492406452353313648495537475200103906269022737758777640843054606464051969969353676611746757965973074813385811339131933565088036272387550328774233343409985837029179810836816538378982853058619688321799896963947158848401290860858755019604611243827720084903880783405387553427469760830061407123507907310826366127137067894698517993113208706318578475705741251384827218057672337008360684999943654290838427510102866307195554083229759983623177533457968431621689200024061206016403840423914031660277934456845412542578570858673928261871450579603514932335201527500952725773001577948990754956173241388554880349779277214465857360881631773761396006475408633849413492704653914762130170198111721879848266665917273674387386024625799504095427394746653541132289666866463962641460425286978072627796869694417381269428333943867943424689024903106916173919629427739408242460330699522324558317403912386212130503671281075964573900956690187243125042817184061829836144054952282537091485623814301400826773630520500385315928346496127107139545614571954858271577920206532472097209869147462024429987181461193373228335503165181247127726338049329652092853970616704007259222408480410423016864103062506830493491594091941444742437297702597713746311594322008632673341219021537933501555674826944183602243780405877737809465784478361748262071258918056145210351802292042786067070930838371258900409443832434876576582344613312994226815988720370342562538352267728058896370469390190818914379367050635344944066298672913573476224339349667668738412218672392685239455016182526513058320098576453884547795840718373823936836901602088883804040390765189803747542543491620590734345677373636944487565695789841837980765748898258457154742030148705474155546990565141369285465466666374815231996751892711057746257355766644597837370523170447580818087323672385526709341492850371859791608627360767125516317741149571682818358260855101081875665992223499530401658031134555180032483751863944259645024929686322790553814629112856475234412905438337741760603430693257363848426139790832397670344175214201001922152243944500913315130322088444937484802716392302944011048370266160299201242532048234795975132869866347409288767785511399026756660006358241613501551156709177633951199329272623213850246271822601033473986906236037397405570993555563901003071167433423685568321279841931686671977136318975064648027323655742310145058956692830809736028161392743422773453137120808265921398481042243119124214489828280144958117842689560838349673926852375751001169973401528359754691869636274232926383848843729481338545714604350793320199420466177798390032253848642600317727450761580852310948430074598272903581318147439258634596574008490235002307317135151015986960285920604335121953690582601637055650090287494280735105425190753621891956537401455136603094139835607290193589165587269981359857330161741433668449562529850619329295482311950455568415655718767121231634203589629959549031694645219900552449211650290141151735817149706681821194703325497800259964823927498453822013266790230892066977450976405108752448759254796058180017773988651858971796979723855251795659794856566429594292466238398224884863629023243790347480055834916899644373414424498813423909490383649969514947891804732048121969149744003230071367752010725519053852003758200069580849561706245107870400609848717768494617952146127953235168184910179012083662509101400483597137015869901161975445707845438974790065922004420509260120028113149052440657047605311792005811509442379436783184247295731811890637814014130960145023266314449061161528126397788286302685630897837775875563242359820835282209551264774292308958467187777414307872902866830382742722009286097776977047834930925690799830754367377468097407314444754329226696214894934927110752374449407306361466213996011976958099786866509871776323259114461842738721946053090736457808390589783421379547241979649118692582193520392275748031500092790329350212128057516811311432370081013858637812170755063375436453079829050174481561602311797359791803989199205625492871453011424996154629568840473872570979037766808543024497739360179994278544391839433436544641364483531041096948213325498922826858446302183550701835048259984379893581979875024567742897306049698637707437040396887930328904661582266730382547378700785381114951307631747574904158125086852872576254677090532111372514630598729771742601098137131341191771484199890961793344230103284129394632867011548425068676491440175906887774150676577639883292032135575682575668871804198455434233761356455535359937969932956339635554816231335833355452144830766459622335968293785339647020866822041903412326395159047837674469647122201150664985193429511158113131955332052265562728392599681988138354266180946602259215318277148558788393584853451017283630755300069766931841791899486517715218535271627450349660033660805600225349533165313769972035995581974988316857601476397945350697725950800412834931506822009320748951269061741028982803316101853124259220179978726270050229257776205698552164668643822430394804413686054930202791093738863643923596564817388658492206015994038907953570021840266327677267545812879046406482611343958087235594537664273792690252444112777794691874220176504436910355780739215866453189166625979777154809452728936916603561011535325464793671492370325861318131212452251527801403242865017474095294787700101235903667139027339141915096474976958501654449048203747853077260540013216651161036044534068519226830002966146478802724517219773978932107223714150167705387360010398314934609348899650854167520671447737252684465505216607024084784667708408895129336188447159524744731168691514174119128079863820272220763805588529861113493517506143958716260037643073692839838671915279560638784335014294055351003782977834443618820732946522777649801038031018006962853639201785385227236901976248374350686168877208804831519045154964831173124548249212617973764249045150707896840144823479859257424232989795771570610037702623520773335060369901944280805644200344724616692468383798133428438142853211823735224297833532629883389234992281571465629632407592238620681433615174104446674242998467590405175405578693658973721897268503616994837840851300584269507375014622971773682518117100351741724912082415651941610700867393121723568446668966575167273383465369819351728109267447830601056302266653041632354693144026539334507468097334860088442049776448770260229729136161303991725422060515057647495117489095008290719047876504792494940928447489032293161184075727976847111600921979655644628781405390925884345329098559553507249802253970427863985026189135508044024895624811201757254221910368136770986928169543257466484572602802519505160609541554091059371341542703932102461108110283466612230586669473743965057118565273728415633553622954412523673505929822187909276110543254054353934844857186490084011582890656426064464037164633118751357579912677547258511086111137080443758798822016409681601593075549059147189428111724447635678938619453158849638104069828093105528368891534677264189007215919589212516529171484992418035525027583104731937708412334117084913692377469436328720427146480859762588554350326596972502654345446345958211238647375440980167670907728249124495171425879283193989745324223874949139430806835619724572908745719812340367703620253463829186161803474527287286030096785557534646656597231581630884026676661574472335683796412597773611785628623288730876844774188657170407822991135204671938626869215872852765038612068656058224427883466151940588072183127331056164838968482564304003064359059975670095545438943147381599698718645456178650794470395379387098010938859893132547949150680657452417856949393250428248082184777744672652192014002406599180718771396191443601280621282092757492621413340747680963843210153959724590286602436573651411265951207560354326172987152632215182094650831989672582320244250173415115028839746686951029313489108581558284954836054939320368476831360851840332403471447015223703655515287542076635231807674551298100737327885713223906535207748929110383872565097835365538123485842614481636794540917584702135957361826759719771491319217974799219099022372495657562128837382307699579734931336431932606367578873867217503152277266933505714423580104412906634522552561693652659679612431836413352976276383314969751903125521397735746789650454028145924126602828245667157587409138625950810995541681823993339531623260992936187334575811982542405235921439930723457728597939922795107343472040638936010584602833108359555431717634350274291307870714981202128557677865346540983192023709553658519291911144299718973856219641980728458864486761759638656126835241087039635719324354645065994579876568680914855119745638975935436913937655857987709276806276815023440350042636654503310652542608728039271601599338373524127944975323827759405388789409985962325968391769705463339502707885093960149769182743886232553908762452486784981240973178912555237622997133511850481975687566627844002825849480572280193023216215446795856224975245351237892341122962771320418383767841674570405568651137515863562374283912177795080791793999718689868888758421878368316050601862759483165049998777065340823029422330313887519426186833383109524149194065190396689274374648405334580251624392595871505310595153694986777749381625150312380052261894187817081224780647454522360656300225615292009473191406940143661558520803555236212322038398443731997460989191674785173792816704136902358455232187587105544642866397609984350003760241322030037653410078271567414053936209504698098276935213007041844139038362029833386466698999954907894131920624919329488760802276216100570929026493922753699836187121090267864455373174429307627412467183621840246289144663530705542278076656203116597711887531345025951551121511884562616710222982940107228597620892601953479187806981603437492472060832843925240519095604070186759025397846729542474126367362194216149515090113437489261080140000902438103275056574744251032725628146122375693762607679341313420517206674978318752054547195473575252600995006473705863308806842483434186537193282409727253491155353566635082846734326154643431725588963712678948208904893382096277047073909896230624842441936666704390644613466961119253197914667189409557369141043319916943365700765818213212385421575745816373505045440234811900417488260790068406480829936294970980986964860883772594191173929523894998223475885766914006228663936220663255682675388610762132711913217329490052186187515541852337114710578357357387307637264187184632254000932634692920294338983014339866230452069063507238281652662378460898286310924219897324838977239452658693327307785557592524112022338019367078364737709169829344605775641563882494302673692292009811160120409325300260333556626245630901316660972385683241618789727542536207608364383012453163578210359396969115142392179439117819747095312071778135775726198848543497997759388702608033160659994234849790410185499263318505669687347253826742391415660675050800439064783142033950750341201139005704847766743011934988332646840342908457072029858986038984433320428055027991164779716967213851751311792053592485220658783146820946251021890322213985468416143858176393598326578634050668956559559232804326607791288487987621166613889048025259982364706736462677051921262393088311388192039457839959306492783651366145577136476110476166301193505324160602969348530870569351742206172153072545598126337165022671295892285707803988066207056884436013295513041823639581067402119608329290263577814728724712242306182256855960817736522515178122401332988685763315480221251783582711272417903670534671509164785521925902122199556317055435407734735110727147519008184238801473437259819179562398446026367525822915169556339377169599483688548673368491036957295238298538599492740602983541740822746211310152132591658523120946644195986575138016163903605825784467451998967917728961364980706601485695284721930882064943038125669057051201245484680724658045040423195136973202981085631579660733921030465569584245986706983747874638329516606582375697553066076582018766060794366181402819434857456062705315371474235101271857131068783136514828992112561699813003810308069693557505068716882889743989883272053245205339465170215869545325327674922797433596244753691863794371537919610483363898547016316658180627696133757227494501575668322589872196604641808555915620230452186377260666595994266707440241679739278116306285670750398470355384634422155558844222880432875835368818383877155682722113798199675857958572506573324548990635635801934944907376424625450456111541100133714375835909535665691940391392978570050300891452254810516749712017267007968112298847914447613805178446482100868611575387053909816427293383167229706495120885685733308407619892625846874676819190015268347243376190744701743323417874329800649047337829531350250437489301737436585777986231394155122683078817498810493058759402663007966953865065914418248505886954493251134829400537628308508042775354084739976179386719646002271885570533714556969317428520750750833136132602886050994344652467837487836966097259878893680071940157530763851982927659526332969339923715360261962164280471721515954483616849552308667378518185670402950863374456082072668079708290654697489988066608827102487341807666602775773047191229405642706670440462275264117134052984504299724211740292006929907883072617603181106361834466367245403493278706588473619782916282228454190491132661302830642002061277317072710917636007019228234148842688738423894410806065748305949282622587618700186123777644589655828858892787373289290587502250831161239633660460076840647220310487880833762623625571371204224345070194871053049699563179887733327734478047823655825476962387107383854041985115083218550701819511852281099494563629057564686158557425415623821275230798658197969827902029343863643513904737696037659947409661221573721938010855812607736011278215736514528530007316801473930217047997777203461470968451351483521321650806778250154187748022768155191245329833528606725844907172157327716492361401266086012624057202958762509718906370312833896662581368656533251274064773710227946145441462518955984179732280927139514601863417776047893240304881177873831683811518017920547562457475323571840775670436781055496887419700791271280815225831390117029439617975574662003684812065282059279697753508152344446997782244622064068500577383014178758010303508802624492758915016413712129015173367480830979423692397399998437179508736515712933888198371190837801962072503596223002961964740059716861995216101798311598143086081566554099099966911705487791975765849647644097506764801216414198977227387943887324388340724768890278289090853414804222255076117816219132090375178059993396080782735095200354930436477497429241422616808844539112214586014288666712704875106119233417138730391620071679284270624450112085282717654770134455583531341519604278785232219211056156880141777903242083785078145495091280679116514860180507952943942932765739336890454181318848150554722769944313895147299109211413827929730747107887779832349264550326377482921285870047583819759048944655927772192751628691769750877215451706225568930151346907456018762929897786301634046530477453724233209558652273701917443300800134307816740153095102278305249569913441712031882847728317454538027957148215528971065803156188874118577131544597834796165165468145956350348040169055452018242954187025438204347069138059002334893453359615386683620866516038162578601170518163289116827287341019642274866561298593406094897503142665579647855429917492315547970504764034901253561697984162340352835494920118862838803569688122807836501158869935558974523539813550502799407920304240588820898774126050055885303667374657918247288584465338661125346879882237646993276678314900871515416476384645347324004110657268156608541276473417971088345335480256628470990007169250875891862535579077716966552325872500713964879409500148441265917552989067143604994068235638310011487481275873634006617319459450751252454727360489740381364095106859592094763514350668270858821078727515775373445354849892004468494517742209982341562076741299728830298276169182624042668738449958942675412856118912709641866825694891313423552114604733855360262242155662679358994357094146772900751283818140823349454300703672256185265100845316990402650091126941168068635011517724638998590068353149888369189978044610944487099163556422022312989301453840295937181026474161286342659153581869791327495844544866161386703248208843302513351615805622242885125520923495371019334889247293147277553537419740408028384983580991115435715515798488066700181983712873531576510926351750976064010020101497522736233709530010274281734685214468241719776611988442934577707199678056487210958770590219660025432095204612014788177967760682830429129913159066790077632492817865110866315917979716161397816048799800595800777462139984092961923453633082582967110954946360645078072515248889346421509205652053731394493364005156005988766492000968867705813440121556699950373068156826298586262568048993544514485528869086935737177648683486504735327308584688204652322380327160357437370165543162797570123029203260965530910946899222743012866624288227643012825073399549296790277977776281686116182668259002244070484134695031849651171287573862933026424460741149486382638536017171913663948702922001665020896815125749384146328049530245359078165164500500615753556722236383025189048930120128933150051097197808005513278517901123887938450082180909705195890210305063038954913206035850594352823975166462837385115112856325965907646882736290005300899318312954562737491063674722518243907872840714825447863775399495440250457452199913832705687166572107630622288608022597516111855761434188768420862799720210133986764652457664517484699293782937347753415191356246122493156669100259460871363986925998578222912309390852788090800656331070875992787142182811484693543372015416478108696478938767879848367628464390928654303659892764720973614125005265065184794970100744790446469093536937796147510825459977120856702462482057357905578087227869726264559115246980963339915962797779209859100824979376938170664930739445309969752035058603483885451634151942653159525359153192863540041604448374611946253161704572703150171730084093707852180622336949152479091896114639003919022595429748224976928664490092237398999645593521751013727812064739854322033239699754711973138059931085233762990945409527304518150759178001008224785581167619360847993849442718244987363188237018517188675859619588049188671981147832878835129832984412704291295208717071064897446293514000804586389333033388507187913250435137934409463626564767188360130808960098315103780658506314698483501954678016715160482069204270808059555728175182740408473064373643486827993442411794782987113123320478347336367865784949355933617871090622313293037791520720401670419759949649425214628864911705360639023193999863175168443290950696885933425408597959608130559797070871391144479074887034923634076038136873196892866470031129866459027819300341500175224254145776745592731229155827313505837563975880081553967809651972940194477332585138767967644337612742640728766872409940312655790361462916019194196303698367776267406587530661999994513901118329051105860736209068988974609791374267148618513184053298438965381037079129448914671732676209108583885531675840316197269933208567502699651289221239114507260659725682068719767458593924858674300480124572560168284592507057210148800913652653384146745818279874470083748064539616259010223516634656208752766984933097800078055590597629897684492853614720058383103194371541108959391980912076319874512343592077921659688002723647598254035887140147849380369065430235398040612698830789326519789215950775616490319767724134660144255930277059001965277632135113736794173911038221882202188314834047270095520879649877549892486881138915974529276123559395894110560930586052540359323537528506864166060645084876981474518446678465448123313953676196364234042349367023974415058282902661720041466210594237301457994873490098873135694507544699104396830071637918408315504363585827947897653206000244703111877428228373413026082296547693141640682783485649508290073063186074042251774617470423187686798344048736008052834176849166821306930721788794837171983489611425111055708740907290592978453766774905744822584948145417313063255976100371125187625667482178513961430643682721679731474686116555461757626758851180339596223153759596957812271033723569307721751527828743477269146642622328889820285295809664237210813580466247281639328107345616277414028000077331176672202311760271084104989756149123994609209346720332520494097238519417273283538701625803838044515278679933330428572038785862129277814623735833919959360483033002836026020148171448190169358637811256265871334365892479775942020022684311002193669164157412900739980578871852044794474568057778031363228208993453554521917581240382826377898863473858803224779974587351905592957928500689612980479309491919136354751713048936677096018607714667740798403213304442259508405742189319426786061986180523181351934161893287409407091700419133153712127973615565010870761697800318694188556361943984379985749864468407965680452072971191184120885055778910384000522427451144775523440822869837810144124686945664186147880131269642258046453891840815560332890844548503171157007459664890769294918087934675541514261851511940314425174567149711663769745381024918175985644278017453205318483874943054558471282309555247820480580304139545982666701340474814875950290223222833334857170463975054538314594099243651302128621002219927916772903271902685680205059476844290816457344602738249313758330275645813739652375399930224846836545690984101437798093911949231826996873074218824504739476738355027738177016698475272280722592844788172298579530788959263744720878881210063896049094834756714587750982642143280829522446888694369193814825342970582713928702374143156191643530782298741340548201591451974902177043655972455718498161423036537037704105073195868517230241018910747254915043792280678750181136262073089536169793407488074458643788233865407498438126390338768836060152916054059612554271441790807898148656175222233099138143127033176965439464823756033239443674660104032257908187373496327032708252333254777100142164322261617755738265395576807023843692956604320082858948443093252813370160025282636386908727705457047532282777440179958923387795218052224482523045698483703466075097376157094491034208405789275317465910639807263070515806872518749925021861548778920692363271715077241973359486918599837275665702558219206494351010859989279521200584842767062007033355033968562197661740390708988750471577541676997147345577269352567785738967178992601479807709901613414682807248903730283566732372281773068987385608066517836346626734806538607713083486445870745515350002089938524967614285928594729562071800460026530392129108021019779555054345898252110776855337558125319054513140165758878481804846384222773612013750418457728483531571652784430661787477558438727740077836854272726250754759444019444643519227931430673928627534711744081519387516079575368458274016604042511000276844473554187521937146295260113557039890663569333222095337564731182227587281270039248510409542194011798168282334900297326796480368278537166830311752962539001820220949169119749096361866879449331349813148362128955669198114261684695709911716388383550408397482582119155584940396916267442395186751804961017770651693901812438769328977345915389245228791906146997530074117675759372955225638070466507146667459203428836678747880214226292990824043475111517958381441083537183037067540721837902426806990497273299228042646505045593564901815976916743688126557398908037898868914078540939504621956839344260003545143551753796976536336233269668552358219600380770280855539435406402396848728789570978148574160653492485833544547592583643476768796479695103099472589755067939378732083468481701652166340236881527082198402359925068652895683614536042039220537023258605629908585097232887779454194182395898584829187401928009610188992311886706175744796838756061766831612324932323749371722655246794947081432527847269489917308395987090850482571157233979712094786462793984512404641752841232896169046440877057068917875052325477617971655078303324698549394199971531554760328988557316201488188572490293119740680350888441210172710479191094585015907912138513431289116944124519489086759800147111592055905986688665074280705930020930790889812776061971346146691882896450935950415461583936461412558170261046062065102815398478376180226139704729042983916130319486945393050796798782059539377786679988087609170714909665542503771205944245584911423825076692690681324812375919930718931894975976257004734646210258143467874255139624109941962172900758064859751487326464992443828742311400727109001751207399229186177933383749697155020001835736329663995524107858723805969551028477847522357870637655898542201562713094546279914997501788011090901941295341836053660857026060850076148219635325263357679283849511984619653713044345354154912659431381903932309011263788271170576176969007074325807446096254369626399235367795140373532608966666537711579580193599030098045236483213995970984094293010186827363764233294481848355003257319757718403057841389230233805539591580723633175723976908560210877810679711490234925823951363911814933926546885998711654741307909361375151977459274107045045318048725264705525065811547660632899022406510805698193259887330188304950237897038758579839977862298111433282788636783728434987014584169621492200116659301519089883787187581502985014846212255334822264771500849818031908308485563582789380832480723050874278867531167048052725954469922958923800744597115480622514313284407933325490479152205561212820395961427062085072888488002453205020652992984366115755759541625927886041884172227113592479261910851539700635417225361626426768897951267689067457852342993905642769440168050107317038808851409222148858479843553447116777685116097564740864188350752242347145548543583674763139222020575041668123657375676441536630958687129758951844463346234579508914511440648181152498620253338182670020241121506934953297344431992903591607957513379901002265895034940434396728374268925468488412306366102409274411771464941611090593140450039871107063927586757033951024522826372248461872832941415556120099934877821421403271171416788235423341789571265199786000229309198999377197260846152291065464776387628328918915051713010980502891623540664686199708506154538060629689953735891430359173139984425569865010918350467210777728205797324915882184734980256471862795596042470940037035505683133423424840993772988347393568172809804262757920431682434350909575934749174983285572113194325054002264596069056700469692380131875978618820177485835162895779071113371463864712303441877809893822231176579696390034863535973984269268558191295873464265837889831023208667107550757452756552699037653599120058540485755441073781351433888488621075443033365848557207123699261809913292304930020296574727849404170308419555630872559641763848382083735862029324431031820519853011493775091315510061202552982376457912826581226157572919955934118577170705071530116549194486499252991448346468107555314532214047172267638682897599715875404190359959360512473233158912824671576337750031123552288426760100371854793654671776972422122902719282698473323362278214000703842559485946178663867638548999742492715781545668970776362705923656621461805305441241941741229124422812678490397017856278668441180208156179023202537633571118722281336231542366268071569457437183056815724572209908113767051771598091557134547558241996038076367920070828281808254595275986591940940043228490907647814023784042153232845246063854696165487290347572302869297959635182119971731333684010488078446589746693388781303747219168452809262059256841902643643828187773350581131373719050522194392845757121265468207281162976539672750638387372209408945959496434309423120737394534350741931681272627849732301647574091408879832824179852722340849291569628348357704601577467391766611342430240141222744323012453233230848211583099444585375851911258273125894357153097547753283057413000545683796952403899819747202064223834118236672627168161022993308548376803520194281880108611388685783481632807852399143481947412473613858509871543064940937867488399769216186137104211423470946671609555275104383916168118525722577224266876623181473810506308970858358191935018135679737152900901584127864282878774716456431538267664630269453966905585412512439304589966685101981330996728926314432909333268407365955041610073563317085222175485838924591367654918374975148397699207979152027890769206354036681386805974884106255129614658802825090684168049464653927815045284999987962358432255646069164043006169348663084894352713130572466588436641555931383126891624314748505407420722711993946768746309709956768038387228292882519164094959700353746560159041168991993772591178132010684678233869852904546256939032638455808635433462998221531085785091664686026028023516163421174761096568564906421151459802238458520939860766810617460291601161555299990468948535472873933127088243437052392694619845409457331943770024975441924061184041475853009643862541343378563635024347841093475483827816406920027407006332194983177983181970204609606956725141551006858182658217869014713095632142345289217461697523616407271025762741885794875474584771521764463923381433182577276023415237706721208040431954936429885794582693671708027786008767633534734128346842635675289585764332908341785651473304369696090046105465560045463463931629670444711435416633716588838098262870268822653390039935001687062206537489761408523479633302221322101987620525673896042315956259515948899008390307106028599817647890613927468643837540226836493513679571981962500459848249949307612424460245999523506704895838494970815091892577985061343013236987144814135374434402299173748029492241279421410255403833935670238762626053363928069142223718041581228832903248916943521595385784803625710070013793089405381718603839179392312063362448602772949885158545506519729070859457373390958922342746288650394101353110041883590866199102677870538794121108783049362756095065612226456354365059626887304101619180982080638552338695922249165841504451230390044513831838239284998427022718016865273183373432317473633001783721971119188360678831345432898998157948966314301716317633524469251835574165335833738641792636660563522195704144568550937065819926708492902774170218744477616504143263954979453241473734005324591754147048803444601271887188427894184046157297219469614761968865880164413008882877892240017672483426427298778227231981570620378464790452467122685428930786475530181336789719194632606246204148926078314233618322839797262202264067824843505624974166127412236065077215851878542199365321739786483994849153421880259654518223617877583912396317452393613086370065579813234248837820628785471684979566811473449986742926179666765177651541527291115828799570005286693191367007188216789571118455649587958341037058878554081099944126228256698630105855561853431232582879752040693777563124179644375527736277809371206352689478263711565499758323320823625359800918870297653080645988759834004904020868282873325209573066893487517369216814838731344554618845462235477835509011470174461694546204731994315583766402605808337680968138008023328903270879562895576773950539682825204704448853171065815058926720701371446384098009173490995007089641257454658873020748399411270766426488911189541927522516995105550480602182462113866963631172984466291746551624032272999439731076444444986668042145981665676221638212494902545374043657060915523397364134985266469676256119671224103102829386355690482476290885054871755694348130881481920813123302126773436701233796229369791086266364483789639511747911231870517704713254650925255478826358753738892594488007021090636422349025967969430782272638071815716430774021713123129103879387813943657862710693993495308329307111399760514859816913899120677463228360234778333455908506073440835731147737433588172791662299346984784038225859787657767928944322977364616691628122347440161749524985277451331080086742315566814989989657915048172668275551548630849553378633814516538889746933153830797955098772334881512605788548665341496182424623314182745338887546372946897149365514985815728385272290797864666678435027109995454804863827312845385499029865187484044821477224630309664782823359466081722442072833719144577301382759213624553752055368637012883404567047914333863300113972819442052412446407074531330839778288015633981393017993917055203012178548943425427628854746541949527714228815097278124666947385405988229699917927492824883121006302438810640069802831666109742106045390151181573646115808487823504953999863040565351507281020756921537757176872610742794464121791542101149835412743670245196416071259656050992873473028736117754184618294031452388722843170544689221546883659056960502639724773746388031326129474331264328251442452415536105209555649930675372164063036017721035168419933403088081123241807072291074148824762822237766656714987490833885357206366353509636332453787816868915647113013546673766988567918044202559138378296731136744891301256700687234557298826162119272516812524081053595675297238554881026812342680682587406087942670408513831227193351902144507493882307747270414769333081866593893210542583985077548666906401036007986093505970528358049728900054205480174669189240376040415820741972973888158513572240438707007320472520596006278659003635194034881182506131537968388127217508584500790434041729734450680929520127511543454869311050501748290396926543737218511352625654205143402052692116911846182905161580503667413619326912829849048443932218255494153706516324754507242062989800415541267949428204117412947817165619099537265573841018415778210362241785568573252546533269041156026992210776113881923171400866615539191038615245969181065532418272168182768008201368257780939105756314245751463684066072481479040347440051390784192184582637563944713426931099751143387255088741204395067902649713917538765335949812083688606568436000303527046783777271663979831861743007085247200378598624434115800881505659368921022846983929389821926611517026727800566039554105025523279274847235327262440856391164001294920728806251063777699040434199781347083552688558180660322359651806813889081451628249427400511180192081198256358552000317523031850898368328784661740647135505032537019562457492906107142885330472817698845492563779645245394960524030667303364881583703896292519408506752402221813734284552887605980829062237291925719444880184147098649697626232802166155179221898539424262822489506909121499461919362780851347660619320095860576952166259984292906466591935897495653264996636410581357563330985291670843327436540972264366762780328709311768933142776647388497316754280552146024701499604406364536780741455022366297150735823075920700933121671114918111537357017943487282090734934997900823115004291798241430239296514383882462634096141679180928990675681916683998692284312136165144220051058302726125262597476840912868785447903337036018575787780384303000002979537081439984072280221552251583577143827769484058043900427952920530149592858240481736657321149539767123307098561721247103635532373664855928664654847609009240904336022002039229993577187785520027833121997666311987629644280549450614008375221085325312587087494332071825384767171151970852978490079734211924234122688288267798608276333833475085405096703717154067287561282162625559743862149721374456008507663199211061636026294985998475974794744662066803393360434688795565283375042404347069099809210408590370198507208196130076469865640083126109122125007234902878735519372285685831433899278112232845500692628171941090361210808105774420534750489992805247576213383736142284126507049563578792920475062941449424984290108160645792578966344393384715381592581169419252981040143033445261360007397075024534295811842650275913606362972882356992709887959280965017088252107204202637556002659009898053859681664092253809319573270062703970279294115130210208901248066713314966013588375646506403590878049165080689143302931851984018360648227726213671581100780254101067489643177960304876329346673718022642883889798445295389781002907318384152346332754174734349145185217605563099846550587477530302228500834806619316908743504123934641031221886739984085417128378235807987033724477108524546006775222668895540718581568308301156397688748799760151313243277448384154515735506764108140100539738878327275780105708323832603721834171461553042430939506127401816592601293146987665205288525218960675795436187449773703951125560584886830880574161081734268313721545320587694980569733035809658868176229114758151050107765196123411484696795650776354996829424426581068205705835450112989746188369554786394843917466564660746247873684687504202046915106234270429131488570643702622434072729398783853390608980763007331803210142066102078229520800734608931273979287332659237289488325182540891237649753000421649017845727944007047517915718379571719784879897498018771790262033751355823826337372863498259312024171027654173700584163023265433713253469266831255993592254949046760039314332722374497656913327710121112263603393710590435281200840123269732361327742871432905263001626682139186698556459646843549121569608886291306337544574377799321329638490324482586722697833962253914946418375029819508696942901872845596778495166555751041039456404205618399435933784632814176106009278195324712062345189086518655509211340595914547872106355876144313895862395899266744083481177429033196392492468133941413585670152604429895437380841611433941246596818908172454982670598888213164368577259512628105422633475416106460652976182651831898317925175081072516878263169685709914732720586599629901705861006275667497900656999334767442194767167689198831768060895635475834784458733836424187372993503098968265998920937326931061482047327192217324143520160387298859075811603858876050326379506757793456118293376300496670310296402172510974120970022087051881359048983689977916695045480349174000108079371803587729611143849324522017080808903705538424176106686593241850758206421559063900229391809357669600319279591521360401628091003168910969043182963496915952547181598297310326818501417772114392935489710445013929401868549007231366170774661047845279386132209204656868769005306065046978613540112437668140880068556253235950093317199501244501328906233646092858335216698493015028053372972665518617522077499588201225587416401262590626674334813838413430679155540770817342784014244751995192473272560777750439553316738828400627746741198512331613652823729567709786415498937864302919468776553210592674870154527452176138397665016348422732943034633381959984133225829458011909005324210348034770989854258258127853489815293354579723275648789417662643247595358882049884252671333230272720866681070175515178623797444107154452164648601904551353978137078380541895407679713701404410950058530880821672394905849268158999774166221196997261110986154020649526591482279789714676215516458008780494514406365131071715991048971945329338019598103231286044408841362762948604836238696868735882607269097821250216192992627440622382939929037324102739462892198405077715010523381555819285677807529830602453446359616488213781681139257796833617212540161834349707971139257053743225734182279705689133083084740368926086992300747718755614246212372673625247534342836168385472340711097311591571661399925630130762804158975855505780376931339450172823851685140984557856712614737112243890326052410704183343732926707094734511429138807006705137349842969475982578508671616825960748491219404611062823541095601242211965126374089766176928673389741239373238541479702714813091515459738884500489976555814658904187760687223803657225665314542305310566329522210292828321628384379450427412655474441933177879016754100991521407681874245253149722583112957210328700314290870012848775792783427971790458332011584931956312295102551857214475283683725272178913090758895323310994877387668556277247954359121804164968071221595935458739498286342532451957464114964639376996982064001525199225745314370598485138417605360563288905534285822857747114582255277604034381443084424095296759663752406734686622316742303050032654640593084202532718751970867560947380266362016604123988984247714259646826486974300859237049453180406896357122577955120163404717854028799671971330673590699822755083377267283094431879145328099782134848686106020881886121939709699237015661370806673541281639711048884931832433863487623379250789130289434140439392835722077861555326845395976141109925212270252067259657599429375852195568834162570488523691397793096062602514387339533638029296763592427086585833922236204202624289964805197880242653892188557854349604162665609744369788372971771044041948235860883163572654306898652153954511239892085721019278454399087763384861384346931613622456545003145771735315146756931919182813195681868881296512274741622401206845402134076149728341505025698914002063715261769215835291003788960796940968769420602543667559862200191142865033224259782788157363596859221195662194149673853791455296600904092740782985648574632156206364591045118308392652294158506956993743621550100832022241824225371779226372192616014485986395430118739252261173465496973754743841482358834689251211043312207230264415193565575211912759942051255802403139150976944736921414411959566464167523449248681234113622755815206936003405316423429046847621509228489155210362544431390881967189827838246037364722815415557275362636100155366515544576828794156608890320148750779497352962783175311760801287858309739909644380523095988974100865053387266280399455585362452598016805708779895677383824430013941581550460748597335697224528896738544606625475038340517297858959408523787864975117993010794905257320268852670024459079380127124626481480279005508558017379359219534233904421878160561870797442107782298395714720805945044421241829477272320831577821440696471440088432393473373164879520166461163349733727450489541264960904500302625368374895623897219440402264581974977216263399704634171187611937887003414268036492454684226603266346258729210541090821722978123365508806165618437340143008626922153869851451840114748817523473291014335733907437706852542736962279320517996425760024793123148964246330469361205423093828568557582300909135407906988569929590552051031875786540918356981053907158450301580399535794792258226507084298786898155602550616583901537301973970169921439820641485379682963360603449806949854437946676034691093773644673998318081070408195064908742301438099640888617002216291882737372622569582702998517711312993298707328642240525276270223255426024868260587618183932073068657645786160621497853111070125419612985550343409395016602206805517807979358072331860843540981989586112986530116740804833230457838120530628104298631644839149572360212199095676638421812490362366171848829288639810373863675903618985192675625754516521339676560529978880868634286752075260702627791645157563277260498185605718201727186581447125143585794846936847544171338396366445726379003426022467179746110581033291000761518821284667002666460842361945514426752131676160840019626819421919414665246395986433258039724728011818597663496650965770173079478875336710255259443476572281917526082621626279916916676235032702501625956484544713176654353722742187426230109644951530429035851162799361446517584598539423471268820496705029211307590738981770732531889947709453658945692105171886562137967548377940759227877100558920530068880471384505427703966578358942499664534216547987416167929310865638223018794625861682799405789622293017468523383489403945170979587049812255582156948714362671760113522614865403184193251675071633432046558954185676347060421881607472889362472847668883202489142313808599752742264839241358069176959778672211667891089335141833401170564496033008655633157474773965261171160298640469008284739315796375752673823243121051782405520165643991724158405384087304399588243494055430082078277403860905072643065218161079936038155151920496627967372895863018655468783792137500457955906706756454262131493620835190541826959247657447270338418863609546421975344819499124902488548998157942913070944563806957299536062893441034323650629490559212474944565242534453402665517728556870464590816547353054794744260656356828343040816639788241383560874907278374912971144965684146425114870554967963394558380346062041041216272094180295083282591201975867826425159722315257666509565239775210022508256363717228935640868953558896190928934496242799721486795458721207342569838761659183593561513515987580244973736631478951260910497242291055353507482034843110824120976711221549450498792705366145979967802539051682385639440676542853429033144064036279263235514294738982489370039306504394672741821735235359038857161547723493548201750208758320040632903985942843580541161023629149054756818773008257361632132411584661944540761291147249702414601900027400889243626052883738615930880361040819163362593662148866364163036086831753242637113961638449224163655080390682209040781785049011956343581424048592197347158965574816754825692827063666805991522928687639142230851131403836817508343714870036993174175987295108963627572061851497711032696120300626379045930675755640312036825860758137381829837694215473868291599961972977546238826903978542743745427168819941339250234597660586487527518820721988878720471905906706526241415288073595690626262083501013511191999909035349584477112729808016605853323852600690097680811687720322315102997943084303923752365492248509804060982100254018273025182874545793396367645423063257595086726697196377969882064389497061263733844020353635935252197825619418873707752219534319964866144408204609052485997137003024821600146648942710612471971770410305776881513370949107332218620502329581017098631787678948307283751102117379126348788343955316037156127342404193789438486172964147056114809396322542601741536959885994382922168787888204153972743408379757481615611097663871572935502381271615564672884005480587447390255743251594389139984114732713311902712639774354289040598535947289022443339813814576576068378151157708382848728773203878177497189530728420832693041428477831697625691392146095510380993803171984187464693565667082302638064253834393306648085795733653859772004052287671574053424053739383363026794282956369526391136258838295427426551101216372416792698486300848738094014746817312162648095864544705485880560653296023718593903116134143836009001512460981023954590728838153479826401391895764287927956952300143163667482657112608982077062120054062998267386031899678730816281884138891805220408044462559396080483224798485127318780774536824825824418955906470548076638517210833649517125913010237227011205421884067821799345455788346287475995489195590668029538152219628964033064137549787740768677545484149296143328202396018242070530515444091438631868142269581975553379699012517209050116763606561681995946212767799061070539292275683179969413303135895923004106265670048476945374661748916465496583051853621934108181267979582496931069085052664528853630738570083172134046477979808347169117777127244590492405017383497751511762900734112843383237340894761935003696958852332599309186680556313085512941852518104124647167171992675645910071079225934040767810065578710521181853972180500653081945725835606575406319253427703567138936370100880220182473344337816733836748614099729225596849852479097871015818091216978207115053322210860301082768921252096138739924102264798151759522489689667922912380285511393001716119590555080639006582016546979911990406776885930141110296678490844129308313136965825127635840610567516012504731660959662595577872773194179504208988334884976234881608307223254912419990070587848869311804764882547030790151507970799688177190479351417053901685987924713317548147154181483695094619420947488275709779273307102582774017911069740596762936273778834720020335268438548277933352288566049743071968157744192424962384746826193992529096216845536163394289500467143199590845268403336640298709560773546251564044005005998797703833132575926571866192789041474928480984350908785177808395007332085163999917500666696902394805743815139578605058687911425777085710360108613681316275162759725267215266359062541135268753956331469898261215743466649045478721590691223035598920053237667263829965783140732850078488146674307774931436556819280225521494562075687900076374128981731192356802390533588104661176629988972032951697428250753171213403419341386258870663901458350462481943931978985865795886165892607446980964954402781891215257385720516898189472353765189989242776151447900174431587883685962921072119863168487186620771320307443123969795679679867185822181663979759782225926616217655464112956455350195323026802904388118391951780981662164271935980073253148268410734652493756203837846849102155613150580088063593220351001917256147484366767410536475583369464940370454422256335748813158481331287279976655096429739756966537925922852981994301099702553706458408633144614344147530136666488458243886272682080826451795227147907385229272180244071215856395583055479946718551065439110860838788294919122096036285685283542264963021488758170432323516880451893368059467986454354086256336843896729422217715231510755136455170253794717728422103761169309048709248111752238836361054991247166675638813279483653208973733994238627081192899389973986305035996243288884680420197348100066271088500799428933701887431556557395674552911294853754129676025318496097933073995431804570141974490588380737883290194481556077170753497505638867282134431962190596051009183904729409500378919978960367787594702890940483719687889120533698035099071715152734624947913077248349872993463806213138893049611734650780613494662418430419769135583136897883192746164042513958214441235476275053752116615578555393576923943136055205573652573374785297850976000255769015531122326453446849409637360585010668400329573929877476552937036054173235382007894511486377504439534319442301327584264390689230833245127122879162653284588853785179613045039908735833832962555302926168222541549517549331552080470239535097785072589130479568863017738005854711709245982467745336190457716570348573371321582282121380825683615132355859467113821720978934980573810838242869467248271250633288989630614106309246847227935529053751472681902971030458506454760735079195281074896442576656904777525011530545139979875104026022681603879803553163332507314733999774597587445589983044741317867301312519345341462745402332084041524640312943991839860461358587923270078274526195266826094274214663866489713769994613572771349756576605314893792743477924443297344774875180497968154500120117016593426471171693963470597963011058864484694245199733869315434323414238705946948378217902315032745005714180058908402353439063543696811272063673465222546372389586139620849332006852167955638638940373850973758225115395042031593966463411047016652165317236404585092007326095182931770598344524684176372321034060044083838517123874336285723009600064204480955763258750339830115594528638492905561575040930804010934350622385028873613605176765176879608282473310306227669555391473670376579351159625432355409285213393128547412427032657080116365401377002630043049907899246972366614954285877375601604951926466951435030038335933800744021709769693474125153674176504571296696592734692118804696959277829653886197323294136672946348523851290508395115340002478581524615067375063606027529131113001127178202858373737389568437356381684473674314527695601256806991303520339912299535886584920773229729839909268578435541855728409521722343481733241143274718709927962114225444178560792812577668611309655812124093075842184905089386131512878339210930296548173844732543164030896892241537707319975988063494976924485548536800893005016031310236013497190118878601159554206078620024160123161933097791975689128310285332757637004702836211988735202500738225867248940937059556168528926774944942356619776970626970936896809985359793156276019614679531734335511654393682646285657592038685368500261620534069697240546506826208493109407082483064223516163595482088776228474548783041562283788517985643470522394357680323950048881976858652880974047826828883064449031509850596862892041378144932759016430415098224294918842781086221530374244421961282613728553747995323169296863355049117163597568352988358566829276746834736451280953047434407450442770413319996696625103241659644210984246630489216093389568716225855517980965193400673850430402463485850273208517522699066275743353845685652779946769184852054231910774297116354472650071364815901012570211139742075205377513284760087073557899662686825852008909290578878175860985625231361799396021551245049312669856427694798087311265194358289875043457468017743324406283313391778549124416342536956329058435638155930354654217935953783577113033042620258442989225473888677145287769257097458455695873068517474919569850587803447767223508544878683499271248491578053454137655740891123333439223469676184350978918540454243550059964539308789002566290099883081822105075960885465935691321137506454787166267600602479977952761336276049084248292695479481750148460185747686992708523843600865697649726804585062995267827262474508969380455584042167035903674976678215259898609733825532845658808653904706890771181784551990841278274267247322553862483723719100593326180807787577859833984548299279958314217277632982718655176478208628196915623248305034206506051171935273009158256958365917813556153044028524465752440858026423717241300114469718446267901322715602764522204473288359735201429635455047239786020488109384135291999560692754579858586830893214138219768990328837798823494583393627629840383088902838513936774606629158866776250229110660723055383157043322082477468839903998018135300034980782863231874233878647437797254079628502567807363600905933377598491716829078586230961964539679766864758645329158460095339246744051613123649599478984379574953025427732522804181959513656249290619910042132285369289528097970846660572987605397476991023737687197660986452829137510871662405987953139744711224955551305406771247848125735651027762285260113205961311297946806768029361949651169285312506986534110803915383747937365286039021186450379017459445797404890920663271662582934721974784870865432308409751409629979035674604527352051726541273820058276822057544293848670207280408515504884963414233781202979876033640157312129612848298357184364665436292142116146566470914287904586413168703080851192214252347984128440559946637436997297555625377939844777605485376803299768968651206712841360581216721440570327498871160563815836834407914563102625790613461921284402317084190318292185306347415874360963514161376959050414387207860770091254964893109733909878850534399760447811407530857321343312629683219201050130402997727911944831191823514413954580786681912153236099789019667073073902185536432166388243709133363322016354875916094538696130903526503423901777450974624626369697099769908584468272089962349249486439938075960504034532714257500408358775725639870907913954866603808606345401265774749967447968513673239571510310345215906474957407291258125675718503797566409175295991094081259689139236925911180506121701063906699743785936444479483220832644281804453375839171145183300563314168471884108574581859677421450329596737636905465564724968829712501277055708434243522095487716180383184982482655179493368603961151166147124621140925047465833336795695310183494545911040040976878971857217744039789596633619136389317741935735664798149916204028816834636106313068410517131750214149437701597028160495965649412694391543796624131178922679132017910755256191011069845649385139458850262341686157249522048499121577222140308327518860776113328786206281182835271420215808003379397438232903343343948379129435112809242510341582814098644660962976078164805228474339576366527717563896237918198856946770048986635227371017945871429724976023957258098397873360212170867914594427905093839526772430306176806886071494659341308955948786786228278505486647273022144659961112237770816078056534310151530028433183015959907905904007730210694233743357884246102870428147742184760412042038231901993338136994039333158037475043407019488818627023631659890246604254491839824549922406482545031489706187406094067264829609779571308580674840182111242080833686624767808538803408982781789107939585862279620593826671744340360417179142210462515302788110899132237698297323070573383951085655596381965332958624543036300981086788873997059354330147944420695888886464943004430254281516775171152900827770692118405564316679164726472599730884335828198140870629943770572983761815115279245652915036185048029652481116951591633914157698133199742377257967860692153775725762729436580119713653185200704445322735871388347111986322172823541375316535988658957239660105045420044889512946434397683047785531726550916676496071643461492665129272416154423411175444166073003477643912236212999501124757382806016977458053730492382304139222804118967503294548334979950982620909364364420091909646702815134701676006349359843157776165596175124883831269990431359732543024040447379723654764976650896723589266097856260591290313157401390993789986178576165809047877540315937138945365529821780401788830936475616855631345445377858265800673932250934937839143007233365492798614892209823172661396591081024906389101251391995239224114980015205063183812751722763535192207905760912473758468737126822677126804257758393549734952629500910018697920038033775599808991222530194482986561439019880544758483418538314497306721521217501288680676464847129624568015956239653459228625289128583149460969020707054909876271409299725030143199659044287464910498925598476257895673013074971815259994870264749846896604462970335311802871466711552754414465451332813073930236524085707701516960675866534994671247973152166097897701256113136017430456714854269315443199821857766983945700168507754967455751006928774034273648398856226968520720686507611839470371551025433976638241612668691741087033648146105222476190192871781124046550541132497726877993370386822197118870426386874679900306468788668835352996069107624979715230292385834768616588411917788003564107990677929635024206034442374824446502516211142917041438061270974006438620328742658602451596648590334784952405489231401760073804141959329655235072761194055972943014088911925904082517650567163241910679119916356711187138696786793214544761939874409288337962609267938769818494480025217973884262484978923878521070008379087223537707497580396699510415562649907744287751871285585741378371667210003167003496237009767680439933681075404396135461932970719530375462831414969873923194005875081639816670423791849612510470262739580266543584330612097319817420634744881850677039281838801787824659193594586797225718165232421169817539643979611898564283430725742383282813442563526139395267956511409497826886238205768810342848375880275261956779961149242857371008842677052404768781028526334751457705518053187207166441779681789125217331282709077845407716342499197427541215955487025932459752621601458997898329811308970883906968165565366608697497383234303107489603752112970721714260322411570735505301212727578745704797066064059878079052410302231130908835187380384639913775221334966612093020049703112819484336442470273520142688906284183811271970479854271537404617719259833173904409611884070605226662919750568849744768625539559658869873661275648661312763339745786268529555040977338951287634066641446395368805980178928314639743272522914972280080200913963560361443846254780250325320487389323383381791781139998947885144658353727794083340083679365478141888879413300185984193317694204217541176493079460976266106579717612268634834256259314139913118286567475139196816626177719038903419269363977953272167074563563722117985795243123536081124099736465581152062074530162824977603309385620033148589025578609145162794337751514146299372352691339112344367274247257846917311889337584819794675596679363352325934713501308676013134310665355546727226721566298111829080826476800767870075709028801337081326217677123996866561823887643501156088686324712692631503384814166745604271176331022267477527906556955913818798157967854945333491233023071269735890874350703204580000050904528653517554402906020088169931929582319258276061056416952606056608512081883650806858986924727936093066514050131203142037795281430886054043491841881142373125304049698384602249266412689999062198107608914739901638992733420322197601026109283629315682030832400127915927686708530052316298051465716649893843810688159069317179045393430121610086281074303493160898474838348056085444661179827403219137792482042792487118819631978647538201990116543195328967115490809580696688927939583049097356415027706263709765260570088464742539491926004798723289409475866584889588494317876273698040784570717985871378191020676753006318402088845086177529438498052188269332206756479285273676450952622663668343865531804001521175637409320138532246367143767371531429344232146641434512713819729328025821135410980114435188974737520773232121551165066319857958882452092620690356190494331131261829585110046950715834337241821504002200311100771231014002247439652234849762504499965083456230738406107498163104707268457433220545744388564172686808137996620627333934611289015448227017484112722991925551964719028992829878369551107921403703703411164880851510531525981179753119545742454173895450099672284423210601219217096261349972473960821297276437524184463434481079551948604482821577177749025608348375323504871378505284784209839789812771765112048529285649580934026159221812104528953534993258268229468685869524105434464049269031369110702654446909484578217669456964255798140434637844595415437307564120187699332749106906196816171752511375873844652419649765221957751190166916849477714490842051826749904010855405976597694086636442661526993773083088552873456896155793353652243490731434708907632515779521003967664676345717325942582240784546285537710647216399098598685902001473835066194870731446213172898976750356837734966689915217684234446407196387896084407875776290045028790835321704867534576551662907484727828845514015440984324628097959618356157609094019322303811432603145693834240414502298860455935389200045586424933787905588843529818227132058637818717763618877212981820201059915246953629604075963984852950146810523889332069522738554923344237529411010312664784404554085394438622736346878451664816149119400776161446688512149072223830876458874517251889066163537762781448257084851923858134768911830156840534969234564312149830770307314263674288891407850694872603827817040728085087249717280721019565725149982002511424084572063416816445357624096604839939258152621001362238846768347169946953921062483654076719763134672146661147433720315345351707727930072219110796241125512550935077848148662721926919641135135891076844677502035139687682694237889827217820555528852800521079074561364010156625998187828626289738147022899044826273588076387577794991090240714358248818268814724435043611675698363165299872242708778318234441986804781461697945268694174341346684390611581522782072557889170695637553999768041258859876491977411789468633595769212529782094991653192805484371709188157129976965570336555837658821165293114382572638954557461301155860496216990078666125773609174805365387788080448439926518336677363181350416667148583538062159728653306764082287324806858211974503883437574638677900474461538750337403884529820630976952485286500168143657079340520278020537418276252533789368362307157495662351026499506311504664742527138127065718556766133592520219259913203238403489881537237287360793873421878639698900523350147089555901577293382149032159300664518611136892889719564657314617782160443739401387863100549774416485664178293923824505002880232421317887437867310403447459804195992116484768264893876194859302561200971005916332734232959238934865547455096963546228887645945420435753697855952176556091823292067408882285494345189934410026045892289234968243672176528993481156296964382515406065896916156349477767584226300236900690971768805287138722128834486364915129210980264938840076759072012916431726699959344038981656225342801123278597206985768846306313964759564361295261850340157576237603206846392777800093063038823645215454515200130013642841243273808132139718946300503596326320737473114308152062331420696033130283878675663033843444304718540408238475906950834454595978169987291962160684403053328857112528639908902232571565436401050772958037719651789268173762086913330857467061133121724858703115193509790512025556613349088975119882724184583653076062429132867617152655913128563228638687518229183735129742143780426251408731387473734233709586690516450593874318303516430982346595949283682624494672029712388457514432527846999422057257382628581986310762094897578676791690416565256410903563035568239626098588663131794220201129588791266769286116672284178720040341529624845837428938302445622627596924771043342638696822111455410065335838141488157785109196975248645644913922965599903482115792291116302360834348371912377151044252747521340771564383432368434896820992315686115084507571852452179823669192383892090814660334844102520010792407616755982995801301463813213281071232655474985827554131570412946474655721922511438873843501801363782307141363725197315787877406852807335610082526696022368279498431396709016403736147903815419346401043761765928483117427965593766138523313656251380017327653417556314371231699630650503005705239664405647196664413595969327966794126756605126104870276037819789717213844003878136649817522833383717557754008921137351038828875138914981500239099447395111421522879816939852235376801911175924993051766547598455137706465330341982296972527309408552287466832915813271980674735470174027028548549857019157005748966865364433768387085555526553916657951476157205558287702264113949483035354590212365337526298082872848528324402761710976326114431986693802613551965749872436225643506314572490871672360512899155190010026639119498964546177534593356960640391918168313661511491281213123339787829838219544885067689987603285901107282618449669873449800027484018553323750681289535179172706953377873050602616046489735294240086409627998702087894541614015171841650056802229246353188650876318013053881477942305649124142664676636796396116173889804384778275732336873636615316114784445045381196803748558005294475479291106317479938021321168534288483081569201207482312169249601202876405708589714685229077869948100990316913629490798426148524653152408554054968411204721629281793721868167867491208995266363823473869510038703475717384384644184001033709355636381484522512372409086388937038419532792381550564237447767137855137354513846015659932935359431352386087738808950292469790853023314575299751602594583793742014749892884534497455567310182640360481243885455025858121978272463037979462458281668550930553520311427846835702699271758081514853424378897909463395299876037547998277231061018063266643864975758805291890954436199299912430396849118971697046817613296758405925140147477222320488013245877376882634064498324937829455600798659778245710774491985222664356994841823398566215441246533504359135341124641713937253176991655300993071811359204747859031615020518217830380863957182858954645959229276578941586599439962456380200934942496730976562807887871359606373843336750353353647128844598838134452026648290483245944700515209327209522260846311460460761695553064851945741557377813085612233502511096108162766945355370696803286169737815468007474001681676213561384052311618070289415767823209253284559938619507878877756392409795604488065154283445459131390204154977769644893271747350755330087051270619183279177348824920815295161420129503744904367509082467063744857603220242015816935360835847729520461757003686054230274920491455269156835923335253532384409677989982370201685501267491265788500981501299538968088570106516961680783769088065870449977006659278485274662292571871263840690422617035235856843392634091407510887629549923047824232729030627441872403972585511919755698310098434749166571769209474538835045783720633360489047017390011152684020367003987940166950621321430703659310578637678401524384662471505014514970647851971084962972003022505597937137376126376715428279226807253489814344889532730517178975940144240530617384623959838559482131763555320836957652431338661504570334842672244028062850191425932135530347765374887669747293043108301741733505143579958951130785770578891330003690528533317576448816505391131858610194013043054286735081316405946615106076076863434118583322639613807174116502198327928246119785983398237668337356994010416447149075544709088044520702007876473072804786165026246418461333822657811246856447492809250375596805527304562814596319502358321953248668925704191489572232255473295507223542762098004783074876345138984738529991819401076824091361336640250140394381249178975879676996556182977954273202885086376331019297592047378823556383499625775324477754882291468310798690271015281543423668666293081436382145009121778877910116607579750005670165127793085093408865582777938335996102841818134990776578326169302577172161283286611530528710368652917042528674108811869290254406243998864525653191753513358827628609769987092464997035750289394237453665157687726627725806427299003759744431936530687754906868664747429028244846744251963777858069749375556118477134656303208147285272916162406605588237756294985199588960429995528150818075007918804959483361653327240694283808255628235249126362240014617573027126249892070203876362373495692120577477612622746637701153774322213060223940415950363990727025003935881675029416801644118083161092776363868145261474208823448676211575002739207370973031584076158896992608452637486398442940310086498489324925170806337151582883707512483725932541874846631852357751584448147280184899181170652812741523450364534034483655509864050691590906402862983273069144167397093463411019429971646125606173987418713469058298219247483547748574557452089417156361807851897766081032877236240010067805570864715399871246719420983898340809416270619470129802002483597935244191657717365397824742089338620929205688832996484968756708672819418495998604643788808703544062940487463590081885311313337999153670844488503806765251560664126350695184686966450821001586153458388215753505791542295603964338069692124864209590335000980945263041771099966125292049395079054858101866451061442861245793223227250347169332574895957849640571668789948077779844534925771790375774233320202259366742044223601094834884991568210787072109740062948114678943293744980784882388995310253474871548851236616795674804469012837604202128442151957036853261520416897742738252201041303351857528202974809903148536281976339786937604151176964987945762033212908135899628627300520588215244244279124467346517801082400962535814088091151727944421427777049192177416247007038101946308615088336697740117746055721454983711004534575994010500455370536324732497939423410471495921986738914273597200508687496205588038489536034606373958677949839907645649288310708853783521062208212241919746869265751533917760828269010259077074070706509103176893498027666526079771270569149191790083141650351828219561971770981073725533681893392605693639614321400150545909967378100739049357112075653938734366839668365577529269710771284052929127350787039578832290487737213990293698538513392304234628912141948992725563076999220691343912184146219090397708789568337270549909610591363148791699323929460353352165371016081427298751061489757184120719683135483169684869864408878940213796154676359312556238940500613812517992482883234888762994007501824460710013365124687150729770139040088578931290563364336943408204197519976548697063047445407416016976267668847884019493961101101358278699678540352012789407306232111828625204058255752942666481016689311910553942866161084804076591087113030859597794958244751270977618078802511782535881346022915411223283738003652604591005570534365896895659056852794082978103788807610400678412196028583521235958825338752472350188431022021994972842274556108497022237851622963049541522800543519945275225081473312056189033543442814974515137679472746582396427845453581571095768732144869737452423288780152779043807900363751715018899051416664964043042635062322043240214488266088807095154214099592245060195179043311204851759880327256052347341891337532512221107487095087131533369920899221279958773084297072964410525320026883112075794289379151146507288414262795109283012519330459665392279913504476120652472243517403275727457344724110894302775646950847139888798936681614826186774804381028480300368936013875096554813655499920822561218222069510793453336235262401475346701320862605697213879051084061348130823140946241222251875176801508826850169045375102344412954489057396945725154423573538613740824983287420630313140623266037258303355897988171562447615254666922721329402376337587722529098454646934264155452754500147952951562430303017311250692407482453340623060259626376523605390922782460604959962283219666146850863121556529300346265569435897327859091782661644660333727693142618270365055358728829723802095489565175285950204965511474268387034112892224981555905786839484032556850003664183834702531634230086503619049300291508318423177571293971714837667756352349484670048128344478109942430162665736113492510811816210792851281737724470830071129344253444382029905062999093491732078805109975457224153045581610486025123657346674816938369717175949347462101471854263848771514904355365085994522184932073632248704332198992991401053180294267870025398773338839867773918496545424158640382710962582599346870932470831666373364881220262110928684851354497095235334211183621385289019972962551198143676866761965530964737653592294589592035053483478535758984153187278129812219060094973629162842805255030264360559646857405129315990361155096664709440735077513540012287508540513586646471492714062505371512481017583500417049108697101252667898960647972019346559236963558420102229992465336549066145392278072139730418301086480002721413273098013962185887924507766766457169699000010682167883027721262231811815209484001409357443845207522903704944270833376133438314357238382862756904631197189237214860006134948614178445681815489622643632115724755313593180270010778330379530994620330507354353125528700351840972993700970117949442951235911216655574139393894682299308084408087318329935953499626004212936998929403431882708868173697242719016384090243198740571434319423860067529676093266165939599046671138858258519545427530105098903096298218696034496175287171107605983718990810267247561462283586902382632172855232743116460594729276423453658132011356399218851294821437819525901544487072663173108221753007723577635018993701368524637331508818729315247888069937600393897923757848866758218082584776836524980683391679724636832474792460410022023576473373607516070296022929956023005748122018218716490646187603710148504274786176225045840446793323949905743782317850867995198597108239452184841744988120409823381342428207061246722112930674243836776425016988251809425927031534277816420616812018354344174357765003042733473343625730637408699615160532817890189709949110882818492644672461106325264181687126924269493805441866368902374070691759223503114622842960608611045649683031719298021638294767769200582648175094339462426715170336287546243697139151910300965121267549239208751463592619197018968961411042774022197131126902726788929173401210824139317625474520336476568142002131380511042825510485054663322034516264933741146771280040493662011486792302761857796855110947164496255478779987150398485850372135403040238116144703549466763573376195789827587605542203379821892538488549625998823144884790059514814746883808788276391979379427793299875099513617154778024258732407776295413349903979851952509599161502460556610688165264545600890177284797342046992784536412122319468718603028733935588033803496346100982836778384428601314940539334339540522582724060291840888380425566308733367070925141277253176060919865096860291296274822621570092366508938873680812633537696041622334656628949669487925929127378080545120576742572921806167723895986173256857769418936826017218521805789227785900821840920787884598546508487718532070992016295387452724223871053433478892862185675810701902196257881459638874914241956400255155749946398457201569159704332959703387423527736865519912788720908641366209764096171471920062637741822740857389928159513135487005173959548295270492208625737985398691386012587656244327588557920960885373701899927120839850622408204113531430985220542842306295398599234620711981760605710944257235984084984508664267787931046715988318685212406634673867190790233344188802446615868874906028199697137894433715105550538870658983749572023769971661809329293626738142296623782454395878470825821312612700688368074029942175583801655226736341140355831769679857958361076135539963658266386395380701868588080872760057155482274862329005597011351302507107995459434364929315203245105385066577340321517274200081009758619363769060712124689720960215579523538043351035310519462407327178432774039043656934504586787882641699172672766677570872114870396200272821898947931803565650470629491530436322138553146089829092741097757106396268567671477497339090076913268857347144778041785081716466805940947701911968832249361099886121508853832262335007999966388413148382766164440982767687482886165247349006207954674872563870991748527532383951677444992983920075670922954412027727971569776045130158997848567234564326565729475001364068486548932878863858565521492197270473591421943291437392252229067808827354260228488995129219090895482056562412339467487081995095646879248401577418179549624005548364899430198184159987810365688468183093466960390822863005406104572501805830381016505233396957554337216313886214749531394249380305056347992874493223149358576223215809031553428805467120662538462625236467516744126414378011035159232178210110619746909432513294094685489718514122902025434885537662995310059371219242067204772443371664469107649469176099829338886308376424766852069445073007704458676889190797739667086180316606976641715009693958285228940303253815404034671352068104261354457478509110965421052300614230709630844103429268052547923111695975267564991245686056957396005918859156079942470876246307197714453997793333358284652130195338097176530330260017889590701341976247103067469063655023594602428025019234944160028571283099023822916669944378652324567715250930493066835694768827338993640019710238497884758156067106107775146025876852534260502870792373631252827910993460220141389404030234371613001861712861080028621945099977525796109698940375378188945660730483297992161132682428876886072227871328981365802632679796302573384418170679848528934259242113442032526741544206297539099318486526299799294422234515929820000286471054019977259964181632183993479063324567318523815928095800709263207836252902257800794394020566848386163667664498709351331937737039982573472320303176530428444198099645447042933564059793437479881934918885896030715953906434924001765700845924049550502207218411646727808313696382027191655681038851653492656470685534159919812596253558754379389109376821644715568766646537194742562184038053505865417435434792486749050579779020947462404408474452676679206555989291452761226326799128097548843526756350547331721395755124251252429357667968012083372340068685768043636507340449274958602397704856273261657836406669527193911829594766225504272688775578943569702673638581368931559025890056065776957804388492642419205682735758974737068899415842701024852868901680584859613729186362703449001790940360697404263098688319356834519724715321970405779622036699904674032746968545168968361189953954448415951268424236565654749949398941517982428588646005267075471934416230801452435387214650205877062758101273661632836755355084520366680687336475345664253386780620350471275009845801052164210312473429649533162193960792252273884628387799225967017338203732938227101018461367124997605717281886963552428591079452507858421519873592434336440288684989786379527002715105821391330615437455040982762901860258643859575742161775459540152331291136485323197577931645502419030366402644699069593938526582519498287513227940735948064077372702749972724087739386147811393317414469167873483546746203804383710032994676979433116740690137640922260411151585429183126308154966165728165576381486770340744380706621561770013040635589126505396709034495094475915288292587862599904285348458467500364022230811794102335481852995408424114417810183850148183291427098153683811675601554263196549188318009102922374447602639502367802683521385796097483907797393798222385847909563074364889964006808381683874733680501832704912181708865602641131090897855941920391507230465377955322797831680375112931885486334765536070160575160451068119681915958708044347212472559735132269655090005284707968288256586331543613884695689280162823393632772188581775959976391325449267093756497519418771532810008457898028114099506634867837850012419755347163810904324903022500600734918367695519879859212453672850806633719668866393140593010021434240552039214761715865507528096849506535552712157763139224053500385755833800716198485911890593568467206817233825904941249799763994264246010809051188153768901377400374793811721925739685837268683104452932006267847761651822339467312575276843874180958796530852644067302058550108681538768434818285173290866397717414273043236648964691117894348386241465550533641382634312689775192557974836599582455776313552082258633320892003872514730990434392118908010757410604055426066946363755213017932912215111555027845909371448274987489508719664164687146592345789982872895613025972205938399895497871289343651710685467189085546754929021894064667951197898439037353553223949590858482306033979952990081623167684153431381908463566215549787052696789422985816465375007214009712239512161480110657188124453764214162636832163052079484862581250279805318508759928502880437645969464383074624045599235198409539434540956342415574252026230280318996239981178417369279569140868135348855984301612112176920457221941164763708003786396704956859420778036318547949271812482346495074419912509063495369846579436543640767986759415681710591978752207151881609614003315538362664477541576293656412648113114449595609793606715415057379821527056343822123408674941251421816206525807133653376487335942548369497920240325236046682843515764650223012329981258231681165991861193987716927636950711073559253239163618195384991526005263812647865637336133152344969059775714707195240334519977380174560585387503775536886233321100025054645077056480646680021703446356372525419448104155888952499459121095931878563387844118788757193490472086499367317836774729020672994534572280100223744583072665680319002421559860321773028815779807645585267189786687623562665340317080612430666284899867772743068057054176971900689042151783129401640372236779024128306845998717441594376215095071955964050588893969273420585750589254647711003763144975626875810381068871229175797493682735577748842309279567658989812778030622815473378340379261766573947476247623211327264647318255260838061293802692611192314794972956103740957996084153140728644802225784492469250745925780539045855593736285125776520007567285340869122866456141523473868897949095471777990115151491640426500549063053826100889181588203797722952385726434456157400591806499978761531914753703636520316529930865190540582637514027959099636163964316782700831665735915561796229220432938083523698784534979046639849158082538171938537848415670968966375404651197559043718872502870778337166019886286815585238966203386516247131379224467698846794591627353867266948417220236363133398415285671862824188032008680408676395383265049562223328766541072098606121513866826409641734124866588066808604186482160509490906733618868453721802105650422666721595110387010882671130928613332672798189268524456037846434245879365063237980708072754993039214096089302402804777869971885701411052947453632430784723534221096167490466074471428265110133722104374525187266193001510558255421636016182732841121919373941023809587271328495488886709403394249583500410384194106357122023034468824485179439615297995706188761200589704961549901141803845036400286452113688926388481021727228568659468057559261888315247788930731134844717401990182782157539786847478694884904864158735628693483604700553737625304255114128446367771017848047023267745132284750496776769703008839162030381807373926704414744693220102809396555821389337873514966063990765065794155329439616330834909178492681646754161643333549297327539788880730491820071708512595270176506995775211192653094265523963239662841113336820099580721213182498068169890323748810701203080188490559805972193150699076755593680628254305858059152349142435797528476117996262376309171086131023715665964595148723752967226943384537197548085174806178771574720648214467603151129466166024213718120705482959933828563058555144872890207171063827313448907236710059073641316131786389172761037240663934371056087316574603858350043511312770603055473439527160873425967601792095967009184598959967519826483139905657477753864512630748027523563807514251954712883953322961234969528005160949455673583672411527188621164720783754459031635368651982894790230575693494408465705915473868566793335608146570557301758051634071579066573995260594546963295387305902495862333383526904290678672182335714455055159372749888630758625441724957320521939728877157385562892677260320425265699154584739081558773543774674407589967007903406972486282609760373490785148534406978965075541459648912547474115961125255776002113437336792508017655661106882073378845546682293786057580511685630014859816052162290748255462014946311299762409180856403847525375708041925745802528820565487032380387757029310154973360332210784121065187553703538366427483326190845331471974097187658865652118032427880849402218928536102550057361857175340042924353201254123867258389346046245885982398588280320644803345372242204786764739488167295362538130672563810333817021755573657200367490002988486931178374020833578105159880010192538467057131014699192990033993484607061210253936688593983917824767400488510921872914427575899897734312191123072926732710896730018437906556764065853446189961771655155121501438483359780374917098097499570510352074838494924932875985883531506576584436497759088717965617615475968196223759912136076036339187296350123177225130579820571092263983164880766861307409810620049166895317808421253552240597399292782650724222397357374094983634372706008435875434924696467330950972095428425572365800596943314614903811157774926986358876816827598686293186601177924911507238315118260958092073308072073137162156356268162650452967519840380440576614706043293862229723638122125224015638592083663356669417231796489729120383495388869436129723085724760694434683704038865317988107220004544299073893710867216141723688639070600241201796590563463758324158584807775643322882059101615460312894044856922361499751366664843108868753122958177364329781232922472234291075214359258284704456581924544332121933036142680314101819515853216791312250627307849098212106613250058871892825774051317597346343373732749108413362237321066582726874995622405911351912072003797392766266361338787794311220578754402859815134510606758360691053131380365025176802089766180101331151841417509322514861575629568543702230819056881673687148706089581963947876871488713254097860139360009545374980276747759468292979182188370496773201127745305838275776791327697821819324372554914300171710212971432112828305947918754122312219022472196212050307501726470465325690937351143840529861066648496744805884092620674248498237573216895859972558319804802064610691346690211575787261940438368216800293526562519395489904626940720551251467873383259170926702840362029824168362366338186640823325963083037180900970876616347827488751185912101698750266077589103389058542097676133380019322287464382889367011945169318604765869577246262467857022132975090586384124580904889512058807821651290497098646549063990316435957043000292176071800508045993581299318634080933940781199628280348112240934431420624013937378820059593094375249933300289470097340173405047812100876920411989707265124974957428725104370258340512650189357395048169046023599871106679147953627521056281081953824772113513126039095515185031163664474664780013383494076665021536624008391455592604087396344382900235146556597181218561103563081167665115785674225368414164266447666359288716748119671365085676540848006685062740173169591417018173198966061191221128084999897647792231943538468049392739960743333662036863104193699729536289399189828297216082515677552176794006583574688991752011733467418154491038271625452369380928990306112910770041691668046690001769279715334826792158472128905174632463172639824912097209901829858386576298016664704207071300447828643347977927355227593251914221805310937332142586228970754569149951264954603965150112503231833477407911801173738876789681515523208580659842952294253829986455862066448598750678627602708157410534493772738427218836695760569819088912045587016693422285018575507250771306233323605371249139589096376541210127116433895254763668190477687225055972879117865389384032979626823600287334005118235255373791879817543586120242347802414150886149706130726822166073220834820273002246059469953774336334344636297629549514924993123169917524954293148380023737418226814730716132646906277009652457836202685856820298135902264107376995637722708107252294864267107109311634101170609680154809197960281735416861690640927788208468633798579969464330040550839626934877875830907976303433762859795024997508074453774042612438101359564317382856669881975978981755818265979265173290188036965114889400461532471404472014170050549496468416210260102781431053240791910420301520615197112211912397290234147952833048092029312318171237988786859481186388379747786158593810070344465223232843401057808495089041491279337483403573776833495448027009000418047939906738920766989304045341220912790141695664844568973834131558483350506460253531704187076626166037164897451828164471555867089350227834303512494584918806133623903195612063863376422024943645859385925140327986589995274174541564741461466714070972313655827983764461956315620927918303257181942944000584836093563576461638327682109188926138917809577845625990786355203011406845233122891691305018592475151740258643026848324485508939336693884644296916806720268502237048408451568097016748589605852388862137011545532912397454548016893576786789038858669973255494820924120915200041543961811349003368737335454024264980579319869866892776918765917332432576499056944431261193197572172587526320955619875676413757852612410588970056883197240183507604707456456645243664364344321164319970129575872339210526186900442776535831023802062168907770306824973260073781910963380584602780901604200554522179723496649706107883560633758295300575386046030084106241543536164411244584136625603233219200369572973390709079392876044044501953135405569352283939737647038904180712008675464374814069211026132415263664205013166867985267279745304745515855179174599535878767927632370838078470528486226417574439062408053707716419030215570771239115225328035720766681990873000445665919334313217909253026522719016365287215382864562847122820721907774125642755960490022395424644767982181748481749452222171946605041217937503580783833505874374115759443453108035375703309028301211063088138336426004794170235242391859326045542375740628182415681106805341276741477792704165614501696442996805438036550787714726828473964856580869243159200439693743211318000713535051426217431998700186702685099035567155601825828648933459823201682798761864029050206759083984737146955044749218578639647348515866898524819723893842076164627256143820269837375723493762282384970613277549613057411054846801757791633828319834810958106774771401357810381364062358435348559096033062354157945547302678469219735281290465025271904138744345050380487393258729600435942078861250279872834625779693485871238476859531073715203979571107339435937011584800075836253309686357855499710592027516728644489213150029912707897249524451773351731434430681226886572380707888863155370542865284183349292545947852286981022357109733640909473973286196029997350212324921801932445445357060349852632925734394152942879965085556683126998103208292421906931849258351846753448527392606033821005548631495671524595421924311639671487142880539524189722938289817952859150142310737987901271088048884777821632668914657688952548902923611242200970457453573625764958440414186958099817789465938905474505986075521317515476996294852071711870741877806492765165098538182386653843115471094919583117246786964276139049898281676765775129953894642095104041211167282077138512795835729512321699983444041559179973008815020431136303788910818154719302033781145343143517681098180396412070947139246081680641670940282284133298198675188778403402675772616634494224032412926733373637290261480077161679657009397300001400133461671182767847180365143309015408225441789834498937326117937281157287739555322614242837081641353890435782203930746287062293720562419734212306155483508733444908428013484891687494806928476610050350874220467940515015995840393591621311732922447980629963119337664564127222702301238830394415956712393505647483145623035677911383964484560240509540607749209760802884214295046341141846127197659338580779278044602209588489223072564953132351216673601774761945266915718443078395756203404793649459386831015432947159154913089062654230316040138342526308605019844193685656530503420012611350213050642906306921764368722532120078155177212381620980868601654838012835205142628761950638556722440180248167893707810263196584901641460508530863693204258852085418387733142919535072772345276691353738208022386790712359030069129707324260489604179791199686907774553499600641785644498484413134681677795778117561484931569173961270815962932898330685772755778425501590916135533855577615361937529995403640833181746937417226089124992737918712412516612033652887795848652243610640900118484263631038141677117268205630761465679432390301055509073187906636765263331733569974544384872274243184592338511222345601656178081177550499062421368039937435396155505051686645214427193770076928149696020292149219501911291092087193477072525749014467882327458892326367401117507566409041104710847428999681457714615647948601582934007438320082995894638556541535254400221771050095565321971835350012699138835080242045214147347887954004965124513003227927597253570625588218141361457719776567494524937005195104537435413189863322361020045982419277381199603683800963874763535127812180072245848521168237229600001218739568672871580798011943789558450606434689039929166444871624483071131170366949519481320034513229585932529635920324819345563024613586045851041759248246686523655515012466346819371150538199429077433213476907749836459377622098305870372085337690323256725183773995138246685750958143036235264132030706698845543403709928972070078366567399883559714849907085392022571983208577406671659270640407361728276122482051240123503409650537128557504008979664089654331796003089804344006815409807609108241279540440507818845047856251652911224347921802547084416656143269116062140480545023813116331964834397730230936784593457726896557333563897349815303439572777921466337959615561958960858066588718959201206972600650586000973606476384057904615487114816786018865432461917414566696770591069827860488223106244323150328662860701126374621826003403927003435447646839689752985197826413010276483875782316129032132709667862863867604495900063649547854797589145690069433202919972335971328339924263064996948011562706235554876142256347547567039905088919042287042394814293234450739972713493057531423508682751120167745052620103108373038783279881315048742444549117670798369325580874644322418320412775364273685864643010732783712495842449773735966351248653853097895228503222350753917483885190916716596659828635922628516795561748317123768837940550526472950458595553388997818432771711642731309461250430496552131017670303358874712560966949910172132404081274410567338296664912877957091270585103731561612427766146675757073937728350748889813275597780252073727871987356395321250003498878768750900706894790445490846762464293120264701592675766629194683395214348903641211264755210455629699144812591469054821828256069081485897836388111530406239155577968291997109624429597783967391771063573849373938568495894344137405789402645018231164784765605441519011993636716423529280479106723202847819803207258077073801854894220894972622562819379746436855374864079519675380393239957822760795742764801158217499900608086763403442371313462018578643322229604251778205983377882893045898351786794975114878502971195893332511560726578369066511501462264371951753959761469793347340890664305022985318611570074538870452387256282589570540754849103172310975586669613731833035347125718448984290280768678034112171263161341435018808121084549037381912015147198405146689593843064164641590315649297775597716121655840867437541488332890343450532892954919964090305419177387581055971427011472415227619555107065256638359077737272486208705738357382401621046620666732748102813843597797019353236413957242991899044912577366893685491493592474547906186889067753317201110687043946516781316259580627065642676625614321569111755522239342781900056464907897465769278399147020060700066013818601346121952618634440930847558487303611281466490118950086186297985706264519318148104401480337764159601454383621098866932460582244858190289933867245026726175852324981138289764901051099412394633478383137393134145414016714894089731630510909455635380926836264365106270054533488453878420387886885603382280826141695507794422664023491682327433790724460095398801387654542762483972662327232317429615557479173450042192463886023073069650543281497994443961359822813717180331668710277826691279312333646455153291812223714287210452561654511141207011644405144024901717899167957871939626597746963756459022067447928637559284341206364978856110486553508403616912248500195669255548029447293582296828544017420309780024066230885348016690683305011392403646314562759069002332414283157871705458999860497257482131878973763835807284064894732286908018810632596345158313442010025982767187584350013095927353475353944531496634254743534039895712238839978791327842210676765664680902116958069918264059107700460530767886796752186711529123047992153138016864776114121351581972650944793376797373009471463675983223004792787032513565078950815137369093415694750528981627116352866660024392277564228953666141020734458376139769964460817322898721695932815660581183025102926933591953208076081940780674014063388511545727061672445298466580616089308616759647518477020879599855630225904306832788255593942611507756942117848610100576574330439020901971977319919524091565120297770944931095190689083864089644243787388336177891953863764531636485936892047511568914618787170340819271714693236017786599251240529627141680728828718074638096675751047494073943881929380441976221785847643504687738363265835003757465478321869234925341821746981446410152601147239760573948767903598649888603805379088957657559046967912356869728887674874618843310141188173546439077036540939096899215187223036490107804063747547886436466945779608090771446968304867900004245332140974130052106277924942981675927820090091866062187224887917849394992628545079542291998493043964116622205048255305112706230215632621825739776167208271132292676887217666042271264361190701909347183489523582398369978506336909031076743821774050261758475852005214914268207359457929850196609673231399851177401233250913994780872852523595900560628552817681684818962151619257888978897843712026691866631356620067568853455986966532337863226209262831284349505277592832513583965562324203257903341638854230622150315029215933362890252958316425989931263843286254454908129235194464007606211998251853262659483096592174594270455685827239079680818407251373736628939636155359665478963341768591153594493300737348391184397284713003483811875200937221752330775542927510738375381546229965100040509001766934066017835317279425581938724474115937451229270880018515787434433593486491916879093204866636131245480128317239342355894693560403356368040464044313574549705541012186905203373661481450960976553976776186052387026591874861555705992830181253497067178749173954659446199748231350033298772193751552294013709863391637795774539361404588567495671752198388679956784371886615935367896222265560599581569829533385203606920205692684932537243253058318429235256086363128847623924875740372720936246326509150851200593160822617899004796489752809272437330145799957058721541028519043213820332764059247216622187309633276930040498555730878375898525849809057025725784977648133965674710091580796705312061083938483745968682599832517602764187552564362019562739966476645723558343635758984624885665860242197395713348798588023295377346942560609164195262335424101503931111463110625926852312238965606820896337164642147048026556459864299262958006212909210973134213485914433313555059565163500299705549554026654069177668920767243576864979337244462254463244444399253188751621187566655876958943897993819272783756095846761082151320758898965839504882278365585890024973866291279969409136607438043597457219804473411225940669248808193844927111088280912732483232101871803932617058121551179768208856877492842940114986541562721513876561020008920777874969937837721839540974745454833372210177551280915757987943824883602511144322809536610131496046182712912960253621223154085006097583342903735844517810218203943071498750462547602821725088877057701486295199258361791066819176970948095069761821582837076571374760867374352406792796678985365804856617205417018330943561010878643289749797476123209832685396462774691565907352842158835859507414576935346809557836110457277688882911238072955201316795817326848302892037995617651319336662559015588282813375132662666344703930147057635294436587380492066590676215584820180683289845873249704889425429623023649415526061558135633168362412016314497597860380343674157962858975555342154393198507903892911242838040085044331974034846587371782841699957224146284398346187502471724051434391854770526146694079378403445210419655819121811728657431760938325003680638612261692608530729665940969369892521027420823429717572320170236383061623205528940546394695046835536982872428795950973623832915837925987997025516639146729792562854470175365054489347978059725730034877338094142003812000928852901609934761231031712747583008006441552084812437131445739453075908827473382782685733567114376078372986643589569189330713755426457853052558195339644331651357595826448045765717205350025708906351994784427770926653066878582025610565714763813158262694203800258503795157908894935247630916370096213484907375929167509982212799064361706708394290033017556258346047089568010825431802157374577040545290909955222446498107950045118304682379284382933297448679520829843941338579023935491603929395525188103983593600389718826759956787341014525759963067909807444402245956635738764495471246173009019885373786181991843987709929303048208768413087925534601361965846561785953234369043060324881478903513809971554833760259814416606502639080230327640315669403490931808627065616577472554888725264304795321402747544174390895263680357671810998401502900543895460759182838263651790701617227351992338348533278639883401559856548600357299720799931124146882282676965278617783509915206348215931047663592837776058614938813506813806715249101227149724509559699623630488891341446042059070534665822226798374477950159909781171063135525684517434982067908615140289341966053654325767276586922813123183300859675834699490810989842764410350938627543780480448684311276547714044184572011279792008055842673931522423018316723287018918365458997246219338661110555788650244281046569588127433633773298615357164811796976350564956091556034601327528500351537378223242775034011309890075218748127218859274382998215873493662335876963118731247860285404809897807209238042979891876793975950969456459618854307345419739553011409749247513398301522775850779147544692558685944980334387869460261461106213194605796666915774535178386401909007724622172433183505758733444217374069144022769423974378395732924189724768646058273080499144439770307096281060137380330307634651875064726879227953258186573618467932152196672635127711639885711474347283485281521888603246478754814657533213324423843664293669709430698962605390858336831432817366700733981057416781303950606247464637266165521978692216334731448011550607031667932028511503118630508043819887739751332565570925361489974522566686039872889458679049658779193329880779699176022595767749199371906431125152381999853369826800853382407334845442713918078608603896519357891287057171106504531836454853807516712858733663335332191625175104650743321933904121899418420439559850696981195011124712291511759334132802692469999207287701266782632562245963254856164649080710614106816066390493154093828218392693549785656658735583030328461653016021060865237647608280427469696991312467422535879973250644074253716529523431763953803734515086879224247824934067282023071958388208237426477417737122130524901765393876279479873950312055360918374635571920356552042285850940080260953968030319363520024557513808662253899957871557929794834873573305415439585864463464758089163163874139047000458851922162390063501391890302241427722673678884728064869828155925406068579834164118821931881203659393971197851587677537506710093576279480473320038560945691303554283848122158708827654121986347970689887805088879214287737144950527397936216846762710489885665599848447078437196254143143074402398021593893257258441466740113377736311368198303198073331972759427347639934446151212551140296336194669929211556797935821040356007863471955942550129691878201673495115726052253702600298283537437569517191830167444679007081933995375860820728744831967344963186072877950290315781963941088506997451166142009083366767354494465872143629773623915056047665042565004764808977754748727974119745796639169460021227660414322415163725144933706501405183383228319441356779964600229735178664927924797731542927615049445768747914645009005175586663413315029534467277039755380562658921591278781980141566421527442339925262250601357777559585372143114897686544245359331780259861983771553868188428783344131993035753427017703115903517448105252794081109580794543202855116839239444922513971344473968781006186566357237153087772546671758308085822158462073605099619355694474417124580383957171530096098365119979166064573249334845993143115195399215487906640935312774478730650327048309583229996469302422498650462498021796891850800892588074360138183185793670187025686896721911294040272229992278164268015027146855423817580523866052850156765073399908005230147866247676062060275275799394568056556125805734015347938188066035609131794055278215741734637325142538675300383432697861398453507868562374256945093058067905998595517494021074428429217439935448828279798696182595543930819089651927056900116697756206150695668008146351314944975669173431165233250656573813150043520929630821633383173409300284228454391852623981967834975475724528306642743905902351260051893405329467111620103687118001504136402997270124368012153241963488154841973887575162436741725560734954634030104239277467919070113110629051269424924873452183990458358454045925314299195031324629216892198941997896797685529368974800475285922207962727740679914810021645286460405221894543607934370990829851802210567585802896981081932032656880213772432883410738372008582844216793329350700503562898198348017681539632186126624222202160256073291966543012135735857140577440645360984281860154300280363457553142212036576191360819177830839562653734211868623074790127567483977771916540488796367656490782930404312577332375173516617437859017586196366945449939564273815934051376931658323525843096518934768951617794057983539479187229992812245433458188499147683184643888381449710855951672880186494954551404304493185261175267705346338902430935629490908222962075946807210121030413109016997530125287894726868212240403029196402524723916388674255597995851230367074181946743326470164218618803914040406345376147540374173137758984362764533406870334744422951197205942775461776617380376956253581880522633927784957946572518182031993527328554439956112209406968930980172976045147987765568390135132537584923509788625531074674317577327775495001551256720278483598079939053639757585680544523225908219953582032473345684522171705870715742841889216019573495662080035088054291085385989617299342182960220027038157371937157316780801892367309854688712932523631979403363490347692098322140343762213688430782277202780454744809045796827572085814123282861024818461438520198567607464507897425853992673292877512687661457596506081839696446988464036947239155842700489205257255051420258820298238113648405558120063310595615051081492548839867273329253445872983219370122974630292829661640406111716312271462373707012960752020342933966990188774662829140888147974075626401874402237325937194010033966213550175400314095101111468330504017351944214055578417877138320830850324321599110504740715748707030903422797306882476581130252525516729156996466658563830122489490195836206928164643719949663145970610386732842459236900338887857166990400271327724231224830367837616352298623763837559259089900762440466026194202461221042198552435935029432302209207015971069350267278591167023934569341950844779277767916100658459051907975491535898471095601838381535394537606890871669670734864554629371565632908461541947746465233103520425338585980143241411137918213705660192129131993473024629782807219581832460967194789145034560333047751501255853668039758101857753720411388226019890820924825963404005001350256127342604881040847550127514791072565152155697983081496450123042089561087781869769738857325116027546237965998013379230464027320279620768186723441713946880790002784222325861743558733214096480452546028712147303981658581792276025263869866973680609504798355280136387012720464885957569709450726132236447577471811653464520446848063565454414390309500809704764741883145721785948224503472652795270015676293030336844511120242864673294949381443900049568801663377325618727448302864139474789572150237702372278582682789835269410884442575903520163808495105531468400702754879871182600086336561045742711300829764513229835586560974391691616803851184560506777247856956437958318842091745844172837225980176129411244223454407216968452771803772474176621774479774395863564832713412149429824445575119310383286820827627208008694037003808921898458764048233208321478910143616594513484703796307449965515929030541490577364517889725150362605159764297645903958666437751438895902807380113703160496687301084438231509479274333633485096519361035586253897262881650097556116209813720234173869027413169889463696969141295525618413038849252933226608951125173974416658027865317671721939580299588454593582913984943667276764533131677783375181647755761365110963307743822574848308552303094115053373249425136062518378197942484358703376678019144592211211576591705506182099355859279486946143596421783399559807721121150562485131834502964050936254267677997411389193337054913206030585218294992053952678556327236907655608265733779399266584214273780478944934309424557140383387352052585657799903797157233841596235199349020050298136320047972699899466161071963532066891389262200793213075423151382128905028547033359994581482275104343614219784476436752942026352727175438556370959848746664492760804270092713047328723788196974652222890590984999853646658286161110313468248443509669617092685547236475287943225663315245585429969702735509702648595314535074749734654874277306846808792042252946835631479830373188917191926581417326815213590938288478009102054414534715648583271769562147515244554182475937176164151698694369098899884745992625380911486431059040063947997588184808979413012501019739340674318683619575704534489721191282879295166990710446843787322978933224274967032196804123823797719544606649653941711502848774238678424873593775771807296773107739246637593763207357019069580833507281000089625203742156608302040547292347087474849021960040910352277148778349371505301407149962435168406839599569567210945998282614945127852631225130547089002925747485285959923512084693663314171516562001315378309469098118749221689870724524548332294423645484595231981754312635444902216529135552761968247512873024898751781700138274322915707463955855904086000677793511914096955192132471951546054986465973446131670465145204815642590483295526297841676385726825760285471171725374390018280469186658648569260815017959342995278877412778424850760395589971283284512942757695619744591907392806384780736207470283289386647896067296791292092525940106880974265314948935096220282341221609153809463056818747589283751123542119372227253842253529401770609497017374830672543159287301258039277766557931165635642571502771382751684905668644857187550178657132635372345628307573501296956117450688751900643791613929200441704471447980736339899730487563253136395591469905148458367773337864090832608133247429902466667057763799537205285186507849492818381939759532964847712008153727220048321951927393184938460538364377007953484885721174160005243135556498739027503017232709188969363874504891093857699542796915106172532122725146134162801382877148943564926138689550096793442413600953351223285407209874053119027834854927510950646400546879152846419736670285060878100744559063897622041024242039431406758448534425033373980431975467276779597213030830254053762467007146251807810716375552878783623048653635509183880082223685468312212926788737381079994222651193224617122481777986809490280878466358493859921158739765776258707757135278221463946097294711803718874995502141471212109481773721200125236973812979842119959395246581949051023542378388258350735415003490845190942821683557778754198170914307968350351711321759880962444675211162267713671192374333044930964118432389094873625560466186210572031284090888445306157710003869167959421682085085393624172734168810924543872424318787952772856515717810575698615451116280976056528445594979195415507884636155340525845835571118072031680298004523741530586473950436705812593945048388055858662083450204063744910852319903412694537684554105341425767183070327343170785414255545766666083326202348789514317794638290714303720989520768051658682537573960667710190836318032411780806609857984118730478092523793613122716982047073180273992790115761328090532551800155848258284352855575781396409697284297831344065782753989475983693400332327659979523257245270447960017490226622685553079170584936336915342618131945869969747361883774078787443553220908932813926983441822062732664858135811990609974842743110370628358764024980394246654520962627032518446070878300198275627086083224927066500614361633605882143011272893405911560665439492296191042762656129043618709511527698262842108936939670934837267679307367940293337590036809154985882328265633126339047378406220777469122017691651808972224342974605287661270530809764111981758668618015702075638653107657553988291409786860140985456092288564954038614969240223613121517556107444404299905030705131003921127571587325580879347931617040934925081620294593508230274774027258766087503313146322179195962599546200304510165232044916191826019884161072470206743007021433230151980214933188361029521101833136876747678604369081452368096821065147766604806485654523844936659481060849484973136477197022683778840364267925266004936048963016340175589555948087259390927261520925150709541167134344037486846629919011855346767593318105266934516787788581584831341070526865706050561773029441440106553905555710043561797265880945350604243747294287858509265204333164456738116342749695417159355821582706202905239360471030220198586033676856494266193689283657855428160103471011148563147180634823164531358724118859563136204077356077699037959679461674903076116597074232625139717971823629173951456067700757332336506577905369725951119378647957858412643959852731216905988509452163396156611813288812575705516335588019151069335570894377050828074404814109495985663684351694618777530869693434373163842636812470426991605074797060233121828199931937134167359797210466683685518288384449598067752894414152657884945693089919519641565205618973102911721986574078928595807371357936338405817562834146264500174200678693753497467581168177301188354886668917016507816097621236130266879898440183985396510839605973239661090599529021951280455984588309396536468715614178569703063712859203273822177985883921362570686580376241112035322438261850579475844956807096297811887495598303388490500536657868594410250038796281378931658674663491970997851570421735235554855713606581912863169705970255622231688761002520496817661188637222770350621028068917657960983425330380692987086883922520247785444082702946953168184717163245207939278205756229555414065784352088857038470438735893751483698468105059495500712537100306405089771124147949200583530501661024256990308204037279009178500884240321013681011710966070135377607157939823730184656267945023176651933706516936656712105622592037513987974456276593355389564704092912561724438253611723977656139393063347463085646513124680047775518912752540112680620612330737578038539904157080036662494807442861072262632272683134834000050829267459345181552382889311383166883463659050389154985319910246487705684587006828198900760148001023766395721172330143297724253964314769512027418380769367597200350543246635900567929360784310294523786516762161179528420794560738768242874699387936588135288017120909989565906337544160647937996022889660610254370076201044149799656398062147499467756941414864317851473615580578759065857589740619518010954720856006071984326610954492999996365143301370006182309618862138050865026479476272225815276267297371341195653955352445187482956547359946134222045817262524751932029246567749058101809716439149327525679560840675604815485171732461004176250710261878150774101575600227742610277962590683789562337616975180111773232592434390514801639807272868277478194392801220607134837485188492359911854370369931741922503701318035944536676066065371559185016277738281425992402896268304441654573279621923050351260775741063187675519393975309873854946921896579559988114244840011838588155445924228427758175274716662230620616294560132681242226485461612019483998791998587248096313581218177549172075653846947156590303389159463862969532085187685340720032901994691007512776172846867125268646354933910678223940454398783407260093702839590106002500304102501001419098436548745918026520873659685789029550496121831340766356965838098222847020759703355705427093846850634452113907547083757041936166013244858599243121329092325340502445518201756021059248471529154503320439958540712578538839883366390933256462725902985055452746608506470439517027463013950642159339706940967710540139091341386277998420686283718036082216527301655732366215091118889097746006362160131617040453125929462978747603093370883089229288728702181271333309995069112273359384365498559296127764984931954868806833526671154125336767172087926853633479507678994341737572758587410594018797245947383505885419208274010488793736453361792280130529027118241735813952229958099820777709810795613602235086095663071302554966148713707382691381253283138086279462344782088510829913559061621732440092965525061576824715048571326345736298142795260436249313506998831703504330821764065202012337516208756031246414431763313938553209655598553474235372451409339128854283087137080416365792257117173043176776307376055128829828332646977954257549571042812182625437817770039585507859915994774896890079749644008470815245004519683741058866022696239821234935686568972232331383031978998635133955159065707647091630374007955115126221314716861843385459953488151593651395510413036051049882270710548573791351012077753711126879987650920818747259927838504401588396116965225908528462727396801487183280170606618213910501504848493039074436866494096612456020570108353268243843059621741363957778826512624352671574217123914343968030098217533433356409869286675483434145186183720117165655291083697967582062204792108648857987396380254534796080361131134304127034262591791128825620472917924097338131446050774184164053107965797565682542824675394357123558739369563892076920489426079401675516140336993865623938251193375336060813971213274534340775752885654643867106016428090017899113004217798985655954670533427272867801800944000849387428454933990153650220350154916237544062173149046518952295795047193207324409820406914710430472963198628965280132249808407237720731433517084554345689831806043599637399155583817621859021002826047609210152160220758184570223006638166342994437651719711736885656420628235145553698085313401907946033999703161903985727714380993545695290921985063496307447601832373430022832283803863094717417990376566577584302809533010362787052347014517148486465281455061701150027804583230053669322114866219169424229533987721325530284304504360790907542440903928902116251678553903485705005298197288757002151770974587812838661692569136502302814229899533671102398907780146321651462527112404649757256506946254108637651343505070910847206163518939958646542027436954052839117572371023639297841339870022314525925826833601724034592312216264377850770535091012522316826966946891649271537926944841365486719217756087715640496646070354817380738228528124062121743835832088276120108324726446406525185099416579150825268005225565798434078200946428110359588855530733870716803423157938377965708142452832953178754555961202713067862871292618464931179145435962734370315301973283217736314827561559369188123382038834957772435030334971322688495135624616030178082387792494602036377112073657472035057596259195939926235392908453908139617659015831698574605653715454564483298714607358366520008383061591174144601115660866406424355783480738439725228724847963663388911928365280561792844979441116466619104174839912331796083858465551569595620467633837264747000585142907972450766180529770036394214262654239231491283994637982308474918976198908509286836748962865498285031918717551976623955968448715612972580481404523828521560852223200751434230228595860206099403842803038895437665660502388610780112908584103158577667238996241268454979715340420965083263810397770542326807409924504336603319739073598979118696013624384474007942299884100980712548881330485972501503440058323821053287964777923408594430859412226784027744625981087871710384288513332461476106995785432608399568440840512240732816077887560428953111604707185107294199109588611303346492006814007670336782792728394682878052054358691556176232524189246610776561226214546576870318083289599792164786138494433073216501109172373729359463231064358858629800754360662801932469759589533101957242883978830907855113096470905139464961197147237366780434722128596859675839917319159134534391589736012992778651031114423197813736795285343984094169232999980073204607128154969906085071757092710984476577170676612138616534082276503249891042584751651929483676351607884377519326722502286102766468547988274875642670879959909089206810197528796243187722902781331085949990792909718966971731690070848513057571474656803656655483957964169169303965449614617214651033924958656061593846000020271148816467506405756949633742378871096643355586440075191782437362644055016527948160197745254021388668811213427321211996834988011040320308090209257741252213474272610561041490729834971621850184458525057450700875679579558836429587286480196030826254600188040556062210894784641100210606756735573938845983676408169844483345135381590357375370156010808908581291876604793756024141164966532505989834737842411516762526892586940749666712861713294296773868020945849820525441189580744670444498149512270490012115320385104993462144650987646730060077891746489942813520889167863162958812749284769759955894859479405233215458453360364414207436557850935029500459547723769457524704223420102812824390153931236338366739336582872228534036068100531878136653451062485382945131410105406625588960012953578617849598723506567314117855722416097611620711971994150552746144937786037876149478841828958790448400326583271019447953713741597331597190841943544543306314667199580013876845630650375052921097825281690942756394950802918101746711758990101684684467249404973965771090164797690180859296460101765369076448519451751240821570947506197240972714662069984267722986156327458069270935658734518111479439154794303055746377560010609492066532330434139700233156589996990604080124539287845800612825737142560807991658674160950603144197037510035104026963119518087517522781858165021640118323114965708299042564218918437272525112082081029584001457968858925851782272196865526047853988939034956248603830637647087033160201282394025822189065935091947704007655809927199323587378522015974402995237818766600073446194996550017701088999790365993162611693453304796598801972452874526991239140107513065585287623814657811434540729914843997708566550872725440873445569644962838941907085877022671609680572713215908389516139861806499840609630249132619144026789523682312563816554639307097164706237701395934738724938217059640583461349166770269269525584762471392036638977182081247771233178695258852512384685260239518524617716714831647676829621942175949995771420161199238142222276570954547405899738055460861799631626088798193344067140311402874830100133030502406408240402711962718324438406464893737764307896028141326874603097276029907568314562198757562846847769458023580240629135996613979557934991479612909553437587118422564669355944920178423077622912983471744623444648616908431695365800585446647391963494484178325069687850425478590758817911621452973080613934467245317564099813172810085765961857096334079953331925695723938649830672290149729215770403799007042302509744347883981714843787978736037792465529974304847700591519753368370955754397669165920478427305355456195955531214771586641404782318962644281198609539747265194848469439183352054536199251449396816637317429021651498628058735696526352926905062036625814341333544257034053902826445133939984965646167679878290767717888000519871864387668392913206156081270250084125555272294046835366559029038881616502725473633309856399711335458538065908870484199818359651746225177355584092274399669973249750733146724614270412529836500581343066853181600146916098096773081867631473178846379728870901883326236421752457736199689709566565146487922593954916620098878887662769917720538480946372995926775681847557589549763428178742748837850505869575768157551948935384289677956011102674564911061506996389657509860326258346045247086709239195145080650259737159880145251195646679577246084380374786739892376041022828102325006621880942045744387205055914977070701098352754910325826405221719807258166020737915476125748219611042600921616137780253529896925382215866939364329779753346666338017732286078510040850564392376639936747284144051431093983550852930099296405202265339794297791458762591564075496127063198208209541588730455275257033893519976046043704065301083961405046305943351314190194345987203850038485079645698344309363441764588196861848672873674876122577767964936962117043309973682653187303980173873353120549496582090088259353769541657850878703863098475200348721271102872248198136435677168199653663598672895119322320775031850244053615282645453902531358843223470004141044995234843970649940350923486326681728067372637319953420618363230093974590776905850553821276989435905698436118930797663367758415390127402262446266583656372316185132393220819690942628022455758100337579964843310981346103464562687580765577845886063352178490271753174399485635076232565715264320582369248328513728695704742645348668604084676427994491359119037024191017096568513625399663318080629982476955092835277330710285279825576463303110259359335411001854116929223334537558109448391084719767932579160543746012556835943167727045042368546976086682983316171885526329574059826321060180864028368489011097991932484473868565179565187874775405240464753022765904084443836782964237774571339886330100630303189301568429410931192251421799822658334867523392955141699447567746129008459323511997788302225218711150805067762722255119671989024591304238592151256119381901941370415603688160708829562731851401063427931345515261679207509434058826731171107597955119717532233743229778316301412913710790361877325679705067928995214533908902709267659196646307278797205529739864660699136260518129297686479554553504387168378480004475692387735153523042838782135716073453450469597366654552030978249470247206501655436144824971934330440510200813759037084220190643583545625582826367775037479109286965578160345404388925446876659940110089451207736295083398831855473343911082237807334937390764528667683532723479470288736449130232191729543746993076235404189683891155426306924661304610784799331554402106969707526494981363836462062864900673625505487275797854234318656007654765603446744767274826972815237050219465356377710594214852380002587509517370036012441662587920517319558862837508468118972064556109149122852966741940728680736870685514843125598662903552369714283765655602490606469567200147920404199179972725669629253699312525494849297040090028371346623060009912220570900908138635058205729549142650458715200882853593746781197104962072363274110033923171438252903197086017590614817616910371962054516088152666804334964230860187094551006994395115344408606278711255294271981039836215846499548216365226191243805857706924342278908559259094207453695614185252353168248404683096275409840850054102565637889300467597478243529292649132540625975842301613003021920454624365918793039900398992067516829877943695766438091179083518028535822271107135356559925296489761229596579484820753816602686871780410616874009556163547724328860671324234350072576272255194140311625227903186091149955200397920140454798880041055112536934736462401701788011426927652788054343953608688906945958693780109199299262403485137032399398913744909881411818701023219260642021593784184908389407296586072920100112658050961716246930952649594952938518260715797643832059265001161572347431608411736707301760258882411535026310819502819365980647709463201159035323817627471330563543016281997816515467292265839946683483406430117896734528117182856126472229054594991571061921654148644901460167417818660254254518749846809933099329358011616685089332371555034438964274772886308298844353068503020828203420808606849828330937823319132452609643060939560051114577752293088766997693293131558374247584956175459073878607112084963284608421460453015858080221727532341237705992720454106524875310887470658977490899934231075351688204390122926609484331311376021078714299736839604711156771083693247423736243987314616946375023595071962712666853287846478844711311622452078854157892285559968625442007608355693452941547073405176802443061507052432985595650210507607433164209266222805089284080683648396104357225272655845501685054426375339504431878947499251494963610069580524517483315815664331523942968669906530040065990564738242624773084069600800798930718546632102520382012365760903441295935357298291341989508342474974813646325759383746985145198963428685961007830127171201561892341979390648237807106040538502158358490169988381385897369084019049570083667986316370780986167040892797472355996473836693305720186981004471154377822504480796661930970228707697133790521325915960748611187212156842321769334491793674718759893787550065216107240732046786107138428946203087314531561489220611242514916933642100122109688117861076254489435430466449363513030336683353134735865925955901529828548353463271690736497073264190669668664185452725197952510221461498258778756062474781530731466719611435067496231455547696803293708615647679089358790290669355773511743454908888015330005254418522699630645784542151789390622488461653644506521206528168073689636537979851161812967410776719885126434581287959496772990833840976213005935077982044778845160571311727621578652269669014440670752754053834737322563010826727483071242749855541385024098784210369392782012619374382329937096420244705920922726711075225908181834120132786510946520958145705769576966987587494150809313486981864714844658064122969578643601980411480946180898573087840296265410011307796966954052854353051725057996440053396571326456269244189294171525788834601566289577475333072492419429941307406291177974142312378408660307929291602425026210798895510768500208309649820450105447958896661744883276405658126555064160788080068058438210941386525819807731312607347118023873920985191189717356016509951083252195397839050213819890688463090316727505799253098114551477807307086138978210195093137663904369645567044201653881671425094244851204352464457122179719592735724795786723942794214984438217339379762396456574306121497340350914820069090176643798716373465799363592342876958307923063191262676682250317954487678370489740703099445820822759208774322855961556153355853961072131275194383363948982440218144677417867830246417458190192008226600652800415206429326725642701430128758509350915400029591321957633623692376307780272233160790467160795005374016955199202229437492380872088303694949850585599170436177465069388092367267432592714294472873989716727088937665327999007905489703272790702333533817423826634228455284968004146186434948653605177934672972308547879009094617506656402415047533293204563277775573332948848607096902099939417413852900466379621140150408085441943310930724702622139026476513566495239033616093013734629744150016851858660522600405143223037672352928519259765568966443480175216273906032546198927709846936070534474425038156237709689791688978019971792433215674447471153029900303694262691385493107621545949355141628261614010950719503629580465697743080673141663505608364446235185216648559376518614331668439593431280456703422387355816632246298619480141334295591586262905754783738820699248328373122050669020218218224742680471006930580014013825712851811253513058891368384225450895252057196009876157995354293772707436493941715120900081551809439167633390809674232924672632252063219522225627200515262338986950079075017979198995666528018983861823428800219937977384568989004271441941896938385401846283990702356353980563371289978704977241499904234507119760061620996981046496057104546638327238092247799792430299276207380877233672944298445105308305482775653403712919860531036526175024768852979665320495646616741160962005113884349772924284640361478207968303031764257817064036983141195692286962147613624776828125643167424541518390188543494002910004448920523629656203706910982158462634957337244469810496998368858041237679894001219595462527436655341171062990744289833711198821624800539591679029751011411930202403875082241099555728608464883865436189955731304060962393893247643729316335656651645303243628037829569140548548921005110415654953627650491383781229277052173157773883467526426849940481448877403498392256275076787708144536101637082840535976080637852297513874133273570912582045469878452821033672905155614151365004818597856702231154930393775749502144300803531718785225356458074147817969636498607839107488951946337296037054905719282661280768292783228577423399249547015852499059901329778154266786720131608538689555108477444925127636840056500148850352701577194206153234418796844802944271105368713480024151343395879357951416675832208822805774849683463370296266556330489842060663919705924993937958398591954376995001367428869308453902305716182664949930470499840003792801570563252295483557584979844416234492766069559964715835854839927981644633098858400973606124426351496142758509582524124112279131404985428669892417422880834461729430129095427960263355011399239227716373738407734692049117847231471811432798201616553723274085200419200785833139729165878657652107052779901276221400957562441340358503850825080997461895689877811466802258808713178011748942868193767830821174760532064631980694231771629489862205437848259711521328851222146651428153391261723084742860606360772618761802241021437585803283998310600915655361935064450135815200358358732639774032310507497661913696422289536127003669825906209243831141739113429794698182249148919663738905331318550615637325191518946001375933335322320191684716046388964773883199882862998983840128113784490179780810479301856705456925680480770983740758144345099112660810079508731933316723293019351748758044327780800356426249874184631175617817110681793076312460230617675797683891637461479029643850907340972832541703774478080687720512326644749193042147583386252186113588664708410251380050467950184055195462687962713691001820817092862266268204742193748269952124396278567946838498849077748252028719752156025922423523284296342189746167782653176541026810230396194051882125866833609142825290973785802065936327413150877987103376373974801602000477829097249634716721497788828568371084175937946914684451843729970089529070692572516835754302256565662332500503829006429232220074464879191460469674066778153976414435023567133501448080783832323715754365409270330323040607709464900577160848169056677756556387024978955063832167245813564573978613584373715559708701757643093057113413774927273767545354467522906446899303736042106735872440128745911801113879474009060511940029469309573027054885400548465027418267132905499105396994624489881583815127012656737406339311880057929687725447303825723078349129838019116662956868987920457095267209741216476493750302746708857662444673777866614740439803277307547629744969497225723973443735050436916262367579860662850825384372744709477330277622105403887803847880825701360242834025013172754248878682804767936484596767088414196968870638029909955331610796872016948533346620457106120809267102582989761203009090306444719252395496786007499510961894922922450997179016971849874512287371445298427205353021959985115040020435533224059812089179547854868873765689041661373571677524429913258484986096556117970135231532428258266487378976192878256556355727168236726057434944322425044069016460681599844610433003747407366938918733190645336613293710658520319562066286533769610726830032768544694891735143462844345227702235644261838632364025300624809785736448159165314984636320535727382007248612742537403333627162245422727206484657709936028137981217824574919634226292587660639070071671894070352174490716638059984319737865325997419022989454193169055322639988635028089664065755981807347064972869006809645154265275168798442127530553460298490196339623725781890167335813420438629753056516547068036546974947900883487784803414113186763959932420358750899631995643018852040861600374114045637818354793694847302313933143436586897043937860404379225715998300772280249822180213196547035380711709596825314674678418398810685931734474946918133655531658223702771216214387188902927821250739287011686219306179735679917090336129827717329369883655826206359368181097713499363083861987556068990019188149744299041360732955148313118962077131811768426334682327518786488197633829034826766080845143229983812568386993058248790871258486596387108220402052587566475521572658997714504220045905654564056803928659737826076381396288132928950629350555437963060398470488682524069419395253694579262982737102463485285932578355755628044044149771941551877572713942783930652586083029489345118332643855709321750472757682069907915395514005094961971935237957265443915914652377192296028559501570846538017002699711670546801471099786011522101753334386232270059509425075036165217046817254342796497072119261322816824331962335425557530407756221851213821769959261814190599039107186503620064527443189451848879065922346312241287470616901275532109004036191341451445896888440110687727642037437213119012266692045752705602157799105270898361014749373825838334934831145884807493557968097363392803498784699699534264041455066796166126798830222737536836876552418038600191706026210816126394129804823869553801492716999007418564007987234399190687604533119181671182308465878986887927562324796902962557879969798081342975584831653894065359034024042837506738491924458272027123150945786987793810181416441789611070449502053807875172637421273203310561938283874962397714001211190431628373695141009516056926797003472795124516238103940815867275742702342403493394669869890899589835139790573080595558927602882783776098289394653933482062982600828182512547151296316586633604796899534193858947528741819878160131289045528552590526897189049611589532867036409744229100659933708088576350852489482402902662458281892945588688482695888996690128037596932322776207546509854052380047974992459623668201796952139330098581252657579923164256616939089433388165415825019037201651973497744592213642852635356834528555591244716016420302203164952520103456246949243283371848476328302946870405527335484485800991182461455221414563916150875291721862067067492371193111365196811628629153066918449771026461077672036832408237822546563194247839215668783488215856069306883561486435768411544701499806253423078637846467365804543383342437858106030694504811692751401357344790342099250674364098578205588555300361956443597048944912893336009428954001826721973790882123657871867395333873041445251465842966872950955188495263338294713279637749877900089261470398349900023767807036417103888024376573318243744460170372511582555113829085901470026355551571105125817868277507303704979220810254594366924818759197167999808269895295768991697782200391994781556030609872179848248802478819017395121094134735559149928296763726982017344983655554720359101348095402356574146265138760166390149051091540222886189399395559933190513362836748216033400413018457597612717336608105394753872301441990398449518463736315398240478999498214539818682651751773698251634759155537031298713899513538454425569046585245306283669119882777557932776511711276994915324723764519176743218667892690477574629700965812278469303347214163597238759499626037639196061982442009502860049579527491895453534492658960626851413140203001161433990588338572508543931778315802756486365703172715476069978358540346092320594047543328883118955412189297722480351221394503769284438985802669653643459831335945609168485081404165517240044554591600350337617594594847181972807942193962785230216598804156613733974025441550609815729509512050734483798489634304706123158904992629366098990085822264004464974325332743237496716788552649363913460772922456095326441370499212837351213887763568106885263829168039415969077712291792081461438379279210067271488832039160535166374916478727256488032706850071264661593008236227958327793766726689056207652211584993627369989954058636219948592853545467260509416227031190476507727961518949785894885939940358777327320033470984376323718459657050234019068448340298727217344310132657462243970183285830748319812572575948803766975464874191210102868758208461884403782613820512775158582068548586816929097961693635737044923353576555397882931373820994867737211687777558141495832695906034692784285946420138923724485555868571059879317980702470897537319854915605324801882562816037641677398086956490971126242911990310254763363038499015734126528043149851713865112826011801649295783110220167366230620775426122169964843828529223929401771798656323669996907260728487433476508493032117658932235176373498712540100185742984923548688280802592443173322305117073152961315509493788744885319346917484914764447394501997872359708972586808850829316715634704920151613798705041682483352275771486180083798931643037947565635846030247773175794412875779820995882744098768193094382726283619121463512782993132494128564966014570330874316284269363168547574046270004607801314611501434781647255865261936974569761761182610764681508797537370379603943889286883957323693167923985744036581156723352219927471429826696459014014065483547620495029237739272435550247916452575236313336492474158995923111830169768428090624539727829240983976694224672925062565598519675658985137323288010169972879106177631835837067584328509776685446148906779049646293567434240582637572461123951370622559534939256010336544107952657739236228425202524571859757167770931134802008121098829441818347378804083137509618693041742241601602487803112950019606292527463996996763092184560452126116265910432731272509138820465598019758794233186445237695284648692537765027012684287274417560834141332853275036372964442735355605002169529439301114464615715052002459867631689896699118889740356728286475211660440866657667318944931584024983699411220615712936326596848158914236889997741574726184413903247767032909829595495659860073791430488273099554995867091415737624147689548899356109890466231497919622497379820882391603700345690607077957140321728433447818790151128379538575894006295127839995116494953945844149663183239038094819770470019053584377842495326302506665299813750160043113987151211483825611729210118476172567911187726069258584217181608820306945341286581497859020845869362576908301203844002971319994974509457544429888957811414493720931386559346286985339744487986782908775504542565701833790309599564627867855159723412688727234675472099703570332631721721661207671205190099011456369078069923647993531148848312803383590771582091628430477865175332835754898517869590838917954834710704020266946377060614911616665153651298845355746062864223946954978979828727028446789876969413567832946390195026216367784600962101281713319533431743616543460434184189827638664301134281253234977314476348111062930469892956491173870032246593574039226320213053511973963688614422282695228058655514103618664628620280761159172020052677204040392039550152466494056342589699453352626574611894890228453479554589666453504156325331366603850954837635849707960668623749911812111633457096697279964797960717079378789774478684526621686619222531413615368290614485804715608345473663845329657401990645856138745090916987560183206320632854633955223897042396233704374081113070234773231456896999637476176385132456151464150109472074683184922925705887832808637596453676410013852378900193681589367591544157929458913754768142194357634845108318288417778581159981037469863591259739907382714173687477306583771698557429487512489881216409980367533981989080891353003061306600745138022509533967613923183924695191013459208298918573907062380044261472220173234101826738365914406956310418118658259458834762623613891752545319130534673098562520020497044050880369432705005349627864211847552153696250273969604436154295803878312724806253038951362783306720047508300988027272951065288323121865964706034105449713840863755799523242223179320510102643195081291626663174216218025554319811863034322948469916854868606690122075631076231829314949124201329654962702662746599977740637650157713246448435273994762655939777253766063974070950592103804101081993924512035847299402824791546663173163705331853031474058835640450046767433198625207706047044663462748036587878173996390043850911921329566643984856823995625115169384063233900862599550157200997954168017144798746399448268245222951035927448228299388728939678749029246146578390226395334967807056339951756775134322233310177781894460871567192075015681946810454522674436778681341191839017098719851521177439745849024946180255354015404171101144544540887095767589106802512687747217900705312813669241209607655905569347612805074931591836645933318844414718147915942287073297490484250936006282689467246151891780404871942481207245669320975854822540429568175965945485336967902998374150872091614428181688146951390788560006019219097695813633081148442439370591558918560969079342131112391369504002397655845620391990396841399217691245308984711815523967717393772643210027303700342261546463204159450603605039963148991029212777330903630555795986353093117933584475139087853469189280931801976543077524795401603319199624843046229921659929558908213549427327784265931433911379270644114445958396725970277937437413382629620595225652512239602265481118983040496285788128033909932912914761197241245002936957843910901983049804841763227154899271805128861552058975955691967560402336385502861678536681916207723713524914910100443695866402264946813597178165732494897186230224439995901214978247322344518097820690763102681896222135102808143163794871580329767103414100249991465873712488621206207258642345873522258865870978367116646852187454783522145267666746023334805826647307008041693984495370622382329361898760412455357083519450115335224323131836252118584990560706267480811681853499441145930002319511136254965082734113120356746241839127804713254522721115397828910790331487849564408730304936813146585495208525035883102162737961513059832962822389078195661656607970437798471751122875957886147169290893429036523086538918907763475862378818383494083112797776450663604066841200472190272862204095620359582565459494785834103092034148578959658540050321195571862595969608265912409369473303742112321587655960482453364529766891421961265675426209034581414149569293468091981852669345376828151849567175318280579542429842875928432923389020914072895626119185143344769597720793945823030989550525730313470722049176472948336928224503653997600940057288555954622852595553835013347001598705667264042428339146466477583809862399992790629120043626497129635922096631582647085787951062294271018846775441630904645737471973181567584338188575201544316891230999997796643642288594460507070975934967612138350722874018641506528768111065534501681308464922081315786142279370406346377174044640762794877425260821808694841974983921053524746504721890441904629310470857053855875404109322239324687603946477211127811403153252251061318274898407136521250044748049102181854667914606912121665712602629418621018593465957208639079170510544508372953537066877590617762489844061470840779275663169680186486413989851721868647687183841417989442047816680011462817146564633689486566874768012447485964343628318380803980700890975682446085427140858072611421217941731336255247736324275174118985450945446329160461818165368475454350802542926300373074640478937523236945213940393514889587424250917901703222345912447905647533054466300782805499568690584045773795401962242877602856536085348699921359239219442864429292784435988642330363801198539470960592359604432226563747469624560607353025390394972509027862175974100812583714999092496878250020600962599301245467787696852869121427197176900750872351661706460404807486072253650219245327051128002828959932610785860437768426178086135857259878337891420406286200878262856246746632450633680299569246299631195825230407742585188483707353645975812508506656117523203449342297331872011715967435092203190362191333881777306399184292371918614598838031098102441667291059581217839426616746669036642622716591333595565262648323292309740341144521299115291879844339321666464676520669451851522852838958055352131114238823160247741146676304753992117279279943944936541364513342083758945956253618829307512857967893546673044982075788470861901407587891575333319869970282547706729387123932378633996508271060707004334392461041818973407468397206818068141349220911555112131412450236628087056845435751776979420415535860457056073816309654518833879672618167686020227008492807254605370798759784226163022591266164708833586571144123619236598475996097401172789118173859371519035034325946974623623858324522419314616310970300465031436192710612804935129009424791116939387923460416684466271069117471504374690021265332973551985009648453877136213791611285099807548622200654030064745455672621697237503098042429454402750685140985424829372714528730811460966059869086020563391520632193954449280998533280358358534230241112956933913679235942207115123067416125490180726130869222313424677482245215227006417367018682767270846071566171791000824304613215918926710699226162221156204513133602824362462757113410872222808828525150747090522150707422567716067429455498977624443951815455250782046616502330338503967260337076733451393154849885281747792680278702665930455454157808643659219451245445664009191880748897387197444877522411615950207699195266816641738514649328929253615835307889929220318929396152397448534981275523121342202440141878780106816621618224183486929992886965690529546654553972478054447073310128358255217683197815642233727977794610753031361176720771105864991938245356029692437500109516371093287261707987750715278899768209475934152194813109209340299016685587288208814750926790056608236084126742509880149448608853302647739824946372757475516455306481217376194851212160837620197011112326378471106175107778751984790903533832033845026845984568135845661152702129839422647520599015437610528356231505452996083746879458548053913627440048014690171889796622023363878513675949495945556495133246986100928184668287566610054417928032648100041298884595840270046516399204535685909501831590658210810326248794914285301075000392203496052143038841751571925330131427083333148775022368459603858165299852107496334739219743658713069083784493365831714142247122303644087119458068072195975134938603945655858992977518920820047127076022170150214247800721944641937863908474109241729429307348237082528008345368450661970284352100358725888439979503652705972058595154557820764839521028880774774935588442828617488500146888852730712527875375798343037984982213580960842413711145985359758470589696603678096178894379372427507073413128979963799114976233079725104121244100808315512085322706310842300726185416027431532942181857209102801615719705547463708355009233919282025843402107949424784288312699700251329094941379378487020543971150830378274947912238841811582182131875990266419887933215198711723846403678505126796503884870556206633726759721111881206661651784749792022996435741853544431524187874163315858208305044094240853817604276097230654692019847566682047078706412125857482087980856225317619548491897484171469549423002850933557925008735303732339452717165529346615547828528996298985408649464916166001192955613921301823688564435739085037706368539404456825365977013198596430864695002903134908544968246209815942854882692060037229206060690207623028753743977138668093640484788085854263215582139938998305338141911679786633620995991532626263190000365273322554680263966910091716467633736748005669530732093373254334663563099759573313954299636130040924088598213534165376945069449640177589022338417387140137896203747747952099704643237863909435054686700775212568589544131522506179877016706036700878921633191532550106074486819614177402574015852354428527517981575895725194730446373083063665580877358695293202966324390786499117558744993115237915224812115840903447019427096620920697817140910091423526521882663159078201958779335504453972456740631949648340093858911501078013242953496690902521580464129951230269045124316022211320857079267839669518828149510311451786691385905175400028686641232430150780592601359041073206616859421454825450107474242587676139856221144908660397993496231237150099681038801294866709504205650217957910407715282006202339763119899722149575081701367238993128829347277953918562263583989982685278815480169757301680845633515857952748415060029635844385744525768572006929822493050630478033472676549149458767309245017567579577132662184709482063565160991036267914048174004075667408916210145180026664941109293142281341258551374141088945422230283729997654746368687915684423173423384153933193092686001943855990678699054311724462457445751587272266554387705574127103226600256619563077875482027861893027772587326338377020705601505976374453923104449871347392699935984405435066375424007529878877439747533630474109786097318821376453926353457540128933359250160008278112733154435005321747000433942039066638693560227485257035312637797655308669722663723945142261157804604196481913544285099928802822221260569275326003674910326275959029807366415739415677192577234985139650805446244494107170801983563076910124206809702437870690866966337097620768916370905757397590953219911161211971511156375355900651196273273638888322119601353617609086278561247698432767695491451359134881042954360403792337864557635491931063621075487751998766148392130404342516378284283546176734504305639973277736779458558336293585268825046951100987510420571561113986198651817161472184533594393889973197236802394349001393447422571152922288989089981723657502653748919955086957817257104578207184134871078265386103343843967356185551337004974909641717418535943139116907326632922060186179786102635043097430571156917713435484457237091196995034451777866342165559674022744159187855591484871466936038875127900961088607075618684500144241818445511851822544716059812172882440065496611982952603917628474294725386657851550813633928020891789722141555229080655535878985025795375190726321227934644678822382717202595376372257270995921259760630425596844870797883465236099255537434661791489084942946377141723862668342839435846660480820019795435764295498026538251337204973396330236957273805936943649620859718925901072472548964937352006532140453770487568590721367290745530694372022474779345642193480232047357185048702580140658033486222507640565355517299508375120912440504067675053668137256570176777642213067263782381513538227661882581749455054555817716160100463609270422890259984718641275845506719719914290445380422935183850265549678479054196449421522759554655393621963913533222777393893205129193895224862412991727822302043410248007852183011235940622988349258053565023690348162934762038560029590977868797507376707647008828852180001635617996511049712514777374778909590921756481009050674668792577618815269694514915647954272844698465576702516126679614312508650417034303545083977427192590183260016477794126098012162390024224327423021948025126007075444460569908280359918558772725199864710716415795685093067424838351113316451667862612620510678491731908845441601723014692481814247048687365414032696848110119410853242059963169426656469991891707944326090473455117420742286258376123859459011992427850576289786547929338696932042040743160846586388791497672448205714861533703406105350237738722715548149249555089347523458194274023050138111045647405894591695190011506361506584561895224702099601802279286955625251472079287214821922392454339895495174215462872571179098880541672013220646727496078744394839778017632830607885862514026102304180312920970971579035265202132037038025460829128016928618586802486172912127297654041584021324416722167807622893874236308647004933572234167318420559292760155740057481589472943700801190224146922978333536945626288883162002567268814820420068233933280114880160922137433552898310505202672895669247009251968789138421603867237901870026422710151043385326887908090899935026171824096954910344877812446760201080256782018584714960229064306527968387589169113049373707549027208691079202005616162448130127166242360328939867190863332207090292220889603600217234749025946709449178584644886453027321982456748281996100448698754025916290981095414068329990782365958295993218663647478472768446273250113439600601384843370209850986635837709060422585854966872324280579861132205656960636258852539470893976770408145121882037880781934848716943117862885073279875587239442742193570007799430177037292143980118235764028531582258685656172257500818945667524855469939562060804689454029872720718812164390073667637848637243612753299119180118438451170087814650191257824452634004391052874812492078169068451858180247178509821891849644716496335141051267601692521315126304437229070431251487177508721852882691585047364573071626764196851610154564208697864091492825527531075374807278661776883811651326838093702017850689548518788229518334752280808028221115859634978879528519811373261866797876622961581817949798343813826583564882535832438924100308905132450316027235487893454220069427943041593557348005813061158168204224075958771888593080910167687564852628352733488149028933502115013173023099411812982473788586951657298176637518596354574452191522774232165670204114261816589387031611349403342603803491275909438053066878373504656748470443156915739239526909526030476766044592659270627610886106210855498970129049119792403921012226600759767437128982597915967030019062013918283190587925998322082780367596551041941197649332818966755660996966205217297169347536953122239555483540554345632345209688363409851042267205658335137827513664081010828535977681894074268068002842592860309490731270535025724509407769124325812708455212423800462070423502275680565780817716876742815396037546009643768773270682853153970522172651662439123078795949575702070894458870967716685576675448967611104482013384876368469332720451833084742931900239025180689724908781392154149523157270801459948032801241929142652409261993945147063750213679102636178079127746945393462022540469026367136217976908381820912700152159764240429927579246634716763346462730832452673233008889814943665928585914948246380256058678252493704557959491751785931579744497677469701810443362367262978228284848971917322336016446671898817580307285129239364722568962283511153347577921414801157969256311088889044246437353786500363479568905969061796047147085348004847789474083817600623154644512850690828365592716332161255560612962717620906612470451272891904864310066531498209822090550419652320097367201871822495836451065827651706083533317449136645853416095554265265895412490492961130613232790905612083638817426129454087416705756016390030128509111212594541658781884179986692595250674810462275560605415880729169419268154682497408679139238765095903455408220901966676363988741585042084685452645587073187206038557938325570868229539114063225680200697076746690575428084512087855081619826711789585048096184603222251864987747416945416611858801830792766359555724292579781941084275943302060751176635691081866331985017150328843533085612654374950996664660652471839851329599683029040143759274220872111894309961375154261841826639660396035725979889295658521489842733506364778999668103301875157990835625957813198827472366588331161414513310473232812288911255621918171594637544450705142084506500727883135487835619562660743188689717996486509599670887605146210979297381176943943497925697237966411542778220784672837994618086724664931664216482004388369124381463820969578131147595804649372474680782541065408658253259785665112013920588249866535045783171454930495821861940573105242602976747220874659242458026335131216509480403607602037414717865346154039538760926425365463054699894700438209971092009144283787362568305334704384628842188562721161752512677887843874163469473249081229229837474217153137111732138627570778975224869370985148981853899115612048949851799300138287700079758997858582246744215015346721816445901413060054974042697615038985073915683935093817533610978281400968754511298148621545995286667639762023488446874956696370070315440262507694221030126062239822049957750792233154232421212150791091971040253995789298715717935944890958037177622587008876841606086548304424902823122095121494663340769309308321074135746731177908592979965698175618815611304346812742053712665005327391782456512284702282307553739576454597263987026666318631740408357444187580999920488154184333162589531681482371050825625173473743676818643768056023011703727589926143249185399330998535083545959858624391867029123758954969034519744659826830769738077211516623029632448145748622341885503464344785225756462598582649074228772890636362305566517436749902058612842770151628685305961246339529499196882020840291779591394386195356475576261206578196334798624595616508550391334823223692304620865536149889748373292460909367611078058743657101395235250321965118515648480529767081217255975451328843295339082290771494031649620302236756777964446121013080188802743191182874883607210699545343060461434757747878597125154944330221090682178703671349110844857178829783450978277028662292053394061522521709411704742599301369543492857399312315601895942437477984653896491211471654291496004008132766074680200077259542946712324389042379463411709885058391393237526845945124594409392812384604551802718806257641507205421421903840763230972152038223658338237071902200145110232782121687420123324713311740905274646705624581866711447769888975580075729158461481806306418165440184748466621096076178369296174868896917843194800797168648112764303983088726418492401260070719459255245551401169421088591949742131544189916186998765697022849549482200652958409687885700596029422626607054728927705034085359212307229244208136180903565615441189100872347135871332031525296066215262568301835810172105913136629979375661874423210789824032032039867704808896606913469020500738486260162194575019291552023178294808608242595993857324989321435600583846217343113225483966648190760734691858419230796178837790122336788958958118336129936771827026488599107079242076152833004540997673079923022299316384848132833195031530693817004088000379644301854840112118116364035102644563701264103792890870824004575697112887564077922374518514684138505938019252988786215124554190788245467437348461378762377603567605471596373584087755519878579905521900909283960712650606195748961476424582814358959665345315170868619870552772252442215559637303720210218446836688833976894552621165023313515292143874949135238252742311194153855660908365378333167242004447537484769123785013776465713536456020735866269984439921284298063058788926183451299695336615316787819021455605414355079803350865083890862035274150803827653350015295630069288064107367056509460781197723905165258717121793385367241062566228738316543461789559233286961805108249845080451621067680210864297253436060219965445125606546638647682381966245159096512891530887750401175059331815794638633671599580546700540877621647114864317831056408410097415961084358631543917764475847685312843999439349791648749638416284613770536869727928903984292422454592867604430659436159267306143181097082961022884205958899763245328522718114283406212439627485996110732591767585573720328345656248837441434029926919559290239797756431992026217163277423294973224676573309607673597706801377482727861355763720970637109004725857512859291014239144537254537707531520788627746400976784427831429447506891558836513341630502990715494974807061726271487908636334492114024529924030974049346712638503544708480855293369880976349760665152574126349717860849727554814465262866331287949531512060366243512846970343588169203748155853683407148468109064516986193041536444960183784571812205444419023085230166072222939227255344631446200230993583170315247236621298145501337955477138903258990217253323859550244813675497630048142530580242305011710811976351313084878956794420652332237933042124560842634023097465583486117510680230881761249483276776191052743320632575992506646842098540551008697639756672969466486102033970319549659087415964941369741296765139636465524976641068978780332417190164370760485157760986626708252044716512239109130603511698127221084246115420338397772409635881587908842928874272268688082932919315395885623772042786169726532991981773283861742180621066591117709626064925451237325136123663774947177951624640193182517200478469771514467109667460174690204518224786152836348582012624631247515076064061822876560506942492258775677698530740763413217899284886844606142713938953836941881118439611790187330183500385456535630897902481719375456941634342858827834891412868798347702726376713492974234154388439415797034238847972282840549134537366115955780257068044136799534422475314508660549393062531152922392715005486515459205251356748589287709948343642467662000882514577132326672400929409843951780562326701126016869100591197082542300142934265445685205708621312803033942498336005058119060500721092112580666580872784452165668387386005366791152617697233157452405694654973609383234720170460893423760304960964224551664916378351547921102952905793747549743812097967524165834391611521133283588889024146639859892959706408221622593086075488710739265954653516342897330931165008550490515539132241040881867070314620354021885735448893560303849948112808935981317359653792116753632635482557754766199759349982894734995676709936508982115867030829040349054561211636404602877722623861274094171182195088780497853871468631688678712910924535466525086975805040224745538357870870418531086031553501874433532514342211387051069985409233076602888491472721800777586551611389059797014647688604723873248041448621765964600875702423726222801443762585823510370565233316856085440944614889502996957776955520530224849626778343015368103894069844128261374463321776321951886459248446085562261854746052675059238797039088737235928464726259615284106681830116507954103323192267758133621818768577858778638147529455800033473589916154540054926852786879373062889870596598834411165816172325390773129716659849350023818716578071489004328194630374342271881395774955584919432805662150419612821307707016896739555804546197155488220600177182714898915889260538240463792444255333630761890485392952230404460776077935719189452663651507400038921056255637804022722599835603402411258689230158023525144615123869869150262604229388368410256044620697826870386591500415003516606777192063549584301870216878151223807637624729692651523431696665237698658611484356304322559577709868630459142328571903544168648684692279203982162964458366065744489720215875202911853379005777684317290073663675356672509016978372871720712551293677436650843224785728996891722103964774113212829162810813217511297453287111008435807612145682771280317212439297531002726988074319212690937296570160815451984106346915992576439205489254575011457370772448857785945578108872787565803677113217970180526878401526175301370052152388106794326031741398095684530289518051029389872301690401221222315638653840701231752151586997295657555200979193757272897224822754835177194460639144217711598066954082934671683016388534544695118876437263644198441779287044465251391579041709387808754432518128742888585280070490998830896091469769975988918326221735252986526772840156740874180788542775412402220415647530807130664635575815686588586879077078223216790629027536314398637852202058112697080441580326291058774583369227977285534909236075196674933070529544566767175410717834495602344280195303142460207135921522608146720150726579434966055531369297210960891799799024429649609200751463852591248523575805680842889248545325946812372359289674846669549527305549637970186569579675099977327110087015342149528447022726484036906213627052103592229908075500668738602465501797957807083918570921660132501564746198753184228815351588452452618674221673219348207738011193553501684475408255522648738709856202072205629206722898439735531421650552308417863223869696303543744778299246543964437788793277151014788285500648946008869189656162984622724772082345213387038213624275175355580474211929760571421907787519550920169811811666647735067125797588145906599434312599487900951299226209748334051197494507143703436402340130679343865111293727752804764906130560772174129113531457821889266340686837654347536570263777531881520085895061467638605203663628348085073166873257093691667947884205717098735573448000859075581117204373916465020904348847017333050954410774283693567714370514380727044927978163310132262132777663143073063466063875246338327386775493224554359628871561947764261943954708530595337038247008249456979550170371095546265983106899025387256642980632634845908376264537077723723599721668539665080467224218023836670192419805402823592657111940047102733876891798535046367251676499401643809400336552501312910131442088060548002357472455638084133263768777284285463449665283163100920996700776208984150983717945128278486538141016733433774352921817061770548549336926054338921891945593937545770447358936198125454225004172302258203863322667661080578348657977965628425824641284087961254870806981741107667206536635286201458095212198541782751509831749278317437167048707681704385965505036543588434702447635098067522372812893288587100036055090429367440360776335969453441051816849215411548250837149265478914074126837802671865623391280455388517817368517238680993250359462761300861162633965381751272784945718202967171836109531205110539605703727837108262691888417780385394221127380126340519110142996174327839156857431116786909542794712944374296723318824698777974210867571036648785229473506014744386683967584637020234314212438502458879509003732619605699947144532248682421346026637000169700166378450928261314854938385577601914645126678366788091948319149340541353116257658252391844725882773690350136084599643041996505195071557037476594068238205162209743469986817102810115522900316080445387451425092346169763233660484039763608094815009936331257054951237635851484551331572782938547204093581640079152336435089520436633696605565752993914306362282045159723540797666127127145879716572129872339414128509516397318406094681938171525928362743337667178043678975221745866945097452610236951259326011002607679704724179864163374282253216683952383610146864691180700691714475974081473867051351258063990190513990724378831313228668062940292081706273191782814745145008702676975423144083047540331723122470374902313848497623874498287446253276733883079264184203787846143961696060138671764055698189439523340228227365273828349932782329513532821283596860734995419058615134423025593534112290701847888747018122276169473393820166205294381149323494448272294758716904624465756542566721639882929316598428116121032940317481503923891478524022708173598539702240943595066299192746179907922017387363325610271187540916514930668564125394141700160635748612675363806651031851562699143517871241791542462372784743979288410994400937613067115408363600175764363238731727326602996992901743176755738202756133652764610274327878155199915966926533088591749312905491461401356063230428169948291745889561681123972825730602302563879783076200094705467371726131532848988038501952645117995987597019783473832763765012736937245832745464874271362797416126524410803820743051623073165824955472251856241766939555409973180404297106445352555560741027352020899153435862377489419049482364720528649004313866768128845588502687179584583968894541858244832945771636769679370669913027060497739553882647988361230163732227231284420267279233471743842975279697221718867655622719347894164726058948417172974215066017132362186800458810255534370364046169025462192437649275457946905760125102873335046638757052953773798771982817330777559206726903811223511584767433378272279466571483793588995697569317695715073512031977529206116509482539006921462714534961324387083019936518690869496499976840430204076440437495071236598297970351225138101175323999193512280124490988667636732597906297113799073748590376003615832073258760281194419481978258499148160477840636378960356948707130573247338298949569371789354730566763055594914066640685016801879280860251796223233396926494924400993627662154537573039424141918789486283322579913884949895998568872191703446184358173701462232072138014035318495313299438841830316914340822208522078962635662711307306568102072728909968494107847010627865771229053677434145598756268136922603353407101907043219979003035027102729630011852616320932499353790637793058965086366923773672795025181328983392637480460537558012072306072107105064230133325897632122843896861812720619035842782929760439574853319851323992384353131964520932591229651431565551508657779695376611867153423259969782612493603453525568341987666610734128371513375731583406176879720099933593235482211238716305028380099665875805533399211467252297886546934231015155599490925791944910933455493710584963868622239545667233572136827994002978046250615545550195727868609947809614703012512138968478265740736202058592401496413245993224035262265893285332900813425521881974602012156130284026981615077184658901901097220695391087973778303923123170424474887317857123251533509873054250311801325846398319476718488894753695689931642118377524442516726563932346292755949585339911689175054287343185764186064396684260999642395903989841517529035523626850261993525239299885854072163250609432739127177343690907788522636226825805291704475673074485014156089845090687444851938211713285685466856473452350125688461714642782132375258544487526732013593347743532966174457262775578991207981611295703756989601534372298620781937479997179664331340572319960810077249132655311044378584551766484818524044682403073893493106770200873400213271432474811837942436179464304891241392149902871260822024883052634976262901030025883650743885788867341022422757139982678562653039231764610297528019282908620420922792742185973791570741088276198240043917422917998415652886652590467141071923816838230281449473695811398876080835587451223921861495248081690765276327886005767134613566155140420488131526841811403008264876305608435386101908612831363750205406306971614945400616654884334700320718331082642176194458513534375341353515447708803821284693648733671006264295224568642706933382065335469053732803972682069314969521381150769926527905096665053177381719326558893721715353059930669324827527547730482931181859575091513055947040258626357803170644013203176225394245356018194546649096116908950808767802302373857804183395844671450891755904933364941070502575948200702454210390287733683916489402894181940961432841681940655572162032954577486011576388478565551179896335924694049448202868078783929420228590869419319900288808759259198064424592153932684697343386868202515702996000135806269456922706655036088850810649249126252204268323675699054884102189598626496811012184829559928388425951741644564783602981588992290894271978600093499464737866621697526061419192887675999114877155843153348273839080546682503513410206489833928336418866417206326982023883946021340176794253819185939809943899770081693712990320677524096601351718525374424829754813540290661427821635278323283523247879481781152094233707449052744226196575632735448902260076502928273237774236949752012239452365982526351302920177658847255635417040768133112695341292549556468043826033941034740166806273537762187082918363148860296100988059146758139612372150628153033318943708044479255451559409688217551087160650444303971289190888645554432607191403086387929290230104902578470831343017810904883735513468447663244979987281506943771117042988529050675287617398900048944052103775356951777772801985501769523080826589675049447876490528851474578252936296045629152774565333765684019326888669678581139878746145762667907465118511627427163141970483577973059775862626100801924634933226592225262499713255340579973896145174448540802544120688217180013479379721382510260136916835912785290441572790298442388391620703091553857548147850479631953751177160048776413781692343750734796071459390600829301920783792176024063739561236640314883461197824311759765027161031360936139020208984579539338554875956087542701605187560287316366228306194720301569514457613546239587054574976651597314480322004933372168587644076815673592867734809475979229365825124495799470381673680093005396619886686659744969529194115615394596362446252834442975784721930606966510133471934398731116802796591783729412153534537444870886202143672767244726842807822141870187594047100300802547304672293262637816583545521296487831166916244997248237996920874956037370357766564157119968327522997633446923572200607618263451931337697472989512259204919183507335012949322202268617792035370475138783096360518616818764476397812561614522605423416113737919291949042885798323619697183719853294694602218453410590119960558063984591010017788316052763243549207678830844152837823351252568544983752568593896187628522933098097337521526931234279489715838457838597535873561116136369394901773882576243817253929470100728459654889733581878301319685932244879511799180423714658178401790954238465762799147829026158798252096058912584990593163316070487341372751849458510853469826807955853315848532962085277977901332788035951266697312342957307884192661284314513658218963944266517949223559499739221054658874474542722221974769106486671754369164130596260948825582336324394832283889886360598225015466173614521144724639079937360539232287063895715535447676978777501847063301522355954453998878284492841057468948785525333662326879789003402382686932880362356876256506472017581081882922499445180091251469405075870283255887297448423175232236030360012722764780987259858825884381958042262725655633022029136366297674573083552609099893804355897521507541714870012454395450199794454361216663402927508319207283494880865177743028940616116854234413972956394696878105549266238027598822275730603516096512936600843207251154436165306814822551059813696068891742733427872341395069627784765026241019863660615424628897787212324507020086220674850203463742684642071735570444758151848028155001299937565669339982555060791920216726069199360535476686985100473001142981571559760710945842622498070047866080167210611802312959105831309229659703117622625457764634968180976496672470302824927566322738330313331919521652726857580311762164944798758102213053132306156351393190989617641268212712080759929602803321838709122693121960254091963449862076401783980864864456490132906192103626059418502526222795028030154396815572985341181941332085790666390116107894289492129157843945258268847961664371909203624182019139556592275123065253980121760853939066802138501656777761360983359306039876315873209840716466964334807747140709974768860867380923935869676368299167941495346254474955032697334615621275435640663174923524906284243174023715643186946757837551334179878489677816650767869604658151948302247370096918422537843983107055782886126128683156137252330393373578495620072359711198558713547818231693383110026496036084651665333046889504573980988523465819530206341805154789706822231211037027326037341251975229001478247989484425463210453030880425767600476365891300130962760156533562361557759755489305523283236294092057972640436474279875309873611181312913851003369022636261131323916837894610118973322842619518777704361065122021591793195083502846545616764628681481612850744537314601984176670907218786854689517614691120486934557457466220255833086705706554671375328461496082622943807458691664557099488421427388171831736162185134601425421067184492602181055477688004182429488097465148182360791207619740454117023430781738525816494200931186837542993228973799864837601118376335796663150353847966430792484792620297819801532812238274527901313063602931110117895367340666420840474870261903905134177960970118638440029190567017528670412047462275733989005044639512854328144188247506069238299974538869602822166402658576589588232376035051851768394673846949840728584756995588758653037611684255050007692000797237067004525359859717138980414499869648964517512000021204136755115077827176128097858472099728288835918928703029801143256236074391326409183354766950357659543972177287346256923300174407733880145165588897108520270881428478750204126865392967971900582633858337028266422548501028765469499486909415439263013912479700527722079320302634530626536557564041169019446065414805257393520373667814098238121099020210367335411267062545301746679417114040574297621563941542691515177854666139045358656545296598118116561381384056659884675040589431463505624193410572675614360590959288104680817766171802707146327770894790897863786157617012622388315790823931497108233456879060281441738316790886260851119513672580154281702345310983208840123320670123753999204716609513540982271041712953961287541083444374996198569151357536135495213480496429304068971110200690027402924363930862805453356113239440537184023056923478607428223076406737222008927285375744154307985983984618143706129412226814786077738149733071010538813555523558600781384998650808431771350428103209880546584412709116884071131130816597460411986437677451559643059250733124600367256900949091799010107692066529882204741579643425109935805799855154412989656552993838607606243091338684382767214355905350649134412733032830114301254627498521691828230581603795096148349388442829032535580762843354057238300338433233295060151053232391726067327885270026815606311085302948258719448968514081822861817772880900066964779729938771188294905762947710658867518071684546851613663119926353250815528300474446800484393273528021106577543678697733456085119334240139868902069020401026912738077096762591675015063116205315999636587824478825334554738384136365630010047769171127543551315505201108505093142606279031516692082657232143584084720552978646489941113786234738475400680809277212370304373724416784321717820130888533651047338791999661436441490660203535336953685924451738365569123554375201096104189260373475859235063088606344900346597523701356530030416866243250480942757281574856882141125661546871910274069214368764574508601054941924256546194639532650231563053990230085339481557059127239507043969195050311822854575292313130620530445402729247905239949844167431173137280374811233444636512241597468464565762942418287125692839740523643913166168906099973036585976289553542784661598503327017136077612101733832537730267351859901898588583000219361270132274047358320939707712838391881790308093606538331564727664902155527727285206484615762121110822833834937194391293258879016901530522146522513945494457929893238211615536430088273367870450746027643986041181622675347358335631665271899086963184139952429932713201386337239947751024122820279525515263173484123963689438045204183243696684694954342392125899564870343236826067498281002213331111356513629714839919105882546123444243612395595800384571259321404647718056937666987058443497484899916188921086898538819910776373946376838473636833569362183443927728559504465732458535193692363933555086536520715672749892671913611188526851938086284405214507009679685714512082598225368609978884082967836343706210636676109696857670858979922336115890737461355415181713819336692966296949240762290931090967029673317328056544222257445274545359811911990342624034143093682165455592339959252253173312590839983548652579245462834380755135298877079573681307784257630308795530269038537774756688307330973691954756426014031550058832941580808416593699705663716957904411552082420465100004943743288795844451763445791177053803415489007578047905549686307962875800138327129311471650770284609508010168791337442920186132713194680105268344237218594466846805100870392955562467309477767765971361876375861990900859765849393833188004653287323760253847207811447895827168772453825685308339848278278348114361944532282114528979243287735098796238460444454907856503918822861828046656984691553017885004847763227834073568578835627505548844393794368750278872436970991312909517267462734503407447183378500018366232575159022052575770613998628933802752011293990412073290903998940029468654698292505188438342808542708910037658111370556866443629293186757650963309290410601763116105446305715249459719145572009170613841285960476905871203760789405231753509941103932311755396300965726094913106159269118684273017897902057163963167645160935336603180649451642389702198980909283539279340128355961133994964167230015737086934672107720943337202736324747619571371953939855535429471857342765367678704009319768232023965453121560890228377822024818122877452855191644788433559378607039350061671110251924302901128482374601183463619197390131549199351569197727489319874655493424937342620733399266788411093977151454414515655687813194954024232784024990665752021603442534447872510308867256401212422443820119849323173747649926476678985377676446374378264392603832395396316329328332059468718650241255888381574192788318537581309195242192634464652209861688185321190573047834521919032160276714974305153247502930880957010588599438385887007344461063916748718606080614651985480803391455207454189837061547506193569212144140099786458715651590916426712219309965621656586574339591207692866900377825167849830610206537466712474785901664538521053681271889053727353426136433164227432326337847202171727084461763747892111531732708352221648941170771078436200083651705559596818496310171161237901194804107056736575123937705294402473585343594127628458675102412505730767739375727983113561733713277638789095967175999400084271344577968491250274038088476215452879391598802634490984625062504386208732565870966658371164892512276004271247179199619320272139423735845250796892348521266423665316655376629683962396179190117311016045096976727935994765032046213547133889410012383453319407923726881431189753774555512215582258594502214674261841451551293525266566940258058180353545884473295883588973944605011287470347457896283533901289668132480615883373317962114667223353083372048402388549002836018478086666038884115023398640666825924474763128859536153256084022099007589482303754123575248082049953378309496831064987825105845288863873316755287636923173110679524957482996461446387409435740853781952858962865742734230976081290966210247557114906292521179008553490958411172148439936869475794834227776705282773284003719316491237877075104770257443806125845774227045411261266918208258760042057561221721209831613971629873113342839290149677138405071512251475381799448749061060622832512005570102298076844199826626715072142990127044507252675989600526318531018451283037249471713602174230784179873770691760824042713390042041072366088145515057650402811105347603497196765767955333700460490782930709072993182136869704414480469302889475557027315652137852782642417979588944944446064669191133164472186383860674771666180857210095249053822329611040497584417249251891508585387919758935326428886441929365267677662470942622943404238018904621353867944410355818963944850280557541440448601159608662862010716846594376648353728511906081439248693869902770655167503025523422393048290115301462658977450981803724393915478186580494004008145484213945920904845611780798401219215831964415778325427482485387472285806528543442069079982241805771029164837263402197308936739034748637226258594290247365073307962858124023206143369142752144518535559764543314316106288144931317817041994364005346761114556796930747494303776609954057496801582918046727645002453990813166512687331199767412284927031995994902439721142581161426150445090137960826521956047887569270446313653250822286862976076249628360273428060101077184257537417955554569498227193937422496761301809463878307985006881381455034755372536562884556027088342507395993510661264495219724086688392643469391469440002137140674082394640225699053843366552483447911117303930701424194510224271062473343623302020892406726878244769426185999040486806992518008758962292872784859476082717674528235705628445919464342314191418689080275807270526917466072483955970544840370088490210454789824402917323409114340959985638951527329673556067391196823846413644339900375102500595266185844994075887424916364583491122361660890706847631820863129287032516252272926970216433564130602971702106960539767336311726212720797085999742536555495059797425257633587403646115326590658856998717014677973442147589216670293606199627073281435528476071212592082825480162204989179949001288867378552518139006516266870150960506448263406008749878232866990716480974722540237755278915284612083108070369841111996108690529655769700632851355911247873295630268462572391117913004087886921204638869381444640829766624469169327295409009370357797230104670592274580295219391408051361469727800847501335339917216406255065451543730175936452125844792569256820897187531780938985962472796373152500529227837478525516667710328371394240772389756029157647126332427956834756775978789065922173430697297037405469307185314327786467771149961823889191395055213237129258497566645391226922118053267020946560344894582002169164696936613871328731809432879526083239612153026397256631633765807211936862206262283497404954202090924466826831612698075132856923425751626234393883172167954415009744875479007162503531737705994874778584768246753798608138312575169008359086931276915255235453894863816815029949601141361106871703191494867743337890432544856461395547395017530152692713843634103765435115686910350095869335794249593682947987513992898150987903005811777370684301865635904394431025678090047356189340546271717134698483294352572348772478036550026768463546349893099236030769002766660673843716349498954951772972047365566914758834004247399504171222820270642629919204010069580943135306970464203253003599580550213947052738447999529647217990843148501465001621210429699955450269885100988986580634605864442601200170785142279243042638103662025744962280463919693495126988972531012973776536630179498090001776685950925470712192674756919962274927455243431589393775984166257587007599363698672687397506408896490567921927151458883800882482512105559131712684459350896076486204987745128089018392161087726750162734467871278525894153475118737178810164158333640495433149994846796383312267362283726310169234729193292325569139890639471882142246793914624095823191319507440909931228277156265530987972966289160699853528597434845344327737519386851997502640230552520763683465442339065143403959047006284284403345373043809707747896851910862698962096551643207892837524758481949445524835319289692083831156839548574591032056347805593643966308936404107636264855163657584259493946451651477729520048058251876092845517614134477966111525622942956052763178559742092924840454031426715788329047871870352543514056017696329965850472344078931261661837874635496796505137735689644687935519646417896912538502996100447046027459404915447596568091237631449341650344205551879544657729252436290965927681751698109485996481882772970324478690893978490511100280316579813470032171696255589642032467901960666231709307681318443855304908905471321617111406741192760920685148598159317568767420545422923243738221490850001207901684143944581780775647632491969267572968322587157203349646221768259224179887090197159772428400339800752528099916719819828315284299806588901412408284677718582212567959824177054910163668275842012427626650416366359728422075832363019734097396469427335713174061828676477504872108037458635354132361427982480966928310655929913979178423754532612546881170468052339780849741424516098634055928757992665573479683969991522265630416822574239389901139000646398841330303681467238599738015167895418413464735825555733554294128522495265832337225856759628106686775174844587647417864716693051640487127653656060103486177372561138275792185990098910542431314996907119243370696333179390166012220444941558716166062152913083613538164575576795257119261393743151386635042146642438313142868705441227452742134301782383411302031338553466614772177470631788736372595001326710844521666623273313100536764056270563226507591729696862000501333239851166550702883988839103726860896539635504432730795540714518974733760600432664229727068056674512129891656843508049563944510315245493555676656747781648115394319192741846922571602311211262151801884041113298082332821784812991829645957770019193193272959044117655760022905132570078345933635110630984699448466831240886830447008532257030171400281897253622987895109179566924820498676766608285737099219933288861352385272229741556994285237446433462859326638837539353704712423222655630595619640591284260212357905646450137663440086726023539493064049090351234019284679432846878982511405696546590529879230142554527349629508287642486649251966764719133015509308570787918882677984412035090881515397409119315923261658178601569709775069735844408293528013919427589697831968995739494947141791494533043163291545216936674672425705044495495084673278085323462205466293797983606398801929894328891597239374976171408001476584225434589341061976091965897767189488960034085495766875021268840235128720533981065303366874855614943389374811494640298691297060351649503042941663851959546680148332523327617776815181912169784904163546614787731489758628548776654794647791122377195395851209059956880468341842430266709289289002645111584837058605462162361090847452871064123348996832216288660434084176748438244039226404130336638350790153740706199605311246893488638078085661559125996900413196448056143130494223998679199535590151221698750719660032347176769633499786601370001334972341206876034990661444180682169576639696614873883632206070923052429359499727077437646316877799785993224340222792019985684200806355378913300308879215791365388541792783545745173971005434677317562667306601739889922504588016773753672102641619708369382461971525357713764262357163858239686802971143511303268582561479685708209722752020183442323926977986798268875808588986952899024069394042246266143926225022093620835909605844495932205184611852247827189824649492739351836466079962667277852394629421672310037813166430826276297810032508080272759408768921645224028669095430566433310358945328940120082575680378303507493193367196069698305940343063844993494791517410959945930987213610341700652847306625411834925906444044922248524734775053298518139552131119599065394577087758337781757182395919807740787942272600526148632674312899798144298534886815198307699911456228437008230752019453777345693472399235959956457137204416738400816697412319041734911929093451582544514934597677850265975390666678433229425402842527806003502043654838774719557825485138503250264155728059354832451927205088918682595055459615357348110029610359468346158215722621212410899951768196500131949892801972185118222195142969417695092324779939243942843946245757306489755935623561108719916923075901160006526263047388895265776803325828165963071912193229104517179722147047311118390007340492424051712859489485400375328993289820219604575749135624397209392690035376231504998249642809922373612237000562710627965548627200549786699057719009120326218116211387825036281003286797471660791836698872401119681640781707129996461302046272779647217085262311160339462993155615771853628939037962076136345290863288388187843585188944793208484188660433891478054318540176313591745920310457347662571987085212853110318426937361381116504719902279218760270896552911143954120615756951555219946624680877559553311803716364676192937930134499355407930576358793150278505903712663626146822123982483968451986671577183783329003128957936174202324857617778020556452026428699926327962473628970648069648604630320028465193625731000255775632684422694657676381821315230141215657139508967735218714450128513022833970212372761716683006132790859312677021298820341721744728057872838879871103975247755559246876407200771944962168916738430181081275397436328028272804883358940699543104531120667877000303230859387745391624112022868990165794830595889485344882179927103302452331783022769379935170599369370413735451793382823200204229304385448723990539293617061114880715112443481800735020432625257574227451193301049852898882512855756048506407512370060585277279332460076037782818145706211837678487465504806884275741098623312572573713516738973491933361658041616436566011630594226271796413570026709738406646994921617150405139599717916835119360895139028174799081082325163846438225666582867769185186168450692410113485994685462783522241731174706292288927977363147703595256716544997438302709107780701391601200247762848249819721155162068500880094012926708672490482109744066413597420150306151957179324246723530224393201112929852237558838715901823320926375605783509810503976107617274793019562206369911013079339019555575197951671096876285857646924728718402850655584800323380392356717151658831421648480648722466780861874152899851839575468607062664854900752147348183123144695621585554997785684374833740037073786651343679510221150532563099154049002252566497400370345949135257223406011265598825523073942592090114506497788646529235994297405398744110712390748199727829558247026718682343003086109952854603617385547301710843632511207460259918850795107773664030721594396429883619886463852000457114021111299515095455905277671393175733025199273305148572712192954804709675490596995902640463864255943484811616021945845158154989941798298873072396869166561677144812019377003415519286285392516654821586439275369005202015666719757037912506732791564614590840316354571834845529473370395654969969572922404391456662346715053110146083106072903777219575076284036354021928318885348701169291335609422672141754984669402974741179493160647489315312128232445643245458821337237669050975659190083693027775630031737679364243585031750563539665927799514653816059318864411410217497041616018028292934056284978607159962056008556711892246977389307585547471527351147790980671534483387942537375112179356431954794141230763977813931387132832451454785622210481161373674395209413241610068003359745280226276500551417151757673537358972842819446918842627233001154048718250161921161462200302706984748856722201265223671956938215093958930717398671764670898820764050179680492658256982491803602911334833284559663550853856663413267326443674790162856425864259681277887678868768197690387440276183236551581401166204271773993945296420997743864170862818337069535989207904542539324578487528589710595177825215158248550233380369535793310768541619421071744958003315651394070449074454041606380708208723020120205073559792252956789581148149365858915983068500421933677949934764347849454573401934198980879664804959736254447365488650249713854043818178203150448130121744333274181584195625300764395843321897826389944215970793500030095841000565591460826844885571830572256101159993175582626478588984837802208275160270912818125097168906957130792877698102560114059201251760814649595828033990096733288567639294135793321777317857736646418098377936881029714494071153324464944676506898767731200704758404010079064119504513602528801267172942329992125303157157084304416793004122096395924415721347682730123150233919619864801090888361280780158832953978198860014942818986683839002358747207076892417470545661414139651087938779899898882490820331633689344391623036319334185507444183324628023924316626406089626056925581019515393407377649129534294447165512173845097099147590178105664347568901452728525599154489122182728660811178478278522480376121484416182599500551563748242707855714712588803991300391202244249719340287912270428462269105224327779193841269967158461845901161235898048738639717454190689899509483807444102627753451276040099749274353542825414135819263847778512526013791633672965059812467004646185267561802786295084422401905735122766698799185604687064594759281357828724555960182593554804148228265995380129924376470879928962601607824589281668940113085236607986005370573032726738184008220962704497810655551278254301014602325878389545447754348933711128688668103529789179928892713350959246819308762296213411856217879739433348906117801853888503525672658249556222916513067606436544209116623729465011269017542213683817260907507053576647104839001754599959497455911520973587019167944416500227365160484878719462793380331184001128425649447253049790675107053096686566147778323170452844558204385959383952195648826627395272807760597860969826991690055105164493556376431099965988558178281789560066937929871305518265810822471479497275335030000794274408200504738676481443258756827880758319748152094869854711621723198590062483009251631349108037381043990066665315878426849421018759660429144069108209750440824652976150601159413487130825003969095330219947121422393692718756648877067225957907514292940478405029693887921011215131963041462986866888055786645939724264006286228652393033854314728180601703842469436198020834818670968520251017442551901296808091283816190073319181069822090470515852240654714711454859187530029219127904790959584586739149027565048292919046108296955662775288888826168399870978105194693455346335169093044449872923263931137751423542112638802210634203200588977665563689108545602132769977311493535547548689014371309762715071658793143905682161494615727675100358957875266077115479958825088461581361430506269681197476261983491958501921732741228570829141161362111328598646726955405295522484420778801191247659829471950047895775739766155095713149665103388172130472719369128919774153800579331709050404723234056398205434151845726069285111034485299027128576177747478677866073317568520135758490600418813508139155205776541150992368599613266699471891484825004554843379428551282025741417487018609906354370377644483530061259101378222497697652900084986297287240677118135085084787953542447589961423934572594512503341635143411956711750593958526045647331921533482230953502119616521727787172585476816921863161021423984704783327643014587142021841102149296986657165568487418976624668498890788175949550852608519743772474245616742858321911548737092144287566434942937616723517915124378793044849872988455387675722604389652170526005640566262113630037083684333514676340599425738714958484152763036111874937191837315882679615131966269519644239815300422598803851563769426101943419607082090368785612046228261947832565758188898322000368221167071461889809904048443083206642059031739806615004402367042199523432904245320799406954153890324184031830961350652946600189995478198966568932071239655457287614347019522641900717254178495552630019945208242465825652889928187643014798524658776015769488630429695799378858072083597275261130824121553819983770131070362270653667605923657517521703369880099558867400112557711957650281995513742945549781900678739048466667203480265501051072950670508670659758208868789684346191001534077099900342620591492010574346947340455864237262741364145229025964195568504135523909958719292442391787377847554542171580998674450627540197059599234142776246658790527612272393579780725498051071298584458882938307852978078146877653591984242345850957528857460281240973880354718609069009078168301277941815828465738968126287912261246167530073419233355334225373792618369207991094878373530035367114521593003506514396274987827526008533207545406678358800609901959830707469653373465405956897188755602298797127522764085777919407041165789960172219831761462456917393000876287224195122205705137880619555461202778354030017548692659277420310476326927862030954329001683131630148779221592596171390148283670152327895650220266844021420529860118166702647316699878352295734957340927189148164031625408369856590021828954988824836192566336488652263881809635645338362600069493281880917330039574934090408711149213177419192032427730059905391644965409275044857000802233205373690563584005698276719743527705601684555557016364897235102190401399738016900349662105309564927627464422108982020311601286400302250233621689931710293176843842494032558717746335662187126284924980410132283733358804837412541573199670340671489593458273962644828053439668047059273213585300552903398971226859079453495627719315315260194096336439885668683271216480065624201808815234298157736977940540593324492587349962496278769504482272884670504807672770429514940120870860261411647203588165812530872602024012059123994688094627158723744322394500038838537787388612095701098228641340487907785062573347846665272654330369579760659333443096867425848872878651740302791938847553362342082928304783982247572683949807175896452863659600664961863179201171558343243240645201436479937884487347102062235543057329676475128256206224284122529789261217643157791484038006373469447152939680154074636075449097630425825089871550388862624185491254227499439666823382035839044330600548495654262475684192268964535352655657063405374343402485611721712668572417091087042945550757946647169507374199887093542178765640311002004950053735404709451003856997868383058638191479469865004392197417144828879376369559933973765976861655621868568027532252698945109779643862298517208083342526889140144948760363379238349885306097106110332360100849781481056580434063970669039026876359119995215730078354142147205961653809693065570914906336763139368864214275986535075902296601133400166189769795685126846806757223982497532930231091621746185680637086208233841089013939340561163784469717088097133485644769930693066179498576825248229053488566541615642356080859834698515989320650125536458957602245379349901121272603526360538656290008308156779077375170972593586518894332466462896193227224665243891147058672315940617095630525778593055647396252503148747890180664769181408699938996086710061366400631716434369071095215541480324705555604282483022328775042153195529959363200807756894574006703933307371390145130371551874947552704058825148618058078720730520102833205515383527581497631242045150229411459545364803976715163252181307292553798726628570146571901111357435117050190152240589063788308035372508812413654439716114291799517459671304395657562587175718034039779742676606134189864351208174787084635637287417472360764271672422643713876832583578382466925199728560155393763806257568627838336854551313277218351397133429122178475277643008410271942144172183155543652039193309059329253610012125692959039312977415960556345776805276756553549660364403397592779419063452066937866258314401452237946728288726238084087909849766238725737729249388574298919164692231713085757456912193316175712313782404949032971123973022599369945728950375597823893259311380699036593828543536102585476162872474311439844858917259064919345359513139496122543415773201858552890548851587148535550677143701021235650894704662380964836397537128519154481212198882841884649325651992377430678619267650935916280569768180672424454054058041577712751385605636080048347400015275840218810225029446232657895181026842599450647499279488931456835459268634272564738808236547738426758486790133176692085257083249449286374727249711763988694580774057939030390444336230703477725455161100497283934323569211281848018017252378655694509734734585065695509730495051549811535498248893112520809483261941495720990070240973044094416671881282152436855706351558957620917320309777629100202829443606653902211843850461225296284014603031770002315941297788014239879952738606487230769227415828530378103079533001042437443614655789039600894978128543778979455816432750759839371669750851668380887610420884430161855129286374190019394902366959041227372345739478912213210465548583242010624022449486588135508217739653826746565725649018072107608205550574304334369527719368950779556434298168122850428344192140164915427584476797599368154682985547765808844440032745738478869936775484304420844264790651448809585034547127259655676044801519841314667263980282431995718380417103884507661739445581377258830461206395683229349847696886191902551214605877684868663492366105122277500375777829912445834012280786991164946789366356633061552689760390325714409697721932108690384066854042309152195102321582730023785247544102592049914961051680305838414213251169766116687667650304000520783910004784899302220854480742786672785780434605633717745083102952151355275288626278398157051550101159066484963306790399898369072211729741871886748483245227104524314370103001098251856007827168098512234398393107580111993520878224558385715743904476342708670794474909956264621141057990682095047348983016514601675396902603009036631442138138785583244527028223769872956130099699948643281874535439124098630523565806668041667932184365675210148119176415613038435137833859836390143921317427992525096642642145745591249539620562041412748894558449487566035702408752021931324865847467886807329669231417270734713859141007690792215412290256543831776650616051542689130227958846352530377835105740905508459521695986527439771065260448827949400728234789947555712591071331519271691217916919528152375232732240079076337865812839872598136073077587598749777941494989040241758008219946069503411310813865533933582669524641742629403683011121015511266048743595688458548924506574990979110569097919285263222585999890711373748512239087642739537873796423075297849607108355839685715618789402728700338535636669228008419597631364957314519265006242638145523702997170160962526498863852871592633245659613852549879877689585037423045941680955946621405789448205280102598399793879088256984707789283481104998498854667559378325358450026359421696208223311711715531204369215677160381526156976366624077438513199494887177066792861781484486266517539174286902772163216783259622185862081924615810901031463720401958870693774098951080613277534654850603481057485580674692167564052019291636731977716372864550376478378793022529755520337861768312420604333424046686752226977754424734153666293079287314600443048660379604737933095096056661846669438925370627511578155459388673006633578680361784079418097273411223277821027947610669185949253727858628704280720741709870334210227711145319971718618996301953250253160270072952062551982023798390951142119362441316470571617380520975285071958296879622406366814275506205958370922280186837754733001348061094452853961378311989571053394035120368388564644770522005277697079485279036433777121874249060829011984064981531183161886039860181633381496665176410727648809645605494555679534795377258130140922885952808861361821484955000448259067228636345183785193587060369421112360196808710183167344051094024038916795080251720018338364187964075408447811316437761515932520310588025692490203406075786897541114755320383650109810889781948100271257312882257420495563075053861075849348945147623241635194808012383869912624831800006050977921720040707340085721860541141402316839105323079847984852644506832177004559211483561760171170101162938947703519661103553194554069665527660732560632125856109864302999499229052808897867627747844906852371575716482109800955630860010481276400689390337286903212750561311406943852203073371758470905658826627111016560376734482532047760848695073559795547244187005204282500165306624048710462575349908509774247510366574895151120590322781015703948186564565691640590932178254838086809963067588901134046490750973213568057401068207268896871160801376779599041242383029827098886352728191618941125653394543327498457725554231506840556627080906539314660816823203155390174428771209732675683575163294480131678044945932372932943058199906683050290468028240237106709389753114164881830469188421644960197424197002398753424727700528643284524994908537644023430517578439975910078472372416231156669890761152333349313209657218058143836538679716906441154892813843990631754619675271004628386793565386002319659862932201704125988003056456783283796178295214081448634081604434018747515956279842037531607516170348685759293788147952943480969577608382839753378492754742506865667591903054758836173535385101776941154817799992230825005293737721349821598158537844992555304921487955528556004033280546893649819091739811098679268315606861327541065014371028627177406985850968308502683272590896978562222060584380390457415735218985528483163350185841838113578008432835398565543323230934237150531710718347193092586116862263493624494904726908494897065041388191872212421440013825109740866552019071207827496421866037949517510489142011482677354582403815525172305647556754352173666365431110849125298846394189252182625312844586144634313863982326652834898470639798040780536453253647897420969462765946544172118054891479117345790140237913442664955162886053842212623617480762411332568843435027775715967749257588299173515735382404360927022197000911012751575440806631795299308165945808492851115708897233754389314568204843889273287056286138321851767874961225667146128708598702993951785470440080325136154319989600238204117882444099861841946318538408680279851735968070011072265684412378286601879217153173799679354020257173824212148585289827233823926341151428475767035841486195665781249188379280249022941151035130212690228784547171669730918693719787249917475677479576205091066317372756072660383597256363342665029568020121738238452312867971866268983719424951358375472266173233321741213057089800281829498446558971136968352289008494803923015387413000847249798260736406110077059779720457870111549362470440595773903331923681519314412536134176519285618859005252327184488290113334761904414746261933458182541244412538308120581121721977495809171936172663117336520062295423246395101688889819416071918634582639032031455763855218138468121061217861859161960700707657426695175905457154745485198598763119617575199770638999409760391642569315023693228384888965783987290670237181220981084316468582497418642655810761731546561389520317166037316357447149230094539388791357149853979390720309034485377310730138514382701788039343497477839717008959983586852489535279078403248515609589491448536192017245181765747270168435866624247938472464409867752650638372022908783120998541931503991693712784484365679209680902207063266243112232505367777569424393027653673188328386297695619283159349434944007386553614950893825731382534651235435069567630640803607046021220172904914949434094062460747362746678433488819424812868186388358647687063719975578023565965914557975449925689456465760764768183402129212900225877556375539579195082549472580548930743239098864427072352971562275240412219283171441927855405181996248487218563082706157564739753686028787480963830071267173080779697863710555596190315100728144276467763536149145342429040532424891360619946637388074171124258989070557307798758870999289207622819043998600426486845672532641195401590494005099427819022113393379797755796193147877630544401848622205369880533443403598586231182253988652982475872445647799884132845212099823339928996095724593637655425085895870310103395165238919109787679601771282448409559221423442446826433593092509355685035614135487125766197289092483278475006168130547322640596500992784672275561675489579556300036376770692370461411269455490511542681600479105599216594070670880768810657084852700219560847329633309444783677833638579889742177669107195239484547013505881456459463281539904385231486175433660078598271395913573754177331635209432172271432714775436926734374926802736543112083823762405055493347214255900025899612718165020339563826667958721518953375482249647575611457838087262201279654538725521567741259067162793447092750268975505561941403040713503127791121233840620017384523584133583217347087609926339957749816372027974171379466494433323548891605467081140952439266084202657690766505075143706556341504582151973265417987116611998564127052739536240549624946390687287116272193814400641173547732991363655294838109331278419982213399187830886498890928872428097698036298963644802527076437017215492740998432274427262926787361115440722367327031163918429400820146989832736661599171226740681177958550974693016094266775222662950524223368219305099825092896198574996379037636711808519207201145805702300037349904088259275842515453825717484835582753068985113083688169502848040318381856683904704578967556931766715682656743513009233903948662315358624712946617455621989414814854440750619900324704111835886136457681628225726954986576894804085191703583310415017850125768468404073768479279499264247286151711138432990928311763584258175268787314557906643789174472643266632554543529254730769450636542616869618801848744268029651033789285275497599762281706137703743660598872758385680616503361977863790555537829533213975635356755851307750412231895141578472147181961315239377213822086946271520591854205004504029352612793993360042604293861888930799875071831691185171701775136996225808077346593765907877143060231130027960275230637286321536237495187900751261501140595493377001776413173917174466281859243876349826666086155243722545481570701687196804090406550539787823622317913309374937712780092532788931772312750272731060128512179985621993715714584166835212708075319990847615438889889834220672636015942248900774103306440488700116580310707476980842894217711903309457671393190485085841429726482081140018024073796314859602939432312418645743871251255621876439268532578127366318215485995666892620125145015180085059840485530613371496530419779786235819886543108567603242581935587901974293598351531191153159285789199841158940332478720349118438583537681983027151758451581421992165211735706434866029506333397819289487163333669794376022144594930636559465074345887073665406501959475615539474763554452135627213569473215360164152125454122196357028207831376179006440676039162843802854516044153731083276156465958439315486136533983686274134732835497006529873605590176406335940688497539514756595051128153138197475892882455129259703745912293259129791968015697112814032638451336759032876388535853110007417219341444459450200490399112249401268290117208985458761524652174548460204670804916019273406984265253316074743445562359858963957967340741083224647482662725614216414965256315103397595370024817746190680965284340436089982621402848187585415920542811232653347093257958843264330054085731473108479594046763866934329141388333140715320836485751522908040860916363464537651858549448018335405194520608577430630573769900369350024106704494242392797558182640524577064386806767230177900383678856546695476427231104025247227586609746661696971003969349692338474842905907804904817475420342791550502986275587217371084593707127115552135044168965721976718647090013823743202027414810149311445481066029646238217295459637865686989875078443171905711992693911665412669614303131023576697872062720402723877045625199797015665041157560041816241264118038048459730348862013873353178458499939682231511329343968820391504344977776046663669653159044043206336389686845590911123355411921934471213004704998360082168534323362957232540928017757618741250880887534354405955435182147980210687949926036777384912779675428745856116966308948271199850004146588723397432649793936599700022830898025662392024800483051189036586061277660595740272470850869563624195933516598667150898008137092435068288955211294953430380802539511450043441602990918456081265800636074580288094532064408403167671414718581538838420681439143642180135012943196021569919067783823334506817609496968059166912008844565848429799376966317273236990284517060627908913327684469275759286610254378185574350787127765198492292657501622797171864290963297982508595195760894533900553885687737193094206980185027092119823354526080865672888753332911657448144621604027180669064203654170543485254777070872453862528218628386466756573682485467593766068617313950604804300743880387185926762319239580402420883383377417341914981448149410923862775699160219561144451629296448441659686931766190683486633755148516919166892781291078258598080223285581982354940392291766554630367718150493978625122849456806696937489094714666359967039100138751172927845696056206789995775648385790248872818252242673601507385167389500677830115360516738698263996862286190862724165201025813927346908476985107766273859753898795277404989976521916127119358628653743526179012499749160802972072410857320169057650950184432018875311804311315100690931675401002413908711763796459922958557632967625541131627628492143350721528338311699859673706459149677484720597342606821134128275211485509745868904921356782389341187275816203398220508499863498186491241130356434705384638190865808264350310291512116761039355866214642577272160023170803225479865352796561516844969432645282388966209168735164277310812016253791904927144342532268400298242639727710075967000078822868171334506328802070121156218361360252272095023448731940392314108376774528419729142716432426346462243268002958984909923472629296809709203634118506924344115376814165793245113279571847985831271332750213399341150872473787871761431926033362421651135301357971051666065754698595039690453262949825174533902747181442324991931990422204935757227537435327345113213392976264064922350769922595225960204988220864849465307516892292255483656748393213486655776197528358743903071544282659065060118650377367058295524291433083604119643144109633299539363602115443238650108301524318789069244813244379329035684764846706908749032763753526808205844155139774799138200381812633426995180403474047718133353762731787849265423348711040934101227024135755691847005880116617206749723906458851026495732137716060153542411379457450038183590036021406685592588756830854020938044887117128655482601248425228857623755688500783070714317865234240464502675155671591607191125544300747539966878908349281406308987918487481462612732093250908954704829999393315039463785745268796660168660594737862309287427251177312403438114484665271104940342585449410262101400309823594667370480350116123414815920285457501400499793137673941568000714502701111251974921618286756045921365187926619094921614829460072825982655034410817890436680626890160308212801506597076875381922580526815844323948531765944785339998528713286015589152240885065478270749327547216103096611089440606292297611692082227491848167953963744628570406332077680064254674192799299269790208023080133813309904269181788788229193067074771233954424814852245222017375418320233499300853937604004747987582635951126973745793939934977288155908056753884011853673194811997696484637831593784130296937366621254807279409795007844763880352518085535023420799428533967305271295707762454064217059825705351495019874401909738449604691308547077034218330275622761441769044155865943946227206691364881921017556640024563748764456001736889753765895748029758705642807913304198375421076178179362581952613027303836267074617580884620324030387724029173696542760749741631921349168157389037634488742937260576721164376868086074809858205417488307665280160539472550831940958876930122160698912689352194627308500999331808596427864738482823690381037713542800096617555435577014401610483598427136321147219021755202240140824830442341550622383779448386365987921899124736909642013143126530987736315386907720252367005203973460101936256560482169268988637128394468879813676605107076220103247191453876830938851766546076098261102149015230754173182203636449108247126008708503084142555169338786528879261219426137150426621948763570912881433159110608383265272541694508779981210346665297772350912226523026383369744566753744259389904275640002688089694917711527189560764654389461083170786507027499875384127488067915062169506621807462824983621604110267985864349243956571947842368488860747037955615716391743276150225137852102921053350670056844856421591781145719109942996280963966562748006490875829405775241949351819950962486597713853463643621654441739052874772583516005996751871815520790047600498012143184203013076729451605686334960903143752619908677588998337132285886190735439815655947072444697594752766173161277359525606693898124728966291681488009013846042077317890971051954288780023624450683235797558535842227651083725948874471698931487288721370405995695581545700403082573182820864178907283373489315547144552907973490725174903192070529161140325389761281479723113373971128501617738973457560281845065912701330243231542283987413479942968627112114816704745510433613905685195993852386337513367826288646354509021737675658166074389825786252152056668006289418384300600210510502015695665360566032059255580716714168794545320776354130301862317158465399911317509356331637373378394407323530784309881126030502325461785477337073655985861513062547226755433651358182549820493006516674565758925468562489533042478576537960084405246566025040488655975326355374917591870072110339450898754680269320516558347581980394777844047644587597816109734904397503248474534431946127680631747071662733566325908457667376166397340255792758943716711697075074473551747447269979253839136478404086707505392295123686165514916283392496494786473452154534423444025452023691815286067552811306409585848187087458052893240561975909597808549602625485117465621977753819305783861705714976930625906856122599110316664659011687930912690192201144030249052811263562774345382838175048568226738817534842782933746255542351411904028274604246684749014483807667508668428741147798807362536398179966212432631386773736501490970723445350034704744512909497182165032629119088695755208916829936159482199922465003653628611153492590636540444346858507511037184455286508477451386439239708549561638759935836113393549815907802334919082983670112633842652727268894975826709962855534598649580072842969793696833783147819656296997331742238523243857485072011822249583131976897699008744719623506813913933164197461056985211578780980850913176519915464141247591046564941183490290521464427399867867747996413035491849855860925552168811187025623921077257495999647431796132616321031796335170662010354203092301965088988718956170023576919516915721580120862408922498023912658591080659803720810147905145268654322004265648942641167021419469789932016980142543239301296972000234076717822924230250300884606352511317266888695907742398381409743588835572258779597630676843501441263213716853225124280816349156590692205840051816029864728411157578670784410797237840420926935675328417133625620098384135320031706256543602090849794539972431786444717017895084056411990932461891274733352929747633082444117929381650497970657689567164941016475107213413669552054837042790996511723413812109001436390479899884352857058831246130812973232492413532139906272962142113341491458919347558534600056219629111576314555708784806781030878083943087251876461300763101484212673879682843513265598928092490589693959191914106225287716227674820214577138885096275644279888639175004324126550181892540101317743722242792926869519324880734994182018014615029110286325892090500621166518201797202881103289331116102214550363394852763928014457123929211064518586743450748804353247426683172272452272231725693936018081567502357935648322962994121873304675378279520354383473010492722520535049769993421715784342273993719583445173227942771531057603808721729027079571541923979364174273382625289463822192977246991154912734977714547258510692875935104112472432431620135956458610069670531564646542295938230530119107780951073661699647177892499619645540403292017469137526028670790566026978947161338420671506786654939627352562876684383536234492982201270457740606455315407977587638561833359764870546689273150772548826510603693347762862716829584039431777208384733690760260828016308720748866124619286733764493405634233869434179814303960888260856171684456962068847713598710076986243329862093126822555090608330668166711680270602290768895410229146875956966383810398120159475974757415766546234607985617112969608674844556603627674168030256209842075203659979246420378359178466018235722531566132242768940121326779645262425400667927262885657293815733711889580693540859677677017987368111006934571074061637373593174139291955501509738360499512333973311792243250750355536723106890041000052821300684309014036899271232122023191175703543229110398396408171105602536652614643893327701147881782413367635629754516228621274552526149534099067926325779568399237450770193415505591144129202780293044849865607543397616609524268634075706688369542375633549398568953550244151888405227365978771313125873150931531883753572275908984224022564079605804256417706878128212994111450677289060249311410478888602146680171722479859341950380246946438187885909865759814571070382486919145323181352114939181751783724273825566105430909544587108011891543996739984776511900824323631166133772910816420502203537858853851288098164996915439818937385448208686163412037650812842488870453886660706551497026972750715105388188224376623275010164707370681735964323787052806028987758345997797475566980589297266171266370183496808093719938636558940315419264259161712675438089653647319614013756153655667302350294084296440305098223779469310854025184030058625251219319316812219760812086609715589039554277602685637211485496246622721390061143526472331100090220125714887222243120961918931914117255571629581615564832039409651708186816118857023779559798639477656967520709058985258702601565779076311747581669519246987054749180172284243924947224656441356104183120421391581070590290039184860135263805881517233291628756318645185720313667810248651285497860432573393965544702264679137424484090003105721786205263154616616027367535248463393610733953871426319608833739728686779497813683958480061741594446680846385931121265570242150750588467815360414268270791682807117581642140139537471210105673268386898929591173232614480503014993195317681626246479738544099783063373794473496231539750101743128636205174194313160525760206306480078049288079538385328150399672566097326680342325008137070994151181878414436304094371282165181379609122500882739899263391247127816028912313680242096041061242343484895877348582641075910383797802041098068924453423433516725678985068053161947292358476504507006702063385827854601796639453180521957615984477366912539187989205267322330195778985429444218161935935421559230216309707721150880353464460539759766456452581444179089655417470418466362534338840143291074450823253538913615501045343546066601920492159049949461144806576500089663521210649412178908272507943715759994321898989024941439844995687102218967588363877859315627686708254865399844689741604727732110275390143388155225879085843534062279082381722659587970224936136289027044932741081666686909828943157656556807145608836367032849300971080979184535994849305898729540392188224532809085927303701035909157636329972973596358806019243177859050603850817022982686506337053416512935905237147028192290366381184675413889409147230992548218658839162445159974824856694216217470650179651261381728779258831058834618644673131170530495873238560374266402750142791469048980378720283697094383132942581184762883817647266118068095149109270616142039043561916558599883168153079763459496973573049102959852671100052445786919060814166521962652226992295782775093130195738559467816100445927043472613633279159520490941651003387212685768716056876948495258009469481687079346224916499996161501072268747525054887802854243855406552274103085634755644490238673681036720755060922387714012471060783700834739822268431551461018418373096041579345467414452898987955302516364712221782947929627818608381278456430899277027360518536527222776706684511967621415613480922709148625897565962224725843896673524541869693079156049438371810555302818670995795160593884396994573422255058568572998872543565070499917549728577850784996876709137638494826381031795011264012562320783759603402979330436835739604078569308903421434451858736480456417607247400706289994245739037869685190469769734376714779297918847843607933686016889947512972305912795010592332742933693535586297578236819430283454988758008165496064587962142826375378195718407984766423161189108749396299306186736379501183142994936187311174963139147820777285642473254855195399536938972818223857535863856522143578435692365866413331761971633228729294532302402805444121642736830861928415818141504790514805320861605322231092587814288891373825183857805899878205084706614754013431628932979943729890602052760222618087866798279127427730749635005990768070385291863244102020267474801038943440770230316497372190394851557653961691295467485333358681675775278255860076548717115203037329479983438966372488893866233961257559776588284961155099914338407831829364469448873804035125084842679580857943453106833846738657094432768126240901357927346330238093399565705381568676238006512367705989020910828609733063937203806946937057890816119753777822846686626526925919412155439564809040094307337628198593883956191440854205805919184576258697513638617638820936270478015886198646453416111492571753090330198569940538180008598483302898496336461800732694305165141383253465467428970861088893810005906664584173728846065913324580038947393874141419354158710810437358099740563655212033823466348380970165228460704922043560029696862018963058978640030672517191994690518616231799333277820046416176139149289637860462935599841336685232229536193340638262583949023846259013444068809607422461624339046122492235586717451964749910651716840386129809231439974394315677928576304795967184837364660890016279677164233688273959666213467769610727901018783154685837595503809645394896968990233002515048596052167855184094067812653237549954675664205274260344960394085464641605944665197691323279139177168863714118174770442550318460557887097349595229363379256144168727371168078444760329990722244106519060907309101237230920727644876354999274833675360902347974537409562117969404288267505958584344206515171894938055091092521765247045787993695563571855817254789376345673401268736749707370453305104385636443926496551092017484829439362166441058491472256324622829729970822591938431503231732571586619458433882675353127243883985425444176021719971294608023440264363090574852400564447229432429579019787520822422498140879968637284070046351180840957990491838520184283947465780416168793124014017831741060635712969454395022979274524433211778126516095181144904178643421758953290570099870848975195537200554206917713798309861277323719460982749168906210019414040942270990858680697649421812626050098894994834082915818159256696583899598331604601425564518724511356463511419230786641001062169928735278540942005380999480218170611808902817787024879221092900074560104511140681864595799572067826945244888095609989447153835910917511156147014173989313918632631552888714410604525463639027891655147916058499105876168903173123029120990646996768444191364940388100216576377000870161117551197682758732133710497916574549090806019688443982683784261160478796429534446526434290206899107992200311433686692810035497247325974102033310801123639603537533938563495211311723830301569881065191205997215016528860949896571515919724685734279155915122666868296407302126900282144545584405761602838284545101855536704330895133168196248998762624066204568543100388781201314296554248678304678488902666427820580785230954161641414684765597307353547535090241061259484768944065901016676733735226799402507168581804854179221661159998136010583094373482594012575486530338824938853111791470680872357101406119810106885841219560287132033326126988475300557643261395987477780079272137156220533203227897664536666323608286511874875152638495947274970773502937051674190025035494646019426223005720675028529762944536221048718198762806792108173414403731742625737030022335720398442891555874536293156514918116657585606437304363056662954590976444847593015699330255665981424688824951481517942506052207162616605528377553628989758128917492959518867168212249142277661733232516034962776548147546147972742575214479871719565520392426029444357741981976286133391651863777459447380160484945786725968764920853884849771689556031709110430347955826524877547744323653776878752267402601814553846909977941899735896583289054892445023857736946958662111493000962307343215907557174238139071250088121724631069001904461036386176225626937806009433085223104159555326953532512752501725275342228161172421832871725919912992618366703486775317995304199178359215204055751112432525575727165528841317712106680055175482150190919523598774915485748523626276876498669411964253483839351690653917117603776110267660540320396047385334698724453135475397561435331544659938801247477308067184956669591861566634212329230444425789127368794922171976406315921654438875630039375040633949899363281525858580774044436376646233367699344296851497733074512200424419225712276263262326664398262255734150122893550412832760418600214904489705054450301573699082435992445476047529428875313379848217867762421099853536402767052628912178219485698841400884027925633124520048590357999566434895354850954930934583489557879322026913806631010644831964303673038714886372589587096089252353358894595693913416780661421375140959650345535662757469035973457214518771692902327274520748422540725669960320003836666963065183034991022039904234927470343857003243724468101148895394392813551113214182591913345494921585559211436921077033356701401354271202206326164000646260005382807300059549524570101333434482365603939617770324047662942840998695255705818171926049686546521441935405297527821322609012824992573744919439410258313473129612248519974579922846213593745329687888081245544866773498754036544165938876548689757870675810047830949695637767946331142454276911095898290307993840610780331218032987397947735065725927029355117903545453308852584049086560516445676417553124110594172678222922402925956443567244022367530118734580539257768264215824558444580966841153642063410922652374496315665438953278483266833759431646205125351519846044547478732804215023630053295257496703355003632777483698237104519973651862980339186697565741747126693414827506366658223110204807165420411309195249928340168510606423472711701094390231367348625621173255778202892277406856908515618434480330316191366331455069182201341758803797681587380244945932131817867264884171164405206788542920617007129540824650025196185307711600488370666714392487893575605912604422717841311226553651143169764597502854482410457148010647591765967516694269766173684578824550735547163857768432127889288199699260986166215332021332383343825193066916265172184682779214649388779002430537654779807352920393590211210508733368279557622997429349101071763172264782341340596330032623055418810052643810410282436482681638041596800154467811452731983398450715788500904350854704449421946202538702271900973701201603619232613294837684026597555094578866732365861313101811471963407540404118273292780326790461537016700840498928428788908635152014173371107138044868620561753371956724650445609339928032588107415749628179091779608977136722088120499841945820819991680485536309685558040843781334309457948229257097048545528064241703775248499881357457710386091631216239756461773393504040286018562051621762575374378577503364037742043910895155583081232487019457021829952832428495977793846346550632838269925576146701305459886981001271844749065215528308677032353106191041815428438780375016213879651511633353932899075620210114599956303395407879538999683234084746201448110691750629111590006508617267209399134448375287291542191708912920102093941267666947734923190536565156379680542149790488509060464600418783402107685543246769797789781498247959451639524502322319975364002290308268519274587380017842616233696019099489072806632180676607248765713602874669389398494602480109888698480716697040952103848242024472019670064916330821048103751442498614796475614957941183346310195225344307410401066632723979585092599701818682277615081475987472921118906752243007220112505895370701197248744562620255265109855941254634612367083237581025094760310931983656591274648594025910369946575648571165921309689349189144398631898141671959999497421579772469083547341515644891509168662577750142013045995101254037735289924738055846677873110063547560767995941844077206575491544037810927410526074506347472456361341863570592829375758700858906740945569358058768294227550871627832922808563136673898264581803982983469298578091081001323217631440064804201720610185986804305686284040095575665354116030632043229831784945924780424067678852342464890924234519998691420763759208116953281017553323345663151554958487428160243088271123428880340277580420145399397846501956734555379066780909075192274128750263505473939084973833174081504487047729692173976733327275101340835318417262153043800913326195363804101121761998572388746175667166155343178060642284785573173413863167711746160470367768371966656876921549483741381577335161398025034851259252240229874761633042053055687673335324449670871648084670344942778899965810231502722645859332361071490943595812426248223663646707785567942715464856475531292065673182067051221726122809620194870593256461408011091207754108057443262830825636110370194097057665909410617019014426437824085270915641796359412106935639933898791470851201980918181427222423167632311624992680385884638951274433343191639088833329151192157590347354008186689583320348851620984953600112178563511578959348637857263329952584100916131901537834484270878704929200909288705348426811210313005477196187482940574189631197847550150063523881896828218126018681110135768647543606511414461547522885763210596568846302458542713156375460839763128614369242358367369258578690009614796948328717719661940195571339684636443560482439731338325263593960586738071330817177598438323975723518406122563905188698136548271797520609807656454684008523689865094263326983926725715292898809950787863501621654150595216327025086978033002354536418507315951659727284653109002039544935016683422724916678419977101269349064444246368898807714796976055292437424250249165147240360795061629616326991350542212704549076769378809803741607270139957267140216057288742286376749403365309792537647624386616997714637848980745993775580197715954792090133437403468297524728643760147750860363653784963642942357265038726487387746275167039909519918537014874079563917176845535801692286291077550196909993000832135523715022697698067187675446669908723301377166307999771015525130177337791184128113050018103362212650704611305212256555501773829297828736593008213643887297899984802315435029040534298116207218937201509456550636460239588479666302797838683742735575380392336172277729210766071478391460991875359641679753598516102225747150034084473718632505091123722293891809389048741307108996656533305882076029934678048280946698587192091253624891957880472489065854945388897111607690497667879153310692950869655350192132962897592748288028632270745573020058008323953782361036050186627468571731578092214261919022928909844726010093255626052445960706540313142546557457569969543616003670865078427107136249293404100153423169451257797755272333889660381070110054742388876468807566964699142802741414974402015662981533587743799352441548788513696279570634776339482875637418163757628691736260669109144949188513165564592861991231332368986148068830180126040736926133737878572264220398327048981023627696644275505907573649329914181732340326407254161548751173601143953599246651222791830061124132402140344532842703152248203389052295019180509958023912596760960013849803239421700553878884021514701033334991948445938154826736973813788413536197537302627905790599409543119352460152350262677763072555870919953685596120815792473537639430283019835185980162140258417378245898556833341712306354051260225478600811781054117585321242391555802919321974761549246288186597481892815884906091631171260224522520755337309868428193639278646402396640595140355228084949520638047541035737593491951392573555945567495403444530138129204937374582313751910218611463390695024131107120676125098501865969503373844569949060640263053170392429305886482582842220739529403709946803567571759535335364556714734063894814987990559771511798886093830169124750201854027560601053821772325317668145953586000409140251692895675723903584900587450253498695157031147577953917118087528577470782550240558042756811930682339046918588149125940471479671713074797934281022128100013148287439882912840586593621592499589545124374817708625986305208132400282324005276380994892952737158465448227569370960710859483214665012868410639738333253613916347872409421373251322547469971763801528228531658944147403522029152522883989629435558695260571557127639551948622607266669918875985015422044200082879365924270887052078424108029981732749635528571565334269951675882714860463277014002965599039906137348229608372613038950125006358070716401128283879793534786556292114093988486690487089636711069411339369232465496141946750734540295551745375709986976176659194305527951707903841604463881611388067053318380978001046488061178574869337535332458669883344688194644233166386676759317130266761289818094228581817577277959612918141467260354854129548500800123099521477059441492426963786491790820396489968832152972686458603130882947897883375797806513169575955421538624141304559612918349416211926655038760877722542417452594886788983500881913624095950068986607131453992580964681154894908391360309937331882208048494092937873745936125595013705402919538213514986737530933806323174347708065559735333388134843320107943448407427996816695014105450253659774733967026220285138272831135177934160505344218711752300101654850048226073384487391409033755408251643420022059371331596556491637079216373222802107808158597863656980430088227140054289752468406560037432092391860280717838005033012488764241597468108931649695805024325030791336197778085456023139129767621587339395090938392878064232723548463628890847383717608718416940584977029056979730193227171920234941694517657526589544300159728150439212018858827386683745329273087343406727700193737068880058254784128286038410055023220476015087401558078909825487266620353545536123545865468634344321239102582807451330267390274024681110244102900427034933245143773304512515967617275451148659916391127133675333418219806377516873216327566100672852868990981973923683386506124088030469461692999822118640147285873209745101548417150546723570232507895354520879687171626168562881832047543573582829472450294196778463201052848800256180249408952294203232614605303500494398824699763250241728931370857568035885977958799591215572573723532916315885160554409766510065424787755223589716922519593402122457063707113510339249071664170307035845455472580646570613183484983327576396326277368304270397792901779035502246581968943091891474475754438751408453630509787204222225695572992077362136679405194415451134439834639351828797806058542671144031611005781697300847792078199815489035453145907306829902228185438507514102693526808461992533557587816135987313707740179632713354246275337210658320749544869995292230913090230367377724919144834042067876649689120018707529412525447154787935014756663334842281776163650568141169492934073804252313759262135140574575147799521350224405409144074386133842286929467804301131457563826003069400581994959114982511646631587629043541524453373769078910115445729758336567307168807370862864457106976402085761993161062370805747984035803431001416785547963040212435014352165236747823752997932014171602902934155556104381435344250546023757068941032197754128943685904528307125615922897376307565880290132781764931668673286780373619674326402022133448652918456596311568671989617402251667517956874815681436160632370887992190664726038121598316140036681837246469408085196705088621859755276533850811639217969314149020391016565503323176514518442972040970434758174801445923821138068972148335696142137312405551428727127839170881725705748266905405373666379490952014785028945477107388568143172117940442860485788656682352270195768929720644796707327944125045709246293087359885409034351946540467507396485066096574431364042019919439864605110513856096585005603060845064118244673211405577100532289855721474602386870213798903585454745003337568618633920266145901204125677017736034287262031599946867729382456504136925306776050793205939832498513797959799145389414342033644611530698574394781353003172840627570311262524708590540850929703775530395956628415135571989816896644941040863076679314729683367397532757224331300442406986944744640975440361094683676567854989186989953978205197783568325018729894000632027416536722995715903044811114170275812955255734639900936309128627758753540131192571438324983317994285593943213244422925551969699587952580807591905742546572674373466874933667931116929400281990561998530284143799632669251127289180136001665008141677616009417170047268943700143905359620743011269465653919236134600354142698501026375653193159252543265272217196469222555038291442593759564319776077426519363607785223602129756084531480412709490211302714520749667300698282436252285716481880335421199428921345676507295215110058472557160558968940079214692022947768536621458134508568560745048344060777613702642242010466434465144293640286106694899940891552961032648171405492494048019360006395555576932168042370968562159906654377156124795248523284850764471870569708626525896250586538386588265625188859935601253254008004890085921082549138283836878935499750195751990242195812986503584727176870739308790224439763286213555547001270260944132413245639503473201997344249531842083799693352402209546604559241382181904778172705351585289183072331159025104802393423323515946105887335780221873461324348167747040071250963398514730341020328730741693267382379906509587522639354372610145191482919051543621253786971423316625083734208549847125461721349744010234760349101010801043075771699536638607334585362475442581581741431769528869599373442401264604698015674173212638410952195221266477972807425395557808640835418213690358406143257868144095177755028639270001988211899629280277270873790709557653264825134265788661617130205999137172717436151867185828387744553406666873366818080954936882624980440626363220379246286684556207826219523429517448378595009473671886134161748990305054359814522870306399899708515992004786348825378702918762879268526275154250673381620446921817781447241329586147762698926902754206581655949395477114504690284728831486375044124562414950713787665194952117635830617281586249679450587667303624220601208245662976184303267573472691872657409067864846711574183988942436021563862178009531100633023613188351406214982449979089744748540747803630573021101835572385832121978629048859403053597368865038963749032327071190747201467741528711362943989186260195872749855171873914015330193961600160073552698355011036692498212962460859282489172533639821334719926177040471798310863748261775838373849519526318600001595845305277479701639942517952976556222348296259972047247947589814520702425489781637274731869455679093072532991092201983291075682445423852060580330388534293973670489006032954218628449341933544005528969035852418801779815519779862708074271212157688577073902277444296567499930803419904249196635631037697438262896041016978764739573890105579358975477530854423759894670857800952052931947929194071768866793701452767231125511907732877543446743077332184791048665864934848202964606475120430925007671486761266709521386611189540227147421864616756267755125979195266449352281606487552218167334835864939209572328720705844258857678820433346193318639661128392619008752586499386180728848401504252013237556114665621170002714074448608074560074996363397479632544897477055161121696285774356275568759116455668966923845323903585114907919956811347923955321190751683295330584969360729068821167999785772579013299738477639835641979956733056888131522640541559210771618176809319381635537293284265889911536197471016386539430911374526229369698132055221542719981235603334053047634495527407672834671450467763189019780355458391781785320509255410959412986976819487762606388373860566648781632876366415903809985880661588986434744248022677140984298645514562480222626476577118009676052684200703181009124440248639362115044918105918322161144592599648847049211753504841602084710586298822041547391603500379668124540621442915423537256480888788214369157239442019141532938577761489212490036040829571876007925796502325913260803152731494700408716398159583052645726339400905543128975562283878015608481779950406410407260198778701139550158231947506494567399880105264034053503855270535437537998169054778397163670058062175823847047994508506974031102973295307955419100318955182218876612948773908151978578222529448481069469539021321427286771855073897703884060973795133421341304854028008485228205845415012436012468681114337929655447900212039142916115674735896114657020938577946988002597848248708325757244188221937317382831850871636327984685783214701964264269092500799258454558143116200613477384027101000975592730442797096652261778754634571715092837600834341632469814183543125243678939772480528376262928580461656162446656537115038150983387604305183821083602364698015842010703021294616828481205421651092008348489977989866954043222756871767649007789099149742316714207195551363552801352953101262950266150495759475203580319153694645458778898353742705708669562081273484933866477220725224422144703137757019532167708952523970464862677719792568356709283172339596785247937404224250720210596347036183463816938060019379496434850469039111800711207710955653946120011971397050275994726840819954873589590898463961949824865059918603959613975511450104916812487751155800923565832593942955326529245628060658206632456358443609671816763992597819803038508421259960493761064054034151940517832838533868819491665485238570251652449012321031440011512315955931173197405059522392176217005583680308001759017347840226224931382025431728880593710693407075394819312080558476011345214661932989938154604999438376340643592989061665123503072335256166111722945722598326097561123360191806305206326917098190573886084808262601489506214627516243779046256001550670177010797388777684811886132170825500540675492653122207496796887837619141763177905982760505431685670426550023669243964572144235778494303620934410047903440387742834424089246628304347247684830061380552619679015075271832904648137660918739861708940148808593476242227413529518621999802967428981057617895928485508336149356055524065100727805927380502682100196955947045125460104534873777395204297083120579729378578460313380208602688448044283318046992147597848470195073615152868260774771519758027592026446316960648170429122322535711730919092896514183821652652306851932759853563033100764732132198146433411571275681484205175376868283030753661832142573370752667470285535488041996256919818609489893323451773071080723388948967654383072702798090066453179935930977549054166178998223576876022250968915399192751174919346071878411403571389496015829206986280192279123652989706342695299517313691886888072524603752098607709039325559368159826299627754252938092246903782625336399531762985260648342186734373455986229796042563129024653737635315937334999348654519586300533330584632382038328985680479474247002677408474484354064063768216890799087053676171304405752060421167332596034561217427214277822176260668374541605199132667086213394184031148683299040904154723065860602943041551494047706126552999798497173646944590431518115449731588606277400310816336157984346771602047965871752603799485421149436943874834077783834226923376662808167160623915110851413100194870701019630607599458768085562301063846313477833524169233067979371990768257652870157340965594619872411367900905461716813645154871423390528791052133150338512110071157657055101580330959634624921412927468970847720542848132395844633500678822814793728686334551338688052494016907991060861684219898310228013398762087096451147954862539953477050496199066633437250786181476646044658139578602636448171914707719947122454497332896247785660895395170161952833230951633846975657377686009684000758205908939037397495244513887151597053902603830106232994217956990461133724282271826333024084348507913189977567730894876615291290385583631566029466801295822287371538494872060913836540553025448843685643663994545119330701274919120436961376664625119947369120399790188479093474061561635293481184253216811928319805102504922642652331568407468772838242804924067551455432501347116839419387178355652962015267227366972024559983494181304649688662104012113669238595935712654255109785248670283915222778789990362706225753940949155730516675848565563397840221177669111602628683856262171862921108762851512208980915448228988820062459523228253488446020484264008830873129236677476812211329116099564897949719341721813673812872166521004964340835139680242767457413427838165195020262991583960158891765078673416053251789663433778615583349216672337631530177323071734558537646866879163156216269644552232896071697443816732523642494286231392925840145556403559997160623749167246192184190028803215909575174675670742864051741775184059313707483159589079688597409706325125448173636256734626455772598823737392274157536701823948938757197451442350576685916124507526592551511104640280175431920312648218589446196062314167485397860951675883568906886370025507705228429184650443003638784235440431353978059354196816411775384834483493378568083308754978773999232267791387787171240191755747564580581666907435440646776050991827923198869550489000937892725358742164979096861125747501092675637236404593467472288149577675541076865106463940667001738925198521623125536276676060112068390073403121243389778967735014852137013367956281198926978741738395836163424220312777662932236643360395150694111844826702522829679358972518502558091411338414540419838529593843407036542352953010263312050238192262624261726339722884819402319846550149955839113999859285672285389854879547256360338563794622531994602907658350538757597019082147735212230952504518165326551798648737526891045121522668913815878367264208872604289902083353770769860143794294165894605172870826732483529842896201484677308551642318462783423595187457820787854222459137998989241140943774391625420383552671349270342432311575299605014237278138036485302872812008692790023508976270290656821956002755998169653298986192120978461046233945906346847851190054630799483846991542564451583117216469214766761215329348228864261717327891958091794156713969486244433295948606478891371008509536479619118219366368946978182512275175650542851722177158819042046351148232923890029032794479752210681613118518755307581122799771281447928166012566461523154897465283249978063254272578503103871657134512990991557028741102232943062716983948543091297197102297370510589395020063506287935749297571385345983108637133939840005533693094970822930005966106283326141456009416778310714894133750609835708875595374578445124508287617758661014104550566030634558730803230082108953801411409882655921370123238534986919231309282338563267920125904178143797823660748905739534008056511505220687567859110216896900055906061756943348808309912529543588570200304819625054626043332205316399593852681829028714420171152327774426236428347659797832428736319174879849349690996997366757847052788343940020301127373035605138271711135353841930688989145827496064630167787941548483328319374431291306450052736321638373195512267895496399480053554009949412123269892537078853858657980433028656320833816393049764350563637794317864685906599792147028647534794466500062519880509516403243947656351557883056752149057980253281072975345446148869143712384993922059563345175169465005662647126945321729611745790851323284068339448666413949177607996924182404453842019738773587356495052378595448874619691586095582728086234364230980648130167081093049214392290885347742898545159958263082530877929796078706374937461027662522599613073772760624366856241097471481510138133200030692844499044284373069415279910218892432989062010203098023821535651651589621544203256724527989395830336097243721804378895892993893245915849767732751207774452663527360077381641374286789020669312828054827493099544374512995382200490730743201490956868142831854147691367542259212974174471681329129243771984034300455812834549615015441360422388939604965413334160606884654368627254691474948071818507048627340173389346943473443641647976232891246688073262925348493555957031673734295964023365481204101484368923240165861620138917465773338415502347082885199441393714924877901646813005858069580960652282090403909782848318538076931265190978888229580680058561589797482943235314403175280028022507269442700447028136732769134446612912405670074780581046800499096641011541747760059960695719149867457454980836867768094162293106169773317654870694510396194553377156675017362456912105312230575975727481790953700811206506978749756131256469319146703268374757067716747478480728202316928441702924820610152149909589344193932077200217704253122160775370754941256508067667271218685075932163879219946225822083618594956623151097651266047689724287295917948865407179405108472298040851143546291248142010717345487661816782100845742022875483938965547525639832883368514543455140916912746437869751489080254675004222929934812805743761407279239012902594692192271601036024446275583967303513048910554419773732595002264371103905027081813745921712793093673483643788009836605297942574826792147661686448108842861067653666243663361892613730630304427850759043407087503965421950719452082956278356658826964004482756857132962780220764416954917808663226728034290295559410979513898586560287842226237623344587455018307440890668803210020491979500623546863046314059897834489651789834817473569159404688143943035090464214124464536686095914678382926477983494980587921331715017628021145564016151985758711890842386803109608296295763235544136185092924352022191737522596457127851595567121459757513674335063382351883586352135114704659469646048756104921103554735333424909179762341312408448505986579113674280641007737744030975345064899138978162027972376595436346121363352697335892866536660446380200636561989910494271527421647373884854746883885265350259402318704797954405959760076591409543681963751373986148103046421356182140539368937601207448645624837265386480934529614720533915028997345700107700196791835736857295434377418185374004905208274053400424462303467153906117522362737158467952891161922401022810556070918188523075730907419334052579629377063194390246530842360863514127143680004482132387880490733446730044158266423180473497662675468084037801371739597225330335804895605114008848009815934897626925740118553706144103138556367780676391375735036153946707152042107444533702415310397479789612049013656057637777198458517982780883288631595986543924800644507045824069386448740550149558327412482224181850895731835869527112676873053131737441493502365359937583328660217065108284821253088106403460185219513941964431121255881024021395215985128067883017508942753160815094927685201190871364607030491239883833281010416765310733582211734479934352883880056542761500758588414355010928116062812700266679132594962582601572113205093203567398089560881487233869020485362369876657567391695063420917925322485169869166754326229752796524922668886521810022519257403140952830088428230049175910532089915654439710950432160078569643284717371761693481434020537188370211132239249571076460214964574449788555868759146134793223811426519854524091209025843296146828341399076012886851785522220006315050716659179620065993646783534687045746114715907882440365770940516524173906234881056990504700756741030767719354894955320839638752599120985122937992330982192466618034411137970766524836115375803222585913303708586298633488469098963047845608499008694641179051476878212218359982593854791246036542024601684788052009858614770258500797804630336410775618517034097771916324230124785506395316813491082456387353465960387813582724600312229631915751991046209543502380848521555604438449260527895204947262646834994684958016137995110040392893124245068510724398681906629102063216892168111970480231535197599266462446693096852943453099803236240840605953747094513762189728067273017764189327733217222176351818984046410326558176076422542386177950819699508724948111894769818545253073007987810513663835457835747167348358331995595110077089603276074125431850543239074907686459196625979018367786057290969046102859872285279170752658204339182256518591088504405119935401998057050809489941608269504673657213081369593013447513703010283721856766041526056649856718460147041950037520514623432220429337344087881401310643404449981159546042717476018355775531760187275874242131407174086562293329443170463383477106585662610895231111885309555493980931776357327040233775584046517022017511881865716817910695867078003445789443912121352456615130696252281462417567604554437655954674351809050103678969748288111028375298675432298842375351731770171551896638980433545784450152796405642086053185083422470473312632172441452829960707141489675793047921536197234176827083786191616804980277747815294755000486551605330566243043628374013735057360834081753359332933603272767803602824466503940441513980354530999205877022915805739853048891653912946504468658049614076006026949993459421011574697791810338238312088145459185974152986505286825975228424450347857170346904846661230232104558469900544671774233241921155305432558439713790348595543141923193849153665457206398195277424484856164617180403840860744870301459197797680148017331578599586718159518055925181435231459187669971372162335138107822907353389515492027197086681855491643288238464852530905176255151522242417189152620770919928815060185967834770709441090049361812931756722749672582230816913623745260937022219927860897155034078849384061590578427138291054816178610867286904292961172315665887556568842245180156783400377656499417794428436449762738251873279566357569610126851232772438816744784182829605820871010607913009875113435980033490185847879731427248055211325208279894548026838068566272245756953197663177275604399717080260393166389538219817721965388679610895204033219397827378735619609366174613089431908564086835015084818069350955573775722178037831794372016101899309474449902641434412402846576273507520529603266696136160855394434439074826831608108378580505280055185277116289348987992121916071907577315261918217584486129131406906007788786002197645996023582551052714005999077735957101461013984863696056583658776335124789122619679732115463175558900797991544200569128196754196269882547759051392876317472777121985320039536992503887774146346790309347850231496577032225175070517926192610786203452009041882236976060993086563097228387944500958165640723307017427585341993204348237747798290825823537356720137863246627649226363983117708852256656241780484691347201556209761916691359464389894218033835799444536186985593976256594148000226520514873863061607138973971718678355554003428697231444036133547938213137871147233484932498788830772648732610808705091621616270523107181515240392458327449858697902664880284406727481119045733669084126507184466795990239448487322283382785389936565000023017150184241166686525133016759494380708967081663764819943438248609676910647659429852966373738597195967501254406335257859038230557798656471261806055920791258973814125055424334218620317518882063325773043255038580465741438075593206196517344422746708461941201061703983534989348412782400192499504020211411877298590777081113999133152859369481160087772633616434727709610301642751688903250497010796352630601261091266046629105360500072845805973529567205265565538130533994884271845343301201928537694705745712621879233202539882674110673425454820818502321584314704952344868214118754245188389615163313685479801452161634570812451054434001387666318996495929084416517256446356816118287117721162857450504476830207372444656479489554426878035538455070153887507412855363443853411304636697776245671466395381049423455361255001307496506049542846692690848647960107337004840646035627189651160957991577320950591743915273104628536849820652341433780682416402632230509763318634611290178743019168038162576703848173732163873895829913843249598072151609742156448100617105265028792170597328520412975820647395575298733308066046679047571458215219613266786651006354556060169895565981265053510976421388804490890531000793789592477136975789301430258065031432136104065635426434630171843501873467850825186522492613280570729697698542357299223235406451685568964200249937175426578632101208604353392363062541435639591153082828417300347881252048525494369900191287765153069080731973851237652723039635591457797418216225671394028598020120201238942792830824501490725131744970570925444800522236815233725775889169061296423425427723953440931218315180902886818466915347748090530335453415856648559379243178769999051758185716921371846915477567363237312263571282248607502211760123892623693596212988293331071113954164809508248033673385927545693846308281643000684535776790388754185545040007189452253996041678932605163965912502456851087990001825468260743435046223362649710490194455882571233020543110555596962146043891938415076616583726037208185876125826496800800199256752946091466918243748298375257216519088264857535646334498931692464939147874870300562112262657573256811561606205960618752728769722323009828144344165660966995872869678334600396692108166144120229486739869091690162206203601076880994150003517732488746818271819366591718375281384901650135346443814872356488559401398113406290035086309737331278693025748471106847754219813464262297440211566949931088084616125077643720655825151221647930451349783723669863336648416111192553241488477566915876693564421797631104720906159327681508318466605430015609424753095717593866008843378648659569559624858348130800278635839177655307194453352377207845085102240434979110844714058726408838676256957159013312269363443308762125933990093641051131531706481821490100306237010007790220217557798669231190885554514870222205815878722283465035740734308374578444472638052424627708418705874101114218695928956913426615325257258592181487705816481762501895478479135314442085360814376659506467751613840858235069938508371282499417068977586006257958515043499627569422845954597228141499385417114462440965045272211219143498506971039540866933036682080365711599086189716659159331405769846312082576492224279107780734507719418352601644566372419469103279972655620928112687064353788434285391497412511501390131693945855916263637342597817513340513983579566164180696017292755322800494223282985809448866140398045858435563246500162747793832005682909374613388218319069140045884326849044033710332380195045121054744786567138180692328834038104539870758185466728192938442481890085699628545009487375276753295163241460325351424141718432201240536877824852239869680683776375185540074698809408803511160450888528505936178468046189605550930737081298253508360616614821936526709473960059247476328321343008063316678152641271961207417948433700959623658147052796245197272929316683273050582294788259164007567422194386966680349493048381444326626463960725307526377327456023324584336442943285772229682280000686267019003403708033696728938356682384810952815514299454515874981425661875152745009839525096545467630393024941222097606537398525183721329224776181171003618180883228557106374432595401060267430369428638347520245745982968391886799371139274741665045314551545164271850604311837155588408758620997459546359060649037441494674874015358164202991929209568062024752943572957766814292466823494413274405444873724803530516530078750405993711655879649542234017608584099718955403960417435652415633937288714010013073250659304763107620751968317285476114468981331875934888971023015711472286283681860431918557104085531324100329632670742356598452587160942996534555127579076933661419598091707640940682256911642521381143982184838661479731439877765250414940736286616335793484532684399798240212011681385054480959690741262102186690207686580732500548562832744921708327774689489189751660239375666384616414649264767565686244934045707046574364678725509499658390100429353922645816529116869997084197606472628883915887627560112373311916020418894342556202329518309213549968144444573645188939509630678936175468416938931408932802361457556159958333557450772484819066859252352212303971296698268287403573412091178666222863381319368442501461112269658741847451185630275688452279669178252263941921347056102741588096671912647571459201956663387004620322391269704329095696361079033478686641817167531231826190728902967197062231045745476093023807093915730254423107193308114685584127493441125722395846053906312377764903001744057508290568854217957075534387572895815258841259935101181068918499883300212173303670237573569417452924178605827477212458868278648924183081799983702975217296373570782477136896620179857515791983213574199678582163422287929193749994333601313560529790150236464490286952093419355351558467615062934559605805620373900726959636166539614344121260498211563515298544845483287787100784776079743848663934147613382936444582623084596048807806676704734023625339369742721207838011351038570410972683091905806696087303361142282896781661951209844385131264056922351034095565456008808956393643426610304336329692567946153827703964148489568549201461025790960061299213343300588701248901564221343644328966916479327965868261489124856841373257126878015177713326273042060689920648718122844330235810674902059363673024547405362741204787903478266208070418890372196942339234049528057689402819299571927913503979487922664698197080347774721736910246092561776573830968306192194772274131790751936272322571437275178809031265972907012891946393764384671400966229055862699336772117600980412992014888618961025196717064557442369749580309302200635184130684385262833352969728132178847348070427684647027550224996415672728850693999106294868892985229942513128530506522539522671772426766889428339404844807286078130724862296826535056033414978049409087480874388846843448438635409865162532884274420893451075765512956047609199672243940739365443723737297125905662835827097830239226650047855191682867576497824989474785457644022088166032548689052699316937729692174353903555840117641796439042198410568768917384224549460909928487022474521285871780141064994721397062949609149822437483705842630557415437760379588725687322240968649509711222269315853340637201491134121338191653677267354074669033462117428281631967446434334562188142200062270818018106172946994191792143313513269743870265383496182242237875836834095788143192092593409269128117048837487350049583016769642062280425110421665179418967121541921443394234979043925163417607949818517596336014867555990723582566123063071888479468491845576963701034174935202746150787938340701118354833004372791369582334206161655519484686881237206589735002467084739526449394886394419851020627743231196362629114809062607015251159147797970075853788566322517961138312661268909563136119939713255911299539780634713537190469392004500504864600713857451833874696227445242409300975434250581211775996571002073055706830006988942573873980315724448383799294695736397101836923741400520962098160421720371835077049452025639519213757220522492342669365367086521984563725115997019053597626744098764882909176577677186138344293085078036795831005642866905168741213465184843900621766610053585660270215184255600394088164967554530897176746992372409714798791364916452821212277809352631831114036303149451632153110452679072867055595567607071710422085016611484585801565919417770710541906294899795707618163445558162462039289119095638446405444537692718020246968970407907668234723377743857241008989495308340590483916685788143807602253453987107832678889834863593484734985265481717613199869389334623915128464472192713464864575097169152387428068461009642603853016550703541738770463965330313004346025750011339316983414191365969656738017316891061567799825796785132652260218125637753547087008978095010179351667140611717272860754622601976295779188334369292612747526082690588630420745174329025254767357626723893790504954581294926500862143964070676174783538498898864039220227582117841466455884764548898061605628687132345757114510355007244259774861102229410724090449490216584415696227989725854299270560699824092076306764271143318805246927771257970348575316876217540632360423168187205184309361900139418801203542008895086828162036960540750561135595186727915954045324283775988776873620871718385164623980376485969109123739945884701611914925067364238029191336327807799431897546321543746609036852778503914840041817023968429011769646292366872246018869574175927731209049131724698802430703335713156748852078962200642608397752007317143036270439414904738367455903252379633109657974311336409349555541077813669860654740772427720280700933660772969834354305957080819951299924900074242701066166975661868750812957114402736147095552259921971922630491865783137343485087469290083478246663258715444862332419361136701587854860478755413466656269653507206157235375820424742231185653770824140184470392297425262990768509818369584427203380066305026691170965357860414346779987827095689738135177858133282157453499433989886336782278840992569170644593348575264432831497411121400177205100696660450661932466796204351605280667993860773046845975897469265158795193214990736200835391737614341279064898838221803246579093781691395371933353855825495610423053278652371631561352029615941671490196875834236815340835819673194770899906580109097927416307984882182676315951914495253256365221859007283681230733297988096964968677672373999443084502109839653714633961047177378147759563503720621451398523533971249647043739970691437558944226586409464644957766825146794488277898101455001763595246554602625291690811812340970364199667944989193935575423930498043728405202147988882223121717465739494727037425618329702915077397432457708851688613782807008548423907606975697110675345692709748355280139038160080345584992357209215392329067581366270415126573361396121425057710685750726871264177754922672277694776562827691087723945581302604891522383936025059223858799471783769612833724989097289002237556513842774133201518069297874273847277186955925247935986752880349884721784702146132097076649139294870562470222953247829055371496967542077479191636742013844400222972296130162024626739127616021688676465005782870662020044349100016742345466616248727480901278041112846621162416616851705547629291457673674221042748627982826332839503356625578632216701380980327432377354332005044162258670773750552387972060582668772845108435951367469950259683740496139697199854506234787735914450078270685633865141353477504744829388221470298619164074584059922528570316537844731533077590184875474659789340579522934216386547660615588710079602192766903439165397066981569271894716021056984170693909694851155014582187136994843955647535434225486961731963151274918324852413271180059902424998209991921804528421856367322815642239761549253423482560978950259176736433748860649452255127180241412249759622763855477184053668695673476079689018116280425355515350792779035674383853800511494658093874599925599417862940440040124118962984316074896610018481268738061220036896776115876094743417969641490933188188281698795885092803752148917385883714699804732311262523569634882644817911024785713200499558116142245424910450767278188193710530895419086484927843125044297733118892763352145027196316459521459548414096908353042697514047523707704150875655151922064046936591986468472861506755385226323420587194457610414704363391216446847358193054711083387877540498296262479786432530728324557889026920748033807949722114673637072504663187149002612018175188011029337386571117722592725847118188983542382481678366152816008446669181471541090787313203076239774209731036241315478370988273411092936320950485868879585782196890753252848021833492238268875415310513486052569739772794048266329403647046776075447189885720389058847996352597332865849090708427593998326065768280644877112395833296745084770067081155235211666267181641457590131354504279678785386798589763498220808706738904518885545120885892687601765583176947182907192016376995078372970734239908640992121161197539516611245067566674963261952490377439433185608083503524083820409345843689030098064656175655175327925545210761268908572006741966917442092542383084482184695565921505541464994622456164579718296590049547984517250654271554049988763634788531638481812333716137664404919260136423008811642172210056306318608052944491932252628372766239612028475658009136923722348946209037072520958614267634696766431576137221387536602001265559671480235960294052923961166117652926090864012651973396191469722932960210082291420463572095836971486185117519608431701422307990547216723065106976171318621435846674449737159379950764367119937478801215815035612437702048263724924659341765954035643931267105271175367954145820698837617116161619163756333569527379200578991783355858553650507701158190798163046075159576657077649882137829127117971070109680878326337986523071559909925762168049726913531850356766160810544716015329416571924638196322425618901237223557610969370696839247134990494920916550085840873373879197019842906457404847596898514195408308130863329133793591429348923713646059331326133270356373814691315427264271424813123359956614947489085459109123485823630771999080668271413106505544896300842211444220458125206457370365552333457767056688242907142011403969089531983803481965056615253454369390905217646700500933230310426770185379519553626141616451459523085910722458099256635776758325640038380521995378414285404810780322615944133048435492913120535271499863439923822660082344336930519102772346449084464890213897029254000327130094383868386596518697409905247237237339731676069060939727805546421147342427516306065732524885629180107381064320893247757818457908673346731590806139571174286601462634415875509699939239033022769067572354822932873523912742164880215967425815009264133490121193459897544679488778353473572650387302612179540935864899340813348752607869603601045828127501004986944444756096283114814067848596800078538076296832802508388717653359568578534985736216456238818544246565681769004748769996549136617299616149500438645823602865844008280753166666918695445618031022483874085994436080869104905353067521926128613981001367332289982497556146282845106315899811983959749643967259944255236178160880109186179928946294644908851557113083713545896976305317257718747263573604599953314002831790063809753474693747850311441295616503778272118802687005013587007532160554869233237883781964010430254306457155877768438736640463103985436090181397496488748239186286136156672861549997093373070232563126438650943292841683567308649110407257707078527144924625009098685028762911151698772038052811469947583326854252248043743289438258332795008596738664410208490108339601519550664304864056013290672474683029836546377760187243039291462550174835690899136870431862025562870444803067496239903614400836946036034985166127279005524015239372406832828953680633658289503579311552382156404441438884876204443632700112040122164794042020441299862463987620136641288272591585614879299854451484473394144202723134914292308649293558900946539492134734678990960693713787098523347429148704002524185655487724476117738687355689151467134910950836790010463004820119218169581139528295547355595353231273640541106455366737969360953897509434761873947209400307456459479391089884673531610732610300566879143918688198349930725214127095057412697556072351254791210968679727374669101844641749229730592349746772661922588726842304209809551081304444975154964781324235784319023591333554952941699996299756526021595818586869556086003218798059261967296500958888936858141762064708919135290048144314282557201033802252189346790707059574340614314933732387822788337564982269884714500144245776909973175700657741701347459382821370721577995204530549246638925159464913424189851179542950555067142109082210230404885806364863267169108798117721420397988241962626497180625672785321906344951713815880287768727247656231884447706601154260933990017426549284446568357255270894702768489788342679339868856666439615947373668328180827562536626290558016331195016033250347647708144519619489960092967843648146099018123768127554242044744561752513086578154853988642028790970758057718278633650232353569874361325478544351166312791543802585957893518004491078288069718492584285818435122713395102705793782218014317059162436853045114424807840876435759018107001914488098633848833815253210848209562779913050035133601012824568194046670778292112761097681541093487442161489733437954284221835970985390795706249600837171160535318325153239703111611441914600251344945970402104873502582936161748438471288175340331388703647107527582185991907147343541668392680693136909221352324707213051795955887806819458927597376394607878482813706733060535914804868151174495127643862777844735281712691191610536996240608492407156164312642832865374821276877226738536583099151748232895259815320527265740395848961724689970683350324154848316209063346369734329269843510562999148353695363068247538147044321224830685062054724074292992851085640929732379673119045630487498688245439387979535596835766726175494711280260884146383669481270622446743495892143440519279866147121412375585502122049331846305498715614529807464605330104076078468044266907871967570349469519919845791785019411572950951058909274263269718549442106346382930244346131621949009893596905791719656039502671402980757630374226675264652800352170452298460534534412107693349713449081753440897820310714025498057170824363878671100724905052884205611599104674586312016875008379295513567522172949321086597901226261856923672699282515245123608882852380370465746098950569091375678849030189291805201699563447232627598011159742897305252401375968837957878384671798408184316679109863965403557602412608465217860019194603739231480540550282862720347786536554909902487984395909842876958781942364632224006393587472265065289885950413453105021103239703026141123308686819827601820834728377342051790111512232669756133939896169532158756155257765743105139966622395944847562271846842399575072153302643521760040045566003219352455244399302893824652841613023504360199708655628931154473276048762183437326470868158526051536979351932559961735106488977680966397514907094994995477563539457948843299233213504718525561855065556449890271846359358390723755122112407064833518135061660408037497571317984530041305201015094541743296354219465199309315163118041556098154310246949365456307929581981460242889914295610153805364926246168282607714573927992032599556927508855387442601986943130313322748822186528488255429435962675439087596423270538044621110514737687852493510443457120158975860427977394828065223790170433343411648293637803111790835972959819820906046119157278830452431795325436130855687970903742937596527257588528525311290493111228437060834987248015880195642071701228672699169559887215492410232350244430776272567583011327738968012588279544062960312924432917950268318924642113443644001267456030096547178580756052935716137696609906211740465864183971226937814685390921026124912153555951995748179809743809936662713230722924079753189660930490444953486613972842215124575508593417329815644662019146611893188068817672546387773324705622681778554611206567126874383707666558252333777089704389376125467417594427234598268554145458418362205647159382669764671887487763556416772460539021691598908348190363409521047439976488544135767970497871205754228008482569072534317675018253072730982178564941109581236441211818274524445610045081899519362081454541978820025362132207136868196649942532048151399233135495047689761672930962410470272375660215900819735114506478440948086340680513545698078108534971490593513662900433705157100255180590185649064655076915521961969419691432755955956222179864283619688613418943191311129510057651191175169880545159780965139545136792168877460055452082167011969208728108429676563961140237701713511487449001192068042366641274030050892676834031860764026022084341167443598645795145973018196362754245303892974464908834110281747752468931766337707994088799074668210760543748794596099230012124323980353493887194966479632208176121259742232029560555366426561063224364471176676888966349895089504247386270691285164391075536914682041666100081003771634529069958794554224932456764843670984438723122540597756758757515974515539740682191065203518124737062559952144879303738945050029340037330550685698700771921884129354461205573138424786991971547394929479778538749977577837712426844511796678735869938335894468169028526262337858202860910362783487662550373086650830454801601445836674684999265619365658465163609083004472786021632054936000478709744330559740057411251846065835486007247221425406701656746854435475093901198717717062889445238984960865043703807295296213592150507694050352526712741954642524538691105501662200477630460811304282941715131191538937151558334893473328447518904619568574339774981561742057533423794793952078430541554752664146273787873812170344344576371057104782958541218403645348958124364557755652482595186299819511746480332968951287172958883813278252554751816989635021626115854129429591949852653686504231670882730032803752481321752828709154158275147086877126874509238636589046562485637009678523852402350597180811795158714317597779576145086778875528767486485342608621861866022541185607598990317032492316065510519003161274424246145336149322363500889067928390834847093843825099627051665553889915616979584476289278952706852050771817072061222591953319266719627942407609520970619233651882028306398243904020654293207034657539351117395267638232184240161663061115996526171647750421161192822032715026198184269648601578989850159075154329070891675583527771397703383508109613386013249986995478967015928604727500195725672915327108800168086254346751515206927958690335297211850106781292112669946064801344476050315727577828065131826954851287614369960809470517537455210622361348152806887216850232243268602729469687232936464832186530428719154587964141822876757258061691643932064427509560250066753489017174222655716674456142929325045254526213659782061913017238992219289392453118125591830909243294975528410715557573188247687242167839232900435492368130829399938609213802481325901699703391608673512812272818503505324300032492644077153570944063647888211582796578408282918178937735315794596426970305195272673413464990703374692607710831369186488516584329795463277203992765778805215886900064594366207657682151187666954568003139017676226984493978177080568757283077684700132905008954412230514214576292548601466715040756564362876735770450823952283067322042619618469578388972573909297441519340554987738984570619293149593229789019910827139559457709732350722674327350728502890447447492485634548243729230521398095472075673356183877546066611258933157255412617739284125080021540010788357174527288659565668483464899321666370357995619673527242568210874589997711960398952358961520388635496002423551863413784370236437952505542828227087295905480612644452986494349864770509865593175834359163875098768973035635945927760814661641530168641394979267126216211267721131102818414147882602642771683074720593005730105459231775842700332116083328652632314900941560019067019420388122376282313791430266977238055024715954042270427970323030494557040771148984120127865848786040288494302670641142979020932525742195383376616989707816703020306958854159539453985557737566080713060641376508273941129235588921632297769844996325760926419680423214999895392940144792434184012830667429187193288038544071382155236688358157159904151305261577935958352226424851328920749883918312506853278028501388640288054994487588864540841261057467530925369085099469890394707541602941896349987489935136651906268144431175625777638528508384640083533187873900408347712660303111278879620542459785752523240209707218087259194826913130347742228641273360154851982740168333339401563764246209671058930128316531193152898935128924806252765506841349930216545871757246992347763371010921248143250974357172093459289773636813699062989585382219120292422655962028438474733801444681970292642422530578742612654976581804031208966211032552011520734814780071325975253887134237204588107736271351108778187446972926109942084805272376486391164237464389702138565866439441441672524292388969275105764794214026438894869660521206102808671629361638480878164593672117508058832240561826306185317491394460698812676119658193975906340410749434515110965021218211671534084718423647208034663662004902070489341587159520870868101763567333313963340203218915997034018846664586756613912961709145758627954277602347367473398208953392312148091898618870988366130221705497318848121992574107055156861255695288397159652670691999774016245409725145178339956343920754476808850559539256517284625670439257696609232408021184992166192996163140060908756334220305182723486424159687307398238590205997518624526328443581189469371458374297686856439494416225408086404203019860435069560285608711321009690889394026609329370164756331104579540831581966977548034895220517299259138194605700478382426496251892422524896565672333961817891913930810461002728408759086756320537023786494769872058628374367723691989164630450349566353031288955174750101017619187460892823995773895272739489162959098985856108226258870665833622467107849624170723937042112760483785287689500720164701145753552526284076847732427553589321183638433223508780494683525107169459826639389774762168628360627838435074686250433080203066790481905983185938569407345543001605141042925741683004392254109277957992601756434755998254917665299212076050055422303706704544675353406440669698986256883340780866511781872511784581267780853972104871803284972230473809636955824104366621951682110451010264076450484403129289988798160848254472037811045430723411669358567300542245604497793668349731615606821792102765777176744625920152844366322562065984228640512597251819079521327082739062568427137495471781180298372283593545103383874137583943968328934535547630020652388828840165279826693808352964587834283494458357144893327618536560944457351295828714694281399663062361967827843081095598000411437669810787892143387647113771905968688516677995720266481956497066740038515479742243954510276637559000920489370131662625375276640341026274919644620747416102539563713765313960004752818536596796308273648426603979657053586370672616863391877533793376381270826393259881442809894089309558245327859819517955455936657625236216125997191824679496763427464028818801237575751356608106979350867329386292705543297270626577682113649832657027961449337867291337445073252017875387315351697340583630247696800004197560034205860276203620127460506348890859059308463089544937665385139932436534173887645279157607865319686058272461490667822334999915984309757216785626252946383133550541665572962681139079205820316670156558334437159892811978679275503334687750413008669591259920479689395493113049844577674528312636206077716647666187848125217361750557028283555461648462689543408788271661648223367473147747293123810443853446088541479849378958140314369506199605337610253305457262107989966230252625720591269909924199349745963090359175218214210763144937336750218137078748163387095374297236964522832054270853372138587906667607523920654303316893673296026983688699230056574535078760336977524657640939832367029911190754278885985541040893998188916850539155053732706901194623944633241406120142203953770758280841810458192889999589012238296398660620847186215764516095881982263103259889415259483820919633292538974493732242879931423933740352116556645283245267151321919791723170130865587138426333573134806621285310930391397772158035626616114460896026491458136290126100500304634795817073428809832165577089738739787859899783787560354149210651710284082115959628446919566963846663286797835768829975713542706100035561416796066643087906660902497527541932612184627278196954807754553478657965442778270412909007922806864691170634800918458841158834609991640204852972800017418133678450109765397711335150610327870440160611515861530789713776960555602828572475130042214355384456715242883268223585712716381941929660951292058566161457729598555749510909517932368533197191547041955504450345074643191552696708818037658553156488525146061914469976440952617632061270379681275992930962927552127260754457798960224626555839359112632202591895830973847970315679594253828611920614875461472695064485912914192879289382628261902797468229282175617623170217066827514006195043881995694962204723524771846333735754759441916439314492753021007715056106003310603549314449037686785151493492007728293067229234583600594284966749390145254369051338785794886814243240718731995560577723094281099745744441765808910737926883122536784870990457768150057315060188575114813525869087986511997660474234543447947083118408782638484107726116119189185714799713094462809776992695408583963084442141043282102777685401731656170433571116756960000755489224123061025081329310301271693059960845101892978233248871634657872945632214509156427404511077772929779408172082095123784837875179391650407168262555754098982468309496689792935989351941865654871428004048927055307185351319583619550673987658280463596468956461456005192477442504776229390260216513042382371452029295508214014863085482338423313114475874328091299356811486754301312532650711326890855877004853279954752930351951103739099393269742804547055608812279625662937063150753376965542462840857643531256717967425850690677938901747513557754900180719290712597286069528101351158004267283654761674385419627857467734374715472675912106583881863321657378428749872473444687106513600742851018348367121378877310227362770225249225435890321218944798939693549794830476020048152308139943938019298238859128022143036111560145036402555976271602942383633832287130886293849927491995341530287664448541601136843714119550880145251171647559030894093021337768423466810523246148075384740473289580296090318958174452898393131232256186666097645486003313562425914277721146733342238176199875999711517248206143969338043807363839332255463145583454806206457368658364892288217012455700778221451815600810305801969067903088675944296672812447104160050672724666246425071374329422608079797558230324702819627326094639896228641641080876634668442169370833850840433950244671870594618491243351134935128300084778649083877238203836866076815444649260147253533910537741386509202525263804426589365817370810115035065951253650470184391292496725562335377485444445627957344417112459015888014714887254787350953176343861688512416284470903412480760947939736128545595917959085406850109601363895595559484275794064584466302227108231908744805010580556964852197338338523394304540409142990797649428227775281458295045385052154256433867814874834467566226081291646737798692503707522562186596013469815346004763732102853418139637431875662153939563149498112924493599336330349301408349768757359596565479094774905020096428348493692564986237091348566482646612984408950272452612349828081000547075888777277033281803439400517899930769152919987118439556057524892548656594548469297307395627639448814563220788520022861452396418154230009505486176140857393032584958565666926003066934382933950517999435437336485312722881637263500809602541926525638482232060644714804150995138963690341206256396572473562953388056109158895265675481395634458361479107191910353269144494192977778899970861048720543708097425099912391113671287704717094815561059930377323127135440139069793547011384027089494199846440056148931857678453447286799622541580487908944046125080362150364824836042195171994370626978870190837707280855625131579703640173360176572940308515146835690662236638940644001689430716280730695703670881684056358186473908395555423124496821369995538073833675752195959444624874762492963310327206588341367713192846860405560125693100500789430610021048080544216724726405779504003698424210037695565212569229474452873427812914101434475241720368839946084959878783901353962513887581348549383777580643414678588838064299068018956784871124783565960332596642704007075197960859330338235083930491069743992035525666088145320432842402798788337784920831649311045702469776159931507306376200494561122554008914713504509882111206169955130420344778063468287579377829162860459248290583988049038787700781071702265612224521324519943408822140726652763639045102893182551052251404847355756074150770192038358823198924975206108607184639877087323502264861458532191556200763077323989990471734411126725611976144185897659985964066737713956632573075533170606300731801997311316046090736175306800445702473820993828980572633498647458165645370554878114591927383187615215156127596494151804410317521493044033941274832367134462953728782206575324426025443068768395207446448340221057607484291354105573470748650233624372658997761289673922508640609060150454451267653978987981367937804761549185361113789744811382597324312359621609957604260480383069510286570335018375583450848706019875895727098438239721048051584773993528668900725419523907480389333933925358094499539598677550991647649032425068788889931342523298308718853499974304794632698788536080677680783482994179556220049212911869404413304092395009437939790270350578535093749679237270307812082231442823556374312991724687010431255796918153258238942943263202473749944338932573249163607264980530672185962295004487720865377360311667560404286298095521612076544499047112242009834002522880884564049659581226169671254995476363160562211859505655803383595528060025321971962979416637076862746155159204611461199520177966044234362621832457920431135546521643574791535588656544066062561522286341251391299845072468090317447936551015944596847610061363226619515939633644762525430165443133929044374315870678374912284229314469805425253000111894728959704880771159482144263867427882693343941335896617718653545636289105834288049782639995460816799579822528619920214678346026222267549543780419805913506580440716689829073493269133633663931991604400246252044464628070805024005692654159485465777197102973666667144505478088968711204786664791503240762866120063659785893933423814551644244737432410070938197796465574580604201053092885863636419097169604196726287114219770803826312427698138815664476798914559386887839749992790491464077769976920271875914965053147099924896207023858287751649985358726741250323874977964196269953978016938832137229478049210238275865029058820222527228518180869263538107123286122843300352800998910673342373308611487362450578112316731039021910850511059113212313223837404346339757475820396095636256172401209102352959773841484114874252474176821477252067624830160011838618856613839056508405196028919887476170424637423957137881912193855218976866252944986500078063203128572108819030971123540737752940854565018825963986474486101172829660327205905052195270533317789146254809576350798271809692531443398680754638310575347097125231115010265820802932512001791060106714195185891704439725778006550740721857155879190881490214903717518324378003180553119740436214537229763854943096032027603089424146614545869675578679274425694685330618394982595226468153425993991540282397286721797808074772218518253790289160994564172680017783410804997595668583518143469446169508442466296969436741968169433552870582713923635557530689409746050067457363431766024429727934214373174321265830895927399745256704316800921368519658280530344062021834125240506796209778402718557516749567715780969905743299445280153750560491487980723862829506951969008914978552478902543226706143307784912951525144857921467334689255192616360198837783326578565062544135360850001495582993297516837361906516587460178619302204563819134289072520400164699596187478397986760474432961861413426096840837878243440649479372789152474051287035128638582819710466964726925630364579043256040496686979166677280603445427645325998958139966743272356206503379530799306074712854744354416059970252917159758825394943602640542472293555108139459493478044075823698585626449487045358971736135021176563840817707646525278790698895286657907002308612659359269730355725333511092943614636675109851044057019437880492459158100892449052860463326923107114554864810666720201412316732627702617154654022120622442440281577817931051150197145364018027878915991827166573480455246876776634660356490777763279268399099086701945417797957235001477984449929741439002508017585043454594330967066325816460097093683013411506162942957239408228447597876201745403712448680719731765817063775515271519287991880816189233394357266931091780174530994308511192615973989894805466397275235420038257083227885311590926705975703666262651996738487495471680609304686218468950154710437342045832046924173760878146141095488295407058542024438573237152780888775858951200443448064695920987054961633890677458777396789471047694420175297531871824896221499653977671065819816799925964363417480004744388409618878343664122608132744227638032423132522992153764629450930006519662532306054166629062109407915506181924435613299282009751916093310799491574372599490964687038147769374524339168947374667137092851254595961833333012909903032227938731498138507685177146863895859313653465525618046408779618223655186165067581734563070439750720096092227709674127323481305320237851515871949328226887134588443710706063118711175295543975961083707876036505392829595953392782596138860830600947116259460517875525600410863757375847014018517467285925802239639367788516227353478416769392404621510552523155525317612734603172482732620914031817741014012944084533134968001649367732549881358873628876145702996486457868583175188181574448950270650240410555235640179703739476210955655352882105951724203856692678433943613599389721791631861061632966063363597299648418084425703254830604961897186036690221077935729236289775805492772736517001944546690587221283082672797008544149822658308836694893573156001479630731572855690434903218030087794045614328640607733585265832973895512731085447042568006285445442402721548398555701907822265437225437539181415117120408150775650447356808282679091942643012097535727966543763757633875720537989109055946705591248731119593372193114814915956444491728029825917194968926354967924491916404132573455372928882996163382703921211295412137080852396425129089846516878794173284055631290611841828651710842818860972433751760884389114376311992683271522601008174671152427283941816342826801919990572291058066136686780036238447957812124922344488579193551419762585371155459733331420400674919843711237556154534386015148867280930996038307786220763114448292417624655114055881720964725035729668935128590884938769632023799098331791695458575176293640416798520788556967396254217862201239327613047090548742994375868487914885362897884313705539739692434312919987370084826563603039960914899556173034284636340499853668464977051213552138673824253988459895315802674145027973216205788039074827538615060658944817509520076732983811397681695313275135772498598938505806437386905571822353281113422248217412331334650920918134343776799654482620896918620956748511050417397027661077760634184359924563393241944259582631988888970195498601440170659455519992597213593555357389516271835298011091638901668148389743260016072091810617088553402968691714333337184038990595343613857710126156075896351848246702917809313124495679713477258246968901064511285613027311122307476673412743658691173584123561727574299293503120988927393786077660133542460332848616178003951816239913782482934400725260787921264700562180536143718946853352811072631342811024372458267565021943419138481960999492927008928922087936813311392433275030128369932716173833100292145980261848269989002184438980300549925740131306155825634407049361634977657659377498481833663863651872682887753749594951996628140609832506750658588814656928412956699846285070037240311713427125123321771149829810075987598535624594556271315640532384990828130494670349116633811959997214452165348849487695216435283620440383627305299530404914300068370487574231098842913806980607048410997108043627607795891694361977616327412380510041516647163522257441734598991113753375674380582126576306002776375196469079956411190671311838471156287460107792199277455797161216726362452761656814661624907589643242341585710579665052539206092750553183062564329875658735577535030786394721965532662746388120732217387982002170878067347491594555506556882051103383929833294683819234223739250421152405580899571362253123157443446922967168938731776157498688175858378477924861812681944794245132838212543795381686056313468449571162687982619230805017888442261851474185515033178622545390638658793529448657032209313087759729896326229836427349785614470069473105290934689695733197872923445894501044431702785084564849579084189941638204863642109478423282620678587160230459560639707062905400154168633948745513330676808355905661829974352054829528184319219175031872642887052285885023925258039840862616851830212073048523949345502179394595239856655238694406127952313687608942750453358766591450309752151133054008879074832392983785753140821512013319084860042096444103278600859552027220181498949188178238684862927232526786358823788192610906558304100759335275969468669389225924081135134090290695639585131076235093154534855891109305724481252701614899117963665797386773229064972638490256788872316590561514805359393593170486082153470950838074641259325114128320788273079641066329825586858106624596984389151418000002122839672481863632061046703380187543462168937297370752591432282817097240157975384725384261047477325147037320672771238457150212758592708106715559628914018489432249169806008798675593160192001828487134228971991182460628106785448372954040857342514903086778949254574819375397009443478308660551615564349402110392085756471276174805408927911559306562057697244428780527159071659573621521681070676161952375000674505939520829360649837353480341853569310277766799764374587196350369440945734077196094995964796842071336792187352778391732510565534502661863441698814647193501382022410789642994213805667540692076651206831068434605782544494912191604743931975230097252523769401193897634908491222386453125746110430939160883785124200836149083568735410043163046004156289896242390751921021498755074035309692204224046192103682205331252304048014741859870904001492396308643358012830833558504516726134374978145410728373718409846831618097905308538338194250362799893780010942530953617439292725496018991393982827057816669981130861082350043285175711651357822713476076003963329612356043605837127187892202926550481209742763021586634533403786510861428010621955343071240884249355379894832247079178252819706207238107367637624266684368034854039601209306103599821778828083226674327917811790966337361385265240368586237756730633396923466428638461976329752639315428498707572606879079642570005856482738175940422182526989516317104148395160229682793215208168176480264933962179386344807128931878146956461565069515361442156055185815209578844928758190360485579544114781220437107941917107192269912775307596470270461936227367360270176399611254661604247958899267250811842938172040333309820301736874483408210801832075506767575270111565080124436856215517347571812116839814449681908839128355659464200166510011857976034521206506532067473739830067659411219491922771892113549872041109962116774950671939773803413512556410418651594292972405328214658751891945948052495658541686228431074660381084921486852152220625725651709939206472379001012724421502873248019427573761102662260543819960458600918426413734536540368156988571066502402688340816238223198811961417351869019182200244317428261157196646003530685555567556247905878640822347312886527295049428754218725084391264990240833147581787095601965857624527082982959359531593581432736170163690247836839202826335429802959867069460276694593125299060404778241042487287886271923907211131791638843826172947218232680478730602790336210376698550399928894449751792286018570143654146486194744946140584783541826749906529495765415503332149765228017687442634409813860918917866667384695795305336465844956479852158777649547451755845019353887284021045417080551544707317971199446266736191967144993602877593994417766615031194303355843967985615085127020526249187174275942607108314734723112981390470478115718037048738314213295424864356746416857344508012552056764716999476450332102975834653236002618286705825055286392308213264101066866304561604700201158796330532629688366645272138254317981313135060188766531160520640868738052594111440960033547419879511486975043826661157606474798706299436349681003449951262402557266266860819932463462682107506185383165239897287204085853362702161335895575152051185165986597582858509758344533093940288120473272795535963520687501980747267983354879595531517583502793326722862674990826745884415912447307083331711567735483649426249212479069697943360234234625359724611819171075003616562386157090126948854579281418231450134147759872950201514322705257720505975072677791935979669701263798844584082973991112226830806813726653535223574425687802642292894571345537165972743941567308883843576046330139378410779268759913872887741684004706321430740360832469289503552924937916066189968691298802793992216415163646730272988030018758435562478450889950217316439352491004100398671273051874751824738987969280546986796113358878727077430566466974777882489891118556594167801759782930210137717647137698887325631107164933976185831052166759113990890416041203000414382701731022457317091371517352663897928686308296413084005165497048190400483581944529953525803663287528201189578922733193061999396437201810073417360210984797375949237842132590413124118050106921619449746725991373713299857539733971079748138819915550027754331894080525507236203265763986183513744035039627022104988453569382072647314343367574767234378778995928670699402773077853800458176419106196373265755366581720939463968433333793023583831425443483917054580863285991389905467420241683605928031908062501119439459591212072918842738686676985069949946367637606928699277732686389404105705182077301723303816204257496863963371586152814593607594293961872308172251412286224287994327797196819397903561927656637438279001139823517711253534892270546829969757852733886498654569779798478747499457426437002455408531031758532541192278131424675854700340159711578671615567976550031443624018543158870336347743861429304704163553718598863883939680003763794183668037153658001509621404511275186096947388885258654929523807098066805909323220090490284386133287030774389624413444950436225621424742225457378214773287940809858407639799418570885666291580961941398219098420293269764501292416265546637332464523343050576495562966215717232106799375909296948790492458917081826414347463270601700945370079469518457097372226020018195798156188984043171055337464070500945827228845547691524959358205504169899309498402420195564711086937634871553390645702378467530624179701308358897691174826142768967936790058096950774133853252838164320104243427712798249207986175535632462850630716356714474597335638477573628741403034237157709288909952887036277517716946255191161420613905701045499518051393658862016348485674452173970303652101744119455986384816899892712375964179666042968748001635248878509797347168243484775113751983432864341330148500068598429686615101733105847034612355242005390526505905342204639890951331790487558813872702432553673190587253723987035881030047771520104488358339502349181820218667106217587587306956085257631410999214523217131902841548955529485384878521911007915203440108597842545973018978358040771739566165737320309447573564434603351166066560001541512061494340606613639211081901846246186777897922368487595060574042688590314115914657205431399952709884307374737975546259730988538073056519861377267981722786106325204985570694126856461422469890366488940948208631506876382951575846169994869176631582600925608411147055155085446087326582472614670853681496807066634279001036441225537822166260359698624830350554242124456955074273321431457642269450149213691351582969430842898911603120399739307600073375856564972655534748626467430616093169571835312137391942486519312789600993282476406953658005493141207517018040857555017506267529488395005404463807560601306275015400645424376540518599302768776514118981079616081357258071141809353241391839813728196263860913978003026768130574359068345959976924791916311903829273397015264616518749187715969321891978542800382058225476799888975633522254740968979003478876343606281219142797164856382063173966104346838365654062001635085041560185189228605835068162355425842989996195473644456183528227376473793285868312987364812142756830908633157579725807510527292366641556007799702461380583676005127306399369705529444948485889632427615027402882796744920591754574584076874343743003207227031387238073368143614857486621161396392368209090643640686935014852599420030156309517953065537529803107578543194056688280270607935994392599288080855976196783100118655132805200128870137835475678700587624307327179923554303629250342723199996594714417792139907694724334189188939547669597891362241757300174086804814353534301164142193500281976328749412194094410516763139437834483584323399963087306681061812325462766503719039398701229910924588528266712007981013802529925200241506924590589594973446245262640450474441824988040237905024526804651343154851750809549076382614161750642571333845256158783379875674385096471002200508897590708808885351120825693757968263585157804835282058418447434110583092626656661626317039491436234221826263453195710101163451270024174103152252680648033908589036990822587335387475103374510769680902278318168118071443207389596993506746131519643677349396012123726081870534897949672190254254006592742527650540095917164068316082104151062372181774714816989194943178334336098494222900275720265866632366850410567699916828981958927382142044241548486238075969350378876638282846626802243291573022585962435482854326003928179501910525113659438087550897981080015841680456182286853063215705638188935750141746881708443426991459828608041643902056169219115117464004158809870217215154289348221304744853831814887947506498339496928048651425553501630616227827759738673657538527935743690087145243922036216792740083035433184049878224770969425701391373950418561235260978662419705218106254265068574609526406718581624797129671883659646591027734100749820901261402379596183068951569692608349748761876661867921678545865767705078200291931749348407912275089536845819126468186203343065398664180463219002949072630709336109321044955075654661471340207840149758667524130071880150293863984859722237753338297296682500387418364639919516053432309590279555224043220230541757008066142889840681472166032563982253829026316476746441752034937100897132219122369305909524785402847885290314455280630030166892863302241718468214870827288729621630842752453366879884410589521941846900468970826514809408821189094078177755885019989576749373209223523322646535953441839220011738646609861750167189170266261959522331232946245890850993162234306756575845838617093894661829212920345292508340448825300517728039491150906839799772392090246823722864412403296236132270836498642405686225872528282060509074170340035522709475117273873974096101089831494859777777485396432830937040537192913420912562640479940675900982024384485491114672301582155191993005854133820011302788617809329145286668809899217807672578394783368246837842701635995411328664786242499178468980055186980986739977509000185603228942554296312526504432070479579208173505314050080921023681320646187517814297760393401535391234982747006961494110778761907867105065212125080917324573721560131319216763049171421880404681510215516106432135952574893847897804148500446930532841241914406222468913059320236256227793106277410691456314804324227034965497053890862085236085796939074432072636590071920208770924106336041656656195890816443893304697487168797123072878321780431309712543412612495283202859237247359082260643647824114259372761826280760309580976153527838818225803763507053177816854488641098124732754315553058844132000441672291141700057597509688590123215085395085425374367232207117533593423688151633939270091200347462514483982620554677550713870947037626133053248071439671236023040344417609864954929334745874320562924204733435808312294715195477214257692847742437140240481189831047764913088565016565038422689927040017897057978526838702553005496053455709312649837483564596273332191061768675396819527461039564129772457053372678811036275525378923660761071321829240939999345836573210830140558455935536355490616619015803299930082915697690185972572087178107111699100730915708367162521381270934129486226138551507736850258678758600707839026663229917306950534306652400699662511522280961566577891748831094973620210205813228078765745692540946354752830514694613847083522399883133149973379818944720772206083726581630889171176044471213746072110216298752899861283677404041128274785334609328726747945589742640834838486894073056210925790245170267677271928060472762235304652479630716044340909338536191889651690180828819475005681066882400206262290005036949141031339416596385137669679649797133652536086305888158827108906479004762243201824964726093489531681719872723251355519673450217954434681008410113435899703015886906512531573572161874520288595519928187690578657433194236777873049882439499806431811941692183539603980137793864324980173671395318836107838418166642311882941895258151746654768655151606133327368269543260258834377245840317288963571556395925101867760553654969062978884501531692492484957400282133355267835010223902452252747747283036918540124129185451937044085976079296888171311448742238889788911539759384768958786075752980458159772376143567981046707671676600071223445312506776212259123171954226233392340719012882370870094809707103914459589577861531812386628671981938576719529711053933366284919082977731595336682844889318141068856298223712139983186514388856423676261714521876427160653956883510439210026277240152618905076584873231438572914527065473681975712809776550382432051368718899260191037363282313131772634781548143545519297331478535604028509609522827681772545093925086731322354938711137719296457448185846615411191438674606542384229896859860834253686681819908123929340456264541488926358171105714962220797925768748270987713286047346089340119631616285746587701170770732841400276671600268483767547861560988713133412310823203293809793596134710380559335968373985974451420611235434081750218757513970862390875578327722949516984465748404913609645953789548771012618712347630905418550082260209588683024657295521798978498647739160727115929726364024549640327930358724882577005925690714840509928559421743262166467016481814847270471972333395295024092787697176399374173986783409332763092772763676018279070553592025383977848084082448173602485388677080231263712293240679738248830677665153076301620901513261471490429371709891610356479507876229573890355998548304292001284880872995535282890007249008714491762979072350847167126238850868605321273772744145310199795209729089250308594731574176680090295798139466145521760102681672241730848511149330261039412964930077254228501665096626982313778314953909683423298665951550914115123891211545729377360516961255368355621620966764562210553207459529406920754835182778602225461542510264883947231075641038186211278791574392172727191659320644666806918186533824885728174289551893708656104565455628106448674898493325554344157486195475211020907576175471574280884527713936716371235087869923138662846761019905516302808868338452459683297885325803337609220643538348500079457804672950705917873688513307780417349772947033898861070609132388139307855538991292655534471237579511082348909318889564705638666715998097973978752970391292163238150510506501048939301935770555392283751103548239259297661494823569918352255414728264789339912302518807776747800088843062238215224933861871372839411522514238459987930476409862438259953258122342919215062848663154143022030509757717999429090107186762572606750128722727319393007101662635535749183910923062112132926508336210842783788323038833819452400794188967141958771290994119466744765654893799012908904377682554742900953540113136317941364782230787053783651378188091346787741722045506588321513472