PREME/G/MU727021

097503838094440343483883639201456197660683357352012389249280264060356095688261493055920777359578416274034788372105415066714257757784531834738773828766597310106273312664539373671756877675199679345550248163976442834507000475338285353688294623800133605331965345647938827712348686460359536240286304272674212833693613517043849896186734135505393756461917322534894881620712056180465960754937320744345889002603486694867084308040446943554410137047151281099896286409222948142906259223615914935174614632468607022584655689116833733628262922466101258248798155680203188375548853335495852829465693539533293698030803642344355179769274008039204467127628954150359270349955253318976417140204907244807326632940765691184352881290634405127963821885916794974196637992634655010321296955187690026344137805725122584285502089762746168651683108071206589391864542912524409228412123567891758713384046989060775176777336611002049309949458879346040025816948702478849442623794325293087990700202094283081288020874880514264801232567753263182296319737373316879047881478350488121082309983196953448285074537077201244374590037421220878341424396669228009624104812134433906849971772464308096163187809180310739132733211932155894597443736157128529366861221716414933997118033372607694413935351798197923736725869338811624977720447890195033317186352572751860204006631894380298800317645696996808188299111717922535052607939570391443326973796866351988094330337420810678693384199619622572943568356341328633694568897171438244439538698501459741683278039871495515920093632014694386399106603139223585191689465681339833595044605203843567440688000011064170734809098960356508076842546909654433884987876387704237564074232199091565055579903123630822240042229898330899941596601203572057851436093152258438720682372700909896335191462308423626182124223431151328935958051234019914425692275288079596795152486511501477122793682543462005591184315560825552375247108119182682042481500553955374570947538137253743476417637945642720169765589902330700393632945432960999425871594132882410421325436944738622124899512976816273178006491526758077384437130360174370393853038934559232132893045032393789511901764499658059818687979727871570158486685538452128460488736786709789335089488579240932040034060735193561157619438818566166932664806139226628136127491555806105738172635750537775255753718102799581976686726151644567160448362302127144041137819969693258188532162014537619796414160933137323964427811809890127082976040143612365859887240652730063031552642676864884417013405856570768691156738994522328435793623092705058601923879902681592762111154861145763119733248586019546517294472543711508673772171164641747544690607280689633272871465767916890605953473756463917783504404467571542141820940219009337108320169903433399603923143499176389505293573740335477435687283348295238107222843973537503030355899039159056181845845555971895887871248818623309283692897306916744768633145357278603037242510388637966918756838850486340196197465584838527958594319570287349642449750078383809214681134248497609958663760684432278136186842505890927166744179482645152149716646034735911015875036491836904285426385346636910614318448314890562242464377797492785979799227906899336106927280929814770811960965721672072292292760170328975198622211387506400662881290112255097472346169014753096121161531587331698035480586658211618174400931071709021252851920826550698368836849441563410002373246409750524031225164302485460367483901803154496370978409510757727089264511686950790487110237475182365484314515274618425997719182320042217298923587498668762087891163475704850858186655904957110267459756884874918349053648099005963982965697160542563171168852070955605977420318141232790942928782907906303151034451943418642863609259668495905460555599589016967008461275104954327639548455419026282046164510290076228690444179422513373861916455905466581942843202225403214785657052634800329058905849224041233461394894482527845082038784528767180389314809637630183481086655607936560424739016417048047163221151984260583934292019214456460342979415730378579883394085300908200406214336837133549230997915164469712935875734051778671436002515542954014666173091655526232365605617933927174983285029506177326164709504609419937667090533708883684535214743030607121376678403620102831487151282380343842566773742627972853057379151660225119888771854267014748040639219901412076505155748425238349390739238160272409992778944604011116062204124455138552982517158234022741590827935771695920635279364639036522531856340337646240048228273019435898364900680155067725285430074261783887729101304109023388732028124729959971172251723193059687359862032815409533194128908215166339413508515412105998713909939013310284792871980977599869270290295670489868892123035614651274832034215250174116587292948235090922115251614802872247402229721114031659663366000698123739341854131973687073760782938723615964306796307713050795355734414900856650377619377975916308174316431443614069985044215836749424208291161863760451306959884406179325987815279082714264155186743591228856817350563470201308028961281278055395991738911724341324006930289410696501465142583290576556131411903395971164142934436826028978441754556583677225118194446679063312690205210926060759543094298280419792329887925205017893359007252287949734836499194211971318917769239659622877392287900436048535339409634406874715146645921761884702197504394202900710438699950662376578372768574804581344978028880735995658985623767497219204109766178113427931207379408540775707808812179865466527273800476048272589932214954336904309323521486079288070106807197373574589931456036441919749665942578969579806480272741216938970606952180151324314544685087115080496794304410444282511888023804776058638533075275512707908123604088012096809855924580878052432260471037698123137501290938898851692727735594573504478822772538900759254277851396199216063219179003619456344136963659026524394360346277023476547597146781874171330165187316121632945915382602269703120431981173126823819491719153354026595307671233396323791801936253794196207441302897984688123469717434910297622815056955896881554265507131523368407411146133135021422457900176792224330002759732434747232580043894831932939541764594064096784849906347913367148076885941486504211688485115234699120842547847313956169663186540505977889193749977166585454287625848100455071637600478241635707629694216923243339162439770613135994836643816641887597361159052624682906984195393535921453091026512078811780023112604443476427355669548757613984830406470237962365076240815355113047056488417288151638984193087532230714784722458967536685362694760116897170833914333361996522387479460400709714143378307502039629742758207996253252083129685625114846286417941296697492411990503383830301917060987868985758982139616870091832474534079483436499802022017673480540435509627315345592377495137648408928030794787094445270386552203387352527571737120228231070965528186435982660762729036432655377705854510280413181100690633717732099574345801740620008498339924638503232403837681929041720097198710982488610194088418937530883942843367103767820934493592100494149464573989613040414699468366278709504216128817028301328151299160449643455993801066397820887109194884653178474202941074801197915416071234102485533594700528876466568104499927914253067540799000184609467404516744011265769306460417696368068006733995839150942418150851240993597719279234166573066349639559683448338887013079242347708277122044904052651874800396864586830536642389786330043809164814679833557621851835719719167624582309586195477589545693794563824354974924755643653639780281809828957405172676918381875219501185361114829783679925412965395497265744432350892756731190112616099241282265755281199395388834043776253876782036724626778731224433025765997545931652475129076554016152037257481518566927691963679649125829750198356514601613714868238584917599400321120455867113920422842567061765172136457413253034587207090761594919349495016359847940196613794128827785761829606710268006830968624266367406423649156059297752528248231247137656214906528398375266628269021808831433986393598180363662243079383319035541732706842740466574091458733422490616653255146263572358823141822107859333721673467571567219602506770740202138646171703365965440895927097251502176566683852208587145478559253136515282698358625199468882461784072556304152852275118570156346430925301758063172900138974985176645196363616014169498474016409488387410338747880455698780553910152196364498147809106989110129719904314884162527684627167728141001919876643277849330604674278197098760524283171143630789124901094504516615384210533550911207973474908705969887612408657440640251872722472817772169034575968990040461910343054844713040386114063399454223115804051706014633542301884997112407396753284544077827913027345548768423288566378767180051610506248000125966536532944695393174200998178997452136526457223283235190752143913338447582584617897020008592257329049405836899987772488259821071625088563209313654979688064434107518098035165202877186485338100525656521540415399460659451687585358857393183346385362394617600129479634166712969966216566344777974200986466399726517827703191174355709390938407750561203256611939030949029663350496392374701717469067797985020208950599384924393173683199737761705449962443773295215635530974820272909656730805685618792323322661101073139809072096712626023286916155663305371736052907456669692795630695553403331423461033559773190099536831293591582836858895578143985580000614086947106817869118963346515116275010765871562633821239295426305063552809548951953945856708618602086040382194127279802658991339553304672409535299187973734039322620721911449450164300792739885965983682963164998797326536981278277358593090572890048048924831251552488285314644157853344818620058971065135664380681914300902673755959528137545693699601788090750570997246513327964298334850374224846494674734640014629292480043250813778085681620239336919407850312865050443936852901264396913658737763514195723550111163251660597858267745966974527771251133281860643867243970941333055719095548072773235981982100866355689480716599106707806876355479840645949632920945843446695271645857024934453608415943344360458133191922948589523928424505942724081059767273071875814281513304081310325434507971816254480166160830164450069756345137925003417174605584875476174808709653930384047322155091015116162266713195811588592299304461646639202677593676918586447994891952795072282803546703062270249686231854687997554911473182583647863012634749441838276714584767983179253369689396676874816376297725480287196822010616809023507412486039996696739857998236989426425705748863215870492010504563338696544958809296074304676389617114271770778392737775342622422337865548038511252840409778144070735732677194784098743191675248192657868785537565933139990081371764212887848332257324196020683322965907332671255587230420453045300647397331551728499344099552552137505941259343223675731950344646274303616798391820753750363952577524339749318104579460008685517456007656726117075037934511335606888061982097602357840791939755151185497007268531148295435682440440376698474500402325241770429327674947308669739162096703920998600796903747737259134985261234894706883583823869777913407484826232435268974709694740189715066620264060903321146218838597393830848485197557413244256689551666516836320290569941563343396920613921129079539048880846802713332742569340671422763702581467877698387086293265017416173644542861738092628994967433797936291382237933822796131625616166742645932957568488049936222245440265674886873526793873108867419088922654167307557996142486126189581138355516582370089221165161343403002102033337130343199635275759574766891502199633211839597209290043937934649256156419832935209658050093145711683493864442905184195314881311806735913793737393561427675732975936858352542508546282092401280766759734339572836519644171802479034222862290797294981206132207383769121447371129918185529191945863176409548577348645110101504226343651352171662811752540344243906628569817134738528880665056004712534442912227643797784370971380826759993472990079077866725163520307721526433953571319260042510484872325420197071448330567202384354855815396588287920425526915327804973900251507402451305931547822429049823157151972497309464912499877875984168473767413673126101927808570659604279348527813252955822875287078464273110678486860935254224457079983757472460146095367431731178169387372510343633529998174498063297797514881985816920969360824964640822535074001764290806968989118848178860652146511993750014098667232824934614424286629748227355306349999916673367704352694638547457820484589883692707027412155409998908590415714492334541397393408596252314947898564140679320828102040867981842779436502173832363774791679956023269531302786418458892255393140416787152330728914996556900551057138180324073385929821325021604433306165569005406874836494804525196567025397597746471770069280714267114126698774783375632904336923213681400886893280736053742232387731082829024939034268741589595865079766948905024995220997357082100917284502958185987958310051288860243038498637424639294721159821729879355658854951400749560784282670830396876920734191184626058132535654106541947798600190759988135754847150751040494545934037669851709330554662304145871731884717213083084404727032360943590185646027507796156012354175820426418381715932483907004507848078213088044859738999630491720175920690650720695821501450856757117995342966156443176704776185965496288427181254007609861036209640762488865509650733884584215700978172575125270795615738982723035065703539372376188354909842680420377268984710481259022702030985409895562340657341677703370228517396264188450015299283719123257673934188605524361577665782258032976108507908000947558037896788549028222182187971322070078306208299416807724552584040851493706267993497781664198084384513630789824729569181118076930010121112793403000105982785411383855436208196393109097097477844108077196787160969756698262259118635640209594214841408518026218116755359375761683239444067022158922329209415811805054848862153351285386192320004225976009681845452554286197511347064691186716153005098977052787876101134884162329252751185416951944202266987562069555479305110695628434733589729748833050715085004240354633584788939017707598747459912377883602096657306456454665640266016711364563205203105970320544925719532302599428004160956889271223003789928458592237408673791557655082959818816857240623910024875505219977750579013834444769160174224352987130984407761753232742527854777609492770741585053519329177817488363438398512648238170773142198119443529752917007405523633194083205904098971963379555789289475693923786877282567631822646521346542099305480411790144598819567261907839904077821118941991163253417221215616199951139581933336459857565250557492033914986590733845446825925642672840391586050206660807980413200767359859455190370585330861895348791836852412454188871758345289005183251370136224114251975685305845182547667946200509135423861262654373602493669122907845627510725006466973798140638033275101634292757662977825889463210280150971034576560951295609877645056078041300358670740696467355697369687008500000406117367380086251424076106184095123526444322622752487319270648573893867940578741160634358677840933655178336050765802381667946385171880113246913853533394160160424620860830961239712257622083609849425321768944778052035346348904405065660029264103018194982208824199083419251541485468966174789444965113226475541864157317992257232187624134726630648930440722740265698923145816891806059320692728091088855028939333519392689633137601715947672724729954349159698625066640055848993956527976067055690053319107816376477517370323210742009129516805566008929831707822246707602054922595722465165739538704262200253140628960280210641820062495258708301742739685102191226414738090519465302313117209066787704353383773304125278853252359293444760327671327407343309518054772265830795944443414364893135418375176729810811396108817254084083812403326340543345410541643466464428027279539187184870925542612482556897279182975927463946369094439079027505654746684218579932556083787258483691829715937990208100834562601800322747939310878086711444124824957460943342657719129047306534031153991613146383454785831253821809348409018765931450164636009842200634287106427670674708879469389681351062339639127364738770748637306107838615896806703414590953257959180041355808380960046793129091567140605274980867878364919928459909698330085354500294687817154795598854446883377217584609111370621462780998080714999889610791653024095609475163779995003156187872102433079868040771625190293699231762589120313709303234234545303403239899415910698834895658660683653364379173015016014891563397885446518694260703715724330569877030674473650942077485693106710531337267375612666539034650889794724803830439582975319579411173529110876936690312895533893665387782727842895932159931394219407318602810252958018375949397873790899031722425052084899507490707607766941332578690668652182176540099991082661789253533504956703314954054480547323144444792929409465584680764484068261073533231179328664349395286589939401813261026511520485240787402190333287415832239505499070416325160379042562352959390729573625324835713670871919235387543611053936671950786635711621644165136809174234350474453475283949270394701822160913348369666667006273893158474035377836821911579839125502603727731524372728111296415184189472660769863075913858945595278196869472776971609104175900697160583948292850674409935305910449179039306776040786689123521401586662237557435518532152387886502955885037034401340713453487089541582710687689179542265407406462185757948262265894159301278905416508684374968264367279414234183941513656692797460858388633395003225439915170447290337662590817940098746665227557747861666355851562134287124721342816605741794631105646151009405614776879860418299143294297233498119712667218980864232062410511252961092794177574428852206392151172515282166922417571454343288116571473742045816824777485750335458413958336024876813977516988555269604735170609842243312306198304850389625351432889706122394251403077675623859997109771915403040148049487198348654833600203810591752606105529668474014705611315109566709149394892045352460419885692646932872483244240312241353519791152097769897885526677635310136988012112203969255215725799298442778368877777990981607987754952229911733220337111967808564878793664603020374424090297417875050313956595432065637536731307460539570767937729515418307997408925804798053359999427032387862289706582405383071294306064256893671269231248453424819270075906310855926237324799010326729701522149779911634578579083889317679798759350026395712942830431413983203919354431523217607665921519108815295420155977614008743477295784293688892223309237607820883003411666452914016138629194419507683474476537821391932033503556908349130043100849338121572180295440228532323713790889602550788773486714012893491662918558790686567461934471917288720147827552839478718645225530345581593781590538644478554374477373158559381694860705077206917710059787917217521817643744061582793387199351999580310444390156634028594804918176709815699624192051480470098802028972190528012542134128634600247254023959295626897983512953536231655014761514673207109802917351826665739903662995008083260012000806309761563630223218960868644029103210875564157985827541043203770778750199343736170538705453441837468809420319033956266758248610499219337077788213889792243889641457175534509220974027683614142435201565785815246136666451784859861652498150930130756919206197550453677970792609868562111283915253186476395231675522212292399819259166453231902487970752036521302608499563416903778112435553721295340032812683075235571137042900470741713106342022376750987826520660137020599727729434506419310628798640134996292373557092883112725407114319682862917286187842249128629936404502251349355287281699218078425151371203489209897488811117599249714504222882227993746702462506209725980645642617194863661474782002413849950940846736515072359905175883660886959480193448999098035573854667497843254347367725797270078234339763676144073523922913546344005282526940217932909529090145803175355242533100259013792706428111398068662835465152497471286249678501678862580430748336223657473049998903921876041993680639259819319305712965590215577321554983417967805196586737234004769096556005226104881798217429310208091626230802039566581329096793418556877492558431680872829346702864331623192625767675850854120294942486027133987585606256117292849917898041778140206323298853541338164394360097878520139957858174517702933573736950186018514921950391058566684908754650407566061572619023753022625666547546310756960240330200773483646442027583487797135204179004196110805221612474974284933932633576316944676108747351476595368347090207655223372023821442694447477572741626225280889277778134532675365626086298371021429475865972486892565974207189726344468639673162016498904306695213729177034137855537298790067286683408677261417635301809628773488429979352480433651607807178258367439976911024195987034661739563683099072151092139076411873915005028965231860433879821759268275737161306463616776415621529993065857604089822944372507719062602221960846083388657948639433912902393747111781437386788182225635344271097892613812044469968882282959917415393675078974935730213279311933181774197183752706280412837038809309094694406582797061609759658991785913942105223178817504790994800168563916758615258244326309592486978073348297427041146083840935696961956577938556614708202485897890863673998832189783893191593860004448733365017151220672074754395411410192983745932622477034496473046029441093935484499014636842851062335812217413049772410337929677267723038423684852950083933705925764059160043753640513046923487332094801969595036138060587897079606924117734474934091300599938587400279127984784694507382332563520113300869277534206576340936152292608797440289146747608864066961868968663958883636741385430208629763307710859351968078809199401854474547112592533953701344178848765398052008687393125138880392611079597997390076666812928803581538179370741521290808733918587636031587638892355631782197960254100638712603560308264305911519635978228671827962134327689215523942346276072677071899325497200570665365932529306689351823444687827607497902225124506894800299882804245697620928900479639517514353578652390836001482749329351176835697462292661672573604203866685807064871758585236147473362150641151283713569603655232448990914154319385465395142793847302402773580235847831837259920980962368880674465530257084285562649941971858186302419415378296446344729241547657329659026195112004120501823979671519299870490395458075039759453193219637026893073489564064527913979707317249113136358705352889614017113630217806223359319554826079581661460457674720338776352979057271479218955019037833925691892137615164724783602360746320936945826786618544005371318209264685648263175493929817485605588939172720648476891951816087227422668580062673725845801285693442994046528611784826884787097889162769478880622172292804240325856400492581762164984081119550643245225698242339094906225062402021300226238008163355610977129816630508204757461643861513753703588936699267395480187489759334739221122864418367169024723353838083539811464701721403760419533247263087215416732665113176592313551621069785796726722102402780134868556953823816127382115000020814959531335010619922893924665759372232541967266153918803226187307939532421457931417088388488701044739370701322344746104106126102577890234662147355506306794386516881638796251386722545574698333532263797977014107121253254320743240537132842153012742626378141698938525369920728315397751411825855191853826436251607996477357410080187295081223818378727678128492742160707528475947466651181522354630921310658696663607940331996465574819452223783343871437714680649004357201292361660036142706621791219618119285380783723563111178718504140597914797365879527759161778387361279525443541814725344254725133578136194469749891749334570074964674201761653813639392394779100696350403282114738750809629674532533920936955163026942760265942593944024212484201386257808574351916715237027643115411899859307506078606891004061817120370681273496622558583357560221152171183835366476577109369249650127111216799556049511355931809032610689837538667788609073534217275910226801348018236009248880738814310465160251095752895424571335306790763541727106041333428789392725424214924942075110956564817932457354657603436919252725028092482664070027380997233220684464715821654211931218154229971553726038876843355234630626209586522649913742493740659143348981182072701236662949927615795459607614649372929507116075152252231101685685249879018137972542850173769098817683041709878436699924272833224325699888996384778263300649797835371704118995216388887946902307201851879367761106250656198188236435576212696816141481939049152089859568236233692024748658102613306396710911350094357933425011893129957775470350274857150901930405875635247890191212862225595689315783300589006027625791639451239901327911390555007052329899002497379851052724838004095227072883096773372747604333718402367181381792856172003080472185725601522966837468661849685870163999916947910714604719993676618698632525113011640228294216910225707963578507108255601606537723257770811199801073534189764365089394584391173367032380692863191967158866449605601576336275409340807245447825117981135092206218484243495314615047145500352930505033665307997826183050321647083256419014550455155039598070636063687191817103234449975878571038394227950313777772300189664469118712227408782092735153357829031366212361031800042030322780701741426436221402109441383544031893356671020425288705741349426508222139875317998324990221898408112682404568051623536610128680145093841847367194319368945014630919166279529103403314441778839200633582121234740346225516408473081709088020613682715360310959804087488107619197989839260889599214135136679782426254353827570554052944103839574658878335039716855622536788144555870205274438990005308274404151099717471881229613478409404015002267576647194083043758347981612441918135941725831548317741780443174970428888063538380593444861219588773936500453030372111463392263671762515290210123364618342367458395290119277084655141967989005307639183247368196526406867050058779999220874506611076785660754602437815952158461755236853652966066867417629291689100677245969398324725448735089493606350531363687000063726780400418054380946477881696725035116494246458673747470039671416700848266972175554257259836035225408164799517515474876610157933625614079919433581556337530798440889762746024132786836829975267363638514475140046955351791441428977387254685692083778976723959969494052920092340683826691401837126544546372660735566297670464657141054755061899244517740157757422276430804740902043334657838976730553005679146335332640284374309813027157254525526755900551528415097796021232599171315809773722072791155000512314292839641527530407982516709494372269167575626350719422141026911388618865923475591713963386622094365338760404376153388861638071149432773895688821735855604179162795598376311671769220797710661259025599266637585407597233580173273559351485266265358389141703386873105547416131976488451661440069182357280031663920007097146536529994805890610504749563360804117774807175371822407356704033972804326811553446107055631589587188155295085470841966299923712872562068641277955792374408595700468075691329927808150711821287595126153501765951783702763163644573606357471615479154664433187159505686499751665039159652458873933806108271998765740335897146193333364744239615314344675930561563999598256386537422790983733487924134636223711152575188693307262915707551614291900032379207706274288156558559577515046868642240561405871562908687077627808445838258396457279499249252166589862686123906449335308321050569134388747657951537774959476586454098029520520142305344804400823019137567099448421760092571544094002596934751846769072732474772131960611292883303375166514224341675029193290295741063204000715718895627353858975016280222523235108244708226879061080818231894696516084892588013558209400435362491611375589687706348176763344159342562655368878932337832606981050983560027901963702769605998810796671459665298100708056257985766741106475080248117798240604358515101877967016145227724640767129295676661576564771353713498449372195262613469804908561210226288643072457823499770831794592413041919168570063679870444082800729407458514414943373283627489903975414158743412205950696968306802379967630938145828929741509640045779563629941342984403074339189869773354382211690698136318900857892867682696555393107232204641525496145211067351113234539851571081957133843359395134329862629685657626465409632584082853813933126987690855130469341922589767312310357625056104134012311922759684438816739531059840417012710106471908123465689606296451818092426457162620209649814269479926506249656635524192774579698283288691810275337293507171437976097552956917512508912735298873949979430839644201286835599912682775522951159011667184210047264535650127929603250271556520300398484911007802430863806018145367089791135426543595366642184842388058266234491714647971341925881333622378936141471534032119287512905978934437592266419207962493573902812984746712624375846179465232409971777760942330878228685676198854154762803725276597889696647086869184931302356319371411536454113456401688038010490868905216394320815550547550318543447979544216362499507453454129605960739759359499773563600597891301332126629649231227387510714368834265499218637803414009347226861206174337795885356529448662563575195852059186864110462545012597132550963327741526960076625113398926269836538296327064151787781461822162280583106542161274552494817105551353761101888155917957160315779188822100928421892653891134628955943489286328365058539925139581632395500784940073086670477095043732328226065613058365275072304556070546823162656930785366595624929977805913719688307450801139152015044066494435599133557831531112050026728698005984066921391593474505349185603410582814084099729314434976081555255023233049571613573152486917869739159950685338255745383384524767816753919405638946155683551757322868512833865088463185353694402893233775999919025445209465801864153351227408833468417781883501061360678185771065214877994651362930506687928626144412337867572944642333634804491937906019165834671088315393538848454596886010504540195933296075366990535546570901125967326969397277530357610763692396145778419949323599440903296334704244510646071325396464254031178476536575300850254811007408322582828109056645319155748909112613038747501669904398167167106515222403104764278633051505351652200389602994981088185674099852864159352974844208126560695926183283088763263372204984425654674461243952545131163177770120051239283062298235090095217344766248213503164345869446802300896264227549604991195481044232719314521711717259443797256036315722768356143728927870991160424393444654501454625991562183258804628898521938756413834570977471232246854931718674081490340680345704659744201898749676149828246574742376013459967381145023847123662487527734191151660450386159116173190204623566919831071022104735065382889013285224273865516648376851225705005461730136741440840561708635439781180239991064778060687219112784606512379804155769666721598767610985208076250882191642671982843076904282714255466599434695506232631476821095170169930137836325879797112371873352518328560942999747205614483079213330035872415762217723768158804628611226538412541691686612597386613521287731195411727660387262979845923459714850543472713811313576964243968248721080620140736446219297701007184188317944285171248385944061497188037975358230963312717825678986839936463109171599452371409486915561459086933093815442227463325134813442690172305614494222655324159739331460010739509443073146509762272904802069545824484245868128150594171785939623850497506384666682166387806926134100135860811662056835078310008276031873627234057996177945150431861874187723235992705384319931090743642562229820302362362452828855730906846539071003012641471420253991735489176606673010528124540893076957729201499290680553757651891307251498831906709876094217354347639338228787613041748599510504075561571097507992813098515153507645335515871475249695142752597571717281829409955238470324556821775225727334555113029477285454430705898987723781419540249024959291657400780982112494925894861838375589120678194931532040484877887855884030793997491644844064081013317664904976324566368783372243376427943745360505752949731128878789674184092847847374091891352346297601268071783243346119182763377587809260704171647059945286505739230911209676790291155895358381911673254252956274988650001623824356439687823842479903133944025735658619381927351655967917550215415002244556847905180152683390825461179461984114360961650302877157254613281002826607608267752565670651428069611098394008154757225600655155466364275537388614745159839170655452839925563748220928012236594367873919270255596455091535287097564197767465987457947443146924364586737574013747874277241476310192023939384500849693753814593561884597948925280613794044859979937182543772230278831551367066060971441019189593446455228104737458368247841315091219608337570673095320343102015451863415654782063753058947908938750006217167800534281932651442635087329147187339034296994913335109851599876815755050841666566531560096522315003070526214362826009248686241345992473987102770552995071268144299846423887786024248194318966202944338077492110937320418889792334371189575376483425235361668074292756081784249769901255831064421423160509742614766607941240471425615722778567424063501913720912612677068708294638094692359161456131554214355189333390834699673777712966413221670189674315323664062011073912458627650125542346134760873232878831203200426259854250573802334304335472277505203811075279485913912450289126850292875308212281838134590145797710865002702824997478901848525501529343503238421849868434994002278608508416301325446500564162004844942048508778506956724841632328090985469766997969963112546893282696505194995381932066988393310744092564562364766392951767927925485082583970106623168358815901004320887463559725711084172499979015521171777694110250060596312733341721896906900594709272563379287808775233895009482803923576971095829101644523801425726832524033867280675002394807652677419577328881941309404712091969651422335530736741794791800932758498645775281010007625965010113302160918598715830452322244290614571291646779394371503759018549404159335097635342694463917605075757083898965197514503777453075443620276855136998393558900911798222848581026418210583405638954705253910759924274219713183367804039699575748460994810372175783819399768222749024408531733848696358552880831483190886797787676428888728574221306026522672950856788741300513653021877851491645341723700037423530960639180446153883298033229603892451441857578732452602524191379022562224340636891022396181362538336787881122840392304928594355080630889548505588803085417722130552401617607569466711648527607493427676164424448526543605171560835678819026289391343847115139216869403649174864150932588363414291341471267591032626912336808023654759865893351807117951835521999659250550318369455112894592849428971990485352462141203573540541832244643256468653873400492941996527238892625578603264662463686395594853540430467834888710827871001726048636052644423284804780355519544271931481096335336221855550523542146653616688026473914568041795663928219770094188117374088235221176424897117350243879568416599053106893760642245304142708050170842901052477856605254427997987594341504848989481978465500775853075405256830869138115710377861851594906268311393896071718217573605183133583355028302330017994087167211094782335938193458811967729915429132145444083037460644493575654534610722400428010241294829696367375396393794728755970428720367662023495725248916746911719946056584862475632842687608684152469393236453037095108424474596015310607500470072458822529549819219298073867868715101124504917019452749504198122342734542722812453449880497708330770705503338618985416359533581937630397504861369250860155143414349443097093091575306911390906099160789301544754273890371743428050651848933494663261460435084296074058498652710646205411306689901191912166708470602748422502725780167083176116795753011766851525824126165921353677475323045097668000399781569331068106403412119649645921561240692292224954956079927591319564089939411268639445388084167057522102415093407307961269855137539141315056483768685176305247683579066951854536294731055046421227513066568601997955377348237756086082385037929420151085081807366716372394479507708876576147103389415562724472108139006684706780481182419027924397609266807044576279813310559219127016630574219425239306573523466302333962474655691039261891189424115450157933203665584628135419554813544423607960141553695580560022312572472788216689200318734403167144572662689932345160225449275251258318633150102034228434452009796807047941564524157193479422828525391813644321201229356074161073691134557381174766270847800745311055431949055584955747731843787986299421857040310494341191179223629152989561066253957268131364740795481704001657655566553026973256103373109878467131059395852317683688170384230164067849645248725378401611671552464537550624058551278352674068647671543325970495719485560647854703772519170510172915405563719999352671657635815316690258773093630906357432732925269252050016896519528038854439621315075715468145159833955476856107991052887639459886311963927029967620611813018855063517074504760298543272273146602632127131883169671132550267611263851057763256620760359106264057805594407828998909689719075825603930368283126371328660862595390300222869026006590829076655832887781679215444980059195477868681063415565333228359360388148817117195550578116299849812868915331253833851693468209942824609036718784646328120605087703730787660168465136044174430123827582893125455251973569505736315179569882609578154111027936360495446470301975236407356364221577227973908983194971504415792594081091705406510178651658460671612004159804000915132126599318644784730181796663799378610136837446608627048653172013733546132311891870193345478620140913656125511522656495307441859157470544005656555458513568925879834304145923683163624384331443809439400622564350102341888984633715992051706706456030919548624328253675658955190486341943960241845391767717280502369775434764302535506286452137341211238956075647235088190168822839157774967404752628056067538065357597532949528571220012264996926193816098606732938142878160018654870705188436104870688524865688936920601791159871571548697863006184418232556466071141069535497635651298714988887951424083829020145018263665750340602652196224137495982889266829641335124204952502661699685865228294564144749899015903433309112020438885117522687951860153754262642068194707135710984194460877953492859757803901171063885611045236758766486376370598690000872372578834187304290208418362890217775753173447373768012480024906092104992871180484223892084561205095372941673900734600017907734451621644530673845845939268156322475590263405399547516251278069070475201148877997725389193047898124558739831928925294249995759277952585008106609134325547819169664038133920413930564743649671008930540988082559600568834008834492655604681075080564649804902401200253625855974768732838103042501600474838101361289731892857538024445014276956260434726853898141214429880439960225241991645192753142092479318375281863631499520026473930517587885738115806801060710259021554112806146776264820760028293710176754940144275273891661949694252542556122108241189774336418074959400865439375201250491014717529632519312798045107886559544132370135563555533892202825029870232825546630150246155830748294908641549214585819389070310289467125326373340856256983295028079409814310048278074638411351798197956025565217744195737596443068775743068441625525222883770693875743691285592106398607895043034215800910085363215557510173102043843635833662458671866693763082677413702898666514122510304152176949199880170901873331235046698758481303630234625191444965543303651079537474841998522720461114058783797007042407562326188026531987264359382978686724367216795757235351058061655537804966638055160027697818777160785847930217964044050239208206419254294507650029387895678348021203194050035370095235868253232293783799419559548144707185556442682085159207096641411600741449535476405234751612143778412842509927986290975112889774336232837668115307015815535382997697822864330154984411549275198689275606118500462152991775331883620415242133981345404003006196527034568726257342238837573267305880347937922057040426084535948869666944437226556928459940073852446357532237939735201840166006153997522033295019295040746372293388846824500313587364723644070143558532345134925003851724651514535880480887964965186971896818014694242696804281079451369566465566887480868802103878856760630428929497222832619859169031270791812975766372016499331433305209060222878368281108539635139283106114806108124658441059533710902087810241240784488720979008403907648969552754779774579589518312094180312590394170886096103997138018823923991264747084754054377234652770764387225452683587835977607311312068283381103386247981484832541041757508650055228390983512856029003404118262593968272873557772361537945849464444389807603009696732806377335155675382700554212538238637819630170126666095220638587514986419267853369213247609884774642207718784821291905910696058219877633430743542648194080082441015383916329683922935739827284474203536716732266664588137385953370016455157750287509958109087307120594916190159542028882814646776811174842608058370269734053617151560768431674709025657614926461723058751345735559085085296604646071668861175431155694985293638148552636722870503829660244878582503852341456743268577117569606533763828420510237498466469874097478639194761453961321857541944103458247471228037396389008817833700559932212601147790340663450713814342046855300374720573663332265523015989808263709421355256418794984430586375072535842488891699037752505964703682605360375130234610162407540676890397528296031025266508086092604745252150489731182092413245764382904398983209512376504114796917060110085347887731129654724949601082880425239867251535434871298360375123976524401012250337403615249565101127336114698166670712189103339624587043215150807635996543789423729971634210269049211702603387031413958580752639299060689162087330508419074856681466530610793941485699828720310291281902962268562644083655883280620790974720758452295016430171396109657127791078819584487126582434286274691716276728289573311559201425059778250181385740848442942561769468832999489554271231192673694338912969328578459974517032966329079705584638266868033106752862959934122193936089813659548050730677218023165192968217448831822292088435737508024264369854512443505674579624909794585702170451456102054274741243880124372045770764816223142881471742526268602401213908993160208855915263188266587653631749194909037234442980258597988950732153377158940536729084127450763656588157647314088640754876159951775398340705500438238314071614951472266337589189849128535330896908762986573854689064125440327095640820636566987447745924647443179842836771453531337124924739902150589444833757315576115372836483260600769705628975092858840775548090903863342403603467876916308288286333881467160779848784413691805822193323758049057406630332826080085217714987241726588244997961205921115898423558509811951090321250402633941932053058444814167113763166198206343265012153888547178737082891931359192919833808113498829439914340673896578060009353269878130872025683813975006778262102767420964730999845235364105899191878094978747458111810509192817579645339685832691946711557341095015336096912908453109798117653524863255550586630460569858094411912770372391073012170192773460360068091647113433419641339580592763690638614351409580409402962764191485573718352954685504597787299361590401187556376917361490021416329124284446972027280018751686348208662859208318717227521423969500300746141015340126304693337453812891076739496757067816257936525188999787036227483182431594810963817014754934476669060099630264601344321205547969671713921051165612762489158548325273602421224659211446800896891558193011614847956051882566412707847400859674534948195638556655489335527265863791871527873870416623630762438584628456421568409241698655088563061477170129520773870087681979161591186057782877589115618512415157607317815369107587957606292482053429649393943864520845809461716581962229901259653436284508948425074934437738299399690463280604745792927718371923203911799560814036036680734026248665959096735599476255327094593831095127704111134478598088718142575041231510616980446303469828318072493768130271913382153947412376148261883997436279472718124689579022292060368714959451487440212020493468757911379975982843169594687997935688685604722880722414178464045101989613957449550509804116761402753311616283584178587090153779802623460376329869797317574447509985048530291052928369860737181817998122378554150473702239650551166880192422454906522643090670000033502235712513847827098732592686696531513338882248419736582367222087812964433467427855076346395299698860061525934720024541014618869897845854460298426992848638608905997529705806520571160788431184064873471803785784536637495133662397322653870577291774376455151367765803310699655259129602578288118038352676957369934305991927241713433430394809691276361173702330340361030348591094156067410528445961822446091659846719560568894751674190768372413649731236743695988241161586552154275877434869956094199620475179974455703941681709928333542851717570404268425379647103717929753508490702952863053841600168098536132035640162961427675098999231848657274223185439642245859424527797489568771549848499759244612357566977201148830366539070642899492234232238257258494235971522628370635303956991062529941280683600214218134803863536677723904576358511127478501478129833252924358570253721520519788397965210199360373544021833473301565520513472335894566039068736524193757053917207102040418750747614035277236972528123500471478437142490757260355907529001519611422172086100809379408328757744435936509343733732551045697219486622062956497892293255425520223414979686479939662073654517529423457066860500313009732822663384629293062340535328709852363903182622203762586186095408251565487083476451314976300664112657917448091453212802447947424218426411974158597484512238887202273203004471747378197354531354798773878501511477179574619358301068314950366997231694470346925095204206321898522488766155403334242383415732739203103059204691682481428553178117582944959312162165455248005823907261088341788071703779333686288286242927734210675907383258075099074407595362690753414490174563638278219174937519887691505086267151334145085638400025071828837117978311193419817075837223648180765060482131232590159987681585072445002934403271876887278183437101679885472847535350311241061706108313385292410235071054930249241571090228123319368683743145460169287658727823954176006130280261919417750840825817146327754593038040707762418894325130158568972559930045336827425443787308196707113364795302497133997064971855144435577397854657443604807992202705796775859065877012856819018488354124156888103828786644739384991008328035187662535419386937662735982567207635287668901746597401096925220562213377987340080559672196052537430455166125955739354112492771778124455423235291603822472675060232398814424116272804578848602675453834577242557881621711746346519137383540162554066194496730905556611200745379657223461789738518131288147309461470771646674403704705541627066857611733168631385125448375604350033141898788843476966621080909486587026993436075376654763719947335776793435453598405158714475269502043514171401280038435540752002944918170508959050788120773427066413072178501211533957690070561195188158036245842459095331704424458017218204844657608186743081720775991381803931104430848433787232959304100912889585949156816135480653340583911715870368966149719697221371807525392289504882556063957762199752797767726905113654139565949235173711189617484812169872479315284546176322237481773606835329353092918322636661781350291617870867785113640570944280013778975874117665042441902063762853453509722843852283273535572583900300415035425889005358736729906590620190822111580690269219177892162281639795028714649137978156308048500112143904673219505295489157994528688459004813034194202222403145871836920277940709015129600959961232322135783413604012078791556938256799252338511352964483321517245453268576861544403800952122723599585906863020950983459086060441620030480400619257029985997092540771303827447653076533981669716775574698292512594031601259108068140075088435242822072675203689997455614553107692851401094630163707268768162261461592071517694822375220924522838371179783202997131945477546202259659017204025600238844039454160688902257637022492344327306873418727883253996589413907145501244054884064755395168937794459544195628668654290587728088034191028336657465874352565120747990482489936547728289453380647491576842378996291602258309511252474876388254908522227849391109153490119159820416637128857719490132188306370524172153906501647999221247763751952265866687296766757671716242940921970354135995496184614599412147461030151888703060167406667065094775706803680317456560000879353979670604708924850600432793427956128012913798007644216501918763105518396643631651210459377015992270279751020173897048686041301992513451465814261863784822048533164360117883736406674244226090222935718453749602182903344038252824311480018125864546310789985578049525030008690367108677187942047394847043159627066795398998061769734084082632751228427632553227719186711417958845371781896513203825939176144891898683332908933061545800882342265910484592034537312334167198970726819475861305475301109669720905074156668990409911695772317302700793663849360672158805166595277803283869963855873898626655783795547323509190152018396795530678155580467462902288886063693949073793296469271706824538755275673514461310823216808056266096646671451531413038627227390461066069269163720837888069222150374559149516511547618904118243826589882000586696991777539611052528539023904716710683203314863798215402801764849568861352993900777379161217181135367971591159147225146437050252761013088070023162487611875048377393714719325564532714135707727800166611629586716812896007712575573448083605050077082376646445325198649679947951646002450963155802959396857648265073806872745541985631911631130009788339814784459129590417812026781904227501156391995462802368719260005519679743535070184539634354856189966348253239501756563981421932722500295947033348808110862790564100503623823783990610477743069872481120231121036815122087194714407871215276088433624608719982543240545365312305416683369559109325411655407742441153418342253917073132350253485121082214948013865110442791209392112019759330980068855447223827934376832534569130327302093666069362141008807076505011363985273251456783626631940002733994126002217570486222742314632218282858914083846629769982435771390488151912497258437024720328856446679586122934181993479648591742207628477895075191461512997781794656080283751132144309464161652993645072193584563630392277174486763678413550487040317496388181030176618762793384424567687851264296297927432004531045195317073127109345481520295357993562118662785630708633351139126378037022405979006934256386524764116690019821974184537393227944129334643382985715217445852138910098819008910159649438183688946009386558070281838107466671402124475799384610701013842491912237554643253598385212515823723280032779355764957272036647848725381654867333696039825057515276780937882011578187903792278093068317945476594001585165815179486792162948998196086306622953141100934561981250202161900226300206633205154109769168395445288677575393531917030861754625825476442008215271595459610476822665692443921055577269155643856176086048398028555434173991465296531701341971198141918186813224424477326852941996511989576707802943737157999663030297908046476001583513563625952475510699216247520776167244761213546592937467984370592015279414207286739440671882333699334479425915906614301927957704512942960252958565862889118042775150097459695880588515093354865458413368179206027555692468794883735367625265886502332058261052672426363595767391038711122912848956640082783289267104024403874919515491260257217649407238551895838724444966252415642835403932576912655514389943478472902986114134939488337623865030945734365260438716728994605325448642879137415393156021049261217291431566173066966300925803980323558647400725856548684406950730386266805982406971824208655491886962911810159426363520423631457094404425380504507848036956759847868097712239481397000684409319233583465377950887144854492352416750426136793746517612586845052345605425215655083707749781528512633363474545884463531741924022208750438831899586900870900285805846679084650590570936432058080240067156628089690988956733854649942031286813248099281701880282810835848441269650297024085017518467064147617965109223452285702147816948122022341125707225151847013147706671390615398273784016792568042198424828972308674555633884423044610395104877485054906993940964440305790596650321969239706896277475370352196619492966577953644062591452885288665730573998282132281136782078206853142276009313804077531938186674043124787415926492366147054549730306950894903586335207645615395542685547346132241224027005330096191767416495504560096156032265666447943027358280948703645070161777850109495579464442340963968684991977289047649646748475061556038566542564464431714711269798641080083132620738875161041742469463314375548720389959859873750165366318431596111418320523698982390583370735222440370180751766692397108030107221447033058799354608765894558893474359334722519611452625345990830930899896682239165631617274923709377742945933864523227404438658056572925453862896318922993525663641789432009727363214959236203653200481022268589650522199987722544230625040660846212279125715583893418486202412541307794129990661117918905290900480591374574315737901843947514347548159983602255134038217001321648767726121172844431139036449132678449738858450005856050512652113057362819665908639101208545720348277355785763827168172167988217156674888342842013538625907512429402585867794484027105162227623911238134614645188113475494204704206754861334263032937507640298777834270274338816461743365361150493862706795347263012666559860551239375667140386966785472233432759882486701019957076822908046053315075140205327038555037616474786468002036055165136873630904236794007891288462290021499066701062566843029279964200404885494121441086227978492218607922790005437991693692007323917127898476954486067172941907194860666767730430007586859716023524239259299742740302995262121182834250429795513973523891824858068105496220504210129165322492779264488464981336013661029156872295996618570726823932409169877117920722827316955029914451223915182452037920388841534877915372999590477633138740646059595715059903202679533437103920428762001833284799359571345372339538800492012165798907868023031688342831288353710006817405180341631500902228279521050149011532031934241311766370337428889236519184728920193848468057850672803161778250187868315723590965297729511924908593201713881392726416644218795069891571694172941310781599801759364037090898563084270962682386818500297584652401479951552718052117800966706642271045920634504512083981705653175780410946913281198380999459765662125892834800986192905342190662488325651977638002341480869903263481757375438343414822914770341562974152540521813920441338220683530347339451339680742628357011556675298395633116941136325457968746076207340347270190823637079391353372404188264585037029721308671163762493033929293393078098007893905218827096566901137585288263218263776382305497325890169393034813353246973372883180002709474335406555311076500716775461790857968783861278921516681091170230091634082475808163649684677346225724940068999654942967989394361281454822135922008353770130895765526046799516952413890191042718440172369291325933653396104012858948324260606970006916344159278070549170774239331316690992866687628190740157401089246126473224389423385924641264822998805290345622216827295598465130648543271208043074727138470321518426025978963123513609231211007287207983231681951856030688032918168020295022749954821122286208754295243299118311285790556697156660296730786435263085719584787770034971405840960899459100068633174238332453567058883271890533226523464470790988903379198679029239048935466411722603878639526081132000718008789973124908326256129903886113487747464153298754838709689317503695840185805894180169531070352311516113779347703231210307118057518587752958166443774591142456722173902517643432661518458265337250847964105556566144207413930771951561832143199202175953025994189043081963064807702699963426388951602178013274810359331369273552069824606441654579773354485262971244026539291498720187129474239945573569458465945472816150417555748287468631617131834724841748165737162898302553705808087874934476347619735140045748216775481317222886316152833966363345559736480055266140264117347869481143914161334930119217352771338449454315727205889422940927962414848105350279079964042754260597847310525076080613422397656805707033536867894249694230562010402865196542801277605914461173700611889401536742412905631450232738650489208066917721942646680217091655380496812279964358201383808847828033391530695907943527753232925309516126530396765866783713442515862913695248616104069667325212276975819234461933190162609604493263425525783974727503186709679195687455397677248659734496177670763318742292080422105553910134136287020816858703902557588497178921207858529047765799594138068217337454455592556473785291263576084105689584198918863957676703456813454707436296347432056734910576849657004511597800916062917494160473036082720570138958571388482965253564017177268529839431301692518654501839580530139730590696454876059366363771187202800521557040785040091477126324816785021913563851393705516977775639167219076735271255665522166864084394487536272614781632639251688958231647066011714988107254487354755001877599663983070397752620249065076915806672524280739459751018370167191130580267640619751062223464740834461706814875526199280216400377633333770914061661219976812292019380267274264430807596760456237184705669969337046222472061550417988363587040739900734217717384343224807365827261504684917297198414404328108563549631131839542922364907244664580375108363257237225724870351391316712053983485230243976222744784516882692511582394249209572070912158533628136193561602961041512210025970315776016535536251218130753068241319087145800164315613166760494190354292349374121355462324282097299627255239549971355022294528790596560454771565285451317968245257137659758338355613303619639577158118991679845922526939449273522024178520315711741354748155494207137574737261928487594263385222539246160705798505153646550629130342066247011076361477726269063818036672771249762243442782114883154530716380287963366558258194846803051063675405026456266563670103271716490877590921685164708991982120263583842571085785374885863115260150641648166655064737268182144983676857524375163906492727027966420517373803564816321202119547579836275579942345405186486129804507708035251293819643981216004975423200103550165386923896215919038143491457143656623205292713057085140752927458125971156765083583742715168060821388554995897268949642444296393169061739738580345492237032427508710783751187521963668284458313921375056546337014911320585743401034841262805246132453985396031149064528994773895116746475867056475715145099944564638168578096549025800860520459096667447052008315792145356259419977099909656980619950870739223948926003474365224407714061229741377183069150874128740741587746524130938363272667133958890754465186196251018852403894409993650643424368988024626315082423512725768830384970480945066704446790738790304791222558714914535422084885944022432636145857757095199786320318199436443839008905222513255966062206119091172720823893178788417384504667380373740614736307922698809807937703250531144578335725216085673719033299407945408131654419879137003211996548402180457278340989640595298655418418512759937946612947611879226230875712418917107022500108663455099305954406310937839369345509837470538383773717030865541658916528775442639835902661846459034460395920099430586584243325341484812299497877028617849380195056145402726541477728900934385925890636753394440335758691621289931929337563632956306199594367048237068429395834482462694775688680052827349798901216487185087136743612612135199751899259973111691845443453316378739551777467160978314550181835561541874941339696889780401643344748905795600645196897628827302062454592692505516440586029875496099868864044623705001292383088303804368796338771087406964790838641778557865794548864710942785462179977812169562857669379350122795940768923982124068687085332167166081010441014403934595485106054177813907585934407575954637841336026095420975379975996150690611724027778350815655336368880320687272863606888052723361966275900189276444077503740586012713582241602283836440927425401116015205560426800376956110026928785427955947843440879331106904128138993861697703112743626711042842366863710958739914609941742120179357083293095216659653950762577176103183996156228798286074578478263256674463096726801295252135824448793313538753821397737194434151072155421189723907772870670898272692565922194156532733063142894163900584270121798958069175178971732838464508043303835311258563749266704610849812927076465252301264121052394805668945831250789775521474063130285411421871575522420372034164526691691781787538112975454191590996977698239579712527139366929335909859753728814002841012341173056186019182539934727748185008011018160657741662745455926131625498422501996481439323182196375703906471465483117212614443728415661714612271751720601331004895592962663563087709346533196014131669181936029220183214944362223943474571793455621275941272180132095278614016297552161296826691891114091413626016364883493262088325803483500375948725174881760659891443988305928052090408700673071254300468962124145815459523947763044421514253902097086417260179145573092329866284478422716639531578479094397898363968633563132865689635142697618336460268537656310792396020884694463143498365702591240195423611981195207120986621295045868217110335307048730932734564316226349651954588788721718651032365046186529365073331747685180622074132481889779734905320026203237343747571081214597228731363097500380617645168744720317394406561647741883537316346082669953642093861332022715602256419029412321314930476321943217988129281244912740699953715699777358898648225014277053951576545711826953130118874078782975049867048775054593127558604450126109403475382061826193560575179050612658590453002405939632063314615824938613726455399240769202592387844970257731738468319595781143558939265905279951503715627968793948683811311335897517146966990486066425994975918225405480930083717292395791970990202378100822086302001465752278177375543441656718256543602933385196384448952268499700450321802166139904636774968091887619923112548902925784288317177405503864880106882050320936617304609909332557702022391567386168168658782304773796356670510173471120130650555072750010637079800432664508328435630091194684154801869952622996086777951479972067420168291257597261791551433878511665497503513774661817015957384871523496657189749424213728173490194115551363352397234482172663876992340913608630764811508352689488393309982842719896483570060052630008814964400147915553180545604617003609204547954515051347399171514413894463589342206668576491096549394361516336335854132500528495481459617128438025326202512326185808962065160677813521458924352068687896623384022881009424152782467179553230337609485834652139947005657322903382919496605726989743841162810604261796422625715192688355564927101033331094914611282174687594702481846661025881584891859401447374584046902324371353146181009799144390854514115834123751725317494560889144239816545657153338141229835894971825811635712223922385592490482047135698215718437720732528709837164349592615316979000355819838496236035338292109772903923423159203353305899401357111192681677822150569412492501916919550066853223735101304931582939274134741597850929197390648338388752609617565269698486365171458200078158109329048811267110271450059546725692070030367457468365314673684616888363893945002341663227278540000219109664408374622848076109582539188430594782730216584591321615683721145801250234409888926643437992592090757036384828476743728457391334705205297818292054450489801936001519744335073250957569393883931123593193632716826922181140617126593942875236371063494849586308328794967387066575617830994347314118573133062166003603905059472493200475734135751720807763502137354995915385108265392222123563157384228486696160911364814372717219952373252387040933318048446756979700984678872157173574179091566605570668060638653786267281868855435356574694424749920857368313689996200971948558489436163860265027729228474106554168525139695123174741078379666923493071733459252746204578372959360991422597808741757512161173058804061498759558628214265914849605609783731435946319538549740029337192927621275044905084326897472588271310611487062886048607761054287254002142773495369314224361940919914029207149259758580826210875563251803083851606610581349278219159533931648578468398249173184062802847277108017819985527708231038906472038844898439950080892742963675035285611565547681823932530698788404863402816822325912073143795533597764745204943801322480305241846375262940661470352525393761879263099324270712340617965640116321360469632025903810315839903066750197113228779475498367613968101410653325149856030668174162507326545125679110463030796195185309822991276587476797034105548579008601889302680273950315981755203623569561951266136930074885183295564836758005486630339782391043267845539367868566176749886507812597995686230342391524277686235276075577962870486770198517925025232850267866903290243871351120253411492330091318901812628517575000521121405310035528149437948874611795849183578761400731555446019445678798335098167696218834511098424768953556654389301790812461764226886799409279871316397110145775497094785361355451848311917609712353554329877122430882387467250746554206141223972252475206461763968550108970503745333495395003898335834257375552038582335111942248664045143289332117450673536685910327963217559228084549744218116512602524556110761064865236883063367187487080057632917352822777925754513514126277833958732334188348490442799539703360209788599748492704552996038122745911587549214932753546043000063478096757719636125020435051989188975343764295777065438674069956272823314884069019146813088819225789159613897309950175667249780857674110547076785580129241117493921988205592179602648374890336999461041744890499502831558889152152326205920109310437277731306823608843569192744882681247916613763567332423127754453500841807311433905334463566229602452377300829068020036643754570907609398766588797464414810426783875303279539398115381776682618583879112758877610150601509767941243491433307268651989633197629500042013213570787510487125638166540189847936147905075850059718538042052361547172677490667583100994226247244764816749049827815747122441635424793005432267240242477048364413896090604049459978327936103009861442681788055254911795601271819514092413423068727338211483419962658112894224752318322581840564686919230952883149324008769729857160215494390191906154938921529908791341249894450069572935194128679142209476840172388433291446930466331480111838072390470300120205585386655014534472993430815539429927988975610594275554487119782662468748702092179350271271132305159141110646934445660515934927849464966241503070964166180242326832703219004047968765088118427843354899561406159330071500826889408211509223981826373198835347176905787070957399808546244757331386206626415451207962040690595461536171177531981519539458439885636304968226665701124553929411261654247574152847118455437323627925681924603160758240981874764977898701441935097292077066789430975826446643016897057828177799970305463826316686032055773665432115710654702386532599781226167828322052568536907846818923303214681686456546561762768900471543361857386585027322095697943084181205888178026548097301522253039797002237933299438670109273086865299003015408409288464509119094874735924475813825402321519190785577526188402319478044405351409629994857519262352985294398302484835148374225858164873073369643641550866569196481130539698512267097403474885299922593351598329471241960234868090807951780210583199553182142276798912149260827654596857018414240670269421968341105324813673403144617652457258139331487176312875820699105332226001589565050092573489349867432039536543522730104275577059848751626451825747694445280130316188415979454102602806423167771341140104376783704924476872586895425928018435544123482171951134721512233525455457024819882110789540924500265985598065054641503909694127723355072332149056473360181820784732765874740507610262808331616488692790167073369592126686321608170057950938046849728227380275830698369241601691566588063490057700755944440531723810075403004329422362667216803217794784690896792562389131234292612106160408261844742443067432223639272161996680798090640687506272528428755758997200367794538569284609390449792776971145423813991439480797666821422814764979910734598879293637763596052792899369688991991075553902124223133835991313550075592378987234354616269073978609994160274451190028297365759101269426073000130971742973470640196977977637289130283273155829257628844311916533774234089761158512434744673526366030782279675777372897006973786068851454131326398944504548805242809957251156829142445815531630325088271600407953695427637906221848488863827270460211831445388660018139610056370929877160294038875856129631698952596548573843279716354230236940565863653115565597426236086648969032879720515927795900628727625208760292055281787364904981774387002936447381682871645886578716083283140215862993814689647839029366718315985672856315657494111431341268934513898535367094743231276895464293182900143793409530849286462112609790176642235122914199768955758965196266170584353754145570064373340955555320628474211193605631020357500590312234825267272532747291989702349397703476058174815401962283857049400345387971280093569445500161414560416679025374506775319652862762637120765932821412683046249320778591526821862834680092135011771528038826620031733302888876062663895829044814225476555636522877145949522707258787380756418587778833605894508578901647835327106772044760477832196077868602453118844271760278761378501157925572516292655995121918487552234100229088611778767403360192970130667041664859879603075698144344887334089042929142693406038242609080399726481871768382666223576120764460769000248974177510242664892443296800559703155253774025071031483463853738762044681213098371298254213211273853615105834086337148379636426247975732018511032083896909520720277920575520943797817097325080157503468674604169102071899341818972444963531710831492446770430629847618545936075617773956262797011016634539425732049568410175794541889481585673792256349834336211867989236185036871976493212786832391751987149997333875697727168685311120885298767940474877589618784955796810847411090071821918215838604891187020932234193198331887803461156003492637813502992674124486978442508601781178294655989347949503373637688638684200240297641609336101520979565878752004052765955760044159128910906238628866434487165501545802096306656613420258207549755387098905373419631174107785943249355560532638600159394826868221637571631871056697585444179674751123234022983228801378550450379829640701786765092930560081083892339245119042989935425159667910887728013127443577465299978267664390513169355643990034192993413794584981278558716039668812781033684232157814142368464193395698841898033876612735238346451287946332721915835578325121526134846974530576456895872290032086592681321872817043383911841580149864489320314461729091067113122217471560644859534268013243854078097941614016656172310425114362698713013167193397742202276631489952168490443044967128077599933273816415472738728429771089246352986303935772177994572721221109659391083521091965384278646512637368259906267039629974300015231715869260109270075433710046221623870511284124364078970607525345174239129379763744993527512694535058060005872866987729798148395659391940849455591532577640148288469594723534068958486142917841334009505128513972840840817707599372406922111579735808286845766133864906370112717452206193787756359545229343019573169501300319045434786955641945463255139790663507800880077358603229993767882446736610262961357483152030568654418503411002525028943460097329399798493047839106065016104107529652659472142501364126636464259719048201141143675523827402087868505973582715159605172546880270002928454704479483180999361649603144220523564520644310180735175672166459472545176821243562348415527481488688810415432953090339611442267067481522870686290635746808162592443243489833506743053780795011074685774482850555208369689564743116465274427506433208059561856586713417376058126046707058114425455769649720327350925789735637134087612771501253785196607407528423899287956866552034985584161097038330566222179924311487870088875884917799799857452440613457560244047076693200896097837121143075224786006480696471221540550436759148132392583009109079651857574253819277986888576659248459940557263123264361331984151835529590057883739641805693312050618141748623365652189513530796545960136403104723002281056336191053185807767309286028238698828394516252407514631840586050764385775708888107062744448701447453615786368706465407764954828241031370610802959610878649735212530341875420784847544290458564318084016476970844236525766697523485210732103827428491593196367299615320031298484699202872674874117372473473305475811788127962766210251321049377285420427362190393158242988765288736407389044856950216922374665883855760816668805216628571286587575480197360907292332509748182174298257802219544761784887122379438198782253351099921869935753313250166528133068399618651485430762701585906457055901156339666926239847596932027205703027814594266663522934813436485447241651745282541127267735128305615413176019980619825335699262116565705195075431556011771969371435211038389933786628908563457669833192736202767647230115203183196018826030684233625656928268692164611441418767203998819610717502296343963350668562308428054787905424041617685839607026603981766461370528423510494986161395531600976850537187154853317624614830833498961469541396242273887437620369440529015242421297678178471240528547776180342715136947918576354846277799680945781910256632278815600938596117984276250284794512800250532589996731708432430902180487708454050634446453488508623339442976939884310565634927227683280235108518466908989491327863463368487843570613559944612695753927200543983951592838022865478921410551471252207411680295124807578901801300595206322036059421761361699779046966846295790823281710707598756347510290470145649358518110108050169456801367152389054266802699037060535188511682105443637596471353533086102696713490512983115580544121026957412829193741481127892782921602254092956970687582378536277953572992622136935131821427268830528413964422387339602544991566839424952109851949548714692372900260261883646803915923207138200998460902483850905445140625700120835238910369189700384857668000214907587434103349286885694540363955813291486334437723223084039168914431669694958525892485514697372167410026358035881716208929732442871423889617232198692426018169016388688798593883707564305630682174855057491145221835156499132018626425399683066444838659158897459444878749256543047410755180697172293477768556656239452089864905734430938780097761418168913177739497721008946396858191103906787258223594385632505990176346540586949470123937741809366094249225239395061545232906829156227940724082940745877000592816696950709542700379286593143525792637882320624362909010847540035908524252682709454593433263115847217363125532767612863165629363864679607511573845467074137803888606567987684897995374456803087921590370739472279061768250208979063817635522662524775700699137709908269071764063990287777160146278157356481865627492586763899579859332209043558576639844363599878560956850281501648265732260774609055868480452043364194200796664735431824596101123313007813537891047388041041197320562718378370778441952240695280858795909139812186032325393829608105063027412997776784500066153751219115495442376581635526984699125479134059882224180322765884889967302976929856271264541844497470151778103938870393276633900317534780288682832012476355278620338323668741225760182251237720710907705676407067746875354411222578443114526130713195240421947492810448662907034510936150742951107641597012525809111307103381321096428984766434685711985066102594776729505415892654442225948794487022843126734749799229453540823560965019724173143405150976832841578593475370840369196200266736915037626939496514069101780507880149556359906160077392697262146650169983136813872971780406021130311701108495714307567708539129360936736623529439329071290351694293713303878442415453706721637839781721644234923903617243955325786147882516164901556864016203364996694004897006136651036097503430779410961840446975861734664860392222714422291297811327079937869931283997203219189146718450402519017779507313463449704281871137168037155659343417557677381791780756639878801134875922386337233323815008711228564449600966625792498332276934065852752871118305393554414985679986645338134556341708959098680114950405641080700027465990026616719713816951232685430129575783512070004798043002915968624702510634675014717457521856893826925961058038311474232181798895327416442972754308263543030561109745373680355078078624857281623292564367038696114659146220816666078762851466272132865792086519528162010727674352643369009650578038170981181765384532220372402302611172237909881248436813524684920266106690864415881479839253545460705378808368733203066358494910998139714902788271018417008967290941902245182126285711686733467328098893723806701085720169068426070753683853194853241002412124078975650649835235274225505879461902674457243895043458841132942174644585009009659003074314970217723311945393175944810835134668094899184397519042255662261907372580001501979986798012115234003919214424509468339692483955663903156834129395398954006933556196269416052310922645244559454059654788551688656519041880179329138038885949089645584297648619595366388418217558195384083853083221324597807486624375295787048858859132483320457620335352452911141495734468863136150525984738572846594679443070324310110261014933147688561445010734647588156515721900307687172269377389584768974374871235915066510132983987703301234422657164939149829984060384090947886066795667330238002997933699652857226848896324321855568376523944561334528730228814697805723133432367815249396543634213955373875592281814520515515856183450204930380949196276136477371271871364200945449484031384448884833650317489569574848523841761679493859900232955351099112593364138479088278339961933241847306342159581878576931784303159294945550265290056680112676576174806517115659303262495798455540641959181669393937005112923111004523223492857613594136682262830553019220304927383674994304455296780012975710372156659288673236661494690939636503003605648998196038728611433691372858270979950625160961967751754384945119416359163375057503452737365859389590244837265294330456995701251624844916034588398761172200634920715245522542543868131273140114788649729650701383553531339350130918835809324548406108442813938464015179677438193304604201705480694053424295521242258996826774997213672124742847443112712968463052839124315751978875208819691895563528390074791247361537373363780724673669633278169471154966581249654485519600090617062397063039687073745650194118585034900745133334224382470107137394179014349398158602655903850904181937472981927957219514143083218542477318885897288799161077443899194539057365005480346011311975946460762718191744870752221629463945008228878112466973580037708588006776588571693252082652503710534161005165818773592249636570656495199850560000584721379323755490433548095919323097446988228016225350895966704521268084816948326742530978105906208470792307019897910114961843085783009775926317155786543186206874218771533359022640604075722444686072662371914831500216350881908189470159832865043610802852888371149588770094313679744711801714018881065163993896758406189118178372680902870372893161671679979650668548056626633934549235458901326062729167130387600162341298938574411728077642403726419456589707484838178877776656708461979685812465463434476161924672714882549241227245209167346842210484443482165672530177421251852316674566902395079411963183987180732503081936791385638158719486383268116487606428276150570026850410425429749393333397848635742800906232870701841833124256387627017848542442251217122640736065457472386682425320617253690201567651492180131791168215260354818636280003735801188097017227815606065848175691211806451046921409627415552708081806981318861858921922118533335714126496259106815387044585960996456442711702125860272260788474309637325133067232503635417283609255860040524639089383050511639275370316603804778645936832837534625442271806178550840424806764151876006953043593114264252225715085214021207007557794789231315934806062472657185352941301800715955645104523799747053513231962608086453675358815858775609558227081604601463576223018091549990076317646659286219231913148426130104571612180363828745400405843930756788812909747198569975338803733994087521633889266697412429880627820355532872991945193416855514925479498947800522264549916398259252586113326916002223324005040968192366491781356366728151877915660363647690496172984960015942849784883448837933976112369478846310233530366826028007841318731240432827627059235338572753666546205994029634978723890392902678336620757902607113451737164309940842545438764944311136293972716465684946373783099646294147257380717082072898477923607267777430572628522125289103117010795817157948801969909463019386659280893789271018701190177266176448255522467291352108582751626860002750001489754968985963968729677341926391449620699367263210360611740187402946920965787260749335483322144209501806103682799404821185065284890552968668650390962668259085925917035871570583481414552821243257930522264788244568621267232381935882705362903851218735069052141354868558290655826302147849202688297331192943859404848883010063956297077803055179336613057114002603677391409081088136601075305886901235742705424172453969323595092280256924039546540095829595319700826430947555085260322905413227765867716804510151676770061803630694688264760831437288316397870453614048828037017944778734904622148745217077049712917693462369214652926304870443316651108173711511535738456030491980451072248997620133308756820993072253358145221774691075996148136431637360239438751018468059574489129681501945341811612569487002419623614829449463801539831088229469881746500349731082928802897248683940035048071849253502087899865534902067319690924968251206416306746348052580636085502430212110409676573780342333914360017401928560160605558218780574698938472095693423069416919550564096854701983676581959437920894177263495522813248832832176270632335588717395665725648881606233270218296779473152503467250507894846836975146801745880578129373579162366227454741109524253506280184763462827957874912087619467933571128042173469079672007237731949455207869473185681332013617170415820312236226760330740381098475104792132924635891590292520210770332896277280624889706009641059242037637708162330979940963009421137997805007628266705286211521465807552619110515126814056529665666953584806477024144230104904651005778868454244920108958768672980432445517983191173622079102825188782070703591366652674159393338476410425640283344676786158876559263717239266131563191353591806014519394011575931097764523229409328596115273865860041844584947419567708538831387425881193027910529883644835300542677505555497646359702480676992793204323841643224150476345308713229506769872047445863323769723458811680930572977516261629302605818980867830788584540559317449210287701584523350436561933310908573916716752838097398550382056924720736807154532148437984256789685911813201166976981710556511595742419383923102829192638626345143926604090786243748985915814940217539152448662648680261464549888086607257232921427109586766682208980313777175575689936011724793533360237447427013320328205858844363046635566937928378300422135229024496418253039848366291944192811569167970287710790989383634048180454688762360638980786959797276550353477589332487037144178405432859693233934053104932482826019297773228603608396543049453130956415716411576579815029756732812131638457094012817168748503297869875016900879815984774775212497327054642229664523165308557011080825923053078574097958183928868076370883990267651803817599743021600253494444037157401403487060937570892913107987803551370484485961469006908840357332375574827996553332556188319562577591976461978227565803334153258190693399113112788653095101158563424588047157162988136219702916643627068192845658850290136709525705124024297104789378920845200598639045695987622795312188794707453383808513531328572194886025054573428139794967007361928122791648685931803153625480090974799394826249336931158375531473792077424941657617645461285352287999991783314434759629082609729368540023469914352523146603816110369947576410928842289846038762859074239437068130993293520521069256567779902954099981521363506558500641609903428770498070611633114646582783544155135088357093458990492806738088545050425130238122374417921868444343818153087890481119355809797162857469556509164324047046247678666254221644198206718368961814945815456260679981965676486933648026344409413521389831865707363032519734754125871728018962070018844032064224654273958087627428001139058947880790568815555189826402211538130025105305663380593942437469431534309907634992277720011435980780709658133466468070180654435296194317436173161655891806181533613868464893806545576454842278491089606548166259427952067145245261646111497816691978608198840153288361670165612635579914035348630545947289380941603028794106409325314994442960908071725630250255712452293956764846410975903611034980373975669799976438344630726961445641601180401630751504904182755970288194845428629309828890636425364654099207694028233167943990551969291874339620413469194268856225697078049588737814183061517823690237514561337574245901492827791000208385197236155091569941823231809961560432071281775723783420910398777438527493495491678437040120173264763531720173197436352604735788589814799964650070437402907146939359985871093476162994009974192389152906764018155689327232670949390439527139681352401295994713785635907975016312715519124473961516712603910632385799370963019546526368353710043576838432282335857151379155151694990056496781754808219205917086710427472541668435556711659390217359319563378013416247535808942751367151631980964568897789608396513379070532031751343390035296149135802771310170957252696182083948820300868186690542895257321241494471720745430277411758524957787741433029455001499078785369969301792388256403164481784452854219854998454171200797552339063402143011380000420006887671562849897068799008746349483452036359426729124239338434945644944955938838441894954093922102681210962785853565960501597570701354796144720128642789147190624583225441118948129486929024929184643436040062331771827714179589595616022624124054810075185264237715776703364683460768576535675001637384641738509733958458719644229569631531314904010094237956909026726114618259621254924848898519365518421277794290351609767022180581974722400328660178772746229281259393502936363525153319441226221310695373941322716650641904541814342877072189458069256573530537789981115749128362029637415434441275982239104699506752190043580404088493108897767706666660155804514125561077401821772274012560664288957334763270951523931605082364323884206291196946660462055624507159188548329895342089462076775298808515057898875192689559840480910245933529214262621998422351844976682880782311704154239949655370932394220678329183643125737877309150574945456609360383824914341306234173434157596278278059064910960288834733517246680441890532508416404233796778427884798160418790474934253336331736434284041167300867689919313170970942359698669216748395729637199682778715079641705528233878496308400903306749975587930143539665628608539511888366732888996357488595736848488574207589223716320557132319651078496902593544717785876145644703816927664501904845152813063833282202060606419117030239891278863945851629634238423194227810788505161646407642403395068401938737753037094862383447887933046937790849802919507972241443644192721135851336131531734179355046111652085686655778188353778992238069054418727292951072821497937453658337116340271166946356936393045300176730582211192660854489121235996864435350897662272995640606624929445873601172943072722180418197815915823873519429591716643447063270886443374618332725438567467103053769683546856876514594626993117094383047779705529056316267798756054688183927886353104248157994249497807666659305245692217083316772668826519774415372391081880162894364757316874506205243843709918810151227200000063903996477387648993984110660796759048209976286252865828713595484814529450549705802612450751888041831123209340544358802455028645958199133385025870925458386701947091317110243143889609446759009939633051587097912866437182743811147675813293822324281617650296546600893149257828613349106594963743266161477231482196488873283205158355478181583654885988689205526435218363731856342297845703277096118985537920601551009923588134658999509699028024291071017119678935215624918401925496872956540943239348547825666966882746171756967431516117501364391267033571093686118030426158092810972001331115549453867762836587813417031333491127816568028673168958027285584409123364158295977013030439643499188799628263820346648547223166884384704544358146381775287567489767179512732376729085749323573206834664610773295001369040808453086980654679638317442529444782631050895511646846245715370852283637770693396081707476899810875303674500820783633324106161583476425036180041842055027685519409837391661067259093870127658927922310310685381338755814531498143567956444677766450523766711744501041182460637793469306649083275130692611145146033918245374061946990870634174719823813903796868679579155979218852531252614204073706534618376577298310880042053732492130716984567825382593452071516740208847474315654400681082766397958167390802537445894103822589104271945199278406978659431074373956262045357324658995644748782190808577257743158834230471380575851131003367959054486996889850254115927918005693143245947678650428678444851354582289814341738819122580313463465769194111573940054282491560845662821193087002455090589512540631852752693936517095757561447966230737035753664128527113937178054284838393240075834865441834290202521502373654618968564719235946953867629845512964987589791878448568805748565889533843530408224334218944453538197451113787374871148948965536765061328319286961871595614711379505940551231516539612138955846149395909147931082297617933291072644521462127219222715961370857042609067041603553059584505969310368104271343089215853803829134079131474795332568567399544718980960838525022253916212066286397073144693589205816656120532695865052252467561376110832623141266021072556478555336102517366632858717596612407347504849835783962619233784281168750552375955928527826287346140192713092840031311136195076520168855696168128738698998155848513240449547304206335274322937885488855733120962326196653191035612593669300755595240453313313040388579814926259213192461929871325778649443430799052697295024303396725787516422639707780296975672062941996813452689707729295866881621949254905383324521317825611318876256953035313109163167624078177669461178448800679776452519326744864972320470964839200662181004753182581577899176448852561470679216803096255826278798465211633244870575384641580291302111601122794355320643254378128793232787643828618446214612451490174799354998276072694758019385734140341241176149784193744036641749642338664205760034307254357437861649579396099129101475744078734370826539564857577678123145955538965665616964390555923540485387968261751683063749477219641485497198981282414476001994041786297714052424721446996656341252004925716041377425799370614737080326127835601307694420731699874889002846558896752523826960852582123897575626135822512961071718807506738735466702908410017818083632736532388667552379104382590807077910133517678026640353654524209136956851648847363127892025525108283192723648920561867890785126525773087313017107369460260997766333164656218636327133086319952427086101728831110846975361243530521579499106393274259313141375280281415211766782677273691092222655747563630510408232753104476233873451253451103428949359203027856406064522272282629527171087146171001553727151724572607872885647818356957161496454803342053311150438660842597494857909515605090597787513755763615938462954462407459502973297887393274651675883546065006535937464232892826984158403993698288459401926167859528917385360534879010606398774104998824873263153282999865339338419549349741992599735458117679940124487013883194089832000940842967281142131130238650398689362537198248375774307513854699361778547407068648360658229016296447202188669225617600177045217608302485031502226632595998573184645815840543799156705082001692397602693584826351619737167618992813993232325177075910575607949230570262936146152026663632111946223942277219932881452518123313714295840751025828510421271697793941341612347069077376511734693470734196300361473527879280220554759749417327672222846378106852898071067377708611384124994978413204542207481609453782466535029654155037321029866111312691207511897194154103627103422169436651908402669555195887854487292619101551215723126247568516030945887879611850097048658302619722508929581034344621915454799690238780795639025311785256604892873746325421901775780171016767744201116944019127997772633748248195529074957162639192389529377901208964395913278157642151808261582920264850151134498560890784549258094843288573533345817219775859097674888789235780097482814394767717127396764500509453848477226736287562557586372248973576315504924263802115527222780667402346235252487542519064989642184847332164408962961765738936008650495334294701306498115944510025123184610120614519440598742812852617962426923428648975580663294271064187997468256187851174175753003649284473347279204735049873033860470932080140211318212780399653373251119103697415069918660271330714685561118233249151336048067409909683052397575817814946548353912322154570443574529098421387573891659646804803775436500778335960020461819498767231622830117318943211629803360399482582599723047839603871331801481426700478533123099711187774620944107079288914572159920845435826333030264175376038387383736282381406025849063515693988651479365584508732598744605441903121127288153500473613853685866217362135205470615316543671002992809391815027495974223621872595911711797460545246603739626984311570170223736902535551455580313600375385312498839594844226172318300414803903375900201678122453480151142130864881884120183546556243003055292658036192239640256720494207501979247159424469973784856704020928370831685151847716320993372606081367206323604987067428211259159768082423725576096260100163232011636078978898890738755321325434437688936513409733561376175990713176125169420422444101662778385105783755094020722127054795501573031290872399188851014122034456492268120030213222949438684177421496028947903640009255829313236004217667879088928768270301847106914255654193294386166836071066587538800335845731013977715704698924666404069000629114983423019830395147223449083203008847747167659254594779896969713594701202272030851884164896383530699857701542561898867410121351041190453694229243509855191527355986784957391156285663626845448719930796845410667202376784260747607419378031012460916251373921159952145292322445448832968936917859785476941558080409746767076702889197689861058416219384540821545454438110031181386346514704286513853857688058148414460690506972108947711661393436411853597099245356049990086706548873478703887754977835570048513785090900133834758474809254255302680973329333171646145667049432890331652485404169547829475073314420084892499068785099782088928852630964971811345459736750812234379110496764649488932440624025870441498166872454525375834237889410621136725961289487346127013094635139170119439529857373329943298430039216238464668048879729277651190872611147340112132945303897520937940082165823802612832670586730537734759691469779388817200132076304478313810545907368349025055022208306766257534806182914451260719415510836144997541813585675134834711744538848636761010077227677862488149273593431978524547349850883268170210047010451064997290364752825288913924143758569193690908471491616703467245957413165958675283592607031640041587636702957436202550014783820770206893729568353000940011313671795584136155007918279577680994116811506052153158733045076306896110261238177078438842235984128426681284123390477529418019498048609227487636445207626251656576850701568712979886845005664727376495327161952803467821085196672370330981901992002283481096455447629421427789461766571481917287450772246851543903978453316515209006223420836798667259532636725460619751032386008895448590041558906203940818092471488793865647883078782484968543820397066781311716120539447460180295714748112351803915808465628688862331766084940340868535616652435486963578768354464733568648524819361890619852482088150676461628973416750374096894977450010791465893142580172278025311564373977459621931032671401579852780999897692009841700619263699444605601515252438690625334415139449725839801908725305277755238374112658097198882978549784680024575772085621546925187752092154213364200949854160516664339436143132063262803514316765574260266987761680319041317286943708190008881818719040324034786078215078849970455256956228234805408306151485987266524522855760909617871392505880361098651611278721596148391631988463504526642384294307543253127099940168982505079030358218605977504789662740071720613693103280047007696300621969450269211148713101743317940116723913226794089694271194537910378269682535285627261159040800049463252512604956040048303626174815874713091916661917672489617212280296029950875494000963543497208655723198327082232664973406150964009192955021449160951222829432670648998867818458337813168047675682070707044954944061981350065683323722994097686600009051780992513197587332587397252546908020938080551755863634283049001142321505819871652950381704380788679403814546043130780077802693619994611346841395698722245746683977876300883865071077686704865641741505557003183172600001003233379760680126434721896705914377299593310660593317240702273196782394408034721900505979843710728022776681295989923044179669943414663216070032424682001803562149003966658825586790498618168267926544047009057267679476796864014300893146622802937397931874267204737567417208075404904708433038718738943629369114229310112595799557409629986645814655154524977278516909191158793427155039933178617104689144360021571957346284942139391411492551952562165436102792342388327601791000268797941278095387529497951643704500656398352240784028297679312203290072808559449493255409676986761328642952011444413883852212310252689326774007780125679030624609452312341456586636829823456591549199340505367652396042798662527428860087773916139117730710578347621074251444513572944077582707808289652758716141016898868607122895048004637170712203980075291041003386504073010879786107896349929355431558094404342556389727140310302265660305237727317442884133386152370484453930345351740342538238000922705924082854982474867466439094798702565388327129154801909213032918699808860801784160633877910678926969560277930867649803711232717604582932482630116174334102193620142007011911233897961944393606043246708589788663226692760773424563071164384465719299980047958727593849307875974974013297706394500354016993802778698211945538327300317722985248435520288495967242120586052410817102853175886694595474064893812252781361896919509656989792612340790477217792821152633729042208007364227804353282702945113282202967858127538915271758681888185593345792366431111131263431213681865600753375964093736648522139915315079757514209754921826957825959556143546710374297445215772108726392406133023682890759222143828838203547062661357596028561470213022285287808802829082941839194974078028542489540171124316781896579140690973487545735355660807438329213885070059521759619665402116435782482123669379695535642663194605642650548358811962251883977975760667041373288614844689476003691482419084374934422550559491028993848131783126119947426049036581851100801876965354140107008129607143355030073640639469904162402668307480237067396541951453322316162077083519148750190633038944652765149925060584507502165445100304270379336847140548331834980444391041766769665342070047121268661146453879319364110067158474163026121397572981965064937996354896811430225849555259558791581327960528695036936218249585916268011637593680594721230646497330882870302436289992524948633907237261467428586151331067727997525201547030276683381565235022113947479753692735063690057382137074652227798958921706684473095584219050089197136813641141029012292205756815124008902426748605907996290774935283277263266324890671983909995521709468578851493410649949381934179161341202121844505602993902421194719162635155603780268620079917656281129121107211820257385286713068963167197648131674379782082223779638890120606678074072499562007918491224691200739777680476170564986103897076949014731711213892253664978107799369767465108633647466409341988755259098811799521211789322662791478769292659204308831380022184225179446758073476465529293027658977385750431235725096623830248663238794871208755836933966699514486061367480016952382038754867883139639472799580048742926908123894127034733419807471104262718470097602472002757644750788124123150212806561994730196485040451458424024013938174550731629876253276120080265921610322579171280295040272273406811625499569303368934026242115476485551512127445146748180723632847046961842952713339854940778384144699973915427336913274410698766780479110584916118553888946871099766944732212344836526578204466716359357867947000195882655977474418608268055194427636044332857561964278422652031499141106526486898651804154439683871769046047509809637608294878862306249741278418784483880379654761194986657385706670253486352207196424348153227167693040532834165280688518992439975653493265714702470165238803790054587472312197841028180816121466191381022369023742962449510993874343498607355742274903591365998979894457523677867419699833244809551627817668310637775687533962352356447015874332752216037787361493671794487935778412068769565253867863905311966557410939245228284659806803625658216074490828456503687740118768932226874921851171561224886628027181430941719053309612518635439784529464880749816711361234923484835323816762464200540232834529839352827516380279545803414611972457665626703889474932821832993946535939081388676927522360933894997103854976215720962809338800833676182300972291284204228879730039897076992465824877280158998565992692304200781105418117336054961225243036231831726088844113953944386717393242162153635981170651943384378158091220385550881958617208688906630538629763427669499939809829149532529695169164576169663640049243634404146592536127493480576122609459799012325048679696799749924365299789002363618714748673894445871368429064973192313322236309779025592715974516479404698423316346614931353048716284061833672081744878166595195034722005237068326177174552070267603157518568333930390807080139749334326848720166535088213869325633628584015531514959987627525105769543694153349116208789256432074005749606657837048832424451887176116893431897108967930373914455710086931303814003556498854369199541075794665822376594219561247898801953355074380453180296520100677535803104466019988215480404398013706995322966999774525565651857125995908870449385230161729715608357858449498471811530737949084170102612838836854510243838574482533105527539406009724488391641482013518145815126545826859276029358196180489174796869281739623747568541589166611011502829204016445524392725435620594238553978357014282256316057800652508310235292347655496482282003101648446104776712698412889862448458588032788040355458492402990756130208744898008163340140508085415187318051813377125681889684576789599245039763645141538604589941765330880949854098833140102335551802725441401629232120484746512763111746947624737101363445974461928504139686510965309748168089148353128303067818868746872135887425357884554403298605000198830258525065687551878347631102042270895611189655314735008223558213296782622249340091576760626664718330420502117943607602168541362138829278039655496571763290900085378785441769667736217251770580995749277588278992788705244827688925925120168144989553447490752215954766323653958758589676730177360830710040067639725626264656310968212032648036521989031753182012229311406021602500966991388130987874623939022660824046594523795723342586023279608529176807342020401514842193124427778365877075171435878726292570984135003284057437871865760043675769758738899620214315787356292109307975433631227614780759991926202329023010119441230558610704787127423203483418754087743062497676802933697713697078000846821962085646415034691862296700055544184441861856401032666538139966913325874049079106950284921846777674461154453165138830655543675455497581383026990429358688229863639478042770735134760956894988623652848396169388291473199104182763242755739934134959986294625365802921252528073616617538876305327667495449539752313003876329446215290326705710314639039838280483229894224685714756479118063692908341261546519120800481823694072246901461640786723825453996832102629922540851247554170681905037441544185438307449432094415119337390759914651380829883940945919423875302827508521723050603176895784931531860460415407849422383722320486124542712336215002208040491701893933859309790353094307470029451953986349529264043569818602532032061849120490533816368668577680361590430430110845975171775699052652587327049172337967538128360484339968824055139964898237478417729818091258020506920455550719839363711271677444277109186460426118532221197595222976648756169614358113644503908479410850881293912508836757475947512855913011441081298202160334886806429848156885384179395930794948864185996901152489017050712252363045015032986953145698296642859365597194403666506206997269112942260887095215467672176455016842754340151500472246503420412759621104814525564590642821002590488190475903811629736181657371523541859285494332922265116176795860681588189721488161677813722768949524173035918567776203115142602119006823298239036303427020609673860698175313582358654986758512574387471720922640291095670552094826569685054858205044136053301753006121811576950895274331650947990306527615744683901922561717931385498443796114055172063449096269500624396705972736789773668039987333051156790001046745991942458744032372273994184561383457637783236239175723181502471160770469831718849165233984161647345345232117081342419615548802068231050534146313448961727041001609625537304096090132792475651786525683292974173370260700214196684442969378563188906153918987924643503966974606633881133906701635053981859218007795881420022737990760320066802383467569478879223662493644667120412761280945630742973691015949079802297009908227831501157958664653790743510990492703457598399992581082779158819978532923163334459027207824524442458114087021959262391675785765460186266038198181769758006586782556247335864429999501807671987125522667813733377154088659281556227807815755067520818770417454335309882207914747349989960483873151338030864495668076818701039389136753593727804171330227112613478796322090949988890910626391782128871730774883436873332028510582660707575885047831246870115346538059923726469341771601560281029308975852913925205321619027372715638810396001283221761131141706596634137646485807084353070527029150577496783457458467923007818094272220753156621090681297093830018288209008143514303596302723727943726034022369811991466818334755584249219416373184409151761283403432848349405266500353700202616119306046154048868023171186774379908677326435138247209189193867773210911226378437235744477177928281076541671802321140086581890912756338174312826043106886897401801872417084592919484151643572010728280396706795231994377987572684795776430121830940939595523737822488493705063591266580608732613659438630518538707495255951686196445842883314761517881161913804700033207317734788314741755815338555049530871083472247647756477244613774797472546529371294537745379261147217150916562912003538585372623773141565371462562600125453378909258339561419551081466443572160010119080756992797700689788483955654233402520533335719926919564648097262025302028989146783143317491965852535198963676379876171359182052540465571184714072991670286162750831996179131247329422602636553740893717965119628416022087302690116238760041796126061393712827137868755875321641332515579676607428240098459612197068247480032903214430430208186919693443482336912458582556087947955251802462820478545241812679922427774277154313224228383876367064807054094996445575729716290189750583752576796074094648218070191329500539715100694594265097342209498235847209579191031807617880799668456715637697027014170252663989007063040069928337604223897942687388141849947777141361017589164357145962317453946835283111737046681767125246546571572378091847112703044635643583063354192692716424225245645698816705234829848999493109252215804871410524000001199668385612523779450992871574784250977422064586121008920038608056489798251279214062894167206875785575907256608437905506948776449933158875871586530139550282991702082727650240330782253595963513541276779871939704533581369980335231054883806342488459069320896911605619729162707324007875636319311354484807087341406733777221978221670547111819912954505343267928121606150502150251411909874757110448195229493430331728416763946267272210473746795649858294905827971933471665469843234159285015088787885051715444731140452472572051327776492006947074388049154560718269730025811769745079409720477671049771310902610642897162908387552325219071186115317141150620026653031429602252901460326700137734392665684835680680535347723785603297617445018385671621517370208778534651286769940472666056791491223694313784714353028314589400462013892705875997646106051966687507888597772587517854661770423315852080417124207872493887938503629997194859471551143601801018289284387841544466796077975439916115764016378417263116508694219402060008536362987349456380767333388828441405959891403194264415676835654459114321651013437524481537522827877269492495131265396930195903665148816914484691971915217978595635764796340853051088119395667815255440841060404835764356811740483127531725776245152873248906015712592147384290310728724153292380153591723746397647755210711845203769812868165901453454164465327937931991715019415288376019821318662322861120025834284731362902105861498898260374988391907055424527956511258040841973781593647683280171666249649540498863736709008773933492079139524227053783875085157226451885315361134497400883219973364198109373148006719086266341796174488094675130459439504994383297212419539540579754679417207490302400858224324540331435915052089267108056858878670313288869136468067395567711165162597110451711063400230136934853742152509927354952893368297486531265337072512343063560316371760538119647914621191847969860478658235999227043016379081674208098891455992725951884241404597320019941956645355612375328747066034290243851395883870297993399586062973789284518791229211227444563531956475683312427576955197408990537771272801213435170569471251039819699826688125751901712801775705385545173974951346444192223142825185699749385646634370930258481903549741419140260121085254799268681738470390261018151738130546072570067949940159997330066310078690051966129530346618637672808907514092634028807683440899496450101870327327960339312890661792964975609394420744855112129660876263474961070587389767123677422341598856150774992097616951682701333022075641353036064946186541058458072717646756844778482538504156597702428353994920930345089743881096661679597604819562532728356544841323382096415510983497063802057590141836152485884891117340218102052106439215120286438334795518468587273106966546657693640992182932851200187489687465637680471711323081462912498798963624699280876285393376059139077606780790455387244354797610864600627210751434091176124803042680883129176498020503196032716445044278373135406216234194964775192301119328713570951726086690783751781125194766317540039635530291093782557223842645576140706371309740065233292826284517168195487577403152488396876216869960141835763918121294059373579866149267834928671735412041708460017366587579870315120835400806431549570057075528062139219138314528968994335258156133408015458041358974926459339531151206740288776913377786704057296517998554984682847768617842342809518120333159732891818689709170907235462116502404241734300026791215581888331088761325687106261919623619820878215944830805299519421830218980301623525561768184503761130342752759222347290456079159918960127568301499831403808847236222530544907224348289411559821767183977381145191811320250729660945378603947647679433269887543462290380735799800777815890952808180779150533100076795985286656977919445075879598564080874379546071914747872552586594724864612254451570171991959985062798125988163940789160956274865921600831266430160696248976220377757567699578370141410381927568593517742562803725764681985779761644199992337746665215865885851609533321167260802746810213820971554313517833331478622787847119554974214367304411311168192755145394353316011285471958194253342275256707261520795911534532200785882387983438829292473038184620765551638890445089114153064882410979979813884083849794320310071880415044477635634008344695817166243350621943970547855715340567201127385441657203718562961179050707591477973736796078326801390292676428140592343447120376579633450111425642672126757919029074483699059651716647506413724092915275543527303990896909243024160635032746890544761895948565958065490933012302916756561120780499885033883495998268657576371166300741801527297117353688351446335495899636715570232175486397952833809607378501737296334034319375199887140233239712507351590745668420710503449913006744134051848115437999247099715022556268126445987814876704702737380587780348158869337030698212399801123676183323338097726435655927912150811979069594912535564949683440973439113130093368207185746949715392815098822557846564521947097028622062086555646659312105096120223124752994229628668522049720202407837867400387858529374488244304820292488551601968787408655591027250902582041273530922552894119266781551869307146848686346328539747594373713959962738124593029521791284895470461650511296151119755714651527537734244976938444688548971338067034886798426580412893747752386583174081538173955797101281209567895601400122713129297064753977876576732900672086012206744309964616598186373327507001397526818868600821593434522921375687059938236437994437998205354503438998494677159990064705102104247505881514578184979564619697177183344028262052207268854965801600229226213899931085191153865794980035512415799214928400367525169524552468005214460324602977246294092818211074488170637740849799722444245841879018595724293805875889832541716301055206894209975088397435176427383040086712460488083287572012031329932323917445801618117482893565273887625162430526300464877175059736718515651905332869077753543220434742111528397439493464993339929369143595373236411586103492535680415272028969783111498512819565489987442290635893393759458226006325548323091102956874928989442677076476497204174955775148951295238542723860492910244795687932478493867711806346961588684607690917079275334292828748767360432132861649905495862500450687242819125849744286884710882154112578825961799418995093282551418313970163884721707819290633871060350191352739184528833164297352766853503717972656531429155983475310739406940525845121608168295139246840389366385460289524971490903398975969551630088330237257974494372520164318049545917015021454033647319332020496099171172371100991891198894583195157216282233593347700682546850487299076477997422980043706796762341673161307552831068403318539767755228298286294828460273635302280781085914148549245922979583932211993280446311452687418305261658523693592472899582090450599904576960566773761472989448935252485649195785104875554480406941050472206820759986425437315905167359493438404792003001938261960614086825435994618538419709297237315448231437419095956200345008138151613802646482549503509828905561317700704427998469233494853510911267327502183077458008487506545571423023604566253971457722723169256077310240161572493676729270540754781582643429148927049418652730746719973632194788877632991946739985494844496673582114961025174824226494074714620919865177493078281818305768063186111680545805387494871190724039782626590035310291309717398842619754422969278979888017998984490150254616290241813466042205382516256509459412339507520632062203890530105210377104738474374774998646026679853292369084499788780394987146362706327187150385097781197880721805130700253421793303182134080484621850913013553404696797016156073236216450348247784003957956148334647363390364611188697130208844317246086993856451356301884161441578915364752836925099021352019706402710954038586446081767374900383478136043262951916717544052629418667708673479357809316755317570245236610811739185928182400642675361703564887719238363999692437406265026901647066367513542778021892479199315475382407432362131210999358814482891856185299607669184696754559662644774368750691372625378637050292555501424073651988105846619228196059176613475320443494798852411304410317922642819508899275599224801589220291522822582449308553564172150507005737969597382907237810024831485442277754380435763018910182626208719874535116498099232415974643146046551584571448388678161350716038597841566365031987149163115385054814762987806873881106198801259598557149772899561036463460971514605032779433232763953122398579837211658301782158422801831836540530270220987214176208002494983807882089103709333396648899707788732238788208773745063669477158718065662784219181608995874687806768882857719485431058495370258553313297962514046186931052962221363833956609362435369997108274393967656435133730640141202968300082718410477082758184946041919537618503125746998312951426752765307397703047889503689423730304117030668000958897787673819108586496098405287363382588178847651610870804047281054712693888801649484726557014674799407531351804580391807834367724109600564673477607521413377711653248198971251318104752697980433321940124829804249577402516964323994469922472880225863664860023060835160550318281179345302929117728991792548474045010335894641420649853932206397039568052041916905931510611544430545626914718736686803829725944145593462436881111226131939092407374206518695528070850073937597702622329244362480617878586057689200115887547150665150427262780819016771533415667913384936085668119093176749312042321542242731683473818109695630961031721114798784755430345819055723140824353657121309916048721337830362904137803443178353835739333207469347005398130360614509835847729654256053474128988392284860955191182761364551953877675645387720915152654166718037362468930856250439176094369424826181570534026373631778491825286223671700216529818598607894312093682147152523075565478712840734749471015373757659061047562782182526074620581284301916078975534955790090482340102697140640880234945312701370523419614575109733052328680685276245875793728276111257140557146234661110904685294660600533043473735778661717478267899401394205815640013577613026395926152310613841960871133641827333573224898462452343588271116076328299221260913211495122133491527759496718845666678532491226173953111418007715752559205054477515233813232469234938459367847794542036840942370484057893292871197251143230754341467725093345576716262750791862565357307903468111944612603899717475769588836330575406860536786230931463104997607295343785307619166219501776743544331038660169503781020259376891211610311659947176652634427718703946213173233362245523763274111145598432585167006595783765700089869951578798070770211190087153973645152838030642681150256947017007909635835422226880929671247665483291064168795014011616027488407193942704081120024520061485015999199553724844448540615235231049775917493053169516341461323082422860949381516485530855146195656578514433592047222953864847794550455138340249391749879065611303664177733121206790286123586022619924943162715811104830280569288829258211518057992559950887772654298460254513939812589651656014180821324930496048407794000600017073771008158364776508300573445775737275226200354707042483658756742869762964634958559841325626376368424327548630176653052444756017789518846841783003520635630112576590660905290071836131312693463557712935210480480737666786255017350923425887564760517493602069322368850965736785546415031922530578868971725286071075950963210584839900469330786481468487371499591083752063722161841024569064232923473627828642660655400945951647058936974738345222744776251665178305391906490230999311362637664104681529118456931288543933309441054009407254340663916385656163954388133776637886461497805469793736054140194340230370194034663168854650259970012179787642310158413493187324505238370521545751418608641185455997568722257829605556160427334399652546875697430227559460616687176402758497153241570935401967499704809130646762787262331300247576999083859909708110682955723015453227338394207450802372929485145789383448215347646323276118720213588992496949017316090980426580843379041598158740977202104168568884039821778769092384575441368753597433197960822747319892384479958602657068930269087104313162575365622568936820719834160228975778920421092540584102864178283172010592845724119227303015854825200870703496311697958462716730740662014983299237991560273331148112946788894524534548083126517740008880260214837305732595627108193907315069402417504983295300017072705106212750103754730575546206767158924632097145415108587390724947463672292773056602502056630763007973175722977756988375213242840650557699129316182662522517192107337971165406006771995165394204975367565766998334367775444912422959829926252065984446451854240996775129008498784127678348225689307790133078846464609325845494368301422918173029366327903442818940475729313942858159578760871606327495086587016265836640104135512882813426768474269222762729325578145523201941558366884445954825127052573120452255223203830219975766690497773660408755174114335106919796102243768627691294140819752238939981746589673542504913461147944943083117859550572647897549699250135611594047519625766380604533226546653140759093026251123324094864395181634091581570596134722815710997154092772984580801384749490573336403012709361881488051686662161079450348101948391850322273125218450199311674502222164855600065068738212288961303935197507438462261032131990328891237737818710784926134388572850753692048202261498357048924907752683791465963607218712667853484601212407526884628854940201163125310667796947200346655995353752085781205476489422332362722495989671087750901339675963172479278307516531702349933919433357312174361321549013225103350184673044823175076766475435774056834521587311248550231118812800943985145932735011769390402270851669590739951691818158744540444099655485670878893299334569978522848784255545435530612926992845855166151372219965238886752715701591246203294936542542396138190273354409609151334925063583839728848455634757034764443652135725546902704998842079410937734725540720974881397506508430388885618906777572478709690468800616109898147677471758429025054589839630827948264299906654497710444235703953564545573131105783150995437096120281103639448604448502912830785634695655919078081660135907710251098184579511192298486843986302065649770381926780164290520645671462751619189800054612675676313634939224064780442309726059361779275526203642191015623581490144912322714906744282124116267543771524611449616588029597686020567092824839511142357895182991373985216031355309721141371917146648443400522115211067951782830878135245431110678456254928690799995355981020535530559843293850642244936043336556395033189891852252960604985793014578373291443583287747345033164230712396326815175412615200313637437007463678844888642684114196971559971554101008920905572557626706313301428914303879699159064273040311825753320360048202081082259811375611409028709307738427364768691952992257436840194039468390186906710725954721066180329898154041317290286333102651976148174193023584908339981939939579192008462456162593719523552369746374502473850573581582342335544157554933589130403083655943402823490408802997656635905360001290251713579753089441940951390341813127220593740710708626192861974281177078616073588375898502391188917682351497140992042235333401528480712377933642936251806286887960976232026177177490804273598637750168440611398726927471609538537251042256505236866544171403090962750798376411813577171666930597203979610015755302931251095548748152562258765230525562494595707631808925204309820069571868386264742734487363476734471045027974996869461520461846810831971858996091140757653247593386067010986819736259109528990984865235874401767503367263932321311165172557131265187051429859929149213096320331878131235198691608416686956267606153827070352497474432402635977298571122157759197793129323599970243968876375422022088580808662434287057859976464912065296183698823327424194259578721904822090829946922244693203475189369211472550813053304797232473619259108039574113756228235244480711828073082571146705829428849931861598725683221365197269359998996385537627402122001716458041972684725923195390217953100074814836536340258543458201970192548792069559441381621276421548198458229686851680049609275163855740535707787317159431066317739095439745776888094650816487222907473369684412305957657604727793199210001592493677926840628200793471842868011798923493702753963741712950775358309121718078182357610633240377383500698339798379729370234929588210038212919989209661175533155154865393349241196652514826341145451876128934318120901157659692512132917116628712859137569600776188633799709740152589066682697094443709715545021781736880280341043667091465088735322416984131307724293122811848456538626696988680828959814547913824238377184857106271512390353438170034351009878126029429690979720248168856686136302609391296418060726679282499619764489971301967865039766350620913371171941096087232764036837373056057230196756799123270137660531964277652376139202481488710549734077712916352126891960248327351792627225221782765634762124033409425270174846935064363126855600034352995793894382162612163002067011202969442080470054889801966738114891536394828652634112145566657732618908312833337614219695507955496709153689045195141831216898824837230738540474986203060142445800289293822262165741236593585454370527710704761236701781649328222391209801741970261352520260058287851961724307201057328762444889008722038669755978880328282128708328581658083705935583096970901248001371339325581900185340996845688639640176872199801689298155835874626190276947784264453761172826409084608347379754639846801461343898276658065030569614214341499176472744108540288088258512537299070199192478808621797168075996641687588456408102685511353230313230718622488270042035128448452111776930786538873846190344993389141722933312663993198382662678447023278702028025885535691007271044000045377617784900436671266667367298249136823035942133522996126547962460389499686181684880116941087281839725021525946000041290027451953674754738628705829248487692529856464559014540606227786861921657083471246574447177276952242847362072587605096422755494687321056915799196117768016267113673859198419232588024196729439329540429935649193016404402296487510553967699454534590896394186168792270932174990491501713715837582957791581936349791606625166500154538091777536457215567806430873943776180219045251513434376697145268958653992064205398470960683180414783414777665022931355280053506209092909364045666672942567428016615965172775533082946461656220049087581288798801134141517735797927535572628675991683672376225045137982037550624127225070537354090880016936494478542489926884437857118072760883526033724636451409756508562695475754130347865984480871805144864544765932491089493716885415802417336807561355438199757826682243192873423510447631466364904049513916746487477624021811418562360644806532462639706890161440134492122456308718657374832567710731825829367155670741646285789013771233715262153177853147342450945634633499414461687318869305872756631987504977896813436862308393957696935333841653172375140631281126217370842664901116587140140278282069551796688236699194229752814122253019494598419699761679806950053249904099971036516938897042549638740919749921489800359526133273756759778794524601152570057193708553730743478475390679765484134974592567750520640753808104535893757944256705100070264452615851134452823413180505966065798156820735485238980634232973288783890364812921802695118410966935423855587347741755489842753760835079093560282255119870061081410889884558811760100314979872989759846911429899345576169523711410470349894202045059922101015178373488960520316518258797635630183509781540039064015461665897848112525371747050172081585431374781302109889229717319161816763658981283417895297443346233263829055068786800146465432896851937157509474398129395972360874412166804600663553415247591589165018918503865526451451375614938211126234221770047460869077388944519718673791060741224706731184908360110890641993224109804287252849377508116575677443203511668294378843277452779984035510388862585185595095953217058883083582124497139772237490192665501495185167125686739410584474902979306196464100589659006133097659172477900973558334945633092908925205090457087577224153146965029143933041336777615479660380403317606884055463441163499966672986549197745200152993482009559826743238373348498946108534940578376190258965014152366889314824638830940537522201140438825526768267706283780532763290081020041104399104855977200704427586782895810195427117912454170362640718510827483193261745056582304024948944066665695686051766363608511657840088777140134398210061740015791467694768698689118601686806096442117904968516185300404446381750280894262497819654474205750027846128431102719720198554088031745650973866844782098399076973482562822553188218655179248764025111173977589776294469413851937619972108222403169252861179586376085703729701220577837564324393165484475294508479382611048131675278116412250204746175129397556495409897528480209014609100133505040634929620383955846146630015157421248590680103641801689609172178358403669846512827315253482884117841136114654387894291428353057547702816178571305846254170247661326876779330911049570384064264136987264687964815592343643235785007104916123542425777644297783616537727624826107914246328137041146325117300691235384385456081766429611366233278609971270904671458423512237680020112090536050150004846824236235756976114381915040589437346879094418602017610490457343205819289584944248927537093565962713283327936533237387831890935350657638299063433226251444708906960685073213046045885987274789810835170077513802696450477689097992983695456331144858837011374962687665017297803632047337741979936192750964448687385754865018056755293851592847932974944864467125259843708954018758619569968007126476641697566926440219767983087235214514994885491063514941512116202665947305988504633904524607756879886126514738170420319439006083170540439411209698375479041386662831069405206534401999143130009242727285060814575854447467986233774610697596927905503387324233134860387066377154341585586996709282764362572069904191561363298091467341666523108815289096890744513840400971190525416716288818206090744472809424175131954607477581963402625565030783748994752792678968408964197203084913629318235335937644549219988335148515863753652282079258211118068215087226416398007213340125074484558233848724837146744071660565203556926590209006716406570853316704860740122776971908895617954737706650548071660334577278931294601356798969836735443749857729093230632072764270468019886325123505283602106212162931818644771900934830466482226565962790022714139375885339485752567215645200495950817356681334986996485376946072066618425113006134629193528513828446453948540105285277906381489572039532428848588899969449965721518634951515342478256063497383082459230672824301149019865320057929504419448450328993574073671914331726463790388339589203077242954207962108628411924503586901184590898078472613670191458002792044593864460591424425580169606206793497264464698614162533912888519895604768714526614180956097769488227413489190723951667231808880164824150620950718617557459750317622053121185421084012883473278714407672565591075311829898403089167901646592442450339931524414033450408914522509009768557283125565081860094664891224833640363784917582508012743728595772087708295363154097660835144451091696308030157830076601810582124242913378188331878590233355383717898110407559047648709099831943964818274032650323136957937497429105996123480129143100881798811669816827607628143514643069249584003710555231737237557278750237428119177544305668132266070555286491619315412241956894704325626755308178876206336144875217640859014005293137486488142529379434745522932282480819643023112741269313552552329425822739053762867683769865820102420048710381991041198955396099273072866724421031957151224805045655087027371157787486320034933037274189702396314204898141950158961549933680308068576920162072523059100540502348881534925571209284941720010909863233739106984763135188078827408846271265310218556780080909713261508954238534666419818432760412734268036082018763325847726214097653199987046440423573319659096761897638270842738818108172886384409667044039236011646642127885400958881244991658763614776606429063235220665008609298995528519369367185203334092149939719076041273776938976553509573609639012654059087849634897116630867317593947121215955147837492310679199704126802527699088456248165950437526481548027208919869173935229318101282491390942576954463926646177568701404265800873955549364118433148989122480587682662969770533481393099325589299617569801685557737081032482870065807193815550958193048281293603422694480396850846346567158936379727045740438580072226915156746961270971111534496241654789389818483150877254513509000425430668102792837378381876764961137843151312914034942459112622668275860024149489350343056510708750412189397421772197255441082359778324574250727389296662337074371213419334052086720666475165864668390966758831234772355544435921213384280204049303230597324570737162467398755768640960140661002171435229283361076482797791974479464053406320952083035629605690191349460965995003032287498504430980425629584851928549247149127549353350373798093726257860642438114666178832900466876098913077001400052282882137403647764611581787241242227514225931497382665964971526884065242803366819274131850244835850198358817788870856769460802168918621725967369938518542945308818621505206598795861292963695160888868146841638429954435648137069395421256774278892064681432188654786573187403174784234682400941722018012380574056329595968872678593424206962011559316534730886766848088595320506628712593708355359222287583734594008571073402890771904811768739572326233481776439148096822356929996631501306076093840270796072456990467180010630219709868566229805183664107520502565934558619227714967489835104726903619753141159887353784864771528316746289634083789442422473995481885008942647778395757053649971457388911966340444579040318738303570558167346224968117388412138528190805324449598116577277582987485718447914822554041588473378720480904872628259398004192135351912817430881906360703192103702232152146438979662072332778538825234019550910025719894196231160681314435673485033685459045378878345015530989820921417424016699680977714594894927289151802782049752316972857089739349256526406310445037083606640715687500963352511973550395772117587206969953105207645003278426530810734999394709696762096664420092266829282264774421976458163881393198756624905373834612612592128748934415864484280638559768881875979956290422674417118857327765305430899637028224017415804633763561071491452810904613035774228045643014832861672980661677878999868057501689774904449500073120676671770139159656300151823565066844129188164407432716392591958668739547995483341212413141893284424007847589536805808374670310127192972598359652163480206116711934091199022309125386909292923868403411166693358441526918284899595042738018035606553701485816898046659593052417687097828458615333575609119775149927246540088667119440157895488388979289115477468734385866511221985692816840868341464706454291909496308005148993263874913030006508143520717012876825348907630666843298547942019999902480957191422725162152297604718139683698110039002444550199353357948736951072252887840372157832341711101902132292292216877862846804483461132554320158724791459909683213359006199491029063122373424327739160803446278610535089524410425364650315811217662545643920055785572342820656890655077069671673405467921425452020841302359779762259909150213387848972413343774262549233393443056122563240845708192849837556825603897464060816532175421717420047832703202533385126179152781862777998882329103442406871010988276321043916632715406756062988958936858159199834969802789738378924520575327206662955963720683987368999301519434484264447605520852224893080742807758451044434685968719478484418525026206655751239457690979836804375191001299462560028629452313024678286724798577937708432380655930160901312537039997897667525072743990899499761895365204097553305064205228879633176668149587480938780647728761120940876416518798719517215470270733358694877493297503427934974254229724440120442646842182076252036506605522132259089783657871949148076670958778511084740820427689307078654228644451352981151117615564321463258093236050129445902975364747325646538879273419423077122758064387552483797035286086919727163880788788644948309163647039726353448541893180056996617886836456136802528018874772833066905326750061722370201691820817958390094626157778108665392811195295565902670437137756558408432596535195850686776651708452035675635368242407612484444866192571278818367320280371572137054159773615036975362309151639515630664487167090267645054454879217319179424508237844817900062211233266007606439288222695494751155742338115251989285043939286219021302635422088471007405579150327214906471063119211761619092894751020404092759131403731163882800712692085202615139827907010295423683533889212979620337610782479305236374757687530319131239663498725516549485182906455451112324030749921309390143076409064939649200205655480880985185364738313181105555190899951304373503343027378293379193297650141622082838041707649066545756093546508068207604087631398754259910196881721176822465342509994226674550531763032249638316227747561927170711795835442925248878225403690952221069270297275685182850785654510041987789071504769471340089791409832144796702269827246916152029132518655954363286393724084610619119395406798535833956203983487603106051146662397500235122965616650113361319905783477007914060215658881836168779000415931782416136110355424907908353108657862512088459808569463294795493167340626892690101848964969036095570258211502207456459442871731671504281336120507432975331591634580443993603697709342086867692153299007242638479867310980658233311612117295529238165053042529780007617839892993624593817496286258087083801687991172568606516193281816892123694546205970905675971826734575253418708275497150784077306651856084642528824596689342181796678363055888687054052280754455521974135118936826574643104462540444926904467437596638993917500634241817492326083283694799748164808757018592402644448546880358357552947115315602925361286389331853203767883980770425131089278938367599344772392283356435760738404944907229867117252340471077233512166482468574846597093959710568957003926607840753005264005093545168405103944200800203269649822111054539051848815718746209846507074584362595975857306260344444405579447580322641057746428375360705572164573773203110522218849543087014460671741777672238454597590933244926637356961130767450328797657245744789208447736757396950926776240755274642778176222588921444502733555823846827386243474615836468381700614608178548998800851443475884694755227256603117848084251909547798118409729958335624736087865164550126795263638908126896041381203427603357339981849600490282191016907282144674244737051339909880160293888113508753065691075997790281499415935923911541405958115615184302566415404172909533300352499445900146565420537910303106812464528253444971554114902573394810685347698070020576648417128420949289763170181316105724941220193725321160401487325567386578663353909450808842317868972448932779137371167519838116023938360283249066540228153572983396761199929673625585157346895044106355427127825244296980621058254947929838809459298973890344362634228730844946072118887744310038973874058545947587245235836199265206412448950586169786665344367360857075420465213564646049107076995687959239981990303957313705739836335527855344312148975013049543944726533842597898843410190229272952018831257120719613211618405942571328154381428348964481652183647566574512254698499873403943128895558409791288171116455194295084478362358741345949719044337607613341279565648605612864654009883948895912164885276260434870398987454469091319129380897455309568325799038374097039607437956832501453570746904157733700764230808063758280829504338245760084098877937313929288774822915006440429673804798415190178013005084179911603990767241004206203673572997945586071886743747128257614361068552711183407381455840453039270674057138108669001829047988121756401944681579395323844713183535619232061994124911599010431805762094501491113846051994898897459521176983084187652611421560101795791697243661314435862126629800008960500483190238719750952544299222843153311892865360739476467513571891539921954037316668240505788818342769291269666020808840907968001675699484604022778080864276867349736149572728908087462586247239947547597829022227100952649188081069680527681026310184114118304653130772309964652658043653955439883167869605221343358315215417703543067608149980372232714105059429057441119365078904782420166916600927598086118097473598787280293068052458766896029621849406970875506873358083897866486510885899354647721679995249202616245673301727552834062932098514123068300944747420147512529976340292326579710683671132850370173642252543457506601214472610191278422904285316452614928678091705113818304790654738139103629693763311810861745237785802718428083607836602250664667455630647912098984646284160408249337130441888345134970430010691313254276904523073116831025896979836230222303214158943057449521307346513315101673041718640966303067701449105298693553779534891019983557962768620836327498548724920774887383684599433088302712953539908364616601226826581779518207149583814140659976165578928259463928837212032678955636414781768832400540906800851836621786402110275492991258208628770949328263830888435189185746379778084035177935839576912098923809285464137111390882412896221303221858530017807696359098565855037272420576366853926948247587489214331161343434921849381627447546827165509865075691915880329580668755629215365711730659062442610868755128491503044625162170924800080960750084986344194600176648855246803690892024233848672366106250781735120327916023269287917834523906308675314499546493061742590842541392662230180464658712811526036359194530956731958303691879061491451754147391814517638388941143614530632032630184173558516487831754172322984280689703446025748392425699310767797328529324010953052300450151686229238685051937127163044720271269821018037245335502614901133726427256401633566220015393047134708908613282168186814710527156053154019378193503082309689094392082040929843645747723706531765027546199202609619627894711281848494071708578836401718040417716788850341228566614625467686709679445567524474978110917871384522861941905247460993164281980642261352487382818942393933829997432581372439833308486854299178227451087651227653887947601406868034026824787263900186287166395445568755662872684443688654742990117519040632479295185726737225750534941484262012219714643948542854584988551951006658406247272367060597261686668607399140909832192552011883210345926032072037140906264901143633820580996556746158122720282260442248151774187252427311525837074614567891122033191765584837803432066193771503514520931069566692998047039370791045950165659352098697393591689808179282686282429594289516985821966732700228543809534061259105733758638169849613849510353145557553385095465224580943669015887151841048558069242074362140933740014416776066402715871652060089206704849854004290595095097784840406460084226108891069448466797133921477030653619890468393880880734325199656510923275825372559871232392287812536123819746678196333345070246928275562689926876681858399139308474506733679815403213185595762411269863361066964057096789696030241619785413011765985362144193009282979045766409854357252485689978335259524562923953206711226204418328826864290388389256480169129227139205799475362404074682566050685855464564201950823987131289228167816951430778002086226048574925194801637422056395966591697521660970282931359531399609493912137931101621663056450107949665357848382324516272118371717481077349257238785674091532906636875732021321877429169097638351488810527877396628498672390040811672080163100614010575137157816262623635465356462730822310894791252640087264962923363252273751156056399012664116441649019350167063854954230256961929066311478419885461062348986396259690505984613903345045294558867231462572816559059083505850090701796167843390956448879910133318556220841076691501396910967873971954715413194110963915180754542121928277307598968412702491408970174317230489650176666301090236812915069552185004305575341384554316968370396773269681600469782533918360045896725182615281623551977654815624630156550850558795075193811419006445378144526626580082535941348785190314197356211370342955939526201588374852509607916542329569683008505081242722665628344320423700542659734150971851132842565195105712613009571788177528517604994440664068536206279031723421970437182416190266476699391236474386956110778808476359441778901617818320166552185485037797553594671304279410261574800727872346245303274194140041491705964167745914678832541652799428846790290410710567439213134666671561975758064157289364234020021865996446964258448444368851687478484985373693200692813263800504660672724980539988168186456473757883888672749239540671081819302913031765907505611704680303143540627887629556277940115681890088994568335433901227646158416136078142962566072894436706951590563661965425397390195622882601675220684194680559509789599654552158993562855899065812025539569280770136182310333620368546342578180046678890903173553630777529008441794042062465076704864853029929679244126080989574866664515370436981502578012367764832019176311578316974575631664468931410511405324991525914721522151420826554847004261215712101154715982565494801535658155005272791525528853004170352114700466106000006576700425674710384558107000995736855236267724932372435328292907671777477003423869032286118364748511966466523621896722882881340344062468309179130809762579012706912245289006881602505739196610846648598939909808399975681363984990890732262269301045319037503661067548514016846167766205658350705407612256999581715514643854401779848582140192394319877155635763538068188817577693258910643702050941583494314967081597056577145398751916690301699216210069634105975564968692416732585165130609414356447272210236702719706003444852515046217306381908456463304166471754722993910843109787329288040140913882944862785251891876571119279140221471733984524726063374638697681787452806527061836805089815325572270235841588111862908714181002450735690122197416002110968503878033790439304248655322785998579642441025859180589306138311396933013859126790142247300362780144356816224068872209436100936748103672046687357069045710859303876287777722101050558959668639957515318232010712117452353128015600649750761261364547406801320938286871800592806149376688429819800912268020049304979538997153818991568182610981863038009141033505775058934517279571680096053526880315034274166016361656543112103780353506179404934152483248036837342644788419441068757761468759164912857057103692146928882564556002579937531623427037036772080860128797209944515692966762030702367650323001245016804180058531554257097116223787589033618467291785606173212606903290560173930317890555257953862699147864473396250708571383285632684660266645886764293098480164671362782189498495638867554271976247690175248550031523395607926550229022430542185460878790909277559254950426510554824705886376951727924168761427447036791755196006583415591111711302422281863127191913064762143332615356652312480118492817859778106262861376403438584398132527236586581038934128250631367256960643461752025953719469367710536147058531000740382333259773016230967161734230349596783798356078277935932244371836590535139211919794222107724238494804506747787074161440480829845363835804453775249633953397022787425628187826619990784104555902311399072032830854113847025236177486806382922589611012436514928146534469794398380570306198627164027808106638063626850108397081072694584446042392078996350303939768201190950366493750111959618469871736737063078541980632714267713593298040133434201542176553455708221720456550191339736700954916729684279510300101753902050086833652608161245909604390144620866099144384892371449105530705046734521905662656901122617257948308765323246303197725005114003008710744345342165533910390676418397638693055640839021388417230718429884816839769038210641278147943290823387001062285020015789980226127919912116081074891265457277040867149056274647086631636641445188546735889812262380250805063991181953980552223781785590004357329988229721619665684402617940361135739739284072693450533205319466709739086351693041377208358103421229168063036045862924107604165447234882810824531216767433597165627653501819505336225506166939285626523383522750596538745689809264640270476923657639493135088379331852800605298527427098526367895800396394461192870369098537018268861840677057948698783062173498440858783840084541349347530749922635660175554120361858251457715212423086516416359187610523967418444111913722955553660210062059891193416602464593889734511326207091712963788035984898462479252977781783954351303981972965272394621322653134773528578513245772367106815371557371410345334044041870365264528102844273680923138788630656406211357728149827263701853379446703771227042331310156356636603198849752619111574200338034002169144569529279128457753672353284659743969150144673624543198547499799633677528353035132831968887250347731279326722647131627608881206405638477127503539871361308828726284509516414588275825755537078363431813594474567498929374404848343493287051579933020321572870135983466014764145685711615094992733988201347550711097648169813540189941282912815174309446411345947749195956299329908180798324039798384160213054198592319487612397605091364585315474568835279031125238791295918331666842837136393172297643215868236364801999241893692174825498938834826879447429695507679234221464392135313804734244170509319554856233848018983157075239635698472751836465718710424220044245443632396432846019958109902020657872875475327678817179000183573064106242627606667818289711829243365984092146005328804731757246950531705514673495507950022054780681359067645949240298031498861780321778806743530784046518261211231185889153581781180009769750402788252311186377399624904172180177475853623566886881695926135387333767795014650839198077398944485315397395539124903077949183610583908209369020837894157921192444255755106192465398529825357182990384068754184924211827187459970625935396947980316648757663203511998814997933230329102808139304836713544874617572556417182503519134068764028313086905068588521073075931408518124219145642568990315234986247235515769170535718438867943896114920463195958375584954594907630788518023203737294042352185080366332418982568186522787355225588613856968110899287755793894866831354707434188747631568495661532248015700367126973266404557618234994426248180830998584864765859329800282180271635245702506392248416030128151060751948473790061925960537006270811269881629575539633398462634519830263366010901431203169632505390808077567116814908242249890064023549180325092599402461587406618181803809635236634637375046711789291457631904001500586335507613996699049351022431693492030358199371818663960473518673146364828524954478068931937552817097437263683134140057337975951481301509333736057915613418493682904592742693891372304900026097532650367810188619797259741746038334885282281494512578843364041772454095924450365086534503256642199570172034362504760036188645507956440476400397400598337850240957440422188048721107445657654348019901881130640380251723702648004697836895199531765345117612761751967863431719451923984418575916631214207288289618909654174418606418577280257353399791774991486251916252223896598802715327710635725090519585986588314786730685320729608299462539238833948703939801418514707752595340026946617258786130739419734782298365391111636520412410187697230523096525384540523755140703460239936868182360991178767578728236906098512060291649979006585572550367187378684243917907516303749161219850234244987378911968630497842720313445364415412757809383911211340961448474946329636398903376174642105910696109359698902373034787358087613851354979789081825450496210316370050765240936468814049184253303668364084568773346691788247799369564335370861341995309793874243876663680195673925566859031640764240484727351557730521203291359526950939697380154551010446861959199954567969833810604706585332478939189634551882996480350924182125980966907506026198955858536706933758430948378159216786929630603667616410379630934734639587520187948313191872591894415225311945974137021041066299732926674564811810756172483555436159537485059904863965175758185723264921819800233288364493920691154917048425696608031602320712757921595387687681987706187616463707297293526443634082840425545384868438955129708119714761452676640893838233332554325468830141654713178753602183151594254741170437955083540343881877764377668659797347424303622243195107482894440845451555557360017206478011780234675929075925113927187721432765318221415729775826891863318881654301664793170917303949344054140148445942410036605244669043277807544889059071622244924984876330889291268842768697048078433521894018913527834341009883122712518925106356529510609871302093306259447408641364857288631364873965499656017703347199239967558744638331556231319370427907177368255563700628525761182815537351320093470252941674014600780421747035415351691410217843261044572598111713582991865805402328029427637687624754529100690600918652136852637147750956518711244891322179439232669862612785448355659951959106494012398388212164202600819696816047308577829758470590140627238618356317769912933901111133132791023202150800808274128593673968753172083376703220082047948454491195052921515090247198777226667695539641198941930654161419040442875238124380151133223921542208062144982986854762114278758642180353275119010655919283389002958825526811544275761718580462282920303208527905509074334032062510168224085042977941567017024923126791750050894044561433095454696622704147106923631358061133683582733358716262930700566032161653955090158208190380742967168015551580254099444026205115621700179777651896791929835582467874478298351205132292134246709060770924197536702748307199064021901130579569807040771590240342678296802061083775918673778036702382009099555656077055134460915918050143209290786218523512961581771481831989392419817542821227668828400043739310233929693105639532938466682182319299964071915660299490350455390344064714256056765256410978512472508918515272659637622284829347655497907085831718181238849590592502657220409356768059493009319401582179001491656690449836071747535553956970859052183286365490958411020221406423053949953437700700033947949054908397249526582025716132692324166291380397529101771844851273127807068212717885982538240704644195467633031186522374135817306669097148001624764270058136248485310722251331805120331216709491236773553453199037343907829859475963870570451105468861315095145337525905319443426390489097323942264482863794713706039437755132634938003432280995651727019298024259071926861251531448257118400033661231747048559036690728906411198232322769764995565766018851309913104671258048174792328164066309608886046442226590009899574322224161423859593300577557042692746845784925521629233848346149567637631322242315299248108521539701135174874618071975584326826436624731012180348464241100939589262275026416406321629884068585543915128093920915017605747250989353843367298273637659039720500723800460744867797837442858378362411567981804879367336833967943236973839899963183544889804830730368092213207655367538068736161050744834776797727918433124066292991955928958026265607259261571007845098261259498434615454392639984782137062486164584463796080368389419389935693022709399550570952277945950654384813324272397756927739765005947452738363223970282962219964313385781698196763918447402167268204928470436346958726739930205810986822725446269362233634428379978770577815369966603811292194349395678300761180044926023003008302329203018486862021272686421518450977095925816444950694499555104380930550129886162368371479617549763185861806414574335896428959164847643965569468348238431252164621006683060093636887188912045963571367544724480890861911926806108025905429711597946296900999091853159912279917468454797201272784546467201672907109520035111320772616942291190126027860594425344616618155428843396257170680172896902981401757245016896376097352930449989764797139287795637897010999517134600954475938724522867672360255561525180777414535106828627904338397906053297565094286082745616380976759122438021244414195648074631175489894684407499011192207509934880674248024866936442032260166598828498388407001302505568939897045980415157045752962394242128899209703815860111912648085435511807482743555877362808175519353286599055247344336877231509560447324244927281788967632047698267507059215958279517208169393564982940584020102031458506105529287854025419048897751322712830251438741625207862879012161796908088463107685231478485055814413417342352526536878814120416151588709237936992365575230172235471044424264691973566320384611449346349371865879526479568816537328729393098169932927232486826912438804009101129433547133308010057664745750126964456061457251011482497150157957157077455888966853756442626291064890448460132613963550190218594968660894975467866990224605142074101080965733511318639551519427252050380142964412703229338511241912032582547993977681491380972156716546684961793566126804372801535528301778023772627253967137946921040746755920682855156406592131132441135440053177659059420764612903363601323931637413977549399252932669799741899031365786876671281204379430258380779877671820891653094785221823953730282995310044308750264494630135640125015402263747679992872611887499995526764339030466628541114613356960312317643196428753414388991919343960003401802060509056103068935976011208557519749310822117683629430281436231838169957119351645094541602217740576271743420257989662942802688367228041968713200618509909636964949983144791058238969298204828540398794684903278917885938550383015652609413774854614010301198343390247222087691782241670865052664465119797592505422251129469198050151533457522670875359898459109409629297630162562456054857642745301580987553612449931386842318513788648750986290207484314523653195021423195165606849780301163924611147830280576905580566265176774839744594598461842043344069420270728004111149605374883203893937746707258201092172753299683022439534647701700828995841181244512097331370955390649228981634574929508449367615415897688072776838858625913760063724345386799547062217409567937738412168405836761968902645493940996145933406258074825408961818961548402059611734525874181412147734791279777017183723533437629532753626671809376502351385549161082482052722846410282219427748082115271470288942682928548425558037447374306640740151462919412156802792845956469556410302464126474190118287824562090053262699109149880511782960368962548693111676955712277906152836562596633761705499175694283539007253028158117583578609164864980180696356852507663502553066908416589039402065516585528060409974108514590826201715523044394157880170148932538316080619475697453355787311816605391457984086801281952637213157732899765129495872208107601009978595991674220518616400491117453227040301350408265522286167092930200194421830458012349583360371823971671293451289817099330698625544823206286100772687181530254666315451546657024314841467174465213532247397923278163430651116628265824572021748948488849081759986688538996944787012198688227878056318322167080090294842867722615953771068169526121937090928798535867752511543884453249821834179912218700112234460473768813586931547246518492760061095065341266552236826548108352046120707906616580487844921144321412607126933297274056779753427347600034207895358608464406377085652478912948216806086016534866666881367748100389352886977340264504092424107094042795806025195372773161103890781761664800933829921147198004669350958036139953114827659071845961196754085050384486510819871208968187338257706723779235665957303907230225345182551627033773748169036281235479866175658667301401893053336873151349143988687405400125736679542290521703706088837215029147658879301490800229193718906832339627553238689136145269577008849900328949300648032937617696002273602259017918166085516862723932676648667709151548503873532000352956128400924342154936097113887179699082753792867592727519814253629488278463718435709630657850563927273142739123384974630309183348608225000455499171783050051714603573701050163355243474916153436898017820374203574408517301575194102633945607539322544868889216022870407574415654282789837292299128470183128389347687648911757874896479188527196651552882028088403775544481978926935871392005915209759809829952148496356538416005326005423529625450350325358152524245199818007780418186333874829645643792550865117589188439284495545198085684207081541105120047179979511200652288741773645582534616252311457376891738968316075677542480112411500338948612115378289308349526940074383804409515918295785346310805238659303899964732072189194901967675195644398242812711443247128405395539571429368689288492672861688604498005268408629772896226347895256096682180506079436501185928532995085958392988479362787674069009249835687150434366249789757372382660687356673239094167198556538448175375824033843820501964471637020809017541334921618572566285307058760058118344486675363697155512748259356694762166098891431345181184228262946874066337705046283331997078846902825202162261010261405956300420832988269285612099597134504644515975226706240637513877005230502707995868403437076432058572017319820229713834548961721979092896923021612383747485825259410819089445723428908250653982311829413057516377286621815619773592097135746301975986734627780648481238418627973072224703432891241637215052105254425496346486552448377377445516103939493508073925724628417917068818564648828283880292396542935932897078895287368817229536054274858233965808940067962083413135885694239262894334982900835531441326843328182551084088414898210427270541068104094052790601063640566716409016497998856377688019438463150473684268333842491135197345935491743960872553749468676562131166321015090492488339915481001874388596715372964600954818613098329840191598307145833054071072178597223595889101311703669805071190363563977329191511100842281847956881455365021094117193226221169892209242110217880233577546491706455092319276708825599951599994320561187265709962782510735536423077096870318194516512570268671323256839185348431766106613274693959039365707577706392499303660800864871143112639515775766754707680807939431168638809619523300955249943894375308784254241316519465873077901239599069521503777624428531587562484082916158297509181348945262148669721961624542916305937027681693694242921955631442115195439366303683834823705237168665125017904730340619181327956458678066633278620085137959802801067629544820915532691816420986781752151416718752648202218937581719653330757884379478164083282254585700179308863912187264357565720332286536072727861371188609357964421857475595991780833917944507888823262855684006287830105054955505785609154173699515159395652724074148617821989207962656692536075053427610646238457953970118343030906107794328342981593830943577391942922699084622259670695354780276736083273224989826866021884139816434542622511073907673115072416117058168443089850450390461421035557702233262099754385925978646921586982135970599263536793403554856119814255163504151599288871554136778718290117055925651640706679593206032542020503133448658443744242481597990613753776547718346730636006308332636684195461676141740177214668805350683229642933707663735384965890948116811346321268910221303340694719913252768419649061206157560188018000807415565602109598135331431465526701147931575261019770631153655969765967415008646207402909364382630986856532727204424899152181746773722562349201941497603599474563545636451470634427367348666096407569150732795898798590273219265059321836464511691962274175924268333214901312652387361404522338327171183015884979626155536560472435373059989783804018261477437811198020373934505659131494680689341726483576711139881285918439689138653916794757567633168837539742790828746209410265366255576295180395801312264376991454019235825140309003808586065457684440296914288811222265122316429251371214807680104815860820133560854241414720966947298298187708925775075618268314946521797420103037008680214036950699081822901084041961014729851479168157166907139691739222202831410342525693058323772324239530952705294885564487331185873514485982833359888490072054024102412717600663016365412401503764512012671862521212995845790375725426193008204493356109324745195450286617548282821375865871176498297675462836379680928144612409397742656978434727371794954142905373036412617123717094934630593775357593598590750402599495256502445743056956035836650025152593448890025912957009872021676391460499667279646338846964900621964450088161624699359746535827584160230056167986278201560171861463874422968877516354050038063073211424827034504416420024614596086846521814634160683725522272630820730242702253842718219936130048639436382363709550651736006664088842473336625119456240910641858881023515381659971679846632828860405224986554575513524135846557348172230954103223221338797284215918858369861834928447312320633038485796311031187987412781184009954597477962588902448759823255661962160741135031426132034187553570610824415481022226487929260286456623882007439546476570313076132372475697890478868815211235586648929156905307196724804072637621878471300038867138877408178032938059645860421850876691719965508458135227899465593281744202410105708628633423787383037847075255435257075743620799523515184435650886484774070859372227040896846471868433683280743744337633525827131532846990106755196339847689799581505398439980758887326138079607345317322451475291988523535402840015725812441358785199647216450904150222295834835858846098853751036699454458251965459170547808156734337167576982120283105864491364951018385260772427213877984737027457066095663492810688151339987926517273763481207318295860866082036034772307840772805316353213065170526499376375669515963969385624007784304183365816339210135414020558890617005388180312809005891131734218487771444738152443311130395637943533337232293222577142947236726108198457863513624734144765571430634406119087677738123064598787206746997009410038030528766269689687863465676120622966377499994491037332280368728991921623619897310514522079602415009803841740908044588487603767341442777465758696723535110865052921567339591080381744074850611940770479403233751436461889349031906217265174574117599947739344148829019495343038749488889311236759811796526558929503993182622046162431612236376550168479968329709600040396529279397168956950473162430409003808792110669396178909167872624197677881121864845959380595371179407504083497920194978303676113833938423028863770599254929639793248984701859296339780453516670075496868635571777954959796768474152174354709656747836090673727802040726926722486960357397709449174437252844596447447235543527401226270133454472531076971104872456712906487833840944055035646456259820883386604223973011999418677567909837873140844597680575440083037072359020809587464626897095394819456035532952219848613915651278939490768902447453360297117723818691210992176803238428640402921002404337841932005487362451811272810764842602972420920001665838000799777168969886056167283943393223825926811063738476525492622561789296723630861498541213637138984086818847795874210428327013922175647793515438308006534723959980982145491509448770095808699115659859011619583081983219919172419882685949782214884635665137723519668529947996925165594286095534006231470200321104447644124058943905861116924110520292186329391994902317643446180052564603882315825692996622218953158572668570433215482087487864776006672857579342567859898170085482907378889078409643602037313033741221682785383500179781034781247566842409396042972344980282533373536856893958057039868098968237697436150582390523552846052328851203889998712115223808980529173993913321039537813129197186529766771270293979410052763724050467890704144695542758808167904734908170369645683998755121347768528111351264182302341746770555940848154960912530787488216319069009076155618762973608185218139764079923853025527989477054389617293323406105985273949414384213293040492916177493302237948877085538007862101253898144000747611394133803427626070146141323798502695488199692096055955856202892612261111999313775086143067013699941138415697688338355882618460839810930700115810373608239399772540994676008052006076404372568796952652925123708546364564729831178415905197777698976266544380120829632621545038594873760772379746148511422816864925754002023750767834281052023713789013286371105819878739147952882235608404236019432196669550437350986415806366799158617248405328061039329387216332217330844560889610570398697202028667025454236669380620663452290283399870109301712785038505547917295257370955256761197095177693888243679462186321358754699073753777158467902620272865265569287341179047950591568640601727320598872021742811299134138815754572971612132880362746038170117116374300741365247977872563786528036630192212531048330631644820138615492607446394057130487569642972558283302867641121944383454934744091005725990040086277033136270239327047890784987524044130059002724586208049640824690361705008025028142933426589292501574196117225725111861052528584426789580652796736466367692443990635650865633239468444270208242321229012965046523696353839870417682168135851005658414819083784937339183658361604841614443130636876728912404123893111766188371664924365402075027234794025624902731937654915735933845898582966002930583699437572300632581181579956612292119788531005956151492429249550939505108251440406406842855313277712816664050127233896959655607786184319646318760829598442420502747410980506986279964009919258807730837917071089430139947598375363136233960787118238130112147955006890225966898633921295973947400627036048760437430323410332975386717519466791975513387548301732321123732398023340577357495026467568565804944815158302694784895893054071215665064869130065429204901583417637663594748596519772047771653346432820753626866764978026328891315453548115471791665316529467027531161831915200650287931884036220101228103263510278457103329522692397684217322537458024371244985696909692042437999108954186381392316565783971859530658438473791252489641165140690659024021094981548809308702777735899625144202258887469006985114966807241921038620818302219376979438508709179838189667773887615688020156569231454555995487890565910465161550274897836441119732862094145173392086720436493140216731762452170029119559566234284962635961110012255351142470865402496574109259491402854940118564542818919456939314047377298874412373881323139097313106161870636164117053939704534973548639124628531560536055145214214750597426576770245956111728621760553290813956679902344505006068245443797732675145659075075921962843124699821810711269116253255867852101354132406580834847515918612409253084839768908565384729625909324681102859927140964790189951927380289857129949386664056525546955870649106417908767944511994816129690557666496261115036829446947151302161484235791936910330914511307275290524151891941974669217407942397283618816725295261638809985772754961953422326009748854753067835277272369757671692396267532200113957982743420463380415986126637100720736220528078607981388929250429686287392995740532713721246542202701074790939115409269539735852677462472088527021075731308490305729402670786147270442211814687719475145824717551435423193108085086285335686703393860070132181577239207219126908368252337236635597003355047783866985847010508616274544250669444415847863561011315339021849399512298971417697192405002558083722533448931375860891102693401977956514046607737774183926764645804413757414117791490761360482384868862983523487770734841100940636562903546367282252285515260605940657037020125963808420248043409619533468012588956416076204539995651772144739148451483611926586660553317305655102113577876762056742940719683498154776014206125588961724346416749354159318020067745673659255017574439954850895959426021409522334324293531560558648587401010215400894200371965362089942886448385962473779985811993767182706565197087065920743454817696995455480042604822893840344292907462378952319242027159154908918882420988515046202409193561805682052298379730166541086808570658583143788013540729475701282461020953831968622217571170936068636739419717277997101619943520334063949501238187935559559260374035727977424623947282872411833673366881173738997884687689625118458125298002852499125885877174846569421942636391920072883244883814914136109960871192088349685052299649903575991520598701073608760003222652648317497043185652271463143549511877078772248334049146481094769482714480300198556541786769089768177531376044130066917184412332506998753222987944999823965299486810526959669707200837790919678686952799292546699957212304889906750191522632176711564765510317914390985060186879783664042098677476682239633656438430295339020668943589840728860754030579209202107915533851459904608722949069256522420117696734378008318377613340663530365536617857671831411999623333653204175776792585960665191308456003717658405615807500815747147741568604400792582005620029832399836218489095948861834762117597737842643618584635169971096326187022496489310795068166894298503561969249779060094287501483678647651081045396042450254582186476553597197078063860061810002767319787238517033066536611486349667881510555618580466348919623890915923636383171191059287718286314984059918951833042593692189854860804578682967752551068990466862967581217085460755495120303752964939053299823036116949468056413527511244911533169066917439611051293178117918556546176249527996744095633889170223026415624841499928971237310853588713568435560395303850589797117993439645688394946830340270127958900206462249292064045097490830854899828977648188157790664038919047250107913222559506101150978037515210304808658230703907900138240620725026643712330397553282807062977845748608797161769282553792140908365951232445232757671809379239990185534354096724006447246188624753962593423148693842677993777836395355712808391735374005777268136166546240896977835406036412371293179117554145967923225860107502753543480908052029943588566792549081927564662045815670242412856056772765368907922326072892860133966818858049180216030259298134925104211404002402780116754651498155678509673431858321097018110955163953182425025456286956318872297421275208264355926191017396336154423500669574867252736269250348117036884627306963960532939597351013240924921528482616837175727942984072636542854656656915280006119948514847332945204048015518381178550768315078204348496994599190675243490821256915355310888964289998965430742077526312768910721655097960481805351748052579602517250399153686085928033376312944015714711026163708893560978520180692311082931633736490477825967167687717956043213129349003526398969076940777770330984885689747924291649587478582170878759312947328296223465109005369072019309977833854479821112927205122527899500064902850170580180218790712625188334057551579157928294308432317070285963889097839409821664346114288345264242531524105958248958772241083701368699021536215549175197176036057909063001866474675794904357646570079695976780335732858686494856447498264310686106159311277853708897835438781332194023345159642095111659060232801283996606765947227846688516717386075828188599585731541206122978225715812792591202247859734923816349636644248192725408357163759710328994066334098096509993820448968900920410674220067872600482181649698011432072307654626471623896818905527903153968996088092702139310902400802851326903273012247240692282132288100411615003904325664824849345525873791331393957156632715693365406070136560040590592471569305505541551529462469948103546847520429841139083144111072249545186363100050897268905763827465959517024378599924173902231838545175679588906525907023224651871457365737115109772120831869584151361122965837208530318137796359656511234933926078633360949410735400743199463929142012083066727583550208364258832045906402861981854079196955698879505078786775826299877723393708622923646590221411959550747348597361787461629873575882105783281579465274652024562442019545620126468277787333943743530195751776359889431326830261240748138420418172031067661206423489523635642813638619524509631253140475708249827693144355209898281270347237037129620556425920008523996464048379943186036166175636423014598549819304212510003324137012720938247864329231993267069630426515210182014633079688644227967847837567116293555547947681294332592916961145042317167633660944244278904113808849182500753034638552442837152846839013860197516472583382225034785218900960549311010172468153894456270499386602941169135504411691950296100015526159419640976312896591432074777480767942104819175271417049957374671864218598841401970138200839691434960493737603754886525702473102067679373380911313472119376236156986094722390015511371836635749063565700873018073854852017969597238382116235834330050478375886689145294762515887750089481139289082339712352838440764589107312800357634304800471520791813933049061262803524714464509984896094477573227712265557415775355763059689692265166446909667884217270078052268810491811133553936335706830845802868085376844182825342936492955872098218809133420026894124528488749936099027932603239151776203863508507699813434603311567513048438787211121809379862172609976797482711767114026912050944950468753679938924978384224667949995380712556333566724705804520626683440111813723610060631203181297816455312308970035001214805401152283791718739147495880890543698242115588468261447241647869409036462953114685679596522227428678855049383374628849040807883527046577777567985686309594523969379133666504005109007616618340083432630068309834822121347077208186604723143740124575003496796638849221829743078679177554463437779966591978421258357451805975867474198002789375708067875833018263739042185263275659494498129889277100301681683835028051925818897797126536311568963630781759355533871742755381653554839035758094805268028933713418851234891487692857872535600827112146245016701422307122636169297330684136706427742470292406608568344117309713635751531740941165098577289248739080381299981235165010204187106228332524797236438138459138541056627115825286557853374615546424481663582860182328843166743353377036143866491712445344080573973722451262183446754672658179582324455323669867498365585057226514830886853632708842267063479311012891900364831116129828872053006065146153325343184758301334429645200716252531571010564493565221994236604462940457711760672108016679511915995651456639590872035681767861829673825167780799545250164132312208476639118718610060034133903378080185482435943384016870503148201785585973391869563585738310639097904194508213230595975077858997157329950181097337861298638159587821526895435707808044927072521126559476907736066297607159446760627708635770854799521105338860784748343594123960118401662587680349356479037685561595866034676590533781852918004419977940997352273616897274873894157143892015780532492653021306340734280931558934513867603159963392729208688339622618166482177275955828955200990088379920420401507360024496418127324967759083982416678797055213702735121222079216919809717763965008903894726893347662508479810024131785881839606919164024449521658937454725624822317839491693109209399797641146461092848361157106984998557391315764859968274730287232871657686141458031368175299905130610191119962775028933175205573811695365522641195592730917686213856012411121871784954112574894304670298261009569714440725821595031415507314771792918273262814273358647966216168702373245900347489092521060331456277370910233702659965424921634229582796906410167859744264825209102534173590513464589070561267173567598170095403477752682614105279152569382791837948664974047230592439581282935813740224387212120052115409102850149245923520393514112626004113254611591305824575476266907789764858078087741772723616140724154952630652624303473723998947366346078828626565692132253429794235149391626506396110957534051335721476236067394050130569148146052409246744647925275033454724889963114251713017313602235999039084277398638549990209397889506870780481078431180717960155840943519479635457898112094457911217643855373630364224602322673419067921714544146552202999221838461424041428168379357237365796421441863655424759750961228503031120483175267674206639039406564516450897248075381868754438192778415428002324183277317677052923624571925580591515292232204556482864542498962822104489947979258755925628041403705806773777517483758174673739857306165892666454651674660649182652919130228599754530141405087820678507263321647955008720973566385153888182975155205071551125649639663223321062517653939957633713058329707412427637957269922930534546116146499076755422253034993692491864747638399717903761774068437699276071425790216399407786251191761738912589655961651303688443712330367992102752669469411558842709762986376012714528428437265442002583270274333003335183218884150467039078208684891729511926289002518618996780401336849689252922768651212211613038697372088402362802784850555974912501504820916735489185896726838759299147922030977423672463627436156187749061048328887937046926869786420357886362405468264481910092884893578861144790884023835573156996975683150248499424173061746902301665132475031422218483991399876462100804619642955612902189040496176745159950341174898297116219264775746236800108258889482574586382722222180980655193657934843717349657745668511219115876740434694795720371344091527369187879012006735226249956918851036422795451293311191100738088277535194182119275067179955137492311140164145406027410422862799137098354111077705905601916660754059962079045291110944747952373313132082903831906702466815885998434228948844896513384003678442791624530096148548895901168367979291748176032724835053940398344565441562622484994800097213233181447278059835386531030749156558052569483282283543119438008054014084843054523963231176754210656479778370330201282616340852245213742564886139809818450261056647668359702888872919214578628097871410588394557385153308957247047603956736411045843529341867407576062281439600620462245885132583408474073746917053822068917838551339485710019404646190148946631881000698105387630921636696272130253500231964383447227429932483698473610521756892866227321321131966645929437874645917329360673832299012667091354031237948345258733287946091976164075836994654390069638920615767498232211245903425862470453066766857037239517863463657131733465309866459493969495602829856348317293869404291767649634817422093826891002556387101430411426028470164413437884169539272686100732760511341165316501324560488593724204227041942210471067580832374022397895319483422407100545640840045618963876413306652551199151746780227553988932730463848133401494593836176997965278863656594980359045467043676000219411722486512564765441920675912483093179001668418081309282604114038616144186481732144767989025691088756444023090425660801643623632112320972660975775919910502385880951413517665563487002696786917873345283128275847226004170652447395693919227199921139382385804437892015004946675094381413588813022340163434597232359336602431627371276184702165893150859362764367444805153069135649095761685245684241072274705715656017150025003063789734250380251968764133423640819703485651206176043215879957967040203077646745189051624556306358167101186872703412414673951579835237435354865552228722351613610151365051212794055127928179893225680833407960284085864089405369383522488761565833706584441663146851664257062662635085836280344951711200440270554168186446497017319969483386042147560010586044950119304965391532504329748057326722341184218076698785483724379818948417245057130571084976327135029615461021707427837326128236924351107611234104087562061662149523499814197297984216600478519757492922873916191791190994599239042438451018250232039558542984737592280284073673055161109130062796983737341795564998846137214640331565377318922506832461809821827723000160318017332233170821471946291275895926442041223255064226547926461069250549210248323246702004272648693871543456374770172753097004663742043452089382875160570883434229893212083221669909488837636878177385932086138209449168018817406320722622645758754371493200385589717041527995129467138539066219609451346047378797182608931180917484004794993798090763140001948958455243500942882086212924089099353968854723474742101394656852088117990127092310530995126855745032510743085800478506524464175883481413561228552576025485516744319834479310453491518835370000142510846960808897050174719313037978221779813663798500489834379635616570186673903402585484659169062745666507790387181914602420419444944078220126700629567255735100185949618430911991383774713482695720745837957199462986177835403800533022206622215662083750179839962502497841206779995310532095361595432741316944392824330062229303532559938365952654290585407492556617665062711983521533432013683448899832936979427835378382746441453547723134691556146537269394847371864761691675885612118895650438047859545932275410704897519401076791732808601215474586846010244710250641305941893412579271417401488791876892314771272885358122722032444962953426484315338855194105491265936786760016359073777960509750044051538581529638893645161520121279625861418728989138587042151272841196827775607013130326377465589064287134138689218670390021786413092387242148875853223578535269446194777129218852571504258663185678228013450059140052487861973527690805642409817144727015452292383088810910691242897292600778801142283062904728697365856464803659113605169819593749371706124573352309969037685717617816582395379414364325187039442687970381191451859243274269917749997650455429579469194983406919906081616427805886157924475480105468997040071944875227430726653496320008709510809727442268423789846343924046344702670462950445270361320548486751394890495091285561735714501929195272072487438009906925985350804360982171360305671889748588912934010273398911371804043908819981958537105225816023921362808290849662357587064912372488984504691164594976458030857155291826963412464624687968624997841856847301958227138539849323254513932361944251513498614314803519294968584642063307801899744770434308325216100944064990399410118231174230996146007612968842805702770220942146804698215317593967192488473602465045206325070130478945005678558977294874367088607621802047991130279718477036015685316172709772172131321793561937309061622109742287451663907410279244524670461988314947299910293950221695145551080780374629572313182977634666079914593194209184279292126297966849068429395014396511372110515265190791719291470869376290693444818786633177530727602354026195502827092012205904523293610891297652297250101990907925618164001862333048530443359861589194418938475091014990650588833836343327938870845234526935920963719021631578063429332433974144844250940777160879183508046776543155375659938207056867304157934486772768757058108560496421063642051214546858617296970173365819586007845212552729048485315085405971165448035409707052984653693666516386741028584999401559947406454216406694813814006536403138623154507029605916715674623750632155105042813299954384193393383043366192671644900451504025102375947912878404820746292289764146081740360305130615015654992525561083615809144701235517793791747594725947733918958913981841916594109402939649912454471025067702567981599612001540020355286449685325899387461968626405513373327007155324108703021358329906886298574239983457509312551426289859777580672929071045922915248570688785559109996687852896458908517124348944346351617352781810603789138623015562376407672729641890327919601313614958551446272408461526413227817022727471376888343495766431885573682396256686753823374235891899550087935051296304766563393120517871954653425368099568183426411613860400332229790194904757076536009150731578837156973086577959031359297996156271082847754735393234905991984050000584084762499081272882868764852276943247942224114383147230063867434817262989917106317589689428781528552255554503927816598184735009539332168032573560182702996785278529035833694648566663138470077358306447862563855431945546982738007397140697965213803912829330304764235824646878545657094166782646488840407867456633100998765301287833467340895980376537376993180761379095503297025688420569368966126136731847483411815606634713903112520656076523573137064103236193433828878983295832550390349820723489837715724550838703256564376046986992220601271580099867542718747126563062158924792632499127663538329411155748623120968972420640376836897917345285723718356375835867475284805075313780960471224274290683316984710412467502105763736164388105214980235860384281100490140752915430362914188855281231776677321878682835758737186593396219991825126709322970073312929034857019167450872029534445460507650133102563766554420394388571988812705578981136085770561230993382537222162584430727962496931681750504264411984959200028160336145475864702276195415619564897545646862387422808615389411126507194905185599083984323375251618328610627301609521913049192299992167581074419400319611195598816635473301987309085876012169897586683333345211418581005335430331863157365269801537887992160476692714395802513900377149101590827380782276436369795514126000954324119009574163170083340518005750666218133042127892214497810627061761137546027168328968132713557261518498708026366492954886383537862019334303073064843468698487823707137361104882674970095376741527441428254099333503694153337918405799524391225055300733324327478765045651417578574905074649649103320890167815892576657350454171205299680695053967829011229471309719607939911991400308730097345713607656217233755292286973269122382494512636701880471605236761750113456373034012989942780176687697973266966310631405413682900097703102866915562829160555448321814606543948782379682679366346564538446990086546452490919287670248273009301266668954808661640699876034000676982187897997570660948143697296965952606969489505195479987733299578181637947984676833878779905317805937016372212733534596059169724423042776984065799120563645398765499619355398719280801561833492395946100349605936211756410267549464419425521574625465015709694860111925268217644675597528423922915644356926091524629543451164849488596156981132307754117035989715907645293944260640284308935385327059285242046491412210274053257386081537136125662196393049241002526955359499767521263079465176443776671096837286859435308939238262850702385778735572176457322786937317603411653120471985193863418589895374270575104329535482754766574193603806599886744370205838325657055721811047317239424382910279699823340100151923195993538389278909229217839161626827252933524864495267201083545585791932945417893106991548737967912470042458799269128708016276046746968095555668208497042372389431226425018585397157357344050168768630342328898373832298378579394331498714699579754704273260622832585756327638317333410726250113502630426396489908635876496074365828793775289915814759392377051660482466805025936830716000952152642613262860238188666555394505985853531115788066484235844221232962402218012697823124676267183121627500035520700097802956961673211503850593998131720025098650593491789464628577320029194436709850619812972550899347284989427342831393688458061251402742460564209431781810168282413142924548251778594211516309657450603250275574033212507126708590414497562684705014428272931798331264734641873233443781556223077031786176821998246604411142641092181671609702254011607422181665585624787972268525599660728008765426329306106093907980281067762318595332068473789006669585567438122243686063670597678094203600738782151857141681626234567983516909854757788699147618710561909893571079455121856434869469588522229885406156369547596979889471331330861075662386585803825958956409847571494915802267821275482463236571389721726873853182937139072458241980630583208224850037001703342024047624605527911246025216357582493355802449712763527626627401137078050334957260693224813122186415048022383652456929181961596606081800292072155030212031734950629531819937550825486455835703978659116438973234614387618964932987674328202906224682949199436306960481069285220773145131994811958083303815599718142151447469396578297450485539773591323648106485883569505218283448873283936038123967732804164046526112158013993922492684617683768054695499563143586616903581468551434655270132224885064140710445691733271900720066603449243921236811773648488310534520079609686772254188725290198455447677108507639168069234668760320976142169545890071840493793626515159415205117220089236814194025134557962342825035641431057813690662467448353013188110874288636293148141058088187066766933022803023625417550314509315244067306660558483644410982856948869076517857742439583656708805291321514856359394335418931623759589097649338578625092534476968928573007962766251726515524116849335694059535505109413329355480944220174913535566508256230120796191555621567266021154179659025879884567032776585277822678532180672654732820333366618212549675126935444008673509851865618951873479210732100518819851603453261708888395633897781986704132407217251912148242673700495580852055947164196193381049608341327030824639874588864352341124982867564712347740055007483299276577701659786855578198544968944778164408108822122424628314955466143472257236821558337795847159882571553147425642457659958192727255606930925292837866550426781825684204378254112497040618098489617734127076142674442219074295667775954166314066778449585658994315708548679534129219568258234106001171156554740559462164039733450516624165245504833881826229077192796942702038337605073705137659633471036945284771509033971596100891487571286816008204393459144801879578119333574681918696623794227084083747544648368306994222221157489561524456737085256345647081950800862287952910837791145555628946119646554528830763129500335305593124607951832686165400489661227041552417617847136967575605276748221774364799447825071606963967522369489607716686761432238630437364060907326253825813859901742503270123116743911060923514893018419081647643951379695796686263285968828457300293670771596186775117312906343589881929684510038401735100523451375775537428937022691087399739451130839344063882670692915875365586912086914747693053048352777061206183369343027280858439654790024760813524981800011322077751927507633130197051737348943596379877359823293014961672702232557063168322411285548132725656800834935501217546261472418975523844667944537535461827020870818254756635788866957643948842713551403707614694570406128613857476242835490888457664386015981433814912839124240086454296667396411063982403033405254488959766173232469888741844710189439369487733792615626459457147274698511181611867420815320501544893782612334815184356546181357132446885843855699184189405327523271545946235764384781891910699817221104510267653427758018331256450985137813209245700843000306327128502666009551252341569222710202292827345217142981828054733506375386405290497992824578505150017494152813461481340676939847857732508783395832952482513885486399515339030350953709158430394722403074076226204216803779488647398862741882823880653109908575422770197333727219668415318968317998680580323114912135870638460738489489734560495944986517825857470619800963843503535208696363484755723564386254753192249808875678105689666082673933677533932161669498371284289387012858943123912394315031424481965919722505630565154620237169082265129676700825500638881939487840583290770353694074362813801449414632523597104879306826501246066433587924902113181621115072700414669381436764435064757589547302381435823004614772280824519354985026900125297323032269228842132593814344718225973566540822213011595698187113390446916032416460228931304282925240798542751334138162123090826898689023915138024103461881322467390144844895615481996542628497978159760491551638494393759818348367638581567688903053885551308661432857932736030782064696187028464480374341551896053076512668513364812902625629799648686476864937300030627530707737196893868292316932337629440509526248519125702557686887968919567139175904849856316793482328605889686189562543963082547305958932579268119589119344818708518525052491118484428202678161018629956297788601543844413115599825270627432856997030608886947522807935850181570839877138766089620155615185121996417053605558736462009582368464272672375505703327639551073595666172177656033301336004274396520704648440143993031604254673071888642598359972394613477108852046074389240858114819075971303317872475458959050104746782104475998560885484794130411466050580068371798572183844233484064773624762084658612923539151273141206629759383267298307436576961042367053695912526502909638552491394786629825536153517256595637421908527351011154543640004869581444400328691286911977038596830510630571254750195918397701024405501401893740437104537966217261101379072638863102218415495221554293632864747214080389630792134091163082500733955216942259194603455518927102309073473095935744454629446127883821131686883804240351760545357876183643326252392082318937007746786615956573778425016945124041117425835444901361923109061564602675027645639935631335954429206011374127594071637608504535051330645881637149437198711430299999572440890771181512375713653388104283224266952557070113833429364469717175535390447545312201321019779458601964643078699180584527065880287991908430830454147586404652072174816510955521679396469798429832732339593806990368102245654327029870241006132143674696210358092643114434839526356401076262491619637859982248174663331700072542320934262706971892166478021485258342740898812964354701595848931199668016218647431764250643973855126978527456561965738221686969724673660778688355016549715404200943198093412657347577031612902545917365369907048232065827030612503946162152912129403861211443144187976663218040980065017521846713320134915407356710634219150213878090149428664947026605935577546847895447060389211035902380668757226726198804727213983179200225792315999213674148656154631566377466069688567170044250685078475479747345574894894390181810110937891213935974078816340388171299861023144742925147023977060746518571583632424078163141649801378600844771564376111049232770952415875560569271467398954022385626088553454076398435731488348933092818431859931150301553553646571056724076749259308542326905818584332333597937578263858645986376196402887923021974374076472221436602475849496169476843969714342656943424922213812713251133226617263143904553528465183161733120137102403029684050871849918776171667775777991760843902391154477831649516450178949008607536360518288022268482685225383062973259972870751819128023904351901180880704984289580994608952267516076862589244208345827718573024009028447687981143947436254599968771422362668471356537342671254587720164831747023789861181445432143610455483403206761768955900044556219578438973597681321763260261257058766408277879704043558799493261455419728769684306641525804464443359346733409270358389422513539304413269611969313060585359395805111066160175024969157634572398019717287337446659071416012019476445951961127581306509755446575485465916602668214410934712716043754181687437565012053955914313821185016835217027275679328463350750693782064707146562151245362018280877371421264419700140682860432404262361094495323463991842678084132638603562514650086455770596177237129791950682835332998747004672030042397167145895790970805913028102293818597515723414604175473067013820332438190367725057950478611269083589722406390923944424671784632528019796921322720179759944499594818534606023209975486291902490045037380111582919676140463312536395816684526511059235046925356226236860841605791752753342165168932390925489722895499999179261628790826198705414003584991095834974643577110245944780375996118304996588185628045744942190593184056511314303376928685310009396967279724617115724275594082229043901657922599424341988638558745074522263871363755945244943295115813388783512278191099668782673129250552914690983560400987896591505409712546125468828647228314031241495863325175328704347549525516776326389307996440125399979759564868648743461206873783058541246272130940135948209819442357758325955847094694158132609375631233068467512240334896379226950120538551092835997947257313440672878737833138125218221631335730185126581260136638773071566142351800212075753523303757064350586099127673885530569850493412920249165514850860807654591523847758765206151689284372524773469474986313731654914162631230354035793605237070154491108945291977811560716615335133242619897476948194778063303451706535776773243360107648635646297013695772854667744092685217687724422004131795086177289962800747478908850876446904391465821444583844510311469568316697254841766717931539956159012020787095858113329885238976749351525462315654828296777124462497222600718374153881795084176476571592900591400004800159088175581181985918003042946367601113215060707148470579853656598687997070936291020374672511693102922871519887410732702587282064522522373235100856661805886689947116618067561438840429924251515969460175285712681171678316794854371136491026052389466454055503053670005990115668327071298394609636277000145155006260560353149519019839792833734914596427927229918424843991189140253575111214306830449081405227647394964502422878026016353246797838492460378022286720831646739367472713627487900749789054793215458042701931919189282237520024155139751026527601876047347908456878357482875691166001455987391231496922263709769131702722838868561108580255804654387134612471483366087194606640575169328393777886271717255651662047455080541367335553650698741843524136358103662383037826934920473483635618989781130697225627787496484440569389249359979784295232892320203184972336209646047427397300846657364708373070399392883411996058644105414109176779930826281257459059384719633518916417497055653438949978560216449897974013414210344722144293314011174772454931115408136300167842218518469101787764645132455374399200738929193130280822636367989318778057475966565830280677754890716694296873529117906200942138261988897040861395209834208025023270660938019696226623924021179690696610226102364348866104881256155645937094278008576358922817437582027192433913757201495159642089444536138039711441918829943283859439638031670549262115726225586620316818964595341112672891201381394713425420722009421897212664423149668324639096254603472281348938508869913613456353880712987545675077003542885117317257202299931590031923661179166907219055880546973256698027910379190168138503206719465456858714886490222413012220595378989267188071415627376973575716919173173283941626610593570792558837625230863357422429156163223564305861486250542036265927475454701262102338863901986851976492713325059297308557999241673774525052027989151436775142814486034804166997330030878471914181692908730786456589930205068735706636802010811025379761458446213904948864016197419595984814221101989792518022390903805159511412815766940933894377027517153476906312482011145462674336575359039955798134154673001988879576509880820924707267875362940316936676767218776640759813719444640727216463145702650702233782748183510339514938270757658557240990134139910205259216516572031954169109511676725267347951833500511236203982452406624450329934693325472983474188019634252592947107335556591030966708403988890554692806441926899689437674819362298024913898248135263171842801924363550420617463898293046285628498283864165368902450064090713247206130469337368438660800321081678423670227240741121248807955348206348835112123991885613339448618088734092533982573774610034615684300446064477979765877504841389778360711455509045200929262741867783936253472317712118933690441667315683675247091359815644966429182131789313334275769499886102014019106998618376755812120354246783425317233389631208890778192223729725563773218443556112636607492837653735162975095416117478839845351650024152294087076020289628101659556106549656901237993408676823499399250126712391991985902404075352418482870727019791615830294431021636280536392241686914782774261922539299442978559671110851836821371992555439155165361462459030681315742226971176181909638211335157287301608670741711607923130146487100964170841862443340727679835560642846526453391119474432635374995475472569099567656545752636513009184034776361225871268748510996298734527357079716346474339978243243816015525798797482413240837781313077694588575414923562725811372155589635482214783589984602011067998242329118075789258189875988131611916512250325460404686511754088741327322791019457443043473509004330679786560799005338597543935519673648338726131102661361062508568226972165963227645353758885954252978666760500786319109210908437860162718156941382591903981426775287318580409132796277260164404734616206620126058606832805269373654955572357672333652561709323632410319162322592777582327668697765349371021688605002661897136589706347623928592319730214855865377158233041484145878175385771181087137471813812061083619573087261185098500326082279320960494703224288225742402667411241186822270103938376724246243693232184268035218827970045359708109944040822442333753859462816567616216850946389247922029836230219242649185973814059446605965969283801062278082877881959744731525026665091924893432583450468035857146899639325388221110777302647558144001381842398937414744581387612351696822109537665143750495907935283027608596226933348330445303931973761456312572419238525924916473782601934771855768628651584828768936846518621988915186855856858931829731211165315857928116239980237827919115631890475798243790456685437980870672231837763246772795312848990919051628354254943988523667778144967628337627943023842573741596379885445366511007348086684707932209800928036127206339818722764453493776338542791714711520884519379942784842804770399207242365289145792069278865292272181103244099377405023684135438187166187873712696264931306715436720675444745403694440385840311211085481225785090672776955972951277345315520565494870602520687891819326107042873003005821250153999544401108779811205681947207532068031006644817738036670436920999943650050724061263956232449260418428818498835402025742601677295496228435900232594933461072437869596457841770465224330780222719964212821211209545255799098385873158325185296654405743111391759736799792171052680932717224019459218491530137158188907276647730036095780566512854216757155558617006414574227510416515289103982955025083925138787587038807787062797652621530301995284942750752334520657184107455675561441854138111528485944736149830961687177079640736909776159922451955635632432822665477662469052000056896838568689632286109088004282918563447962725883162357781808955102122251667045312202080243840884294422494589161611426226661928745152342931313232950365245220177628403669368292085687529756000242558884854623887597521950143929205778748811350600208411539511277535084979535073806930659022266163417120851900694806462111279564307757397875767538707326028152965668875335741402049854024404935583887252163240918498611230243401794639371447757159686828517675667418945432813071101575208704852168209206340796122402084906529294434718882650368682616870807969102739113698451922640937984212387949146778528084496718820439624686249763174797453921846928076179370269800844408903099848828622253459995476686104459672951739914864766869582517442089540716288308448658049333442648055746538027973187599363593780377463994110545366121097142580142078905706757184286578646026549548931108667064257288103420782309125306290861421533039938322928863434080760887099702190865972591334978758181464758459381740648110446757015123612489519419812673064512524214323637646986262043609720521568518194983805584072831540587023325784109337926001614723087555640000779148342233626007931335915211216938341634562251924324274261765231488304209888790586743043663078756443743790782010390553771922916596070093281132686784608725197260457895580962124965427429173367011478180016443486287824911306255350312393247983281505855342094130581103064877719634255250047523969911640155827289344127791778635376783654432285200860673408484614436176789181637019250190015301097886734977364649751207192073005139501556361636975881547644662709085810643795149677981887387291678846611228631702836941583936560602501107310424681851809084020493542848562561271132384196429084557380646434712131357783187333568283767840010263223462904716853722636127247044204827079586912113330605132337156882573488499403637701764550465027013547700646270118583277429492920265251559241413222104472171964774470811976340805062802710255258098634206645323096368264948837573698685784667526533989634280585606893899973499659330489804305236158221530479399524901768399778707220117945931986356794191607986033724963582531649810723843274358018101074932538725082622803933814991736288528499736273578702617533034684094926586536451000332249272811489440193775908007237304906064846624441532953387142725233913663728988334823476033472300226843011628881432076465075853190959212689756126056047764572774324940022460024806321263150350762232112367309099345931884817687829690205340468019401199500935516255168290459167207030820690617311622885010115843446924362941430420084430904742466319331443635470554362474091949345441703658084815883633331395923127119297693182581554338024038141124898743244079618027489974989355577748750019952510181872126557070195584941946429466315829550883324145425262495456194754857544214434556692012275179647991241599951028046933738755146209701032637690456278170718014248372007980603916564583231637829278575102423555981895360916967069580764915015821939854308434180213121582402927775480330516027028469897742581231081869050902028520672698011577638443335040692219241495718089102444672196699061440546130589674613949340666588006081994845410963970237836563849493561004159757634426188697626937329679564502995370291687906712655505471622424362824351672377469848795609252014775076320708199368528880779762465913776523261334881860701626954872175105465579085341229286330807006547234345050575948699168767458443300455319870098225205714104983535242823135459237732709863187330700915651123160846580993306131205652159269416942463834289216909057598963070668220732905605146813826768633083794903599693064617834667302777952568571615042927143798770917701257030327498082925769755859801285300694220422882166369806676878035403988656990647488138110022601103796159196789477165400346665754316767219134358312663175590376274149712736818055892555226237848172531305362486631162450888516104368654674786976125369747398450665420044805990253297930955766513525871721623313221415194865857392235018564835640749823610561955887198359661847317197531294163295726269563329593204233964270736692271612343502257431058033391994252625115901121445454558569900698785892338089911855267716747509536999408394410578583361279845634768788293563451521640762652930569799131416987103596680522474369108921254936131530448276470958176016917997866329501201892681291757131401173366369133414788420593995630386054181013349706455791778450233322593509706140229875030441773979248989305599025861220308113872792307142204850775128767334890989277496856874825368435724796777485155940434554802233321664307782948921576638737120468370238679225117404537082382888223875775524941131656764613092392477584835659744125556524680334454866859292990255976867162861139820299486495386737457708099632368216727863498349524024625613401905328562873910533314448550762489506308303520757910846192185802501692420826580385033929036335097773361452565485963900778805153270497088453485322837084208035190422209329834560026971698000967689195894975603155133992870624127243961687731687698100344345576932709381610856612978117873562691042216689115081483451533593931070593172053868730623730230590401183294999854789607207017350177173794143667421098145769263310293246373576852817332483201586798718355899947889484419943854279727791449750952049043285503150770680843501088990529208202397789071081898819421012085968893218634290146833105804403613563853625321986823314259006010060540467329832892550294821813965750190651637322418764297952965180577123212038491557791798319553498070349049772069304568937567845150422166044761227220974897412037499314495002933742898168142989187382116174166731322151666394976173867857424497207521187278406386398252141574709529814295299610174710308038676701359709316648637969276848018237588479311443523464852959710359950461649331352160593580604323128519482586346608492966763941170716604531693426477848138505812811644560329096850025435884949789857658349643271665681740490390644366173218203997471203125908389996922673367141927223653153160158968344488329818258540647760348645596807434089566222376984727030544038575902197077163865763369138414829551810949954262856226933335107312174971718018612412387543851467519199061608040931523379792684931112351877763158023793292224386664934234239757352783723630291155685876543160580694072873438650526639989141406670147987466123886888265626325388525794097735610781345311437915175340003316167215336801515170383982105082498225805673309171907592155652918089628938902233555343193053016287909983427551276399267722073496833928616758137781370538262220250157514498354681017986892416588228057753067843319530098336620463313851391272132665197325607336447905410447660213367621341683441161602212490005530186384773236846393612782525837555970614400221410534525211556220144973277066409983903408387220414003704002325948287187035263502175811598584167749697162705645398148589349360373386811305347096260676784064893054738073086660880647553693225897024938119307580183916089950353279226798596440032605224615940902183283947300452184320888032376441471341937554011197023626658151209871436126871224659036362863247442253985505073354011965581310267784254371038604784826770329372993810126984592850228770513121236097920349108439098294097061480845248705935471914856353932865028602448458654621422556499845979343770958545718785214044711018467435257044670792879004438911497025292108976910894753250014786857641401108919910968707394331801630781849057150994612495471312253135711219706477188029713920975695268946094633189845222395795262227231047077765257955494213341560385822062233808145431542135717692516925155061503518033968215145277302490978928007938140878294788976809898848842878132673853824852775362604763279829002727110089031696937225571007926248957664842107328977041106943651413083462867979864093136997837073899002381980242041387187645378708737404959951073830426976410588264926471260649379973079025804369570706352194613566942023399066096760216650419345821468874407955463825218371206286574842744026052352261746393594957061134747689053522993868047834789104097905705578713828052326087488559841322580322727023873623341870649562670360380503141652366408826871951973828084422845843091442673661849914608174042657280060885283400121723817870108349546998464455654244050327155773987785852704702358703305976372093936642484743393396855949348327481299775608143630311032647500667781352832849479843294246814364079365901792940066331274549233819717983555885367227696762839988234200434358325651409996567934188663926704882755519810121783645254112630104096248347909609742237014628203307269912098506778143647502272458964205787935740862497057007895535774037200817548447799517333567556432965415988224704576697937076604634435320167033686480960186723039359650466544039926391457917257000993799356424942287861689100036051371803552106633255050429640255350246573805733822267118383784548456772269138872454112084894890807324295361244621196665229674165085284264501657183126979184154950929879207359012075421688551442089229540570253071557602311199681565635571322622995841569815583837687908346961489494990555134455163208497874525071061467004969778609667772026778500832361697104477395158163611958792407870519870999503463716211223645032020171032969063705038221110180439833204731934157284046420361186776191530925487568006414589420952223026782392819429759585289067136960596408428799144835026234884321910694103287624705816127524222481696731514821644407980505506473105505949372939388868330234144069796288043074276779172444309969483648875959970693773100322963334797554272512570185483304348584717006085213415830172722013516887814689716349384653732373398847915213143461758587585346494334341420678596783992648792145288057529931497420352903643475729821993956852885325216656724062088005544712788675041706629191875225168785540672097959251915354713956127340795823857836872496306937949737614547906114059961877287519193504608223171439934114500740695526020980104903809886083897019367858733748648281447042734070457249323529274002126162043488962969292468316249443567234654695315597058073010164905861660438867750418515285263980140323139497340763059480571841778123780099771832797818084565499778859385621148345984632055769241644263380245504343775097893258916300326568577824051903950796021915374933469553374570564021295201988042122130033033148154167579091812208395287748087489770955680563284706647525720797638464368700753846093322159949674898772028347185593677715461404782531755723724675730099738800170959112381098584732916135317789863920308450637147528627507811492491202694888544772996874852688605480154764992349076986782905953470358508644856564103874459718105414707806624728495443001839706100260356524844546891255252279065925355638841209263865681668687673326200925451570546782737263638529694104764498459817321905069451780872963142908536967035062282137438023997747096472814167244328083672049978469754705197825192567216688276348530056216079049301570895796222816016033085986899042910410758250725519308531124441188874522806485010038974506404983592690043806779671342821951762138086320909610667910943250648019658915723134556786714697038473392694171491432280893217488507930502348190400207931503307992037051926751981749862311224516335736137334812282215115031191549138748559016856736400864065622688710046367415048038180292405038975281787546499606764701570307635081220808312415218540135502617549596663476263259581404363560166970526928486550449957322666937374374973389953721689898232326106589766338913372960758280432382457273785422586546250249197436066595991217866415555265694387378142740025146074370180956662405012665904789640153879203193336768869089151412104021020971631602489484038197615849173524186399273822364471980477056450663846748461969561475821313782245527393118978293317503860251016489284007892075620972785458868112298972754730856651586406988452811314483753559628818387943893827203316000653417271483053664555714698358336141291769922286100316674068916488925815047447075173703186474906599282194190119006368462132048393522256931504490968976604265687747649693392291961301151680819528444300862717357799059428944006539643827886689495227261160553730952816419066566568464199095142016330343099401996608075555086655414067520646443844404708496549047528589892884046684580413210786304458696931083970368521945960447213112187892304650812868002573136216594393788830000066367044517760476692067542338826552029207575930069057899711239979653700041494732393633686228819493196486571456366592644106955622528124204021903112859518355661791701797713488295720004051193429185647188789168809139507407815242584732020407940364686799473511928708755886631741837609143522339969453485538009023406897496031769070509770907854208569848922502220249817492761307196224608567831987173995934059633105933373088698516763250851207885959828562670290113994429646247305146070982748092327776871915991026473856400078385792490312536959930061082453798725800214499379634615486723543073992769248738744189128117014568365689071313856628686208563442125955808281367162243165369453899227215328427917317171041633117102641758061599824612520946288394935196926402794571040994841381877867958074133528148132885032041837794268249441153415058981959884657219729010016569676258697432342238198816282603793674986368625148683244398152543748801331205731012960622391332702802060660959344072145850818925114682333293928187938545565282959845739820584509021751434884041833479452723078440306216454437400779209981937667603695444450134937804107556019056155476319030645432673940767903164642989303038862668989130901354055439793396117204035753067539591323575941613572127799736694657591936499302218515241565022052422659090208588990115754299581588929814326950693433220226651684560842936695393097930625115391718446695331622849478820575577416398253722199831650229922054866556191566844286298389938949509945225660432082268979791754817639074721226924748363989297408786715658348214083668589967095427480900584009796485646899858491888802058306788784912648323602015088061774537294621979287653258262350798998220003937413423041092705833168441352936920424253651404625100747316574569265283192169090825932721491257559075439927757164684905406979997522062472363742888665411353321813705626913118674406475329809321340849101401852811599730204530242108206865298089699900711137739568327849441745384721187385378108329959300969820089972742681845045703121123982131746352562529352113477404667176555068565301372104434634054936735727713012998422679132965651920425141085096331580306094630177656126438379402976902626538774496785186234246118941576476758831333864790191743206415169450948856353072248434492813384693926958375496704987103307306917145997656154144106755798199277421152710418846684206805782428061956159218732420119980329711238982071460738500451857205326661739900280106158465635349242262735642356594154866430655431179168549999644505197765868102983374675175927512848047512144764637660622085949086594959310295488622221057340949293096217235097295621972342174087805104259452942410328607269711811701607604731832890643773364865556908561922577401873367658636676966934583475650629428634176387295837783300018154290255252408379816180012239424570393584878870602014693002425881141784281362542028355599465825919849323343555556184348659526630711722560396774839736505255987138142649973567604864903644233203547200598246041212969082723809281334319884010642561635405736697558668935289292358665369046274735236446283997727287070088930606630498535138090655744043996475531395618489481426320614492813896654943442652869524611136888621990718120623929536102005258731946327351291047663594336301794730241339656683241077301424392086176347695305324960575438404391272983252087745676759185537161265633504367176983396065301280709785761819339736780576360083646970533551984052200602087012437681713833028496877213033902837286894742016945968216730051445665222137481288569041879427158765924138194529751664604761437140722488369220545953798175323417645206873154039535208273269489368260049508058329067400317793680714016727255126641351289528855803080596941744658773804284405630442142964672344280000932876568945079500491126992738820763306818184266932152005141409388275726520837999141473811150730687658689198996351061266881844465796079331307743622472178149960239756550480850341432271890948523883040096398395923688162667712117276838490167789870467070174746136446492544089744389882916954851983266538652949704059538758311772599643231779155325208972074811158532108841303919269415114967401110292739521959963207187240655850936002919137711550171362171660144616215558521910184500844535552306862918892975509110368824585591219198659015615223860523870924421498084667955657885873145485659784225152019316818522766847352502954898457960538628378061720808211997824822691330151115587121008028043246680449033169662912057899052189193425034920639183156531533605777161758444328339178398051238304065328102742089367520136763064181829373010823497381998842734300471569663061086906072752438510738766646171758838805784083624711058434068942022732643532914586858088104827110165210070410247117129352532327062178916905241066321932981944144880447742028181922411834562167138102980078999700525667952512511074221524329513901460229101571432740343802749186381891387810929101289411210099161755135054235905520337420350936189149108753461654572219161412035222037316873483760958736607900033446117816221648959231127169498364246799635804241239775408436820578719465086901403021114166724708168028045446010577565352189620216588376908291401082068352880001687936300911711933416801511807244705129280014893200239080932492968832745911234027552386139785376316033307390582850976669769344319243294652300331704780855200010131043131190695050716492737749952430509914385414730082158866693289473480598067936060917952547948048858156194737081728671633720399978246728065012479677316878593474761293667528181125322687163807011822363015195394219454477026806933409463870800153599008390839284261744308223606111672601868434187398213208168602738663436855241604482335229783807768253928704954539970375327542435280975543158821175581328562961971741141046169547960350925841050399022212123763782460387709970156378476575504731134297142860612679610980593546198332501383108185071825493152563270577195207876543099147621838238002264419294026367262220393938622150668404877734775926225371332032456323530502230563861596157052976926826205940885281882010034697280026495231186119877710520370399341336230105162957233390496003351768395571824024111665315432233051442494148997870893505491557787492541614907678496087212872787018543317992342472099107631193566257574083991650886364094973486054735556776638865630266023332748783047344885042126308439948614857779053155934411699488678502954147589441331705039647608800978636719380784691095366275909563986389792698459389473263697072875175115889286545396820318370982405324420943542649092171461859790755284525049881803183347070547134274365975425078021651394025181585496800614706985534308496525849378886417370579349062844965017253518402206058907281433803657296790531638494839246887220888450191514061740183425509441587294989272577810785483372433421841241393047138980203921762202822919034695302833115523912090699889219268592817396307287326280649926727594422824664612616673432836597429807026950263538322324359795774979095151285797569966123067383327104740494808550622458482672029828033171959776992727330191520653241251571442590028790424462734105286611161768348265195400344300236453592205220377845846955068751891701637848974914893447809864902149152748952280143827786376472350001027053592577154805945953465408764315698498159844689873907662910599156885025379917579323175700922777816576807946830241881585295422772701039256963858342868060514892938484231537304978197478350046333502578130379749789673246307737213180569604524827761439224641263722924404567379973289439461072135156165416014671018994985001037903761294820338877707714289965188670354766597654319303366538088219894075555315271287525146595569964444288140912555688466046141568849718993480099857481743936562471433022995550611410768444345546020407068891473559963554342109253255486846241460508130577565864765191546878658233682660936329629523503604991873681977707990448278305242397768466093380582754964260846487051100586385886416692164491787756162937457654009578681552693244402714340886857674939946963115202702211654952791845993947542737373756664298619790989640882245621136674403480506483789839474950151499386454900491792420237765319515608748852299199056687850450361783331443570136884732918134262087307262395013031403977291475202256208897851526816696233445363693838414364847858999608727986645918769315903550972006326250362244572178669768309963023849526585787298958300261093032636901966645262570070406287101867032017969916532357634135891121154269750534969077667725974235824239875265023551894699342651022637069034635986650769149597368185318847935853582725014967728415496961302782311951160418071772992555690984130301886788408885091015548025178042444080701422064319890527699392837982977744345223827454396745029349184643117805616564515538148141644662358297384299234579441734745840838844714109056890362898469147600585749483195301779769210858421070251658929825581988683993411697913706451727780965237128355344907271778444067303714494041321711652491595238356261204708711400053540639062657703838838471273830977161241308062941346152775217155388843520851036386143682809610456990047828550685423307234094162512242492640440625780245354654339023372738945245750972947283491477307039021987708610762896445782313908782146294243982357748011370612140353022766224708032548827204083435046616437193415222809280670910167948616094147973775820264857469002808238207523869663461310346728135425927036471087045203558172535042530214023822334921610618249847065702316484711538731713485089145898594181609640247142498147199095007218283779560733569341442456726209585870563385651007146426440757731702920507480239868639431232643747712042314941396003490630860942488544533249019567870930015891125051282565639974754643954428323914254900246651675672312584733306597027902295920224893121151988902523714933786468409300683594035294507020414143546682826471465133207488645587241935197550059189058005101886847286097832469377250602714834747241029469139194352120717627242511419744606797529687271800813144516006404116490224674144390637671506427720168345389858856923972562213628310016107593975349713511246422148221094754923472060737592794341939999461528692227624172760834273650577693961729245358544014065519328831528233431566176972497633774107452444752828282362778305023449432152589904820639151412804983273498125404045969873574284368814894483183533237733753319728858514698710312677568580128049583988688594702971914282246949917836561126063538213871698363185939909204846914642074400529858215200927328517018520943977719708296085268840963498180915444654640760254662560155479562337131897120273077513962406719638327399828544800766603889362542642499024231164251151311200243929328295390558951706874570797719504381868739178234662939624717414934267358599444324765885364714911027469736545387688479255135843553300167201121672779089646243920556242183679173367283288502013775786280694415711159044955412317557271925538532245139241180460063298214522081634613097289523773109374025489397687592492407727032960308161947474749910129390662692385397983601648044728325998201542672304846066378521763252522489012133721023569943194640381901111140558207221103940107769377368289925117765729280056134949961684449469993990797982022210502902400385213206264105644820241254855601652019804620525260396171862879279085946140018741516167228541622498516052069511828621065753035575372902826122497341244653546924136127587344387454715836237796721532387182916344698990630522961088012030599591584622430449688786945473585546418338385895932839859240857957946006956689919085171857555480463988576182804005698570821164652977362398707251211437579199876253869770949956520982276594166171365349493050114602721084763612189469587119204638705657133408171056042299805149518040613396030953381222941780516554205574131639433892905213638798790232182946731225734490494216458749706310868705467263543780303477998700179863564930963729074769556027701298191308681762452098117935685047296257876441625504434194020648086155135939049697803452230879233209169584110339731691908817232180175213381865977159002563838551419249931372018883218851313066733404334275750725977205456986087101778235264136340167832073943885219124333471852873491716913862459213841570544152038309503461468624367973558768769851663603838458929715528339632985671225551881690578404133321384544814886616249244137990701757343599970177822496262912567278319758949969812889848562728591000254839706901550869838301463179837005227502070776126170266084941052895484999243568054059587610878594532041109491152189210731568750911074576552915535222113044376313088403879234678646779356652834485908875273402018481303582311302413982287513408921032856238416768734811976835371208023383366561321780272743818242428847557878639853743062365847272418172841966881320078444135229153697005143149147507916190601270517289955249167374699344945956424268900342800223533738434357362145933381091100428657370230142388369500662183413873752901671048910441868252694257324403484890441142380672300400584697257695276875358867828307052535510339378826811376050339287238728803590172649736529420543248129246902405122298034873593854605991696046385985112135806073735357101833818753937621930022916540592431519571457473359474025853617090882078904066813938007088936673399113978154757551351878780262111049485181133879465276520617626308983789958674622230108662297577644357442708866543697726876551747720219585044686898779290488839987450326181585002016392556388525811033070268882276935082777325361475047478884968694306899512643542720878386001359211015510329483989005937202298559966101903062937131506166253386464710128279809357978294972189116656194618264152772386240309441904819204570903624270341009842299116881955649581233614365898107760039932359589200636223843776267704400681610801660292326928708549090383821980450784464334616380989583349756976805584334861795814416629434055041999046316079375575785306085608433348023607029653970947563980759712157112376849637291543612674247484090254042954368788360354440624510582299925631922393386364056115471465490110084547876053725166235503864480152786756557592410362530858680426339197028190082957131604412829434570335219733305401894628229302095401053063065287321938312882512936236389741230794504787448632500311569603690466812114157498950464370326533455166117843601310786614367876598105104879048548117958689710647837932290114930831881243230220303221216781195535679856864427383794547907849631523486936086364191688056754970127478691798112935880224906062426998637543992405505432264231534616612875143119178848805034695930374448722836504975389640580208999193680032230185928015026954220691900448683960676650381103277156955955547593147544903806333009615194517501538642201185231206136723192963428390369277284385268581054964674627833433459816055569195322684509478773488727015240294247520365781655149799968192005893640143753938029170158152442814445200742944771817236029128831543393569465502867543393228683461401254099933356697194317025320464847374517099057299534097630273696404047341214167176547421290427251574586998868649645462660850805947432837660991681540152649176059334611515845342478993919013275256321291332633022388452872680066003891822966850437835442471967243768468734564076382261984541786778432554079000459690287094584570187530601791674437350971013895919958279299966450382094017548557429587593080606133990186968050959151456535499493617038491824416612864486426075113094412575498517652058368382806491174331047361502545105434249860830069887153343212816814203235850886595286748016149207005236023630136117608368380476285348119064593716963925211681546154068331160589522439177515296951364474029183240942010857956719834328504880689954267644584791256946558368713216917044898613260619296040933049618067121466319415758665355634400826972395678220478286972338700828669914331227645965423275369244988450645827271644195882633319742519905477321450602758268841461735771123875462713223620716851721477481450589907789377388715467469932389069572897926414240569817571056354192083530098325216592331666815207909900486019439469497639211925363087474222483162048136068616975238814166119734303668496344875485635959355178274297271644178513480921729056372956188000094325738570215344549888368205320255599035840898215532104651295114364354993758016761014884626731710487128647158118105512313488895256550718495837934424632524173024919238462701516033070203698445164993879812669032721400789345396782726260940323933076726082715895708620753582357568162957453656893475666838529766164865756554399424274902067052760391342283748977541622551478318089439043407701420413101556859891367869456328259207733286417357570931673140256715990720447896039511957686734602327139671952499886536376158209925925906723768094898540757859543140061993763945584142604689613586442702398601722591833746822290673235279738554069631345983155715106104012560381636388775278939378476004614147429002323349999576660890158743679223187097881087660496891541499821870473598087335221162522931367139545184071931732966317106194852048105881252160297412168095272640828961415692974475782655652387189588870107386119802396369661382279207345956885380309106354539374761506264844663644687904715073133932939289562263059990822817938518258953586844733234211345121143298938679905214744562102711975644877774045005358640190453941953297888281685464768406311179340262329485116819907128153368482714182454735923487513976019332448280178881867010060880408362037960514464048078881440979145934276294798321245914897791023193071700709763723099606559307950213258308181164728351481418401325156924088421871722228027055958348153426395377377603037642128830723344764611284836457107311889138370447465974554595129570080307271534364679353452096699726765785687861177166752570339329129535231597746532905902816654286667423271839231815195897945268852890099305630590974409739486826818273524222279387224432249827610839212128293592910517945263708473466189471019981286410995058013169935264452124849261189786541256319018006245037875011057823607353736017464818637923949558640851440752296214240188121756481816982738671360458973325677092248771617842264847572064521003275972889343311879411875844446194543744469781610249518338531615297438023914922420655956326009506317495212497393534800873480581299971721317831353925165856647453659445152967302004324441522058174478425585175847918557031922027691497951870749277698309824994746362660380698873699022711850550466512643489891208398938734627905196592587963920421203328475762440424814254186309818707855621368514899849493435576195951801745825036062890879929887502092667097589141655058655524538189350593727580019233488643002218993507472260228879144553478889997355431997795822624357809256995986134852348881697641973099771258792809461411831859466530809191726748332527224171150133759456075983903496201082440372575480381456153942280365065585856381608989913984585821902344095566436730156557879393054895551250743283206297384622597011281881532583714708799730523230082240658855039529920065598443727693850478494216905617222380255339716496632087998938309320687249375704656847147298586725923120716942443488532422234622606236218087315681732995839397886109168513213565999610902292157273672823429895871328663663772204006688830971561321093856560621225223343529399785937357306457680963534720817589417194632191043791521933478493799915241788007592377031093537146161256263954070037934925658737453542051902954675791031575415242347408543597207618037343564033801421779461899184757899731334271833003654977312710868759886488249038097900871315762445764966275742823987548084892717355552539469430865989616215978742400424738492687615557452520428864815206994901401803799703276891453038231359786547415627892130483737874119953315998111531606150596446294075858306698104197890744091823557913587844222062391636373810783105147279781995767195127024785450637625685348930843268657587774226211516444604185754497835655981943983727844277098482887522614643113945360261275064001893193294058213912454554914946907318197176860017592381007477896303051977985344962465188549609939363384622506417316502898451920517275164958569990376342590018019358502543097700700774450787120611579522321874461420578657511880770825542687473536488406167511186713212961057894851041105077382569695399094616399335719022832273671238292924322992252001389449555108927571574690115404386058664728870786091605193259126464158762923857512128809460070027444183286787173927945442027065464503472088740171040742307260065461618745025059455569609794826027806989640326486169865624261219775749679652550150706154962723692390304868441244957588135677095566539609361513182293318836314391770113246306382711671786968337054682722114545173986760376418197214539772504169912000131439751926782840083434748248982838908725655403043225540555336054132977152770591293205670694699450080162876694693135517340208501408380379300164436903021541727951195151812493633946002887146958214677944771492038157282941593369050128995271892860259555962129708506942464762543872817760764467318201688433938767255423943458118184485125877818082040887451650569721503680468335711554660657673736904745615458312252616214380519804162163789446480267432170686711408991702715267989454075349663603741073856780963605928560859048166897996534227497715580571268233524675356566121070026240044695755272530251121803382118040695066986343471923549714461052701896979555734242984848606816488608907015695168076454222749417984398895471231681999714627743263633914246406173604905212775996696611198574811281226193532141975408310562604655560016358362264554448584054881274674246276245655221030592921754630119046941870385382793625872639874894152499994948097608234787030120535991227857332098071861863727736733277762112428110249979382713908002538564797546327305984260278119577496360183597495739818578444994025143043414424292387922354795142836547729109283059105235429636918262357949217514383369017868282045092940087297250498626376174524118263875851232224334522647670031298569645057225378450633073118391527930924569719284648008112852733087272600528292690559153163111050136001170921048575028516700709588592695639481198221375015895146663297108313619074028442659708524674137078245988769582484173215159717102535958655925084348819401591159121035600307424292003366858501283586662710868298554818101741083983061777143977851344323384346880022438781355640750151978812741269300068227377663807137070025023766503643837223674889756946561146875257632602885487371080801269229763951519282393718668329120234978923802612491142308552344467489256254769502373309133232416115304689281636104729235071089342314451945638103902164022195661184896763583794887719155390861416507883753584733724949219226628379419633223134219925725640179065620494909310482964237406183871498963085346128211370602966686730108126954974348390901814267471741919276082844065296752140732019080609594247356752285455780575007934049404553304817832273054695074450442670330060689933057510453389453096710742998591442503087894014226485255762198073585654333627383626660513509059462348731729903617616211707480565166047740192096070474648843041095383021447035707786763908927554375372912421009756873142177312083382954018356743225681100949343136226134374905246229745718219134839090518368079800449245112594385554261847433220688389223904486760400129113310276510869972219122147862401221846700442214814787475880915780837003066278159386842317688223629574197816140143422473700580209315790470311740670950342485721062140453358544473736143871539211067658040889967914892099642275360014621505590054372292009373899992825769622416518857613562184633409876079061078912493715872503372153901738114608901474221583133090119309291563877761968952909753873225734590634190094125166106953392667326011012412609733733542963076433916358920784013120550735331343925227117209465031797652020880603284930004836764799479697346651470542541659907663338193443051676937273355948784121902988760649745644031455064096390139026559234356650000616093280479330641294664219920030436922262750295050434942264750878178331464992048022019113924688038988137638602420995207259055595758533633079452396733289821712610801484593975522699556660124125973426747187174793980763522731424704299254943294934882750421301207413253251246426754967770176824116153826025687224558769644655146913415994092878960898314049088937296929411773453296136035396197508966012936866296663676373252250908381372837727031550586304704024382391477086198835571374638554226095464256998576736862367415398732163983380508936682832987948717294209308814518263792302325316500111134982154665280413608690538142323839126676707217252278846555058854643632962879383589911387094411809368397837558111219615688773482648744601013214809057446541589453155655809223831081779816344696030217908241760750997118563104750931493750012260188140522679977003553216648252728968686277742186733241691232617583451866258393556222377607223040876079522555712430824732757090752439218330235221258866849850114884495200080352487232538527499714329089754960985816965850997558335147019601919281916537085941456537796969771726711060082876752849051412059305723714854530342032396681900750862929345567578845261326087839571600041298610705903652476404174637134691125049283571583171993806859765468990554727558313820581744220655984158360328179709664111934462046743437793331597347017777808602673830153000630797211301013186901216010028378151096846606849134531951165222962535665543576694875914372969193217081820105798910008928554747609620870601121884915047992443624227656737015108468651392571512008372108236586580419886118713133052012187337884432501777714274914860479504485244722376570354684184562318134732675391710467094488909702916938384174892801777373113569159507953257669370249474053693668483475549151446484005960475331428049352703714531144124783781009272460641953794171443448474038601462368441200037798632511089318925304418458309493857536288034101801615050398340159688466807070740925659032456117326538664401804571742625675525911647778167093189411443647129447059867524408745237175205873293436956215978628645054999731073415473992230178651389059592423058274286955036638908660439011258630086954189807313540901907901408235239344446178193697141885594659880863434387594549938199227767092580328270531526896330863108702919864490793846163469695385998459181968617549995456271796413946539348685087755157168449069260748042553341598742579464832383888312920118716239329740235670879553842031970781117462415707169282211067958671007870475514836635921244898475860012027358849765454173984660936233430375737367923309652297501567937204052137336239922463745870002952780335595814880193056159720486979734031790578874942345197331176012768446141556945437060811468770709389285295977802301246750412834873330522987668109834122350844330752404100755324548656471062790135363143768982803255130972952656963122610488799115486180060012850775940547836015804753584359421936460922316121993532547326505045324035814804289038651761629333998494735794631940524975174616738934028036921469340822786916430477995696431928034451349165095178030635789652092330154225139186403069226229679598075436567483133859543322699909466686856645795221328841044641119254531715268964405937964999546450376617243355332017557278288757047484704285034661827989708558877154878360179747404794976199577580506458351411844864077189361666417196367158157401899401514932460312500947777415349447167053107473719459193629050236823583336889137394975876278578366124941473998292411067197357890600150919713703536371095917666714422770143593152393012071107325849765314206516068337796840464383564048861000087168699209306529721588332113495790538469662844561244397755141255245333596929712770768446923670779795780101792442404847395469680427974938858179336209089703803685779061232769444181746389818786978199091368728314676135359471774832426386514822118960586742561657599550683509186830536389121614389107282351636557173680794136901925311939629994505883787417527429980928703173189504760852112915727512969891171876701083143115336241248206722334541527265725366401079549679034638441009786099501593371545143667531878474793240923307078621307982040082740991429639935645099924913066708838807966009757507471587240173163107290323763674951502300378008692144028934994947513268508603135176102812680475341024838969096546391047572088480974613865455541316640638480973213849646696834410836557362904126597431768745897078010273928332577600920411973623923720126698759116350117349309874946387536003123366923159709342561649068373974563694198417141019117400546336560860843702591751450537995822406263003524084499600025462065972827416203316930000812236100611648160009482509642069422208828031087776187068650018224707136997592265608013022513737772238452828216747878655798131847284981144595798867113453253265269529960434809789421814733780796164429788345592499515655062949738560079885026692298012076922299229998613102097672769950282998227424643924212571375202748327202852566332236120429842323938151172679766212126021134286957770719818219394188412220743467178051474077094462424829423170489296067812661311991845444844630612410596089005666134529930107813927681028984465066464232777567900681747748270732536099359311245272329493919306647822452902608884362915321486441578707827579076734611574498939590710556051318347857688684561842712984996378552857099770096685875536615018811785418415533211717476748763482811580028024607807068585831745858477498300579748210838338849547219476078190819332656818878594351163872351727970279763671155344018502322013745385712463158500462697497798643830470040526037341559800201165327579985694522685762631594919441568479869021567025420527767223309594162978412502401160838328685527058799379126345503040346747026756221330296627179748627742175961450866053093403057431980476379439511703537076998790127282393925273985750078168533679555461987658562542656634651848780913259275132504965993249839275130383988267365390852066503623525717995674658284633324076458924616283603123666336621452042745045726056831121025194383391434852417716222057164366156029825839910500900181771490417239238288809419958381329853339589957353556607504605582937702759755428633880799037070523147680783736628432624419791491131500969183108567522572089263759466559157708289561178305562674914075846834236850759967451864878630636755879925374606340870251278774299125468396487806659257846192259921556478304757059315414046765208112733902283762712053037508406829008495777076434021483094089641103791216500267480027503994999410997001476989817503207061870037737986246771439686022603004306253510437197205192378015269503298440723363788236106966963627979893794735045563429845307759134836694544319454835751495364745000678138148965185434885845100125842098283788911790683083103374247512258072294864923754341937182582843890506535497333898115101633380064525171644808755878497526076705105488753672739381563410528634785403632458429242647150090172611166677315025035346561259406395199960816235297000721712699918318533080349122849326005742410743602870244273019385599629525871194434984197505968468135948085298281613939819016430638969492947159584151285832633737401376251681177686142071492668144375389914924256954517248357941991317369910059950457804252088473355769245374508140247030833763901545207368641240062328622527845982852908591293263126235479862428401842854780230882132510606088196342336651937592954855480212491103242666064697217410186227176710083054812980518464232305220958307882439187520313784498273641318514724488431257717672713231920158099271719856294746218224841330877891400739046339031497363036085946735937637033604431051293737782718800508590320755978507466341059819661058935227664825711769811079783303532862053857182488835179288786650262940862591772596740353107305793424720614627564548034691942706957031999442480973906697071790630881935537046327046639153871497929998522498328138927481123075651636565953492433698792041199332276208714453848281840707759981113330994470582532175814067941003769107473661249182958477719195760184335764362316011378974422608957082091929610994206945872396229526946859555430801055219760056130540506460764834880406400819821423290410297106109492479857272870510767354336156126717345076844861469237694487270075266288328948712745424859467504915005128118346700954922458563808333404403788622408218147438638998189748011520772488048766221195428279522203772221008434023339265091318275288952246587869165958229861166793910663101085218414153614542212181394085852478587747574819108381945450873720163786170049356573928339841822625252042510219898502873273447014004138206607516530790111569405107873738033340308546597016860838560496318559709612028219196219089035682673299243565484211299769491889892363398472349495176357962321507990060049067923136309429085711499043258518732834626054474902333577145651077793450094259994699818340551836747193704295200063678527868751955730957969566584584238887521318417730881203985362977909110091441908226963623706504715475899783592271666909122614483473445739989649992156522327985899524027652695073408881131262661938815558862457320005593299968341298935516261627026952294062583428787106812211857859712939319481990944357930976212165984011701127747802521513230048667647480756035446863535823215958005545452246446803526575538388474087017627908672614975160016029754531427701892628680080563157525026168424695348485730156530606232196460743795924180603364799612043861706578796643345597410995145735438717336534753442583740245079631489278932623993963189941749988884497580582856120494416180685091352026162929454427620813977954525236329228105440940886420786259817800730649945484520444835880443104600105095479113424560829566719053846460174795548357746264500236923280497689459064209117511782268266626847158205603136930975148040688571957524772814291629082295719524326307309998366282081888750121273522088932088018490877116305287236458477516143463082206061354281230387649448080735860503974496606426781401990166141549461105465917081631246648317613046567911264754998639712587384020680648355051635668317129381697084997494711559916221573325150451506983908631212625668458051497722896856165554811849854047201600684158250751262405374963497154168898737372082639450403110798103081490992788497426427047861729355020554468345824411433487512929653927219558119106250544387400548944273881991775273321923233026819499283984935001532361787834840824676423073890387515971818712094356111937706308788824651356871327548352886672276044821332463430247562203981551136845528423864232766232477225962194403847611339066133583100106062857980748666128981125226633291868586955674085364068512009138133924811169212465176849913185361222264269719074065909173831401406968000825920295107159328447746362902882575814989626295012790847587193974220801581691440592059008089809686584585593753394876218181375473845600902671704369544965812810167196526392859170409724977600570360970188573931442734681325882341056826693336179502216354253046573539042335667304265921746102855939408795910204711399679245990229483221632212460662163242388915157070904418675598953550677864007052507946965458731367786368375846529580743862316310099302389571150145956531724179665606476758802115185779343505697195081614954554225430409382811499082363478817651863147700819689717924494399111621234405521077844250617013378418287659292192551591163626516240200926719381591683788297013611910993811407744048457529130613285652064030459278150898451617831047101048684867937570718628251017339252032522269784844970708088224267678471588052619929039166093604937122030263399862165328032711400561711721810980971608137548033786848072138410273857001518186948935895546826393667958667202097000407461236158955734521554544841897450292411742977649820744371429219808838191595615387120061308830383404279637884574099342221802788319670151124618201658230490368820115795675264702277017416163908246815568811443279212120857712161089513729621534332445274785055311593773887798115409504962671411799716520087626928884896608105765649247146581564690584742692881688339521439956685965826883015424911463153490772379322509505166844415926143033087622755474751883107856128853728405469408573463400240569754688982178917796144589243307238479887373781341783721843034050328154035812329854426836923902578333801624388360259692639479978578087603793109638066192121524210198011094927881617742232960029518768300096491909814727607901031227270513362595765257165012814780793261777467585607983881905274704998596901124083866045813424641387237618843292683063062602345919443055842090864093861134660436306642049085046914371965819063064693108123485405496562117173358921257299475063876595205656359393118019710666850282845875364658518343592171093336879898456615409636966654265237617603756750349542065960552114510132791109357791904926076749785284504146797550412743493460166039735862735988395659980313046894804180428160056400738837012017636419924304268647767609911758828598247281915184548506485981727255150268112355798139622199311375432638184146537434332737723730558130379704711714120988135840259479933589394696226950644437723932873533016966415288290409493569057109298206098611977712595818119861353420699832974813448028697005766127136081206173801282006012201723189405398775151617302087447429600119286921805487971489151575728031382002484917793884734064646239875443576693415862942602585302332839941546498126629244255406593367224366269406630207117991203621481833595859456787389104328152613949328638906326188212575065295303447426675449539025102286618010391097943705873133319266920973935215100223299581437742601495496606447411963735227128286640685982163452209983833242278313114950541023282470280686232920911934242696816719503976940194412962550423344787278835408247335442568845543654146176125360535405763556490447829126676711599879124124031821642014280497524066506966940104124761939983748802968255697295898173586958905547483766279995568474659603763745609694457661348031870840459309776261327451090069405970427508392111659223892970578180929849582124022953699664337733323537328925378586136087248186875579429902757418181525781837432763531007325347064591681779074603643136475843097869642463035028849889802144982035427604090360492127783835428146846521909791710602832881517128801029814460421123765520399267652236356092888348422583098470308355745908673454885622075863381372515888682938164289648633328162572228801379357958390115779325639432642259763862929351549063624458220779925825175299373941819586656761447902405725340336707687045499184719454587808446211963953315798095716017610354802952048514993067998809208054791939690201645587950595115578515426892317263479988496327637624275909319606463670700648613459245120383617065326183572706490248369810152129937785197013880520456273540894998748462330975064860057995258085532309244012663710521657208181223298607144901727573436788862869559145706176933466908927994610527533913891620869391177087907573993829638859181745985680597191048728764394812322884495732269630380819314205424461704982059492107652049262453469358250784516415450376241186637879692141672681241369544664211832503004281773753066986134848827395517266025427275484794810701632897966085913146691092634025809284087113084160312325625376686858342169797784386030163743214246881501457505834915083698605440947615138847492280160220221914882527413869032190349139914840914174564347726203948320269019255383346637463218155050611382412606110992538187205248315424251873290657140135211980242653133423543078520140361135184131579966774445680118911786311641848162535707318849914741076875400548450352924995384691434077614953655210033061532732138241176700362985845448405197657381885842032758262616550786222240702214155069072117066939198366129503656558946187466069445897332506079369155807844197732228565419016051515629719617230328032872316702324755220825716705985425503670890645224984141749929705125034254811344574050844193774936085980414153826417247156471434638432887463345089449994002878139496163288409559291110585838112336095060389793477883561397825840276960843741009325976741429917847623703407265136580440505432908485857386689367660301618549468144065444189702050373881801473645753323345798837073228123698713980548510823705738700303946351329648922985256105044266748513414316070660958844867850030485075675874764240080841373123538398667959291904230590918747101689599582569480327595534234146395365166054519932086794957558209065808743907099063340703947787635342627627543344737912091723970302148084514580597985661874558644284766759885404110718505200380477485028443687477887949788468607009300320942164444722349653037314922508532728059637900250831339392866256549758348594682539421641370263933430321365165193966302801085656157721872853190523282019220636140472987119735259260333090224713582707285941719750570515240077323151262118134452752459856475736092878833675960132570900608268712534483854967812754162604404776522930167587829884094178796731168236464377607115970283402527750380582923684346649857203386172159157844684272929531144566870385947097687843203389793878922740859885097474774612585292848855248084018782914219797494942679708679826768448515506419912709362578557986957158405136437454398871621736334721005149647596557972860504944227393166750224534241454822517696148246369708439157289096255638569971515330848665402300918759049215167801204934708184582267862069620117712587811573036003834977090560879915923052948384397677630015684422808081250574913371349991567343464575609086211445544444302154419105592032314837963259393937762403600475412782872747972847649257059284371380378804830772901313336661788587110629023435482587880996430654178498087620115322728437367084912307812021022003613244050781599934333347276376321015651582359428382204856134993707027871270743526720759624310835302085141520353867842700061624778229839534910190024643297145294770812011348589654121894179827971299629477588985470858185587719152736553457956552321133904953331086205221559337954210980407592871610837211580186846381321500872159846617301973245715982782675913692900015760213324068573284534568151607442855410302254109342226637395921006446982048181077765657636988731623470393288165556105881682274383972751443677355737720649229499096428369743421481948528762123943434035687395615543225828383775083365454303516510406354549026157317947513965384828478665950546838390262965364789558118981339603822780427189290541710029538966193956126442754938134152380896721005880999865532868806040295471222495051356773545503251088697512688935752974587627220045466542866927746600212371637154521571490166710320644536497574895595806228580920535223882840891006573424759600095792629943530646418796817072682656969904652383035957131466012519065999875973142854595961682583126848391711520052784433858471551290267277197041106889848345408105753576649887032978143426941327923176057580180060414094037562040514727655508264791310158907210468769153016790879275941682952663686633062758046323055848215377742578638341648571528316502846403052077742017134596506328908646156505079441391307987738829014782486845190007926473325257959526359887051571320576897809098928834644757878509076620990122816471294711723468670780833197478966335306576224048573003583852947112091747541744478520196729815483524765080647992209236443174819744829856034108697179988548656053435471781206835363671131143967732910645968286499765258680574250973908115968939882499483842241401137975581870600444788718212371804235902795981298681460906260002700785609916209984528110446322022989290597248467200312611280539808129697483940281007934903750429039104753251300884058097527811877010986418694712982073802230817924216606870524882380112346532955182785969079869794460655959586271039265899617843082172986217499800958722353227246589837827786548747821916468465414362294585941241734386731603715971014312690479299207938104154139085007271297849496983268408829480138513181194832802168777165582094281812133002740694138178718001863263480185838146980741493987298841052056784806691283001841884924734392313904304153708219741851314209250718139570848992581187966047194069840456834232978828312344674961838882523294305325045819095459475704060523902718761409459928749410475993253753683730210448788492156533898235566722578998303870069212889673177614802481028418600416506271910736807820004739842443449082761994641585622987986296211896147869706691334531999101383458279882334148160660688920764269451057636197317684069917271721086143035885824471625978646919631621348192010326564075076350799655565538045467845519961421081478884079394319795163749843139547433063256382613221310254140894465797319301974486447056883315493034256309673750801732035447798789083027823692207169864245960922341298676697518473345403084302300686427958046932810123591860510576718435067756947563612484794755201362987568729366840185907919716222894579549570986410715881649659366727452266506709993897848535042815968546606657858341810609385600886925944442437374407821893597879533885919423021539183855718183937527282588209090745909616240493776341344190501579335081646366779203580544149555423084498346582829398833401590517068714602983690932797767689259006348837328036211053517687726954846466581612330186704490803754914464775502779289270325633828174524239749616358435832871844520846071424080395326477790274107555466519335253293293193270700375082435839355927599544164148926465307963706267495345761553237048532004403055038308093269734773211673577262864857070004158073006251903023105175981110939122668909811912049374069895661655780137245809280379275182247279102755478090854371821565393311578520586838059275462458097080095984707494072620149223397775307972451409646493703507816620909517373276247617215274604935891065119901229290186320665953109254150102579722333387012163086974375504514233987074155392629520263540418468093816694857443664754393817378464477688915787211872781551738736983365423955946926487471854764557639732132977253997042898042992464635765622250601614925285834104804931000308315342231854875635562038499515578373029121866109767984594941051339074155140754628111246718500257504156677346038998658860560685499275213335199734914111972751819169866706883170501148929510702606378707290580959755194810003752805044787744899166448177520135471098403465407987363802364423321244060453466285932542923701424759683080684990530376265959983930915022392470160669727918161899770299321105542204992613072362447418757264536181887120746249765716008417272937167979001915863782764446905305077825690046820889812734438455173355859810332238809936903173343572625694872528369306912300628267309899820273184959906097670046703056152743078378390737150465284531744219517470647699177205491267777847009368246500573226045781213207293516841100313485844493988758476016815849499767216536689898416154877582906531828103603112268051377234041044391057307771611975445148436891683984896236909349491598492726825614398092023664570564005392898676110491589504930813411489364657080064452844979635795148515971577045081047263237000822145119103464743181697228684067234683201274745032030278343799977015532435114253287568238750019448834062799081410203147886693947414947362687160240716218283112318494571811560305234955478691182139166596432891958071487928893607673246040173688480881834887205102182393327681426328767660500441857746049394984668167483746146282497269963685602072497510870621338661854261864569592888991917506665872832830846747169157481984536051803561452526140395337405947468804408069750055919856913754975820955787049612238671861907905096592744997031421939588561493334914414309887433035384052200862886392463046881697356521133296444521439822094863258038803983157799112492193900030572740381233877817361952201945862343214029858520156307132780243913195945781559247081933538438165035816323087863531408935695897274104426606030080143367627382608562645623875535948520416296836724188103867438731171526049183788251955479800130021633835445334565989464985683801994488610409750450540161150606186102454822174800216009083907575517047918526392473325087459263841245334428031169925785988543247031474284893342665483058834338287747431980968067699055017286006794525569705609837194512198900493302050069439234073671813204952815209270130496352420814799130615286670999073890576395535099347083861161414122260429315135432547292493362613496144221845556171744532366688400845484970962047830780528010457292225644748828513302259582108181025347072508371970015218168601938817097346542366488625715533199695486504171888715152197621222462597830488533345475890730703604080485219552188374270817581924898349222037589946991403855738121645589982476891547021087217601194254409730161888075912888040803300893571127759196983264619011416668767364331855991619437062363787455097249244355050155708947600227991434149510696817981836952873870503584435656358792029691612974590166706942884620763580155211814461620765175207735556770040859388802921910730268035234177717856565575944042318318599421754525006726435065395594897609526594417495621368502996367491690887502276079661208543930983308828931300495640077359574879117737037076486606250433332306487472474105634094274300425403507259033556694381078088457168166226853036769242687638114564529460515699824644271112081035188163882373932245950893740380057965700675804573847554387923967318696762775589874098687410518261656949236540759533738842727736631426935755587737935172216129752907329203405645150590627471082527300847879321594665577282469271424998141768281041449908039903029368336086659598701198010449854402634539636850054220051095405300057834839295906766638816038267786758024320981209130080672585146588683771666958802011895137922187228707641075142511317272609329263708076852970231378551752007964460154848812020086209140500310551239554914210448556143174015191769850982222709005495908746994686746895744490026266275573336528894267729986274974990532763623712217477122946051335398175284051914432517165074864199462064933372409744586885768028059106226125825730755540826093391384839708748873140818517926893898658528008041165076838075182609471465678185255447725093860011823342409186039563029565986897863193520229689479867252782504736106933467488485252690312108685313194105649092612301688584461097475282721266354762259468971509817491404002272533590478017710783740961168153229904377412192710806430378344888819562432603467795657661979741265428661718240488547284693696427675761092578549696862878436440598972885360712689887507556770077509765745572170201020101391217280599762623885368049485209479253750755120891620120196957996107121130113960028692038463667916331743412271094260542159131159824545114019129732265743586564281735050788838821912727104090303669764409381643519014867028506558121224071723422520980174135952851795371498749029200633508637556640822616404651749850139564644800985338073228444104561331230542238540293724699510702895266979861237564396415235395801699990474568799364433239276793018470216030866283518723211351660642104366649766345682982096366488433133097855043134559125177769606749577479402206374880691580594577180101998889441953962942199757374202533253128906442651075880708451741143323488451485539182757983603533849909056014448334996735077554540747176675027955328415504879531358770922595700806068292243614993960048374977566459886397909005668694883448455257651597416400335878047410027416848322043599302676178693417072193116146654132361118107677580671330167129820638402319668314407567042170467344876703374318084214953017740249908526035207406209872859136161560688804296943992269263760291194918792264113355757124456885016832556876167828023280709217388210926669043295481403771999960064282407243471419890549843142041764764733715542414580150291978404237520904008407772963269062407091089037849200309482000038719394193195337285555768874413552992918818609041644336678874084144352452445088494556475392754167125210982467778287722460670293386119908649213840078616197384461731121786151367141943002684305194487634423208912790236373397375971085261307957442661944075011504022855312543093802798163834083596944938873555614154633842341580892944171648970079026173044737963116400792014754157411947864805250070380943767325596221272231307607882493391128618349278643972467241687827780069548615069808635417037763347343213522756127157869338945269670472909859425869625606959357510804534064771359831531632207762620675439257000446875113435735451923623773118137556807834701927154157136512353118164462181399150890240775758783039878242750189371300855166200367268329591093013415001655893906236973187086368428604518784270794323366183465468351793447569503676410735213375611130314600573742109008713467514635317175804575543159793693786376085397064193323937026840558063041932175009794324435873650551343487618203714995331337771466191872881954748140997229183959878400479851529168338236419868905042982942493826172208779607699815545408050063113592056245853535778421491536126984551740199440778761320702812325701564610242690107161569051778067093209327225722369385155312789272185158208327868213388838401261345901949682109039442118128448387179902584119804905096564037477744885077583073138087053532095102129612028885583590841021558601179358772752286009906038452224190487377496767981396340965021275610241455134440385150664644763687092284232643565367565762958754345099213405356825908670008048720921938192449524733883690759084984522566234882743716686916435178383087912616786115538071223235561460131241747466840398718779093244619259604122801610055847924110440839625501540764117768228183734752966480212664435960485571765577284521931234318456140840399572273640895209765530300436430344252701676743321819221388153905119613955476875104205204842703719138697389528325424712247700563394768084847895907728606439186985966767067733946394078209951180896429734583779960813926441087365117823384372202043589291576557752232394063390325625375959220249927612046335049210508903139827364608648870964837599920348308545697564279914215671921321737255846436650758393228917010277992741846699045706440590622449948860418866391503319352168591710380432939722941457255982265942725844032539482147807543508838966155675802002711949664193453051486552291931697369459046833507451138545720442517253017163765883924725706587733024771208956405754064834740667617961945393878728550095683076711293814920271530709101948184516193018121910097631675205199864883522139114532425536066172777813168826713306477603076551360057878586876573059671989718348141571376757221481632833796174912679903942272668045073746392730504812656188538069886538864874221925345259810842452227064498277990705894161077888196539065622149345989057821496905502326682170704452225053843458164085549199302794663723412809011552627057258186064256642872053815006271487606426270266712837150888618720647127396407585510924339523545009746653752553436945020309191231603616480513867389960832501624598118576501566757379558493521570732965240308359304982490697472582755350834378284834151071007907930485998705645798686353570909043094526392659110582192968514587052405656968839015627798955730498323650352679428663211390593940280611160502184619662073223576671766796027627972495226139484573593742172943143258869782898400417392670068109290360473714888229538141402453030702110169290526043229002326766818699521300962863498383166247974979411348461549991288942122577361275028034771138903645291986275620202463721466544683928322010206184250593734564530132343832880397306832976580291417157953050584609760753885469063861705666792653454146177968741104369419064258577996532121415090218121258325444892491104542303625741013694694050499719073136293663715089951203162007679550326827069830501974595322317672811518419947569555195765648692929899781906899208859077180083936182711181729245760382515432894903368444038987182868765068206086840462101001943907527872493332223547746935134904911410796128854916543015331886548343466789294352145325667058564374557906536829670164525055492167603642596286536253465625729873310135383947565236963341541231060106660571882533301000356898304734555173796263197943982172858940551824672674326367570054221891731085821177485497752495902883897788995512727979121267915437975056184610963972566076226950465786842777954656443376642712859024209463271321279033482055000439016939544630351234830574016567927773031747738063998540540742311149810409832370667809056621363638888588777812662260358999219244333635735800527405837368351033377451804783606635796830913993068493544443155296174809748425596486160625993495331097663225462632765855211712889265780240429338182806839974063606652074806132691562197136382212455723365726698268957361112512421473976880642543291920427653769980237680679363438972623897173282363319576075414886142014581838404415958584701448108223444124525689052801398888999681664630204965131367164431640899582711816463564853289866015253066193675590249714883078228053391397656076546442592673099198432231539149265004272616509681169657311179240273543566737956235851111183901778800095757488533744580777684808959053527854696226190975186128973948910197911172349325780837723694063557374355206619183752360389644735644664655934462077078980474382710654356831728830122773375874367240392568106764112431510266963894750621319099386109207488332990548072794920271637429460253323730773952137561505289705337513957333032832348543187050744492577948257872407341212500785787559287780449549982425925197659207223336805602791594076594540116588171145313056395160732002870403974253228583142048058977745318615360452934977811358362395330101506850030399942580795644346056945280226691009921326005816836527715887492540637939126720241099731233837479156968592166383661952384639469083392766462321635257202860692126978807402000304443103235233368461155019423703844846660573707397553801071598576641077042281827615202662578471148329640393163156640732599923280865895971059081199906303378008499008659805730352769790740062507848744557271196347905876586366351244541202865930310887704765574482745534110168763723602675152158733114660129775416174038231634067420276902420778709333640212112753042327542630033258454763792878510704703162006784235895422602992499450166224288299753684442541444233542975927722006579712174458134155404352764520520874666564905112845167742018722053511796229405171072651680415228704825737364218639665258155470700471655856004009264529877602342121207598700308639249909941142353465536029593304278707180827513328342724856809673175481060800778536921653825690710250168300452023885984370174716219030107761174574793640137383256976124781708098241664057105480370120847475525385952740780827143207999174557668616598588001322364701588307885655747525700030177724753541023203587876928898815305749501223237402866193760336245848418068113903627329198582257592233236029086910816122427522536422830652976610537523984808021750275866918440782263572241563730582357174590866090920104224377288098961049364707203230911303420268860059259747631331199217684196513603925691248422239098179253003232078301195748657099751035712700771298504635886295422051780156898553821087921799159416423127608047515052318975447783249959322499719357065227735636848512051983768846746021602294715815650465989866097816118220394575644072022436724375555489240923764539390571630593505357589394660524941555369098127777581954184732176787979609657360375416547067213064017743036412365283404260980932782940126899442134082310650181877141086037743069918788852624876966994748456127764122053356506349167000618836431179777608014667638596634982281538506184004819709379585200534390297961695178020815323965381705824681796327339750301634430844435023364690998546318202521025102873439327348934520227012936680814668696621779064236556426500579631119790146114057658292760285078536169017758445432234472400229676335908056060701678409183941408889431742239478933783946808982633863194558386260263220708100505381468414312270757588112546012736660109504354048676562871412963559693744271600787845178251843961972394115848096588222720780253459164769228419456203073864840596945142617672300072876033817583011406589472789324833618586936268131545101844999898130904336056811862775413140443895744667586583383533914272999908949405876855129445967313844644110838203482503399047108216540525677707976351903469326201105954482606469897351079845687877391229983465157206150763906704997417365732416493757019541707080030275660751102464156171555039352066025644088745625481094711354571781903461342311248174293971742514797218437163135759585326065008410941054694345015804353535287598216849126310195025386610140399348868201743569804554797932986339376561410353554485572099210921967725685828512950366206305861656843154682810616314898448141688689608475715229696772385697115306945915492970083964071826151026954030929692289786956638570354647851245951624915846332331531079988108709751625745237481866874447616654180241413827267881399121115944534345489418221590106434376684521675635795258526982487803919039818319400231944710250591677839032616489553263662714923325083682325048297055831220419639970581651176823205951393303375183034557635747846511841423803471592824060369023789403893659582381906454422372263320596951897079678476548412203719724449482348828122764628094166038372692320842387627966616582445184237335400576929440378220692690664071361988840457306370852741194187277320629797728001735133802747813828562192366538094065316346628347418070116802150116725543816466604642317836981627925649490113956003777201324707736189371136777091582881372431750658721507036497609073079724710723796577477771475532969223198165212280019197605971995692202506276298600698320314334365139054881452365211844163917344469135768607060763284396926317105077132608044943985107276312944268149144005829318256796571465439894417135721090867045182160776555980828457324842555058033645138991923951974123030721177233021553983193709650430765225958667479748014159378900357431668434806023237542461658388358691865862849036726837465547721517252040370973663466240810511961829810511453043998992260840175891253919528899331006641963985164863125935881149494603509512297969162664005302864612714466701078361740895714656734981475906963450079207633890927048416349709665431365523952027849244802635230934877806843762088451884044631392948548484349843113935399718699866040851100888183816077443628958574388113350069548448697171323938646971805156500025417544652965844761436058722105905215636868168280641429133341524606642221865862511282883999419953522731578708261625902286631562495128981690767580330419958078645225753725283915062347621090024916780230711743342994672151110039734059473858730394491094868275808167513094582774232567243750121234809550656255574797515472248126584429124782850688537373670154052258703657932500636559665792187518222513876614539273381901829279424784568581757826906196270112757498044113500386354411501426262414085542195319344698378416119304457736690575425041506569539059873952403874339216235695921340222345474291933768144790385012571290379227035418417258678576910208673987651834565430035007252538310943899285143458104155055655910172667357831281346549827713448056665652235892077704748364724170432521635375667596139414407062963947387159933362951594292988711685186802502652367264693273895903872021379567902973105177857147506519589551686060390921135511007509966103828899255811922214030491774548864104258333626281984471718143564859171578944928611872484678024993435945646522435992152441582667544714048199131746810919273454920971281537850855242990359990299783187920482873217240258223924037929357475994090889721797619315756471780327552186904361552991612970866328345790877222309794723912911320122617644806272193268877518410834922549587627755652803561471947949750704712643314975958531130352575540841116035227905468913274532899149355217322681062243115225060184928024623379252006411251309174108845279768618826497897254068991314594373897197741923525399917778519720865017265011383803745553093915654075159112528403274215498626878375292890845619500852131303357622011122174230388435654219743614919574818754239871881688604051663081371284059987302299515574388586545441614119559560008345844511190699816189737409708108184085687506318031066911018966861787051377382114337597357862779738145187914444551092213714187756201752739982034530516388008741685785866526558877194447073879238835203121665069019775626398071326574336132964873446538235805150410067560008809637538611047210392615439136783810391409794445627066962415199633765683045071332270459890586705591303170308721551692614997344175424829921314349078361800756535182023618410290149953403987051347103119973357557723839056446281685828742752648054721263616213244364357541679582497505590685181417635493892973591688111702951911678098088510582299784372844106438610215756381989832034744184739061978059280099228172827251240437979874868056100766659555907639492912896772214399006059946266887115296353643554673229990852863666269256140544528166242696680612575567350039012561873966266393811034783990041171817905028980555255782044262964089851409385512283541830273950179407036234232104954516117593240871082026614426825624193088713039271581713308274284267608528106404594124350370717377287621773666132146660749361894278196710660263253143432103200947579688281111203072764458210233065903651810641058513801656065585775221983500653767179850891678466355058724069977001863679136950492440299675710114825003603050503775552209913974136518887128521228619295854704501048767402108408623655418515799711114318843009791204841588022044113356994242790330743210418132059956436564751518929525218360834686401985391456635516597271572723965785396806278519343403322889116556655889644535966445313326975143140316392619723631877496822166089915546180553627996287307879919778671722902424677219324355003793432470242039684448142537057634179061080075519600756341321127130664069802724660779718124275939270460708078166496746877226443591748390757364952846907176224636693017488265142918629322472765691644394314179688066158877680237382134083735906144485341698729356221476099971912956181304194181248731263480721952730668414639262633060026960825285061422752546720209360080124575701609074354298009319656266101136302966916444417969456483863114669380955947120896408152558363807469096051468601163679373026443621529092851055129047511802012697706126644566692175305121042314949665755886091312830042352812888492113723562538261343766717241969762105614609681350884994300276510706255811884368191915536501809228514683155780249721868013379109433081170219223068557941949102033405608686495045702448485710345690010562775027364631733611104208611097040879162189732132831154005572203436711273201548611716726053982762060388057921758460696710915988971601004104943737865775336152167755001638955867829500814374355814874744687295069698542355313724768434525077230780546095848682110567050945327355562598984934861134458280453767930966640477899713718890990214773164490906373137036693416016636794118024864924668996629908033325862996427043358770380812659052858129660118565958870937454836768901138408563192876575419306264577099801223749650260338153642754992038652512557829984672549062790543325590327578574458199082127781580299972686386232979638330889175888447884735133775228857992825802981865476408326154290531315652359123281324062390128106099617827146840246346525735506034850237858881983217415075585552201980114184253173558993220079008170267138451275068948044996721020811300977603123566098242780995817442166307433194756121398999179163990728802574756572338870899264131962295869430381426320635683792915992556010244142413864163847417820392568964602018293648063805650601991967634177391138711119613881942938117597163033050156182154129226708894598700149395176577952893235195015986705911770304015652292515733869566118971212299193174855442958798536819563141839677152867329244947468295076873587882328135935301799688137623979179536468701888836543015099466252311120759629648962726802138487483398838426355052785951718823071328407390516141054118627677005790201397105698495843682984985837906629594001428184838784779115467068719105281125852082040234510085819636032043351704883797780801254550472354099294491530059327253311581097009746870449218530216512332358151128184205390823926436474726520525247896166912896620666684516389083784777255008473404225939205553495035212958419194394315557128389563494485239528083913626659646940340978342309115003714055793061355070723263956597843871666351691660094994867360503894958105266510219843761288573930753947930249080695939671612147540366995527484871427271222680051400690455487274542465266118420869632365074497412984414670816405403981754544782254682720061384643737020879622243237125482340954465087784036190670221201328408275898416803992211285291918195039034674434736191096070207559026057034105818222862111024218248563432871631848463342115164130472868910564885366116070586896459931254006263868193037846559783889194775276820432952886729878674761168893095718815694144526741152456617902687761832986809637884844302051524715103249636573942048142051246172813498504367654776225839822011739146236443856385281156808662606152514186994465241764415850628187492859535548675032181221294277077903113556711259841403938176025617616616957135107009469018216236939377856278249814174560103048659369710346273756644012745434839455754157051444017727740426458589537692948399997398232904994109337888787684619891827321996438585930441504684865032685436933854657175564549795568803346030608305671413806877255547151528847078928723439634294506135275489115147903279955402124066679032689270424830140936277956728050295255462039719766285711281869998859556561062377157172188029873749548170062903559330147647303811238965556015716212426357663379187589157293267633050817567682287173605160034618836725241406023171517190650724381083414048024450002116952728085104022634749161871732106365887819769980574137573806165164615113870630313576190731750527568576737048911788985023924813471142735799625225435245291486694810784047858903328597816622061000797051577414133008115120858127276897584509350440444366354878929092807691159775225494356856231763462403175250246209643495059129514811468127729460451493070989694281562882319542245551931510614694182715697557948053052085053631265145685192458775391517368967096443081143040704902170883056207066215602107441988073632402940172703019772093171053233301531603271722927074313337689628497125637089071768779669823774064152344467182833995451288058196314439396510782774191811457891181061523665747175226107822158531546724870272170603346922656402021080215111300732595301789495701111299332306359558722190654763729883839853475800817363775577936035346232894738366556783514267622360508660186018712269565206312941160445078877048394561928040961102010098175009491417459689703886721120391886849175430348042940666279087410897012609849502587119332817225795652084068908181461065500600632776955336312521826659863290889728149677527593984263829138909664591853499101295811906384596754124880523168789242717811836133440641350096662498927654559848713997689474701966203131492013127980494480296778942022755436226656188413771161627857496975891553724256856449878483173825408370315210619629724712057045982128058521954440228050191867060657112760000189719000838176935579510895754199981060914351738462589318376958517820558628564206797090872161723458634058621103758452902888941899218675293487409036812870681275027622359037860328341691089271996778064870215251037571130128303824650822621670809477845902128672072874398802109281717026452710966024265498559412637842272601024310416808337162281101741324555642664364892812115279820876667874640001787132393765086430430801759048730191933339561301220318043790688701887977966878717772802834172033900587770764042331146300451831667784021068987254096044145379284096398261152264271681308554156152318705067236873529056696945048380996076250766509556232682809889021927513985986836193021288139078103047200258081371039328651312424434406308094884309338321348774907323585496340039312704771697273948894727416244904121359732548227111349165616225831680136549096017356059046972919820138703449490499053177636623593283996622435723743305737117159536613416126610401847401638616492022329998963007790902788363599075982217636083505565922887296183512344777517504806508975887260978616708585309261681843618734933872247138291646464715750549913921754216051604263059226745243479886916716974219586928603155207495371208118078954118464846995404331847022952770992973403315521063781117587972231386513992619148538108566985952283994521006952986141780432386326854455141761360744920429379050034929960453155577184051983776459078249134547780232776024435131226440486332771183553186665714291627436473161876378433420762634344137054241909202843171334281742376358613557972588930379304034860102836431110290259818993581841932610267559051979903402099391141199354289985594076274303701993851421757136166484055491431286067385868574697441387069729519260543597669456070416267126832068846059792611165321278019226817811944954496710870633726676673336811094525505517618483188704876702296374720401614022799020405049492023207440248775454641699302152750451402611753516269766612790373069537630208017054957587275978035627602138197522024800511755411396781423108786490558647060211289933386374877251962230783226405279394358828814987737585792032242675982395872469790855262041186313594997606581899898480054579111162699051393475319346727794003365898361876853278697478631359069185467928639195935074551606196703546335481266207718013904881858226603272097201446510286308967719773476481626554923315332820343034954073218602979605045717153396018648743715685307261429179249276465705376540727749805878307511231296598159620244731945098789637813484837834297455928372035907891412365690829774593533788002130398378594955642246647226473211164725747067864371336986216712201129422597498631777187067868243712295016711723052624063143469978137156035458809218573993924026992131945641422890776766838674199357493430738546930497603908176073326627925420472049101197987840838009078243053998975401723851018611742664201656780270485689755539968156106600191333716496274845279853164850641097551146230072472367278475550577207161016757549243094264393790964138370570151441049723866627769230566762442792809014817953796858936399799326374123687848731468298781744090006762950713403070316763240006961824704053688214886051560447781298372405429256662744718334869701341357120066690222292972748832982476934754665016959134070694719358639932422212539213687614016521648263547404381116830655449675062113496688882557371104596348686429467128926335210549249363198764441159108277010502306755368093517191275778462042393682946227820806905230790074376962442578236265253883097595358392980580958662614472989786737907001882680292270743688373088543730257510430285200873523964065649711028678425765216965612481427866764412809060135091839273218060609437621000568792167405122932856183344037949075089373659381549020520134231593988392753474319228175581965135674925597845018161645865763941657518871984603438219190564689310339525685466550583465955417820024157290717483737164751350430785718364562150311809757356306305656779325912002545779642923162937525383108367764405946585689531046083852918982254497539502678311398040056404985684319259339211086969001317947595106856209773327316019091716725122716017652674385608448730266038549107994566250291323357704176328065696655426624593938425578429567887320089514598850317938725543617092421621966754570624286559199230848411276094906105527752587204140002358379725976079566152077607811062278334353898259427694092200232355538824282982204719719034670050357013892832293582468163048044614356312798746818426083475340621453640142139985541718725871894495252439145667355059666723186170211348539252071317078712196352745880169440066191252016095628874160616559563264858852209569854161010983833554985238118405856539180100705682093025677158511942404577043099478848852597885123407219076040998354555266193751489943217994381507102974756031308383767365978163075577882896875467480555609763865059711544445183440888744903947260687964804103578745998271907529566026135870123093419382558709465051641177218809722214652419323700504986572241595990625416277145950406628304675757325608412724261492267825557742070045733220260896430473947245257012542632213254622970400302686040770886806040999626416234967922635060103243158508596189705752908312516382444954204878269947239741046663702710513077965024405243969530667342223032472138192041806843473028924563412817154113039013139761032445719138186529726454792928834615384521334907880270723120348888253047864161980753206452937179291013207748624355643894462604654468634731124262563464801986808605878594735329749073498391818287664320591118822787618783508618665054018583076323702166432912885858350955192551531025373720685878765410329299771862752140715914728817842012797927306888534862901859639444903061246181568552808606966262283538829613741947949462024384975478650417369584902166378122541338861352013187825344134201680148264081091118138516918372855851422751190570358725802060518409344627655492682960748699346748540583975063437459518798452227473097032111506226729972737119702062507458549581036474422498058540130848293055302958472944018413354321879289385517315328567303435458976988201494782342798288566101922367549124590113306401568758790754645491480379727926716865831541630341659379781986869680290664314798629684298249104403347136528416396146920947244086758330406596953986116714868715174062560923822696888322580803834172444758091422241536255687898855347782758879595662139870915675150386032812518577493283486733411938896793087304519423184198618588077665913077385808440013519910491092509213150484969986902743186635091434720209494390572328968834624319259982954220897609170535199328597974634269861975571127071511660257826320521654497177631216439200037807062430246173496422471746797907143758403963254372952464560341612563662177267976154449337562462930761544162100421868362166271451413284584331707219016772605772563685721259250748063787118908789160213255031953499731460422931760034609911944511566904800417769897185996627452821605795800005953626906393269724989330683869994832043720681275952547929942877663241045652005384275518602697150461618709991357087111101888766312074875253109130759131091528683802819481525401129346202059738241429482699450413703581511942783011795446182817305408124466802939259637912059427589220733019748479074855005180667891997146981092683818273492977667545608891799330018892787372275388473436233067227042980220347461966001650569596418482671711156532079361993003143550199801668108571246265211789051015332495519756837853129881041043712814600087482325590885416372516221061689746555944854830737225242507487834365602749291467703906670794673434729119316212373883185160291530573864061276540624942237278450554670859408560775852175510566092935475631421065008886627144430957429246422403328995508680762361810148714085288259589496137831983206523007168579380642024789506059863374068375935099690362377232224525796384715498572654150160422660711709402312426253145385994125957422544287746224056851033487280044797084014147287193096696871520464865139723835945564638342640228736076431500509025749703918323737010810502135660770924901386895899494256606207021398196894075752320001031505009132278527876343639762387154821603057293647203399072273937362149214428192789007263434370973377394042699006872410574679496073336964379307267628934111646967776502263139411329337203903388054165904146627222986539016404258705261098681745152332242513781678831134314476693507569036341489746411415337223960997697710322437130365122531387501973722392649262758700557395388604480588115893775024956953851609488583927516318522984534756582324986972504178188276007910375358851850460895763108907739770493731876186106227973670258586512027594155101804680568240999592127488600957733850593335325117665440558356778214670378915236057170947618339313578444818011511130387938317029348021807362346279984762745253647361355823297550387384616120522468030905381924017963066927429348038095493473709079295328835423453028203567367114826860450434421985604799333433284055677392418178057589833248677399643196438910947477950833270908517979632307525172929018355859164860299060929080678488749167783654283528957233634380830567795664129693352946238905377971507185483038011547763677189021148514238742151286294389911672194511937037501283271212208094664073829555139368067181880185151865318358754228255105975576524458383306688075097383857723577922393253623720775803501664790823522293887311806559933246926343241539350775825837973490784399840090727171613389124779039440052393504868652658364182430833111765271983080560190760667039768395994384574186326255701888259418105610316477592343305691292996618744545894743352955803738059466971080925110486012587347223577989369136817433949112812487345331686060839405226559628233551797498515612896106444259340550110714646948508344711969871795151561743988335834337192199997982464981025199960994108238123906323488153792214062414975383820943064768365949044528340830712653321742502845511941364839132794552180650580223982185160622088087910234278772850665477488277617526678272861545235952037830921708347944444527064902528409742872860371460217787004667166689154494393695844710685872693668311176654935488483649469732962795021297594088859099365028710251690117234639617921172325287761315582310702187615079320055615109533040557967875930222421951234598434278430794434814065652511166881741945615448730164883171011886823916648373130091383225676886214715399673576639329160637631688003825887275490796919263744656992678797132020261205237077548522487500886862215853553784329388573283743211376721855563607252340201656818331566518728707513444621939892315267258079161373258034579374516641406820137609163446970544252617228456400887497490929080426023628478721677842061114400809893029753979597116119293908551927641170339144012828710529941281754084805906423279104029567499857328992740038452366033084009518940201488731812104082875689423267253717041542553068385828627572696498655558451375203599056357310483510345684406128237438622154872176003689936336452884869832230929438855075026519938935939054709743417247007817136260765184131464109805769633597340516485682423837216742005572250585333262935499636155784525790916473443141186339652906004036892025171951932892160371083755994234776203901665585912717098084761471267635733991351384853705929564811434511849503198424705102652592991289154775274496338506021393144663037729872467440168861254760982503495024428282926693159701596842029353557315499705563290259731419907749457833247380489882769797782891838773748837003006940062157373496296387501775355531663070469553688293318982896206564217094037381779860867605247900150650699182209671003083655017392922267413415801956442675103635012996585476707672609274269026501605324504137664477372879281322840955284526559069832352677096325995134784112241598833905019326657389550255830821853057551881160840872370665245767227673844630192606794890139523811823245877579176173704881756389467897919495709329361807183353332160403674994054326889971169116215662545429747352116184638685565216536235713747814183148333000520838037327248811108973253925177410587104277263254837802306482728743491433838014147721988842432131701687867751650840246064038607339027497172177166428820671178103472302163905982885179011736079763504337545315148401436853351865904536079468509168816957973732559029166847625618266046365875802558369160566185844035421591433807811537064884417513219221719172652769724118291318668437794664654169927131170278508981200455293512253129859282799336526239259760113238665353776678254555215793014526173799106419200937909034878783891693354216518309539481701667311407947228817411144817045051904418348794911898362029902695795582242858800673633328823704257440632272622587773583458468776155994779472697978209968873522185570528221422679686816945785876344037547575828389509208747781530864679633476493845819507560187114223919275482445549552392503005612332057843100128312880281269916334134166132246680037698486314025542406552556825401746834599799021816940041685112308550000838485136038999867971809011566165803255425975042351117846431305056860767602703928168258188058461310936267239880438589630843609954812580713493506349517477732538936113105222338628326952199448197503466878018994606404831337314119640752711899899492128189959415516981642837226934792298464094944051148717665997806229185975312379321602222431189542134308425204595512668055645941354470162670935221595544647635943288819743548211288603131815681959092211777007443328666756645417693532834097798271901145216387829999610984287134183367144534237410617594412630811075079319226984801357028699409878303096127441746352758315774871014470860781675733532694990994608154646816515317035105097564082752124372834155980968234884919334488619282042325683557951344089472208905846331583807238986521829673602416253160452301352125803991758959477292248097519032843983358394111436746984043255240541809844620264996187479566288692810143529596587225103058482443033672771376350155477095001197378813400120741837539388048953590689008574338907250799570285633028058676219057154188776363717487128836246453118843147536634408934900561319871354342379766183155067762300954913457303857529774713797445377174347301081016432260265873918942022896161519820922170403810482273017378643485108181748647399378686257896335859275505297963735160719237345936482903007849581646289388568237893215342723230422372400096564447841165925775209681640808016577488700571409792325835757675410860112156517968769669132726114873900115573143571746557305771541098252990166288847499409240130440083815790955907997481699925176772708116469566468046818130101186572701641298121057672463164581599080005021411049320815462956094832200211903351316588047838276769380359650191207961676148025882162806814055734405570899082136612808227985029983917661434150875208469181343779998545660217281230440966830092760013386078328325980388720189868088859027143373408678267741248568712940294833471812387238719729439676157527561381180719210292534988954459757514524074696517208972492454619449709272859414084794492599429008688117158935118928557962322700191678439355178230399023337352268645408057224100841708157727675906218399103422101960904961293573812117821065587405916995408916095688154670378882283118863757244726551638096612929586843574621269638211749314481652531154370311548002151087489083496756539261234732342486486251073746678804151966836638050453908928755422582752927460527273658081818862240272945681109238994912068357913988973117577049202946394360967308993650049965742824878736542763897468413455223796587916573484240858787693929167667692604135682755996472273568152295180841737351944354606934832679499628684776058659663624707219628998691063481200119969487728126445426041095301617975521162993719280634349927945869448798497706487301100863411179918497471624064566785168288976485371496149857449144125160121859399421137174064836255340096684538847387516649978053156860113536342860158643670900222655218747368558128063740773357716590634044052958495613490777992414446236535388623298953027047574426284211932226640850189751007238550121036177880229489793887124429170273692398745663061675531873295794624499572603046198672348678366017518774544260877849478137748599312366063714147570267128822324543047537417039698852540938257838118260237368557388570858424874905556131185151735573401983267699043956663713549655650033425507241508199690101442033519385203607873442234763471459010221395581101673253087511555513863509058567869041020184740558892769994947951026265892673216934179496313511100026527380886626681191132800900544202679157229961100367469788988499199825512616879547024001405821997614416103835639219094465391465153032941402431974110167569757159419554441203975654420895575302661298101945166060858658124835614817698899974689571290223275145164197948137409552679594531557636720124359034568023072018367036402943112035094398231907234259536259775871435700435266388672690532961623991310097498860897336339674215813279861864949460136747101907994024675373454210669397691691635453515667916054965313071199721967700955647953009815302827004561528373886392905037563219192232335949927207258028297663915408328112754791053447030394072102329932464197094570094985174961456820356729898291746139005863807812239844918584992588993184836858298223831065658161435077732690649437585395388836552516796726085140945712799558481284736659444298180049354240407309018080755960288106617464257809209579968739638088984271110831074446098497784860653100131692050688569061908068389704364196902015777531479357521746581934634214321483630493804735351839860002744210957607551052914960181775074470373369702947456842741803746103249044306192417428858223805304323341430973606878375084242593185111991776896682306639615182532351269728563332788231358909871820729309964898206820909196707873684847032926910548687131655202318045510639262332087378247266012375652008551060007486432246038063484206071851560917233515080682196644262525775069582914732110204765931967064096214421965205347194693293728362560427223105849018671876153587959029026382017913049850694822320228939299058867188622729721017632299026023922200859401205531911689137964156734676300840981327449873121175972157562673533145582686603769740560311270674202228580911641008535375065633304240540191212068288185107626892649630399630585893489002910781937838867794069233523526174739940145407855714096651323549570893457439216176312383441942298186839367865433980465783399866867746759953791888147283347096204632527133877715608048583530879968382430664263469616717072445890888083535717609991464995802008710685719047785477503405256785833382603707866037492329110993429737601745604103598395319585172244877086333747821723415510768986659651953860231839205169711723558616729454459011948312998352068558610024963735182540852724599955385103713015292540292875186802854626687981126616232656642777764761178379405687974931946233988804937642788434988730880404395398610312558801704207576014528998785567575090247181602625719013336143027765529937469793766368975440067959832346378563368460223294470117761277903100424267424198228037306258174792878321814881038469667579783234346720922519079207526602031309684627402385506166034304508713317617551668202253370997986200823348600413707434455689783353577565654725346074607886865923232633863043717475985330795720423939659100601317432118748194163935330597953866383352250947486959152008912663042433127138581729718815593336114640126551695003838342313889747840132827458655535677262010310391170261323677962839180994530459002917375864645150632062036238288912126249888380159257142525336088290529025164558168489182996819887224301389494017048387900676432321210054111316460898067797342234720642970501539584069009580725157608784401682216797441764738387091338774758500283036807417054903407658836835383110742729997702232192249438205551798473680577907105845964065772317525155317470821794789053494210728094462103545129243983719421903888698533318467838975634811046254321733814728627256986313648268818409988665775785484110324168788929459305853146783548190256241825509500914175779190609434081534628892196174709237775355843973136109306048549518301872385203656531292952338716484389376168630566281436093389182346951802466608514660264774698672792914158377000912041379438052530977408279633896333705731390143820166756203623031082058911258386381094227543027443760238062782884479853548925599574951947265081599687712496419180884074913102044080668863899602337573021982709561692238441516650992740951800608984660715438366685764645716541616240616591159652629260959942434297470236632608068665453305767117237053830982365289906521052633319197847779010094050514118122836760181083725630323501435620381296654700009870458599980823275993454624404822805261839349254593552094090687961022467312833378049007022827284713128740491152850134452830751709631168209613861693395444887530691978142798619671381528149280873334594318948259539382784220227045238112463378965245495859483596566053847471776879533109701870614300202281721643145989070573797822883178721897639807931785852343894884373226725740311316784927801400164967561670648069202102377673178401757725568816900017144438333918578327344368248724300599886381483712056507525154321620423399666680332003805557849229210208214594098883377592224680941197143183662754063429978427180897689146305277689872294339026819322795905714327481631435596661904661470173868439277640926030307552999605804895468333031320972597288329120938322971640556651906281930132321015522025044532459096825085312782206166823722620021166596753876325153600623483175907488722630552068803797297835512264270688202822110608006451988710576123420165860578736520723114975335524731647085909468603495010560305694176354669091315661750396012056622138418005127248135957047724619039038603476519649139481683708639884124121063501520234827437912402780523171290801410219702928879573297509023303323942658212018568583719352516121633298808819064946406318915121108446431508508536166613005277101535391284654809807234481102588285669884454868501803754961447198948538520699864104620617468818104669159418744330952269757201003963369293025177223927184897769694322197413137071128528577102626293267310871843734729949914370338964454450078247997034155537825003833945807134441754924876714838664790070959110354810901820286820220748214421154098350000423952077502413291656166680506513177014198742284937954297828034763760105967667825992765294456559297364651390916789904311693350214952852546806153703513418227851495194427370545025707558028253814213589755175176171547567624890118864565282504412358277382217262566527692121379569030124126938196770856051210000271442727545643951005730293359086386940427778438594002964227403480207411297460347285431847584436933744515133258856570364947488873197677689844079501909397784206728528747786893339465254677267043650908306203501825289962611784656244854842693164940205408117560259283142953274079555239983434374038180636724422608200472211460828266112693492573058872444283482646442243158692565376255255637365199935020695300600123718208787588672575695631687216603840558117984879693106083412320378520796939150606557581431253014541260459107783565566092389127308467505676404521780063250141236576401043635103256275512001178883138093372233368774856473045651819760283728901973046714340818687545428239167576377279139720494612803233775545774060062702213992764646312984014205686479853651674168836373100584072691714096020270571495987595129597382782761918090203406036146847469066299670643585906948189453221547489827362975410610721776355081382473115795194006003033822348451460036746603493410026814151374841235505430077067677398428090323879779785942694215428914849293633650055387657637234571208998806849116379904200294309431121569598177741048848514382967277161373342948478381517904747960980802922707887754978643394286674929189153848105566195746326084013468340756163490547337389050552969238323614452135911067637711068911487267366321378745696100871631812604585041831112544566503324529732360888490254824697080866043457178412255464863785571536198756809308737801919469488430319765405191295672909417761223681031558083072884754857588558654740800729513586842704255273564588237927846030127064243377867677190928602497453670880128520871999693241495315975435649173315926476401124514656590306965651529401139265248872635908054202997706115927332455337595542301318092098973149730015572299202580362384845739804396519844590128802206100346172144186055704042414736720608560418636897079659939663661087840695999451414250251287952607984464065193128965600468038532900334188673923949243727589201758043663284033926711270101003119662103931485829019076584952160578761045254863311469548608312346132124877783126327629718371846258503153813113378722894980180433831484297041161957219768860435267583895106849743166488848353860215575211220973928833875353989481499538233341318618527193471827964839004439466740691850500367588225162307532628544548841726654148969359648768420934391804215161547380328282861271896427300207491583036053080277692663709164912962269302843160462398543392654999418613225336571831360898646448135401799036619493376514591169398156316125375153531064049110635684463001664008758098875353129776586041820646911846227931293799360780044726793690894831196232527138211200295279836183014543056155054258787809910071517738408733467475247549781196932761149516497168803630467844692188013134804219120153823993352505701121959106053354155059288480742027648210955511442384077648095767050285069109517936237143081868253857029238660131798247259275363460259466949774123063979490443584819608863632084083250952603457343181337707285095918654181220199683201319471606627315533159323260048103623756592828331353058772659795144686160845879094750689282766033452759567259141020890396518055071431908911771656580001474479525688276266708671523068532736455638623316554611838055783752564704989969371464745928345572814256614947347441977800692929398746442077834327616446829474787648338672610663593871096712623237606653080315089824525673191079148009082935871544438637057654034421551564705055551607909001412618268210763795085041686488459875465983965164090405486218049399151959865068526942704211631694799442941522075180927667817959555350880273398999829746522964762680387518115139333178419647762023669657759952722709417359181953988586419349513964902555445611748956785537557204029774500319972645004246595337705572184770801543843049599422599121066785295137189978407461898723988785516579299856307198987970995958776229082854664754116371902112606080859450979454709131575047635251991264411226380113917108151549206445591263237242753177495205756958446667369615845930448795811476237274791376882002863036768895267665497330567283594513140313976804852779353470091725873434141055142969640618965048210066411154463343234200129754438143671616454812080104320463451757168691019481754013086265214452630306741624932720627510252805721481772133742993211930121144300342312553913618411263939962998662953210919222903361692609286705802111875334150635651647792356069748026447581652339954052809863409162480826043157311128964544155446832884444538980745222036215463689202086583636645982522980509181486560265908890879321014357961496741694217017777034211136542664079791873981713361777860832712589824108831393121876279323605850787741453068419242389865626885325017766957476751261287235823396403996082989378981699558342317009585609484584273987601335147952899518048792936030868959731359832049481599880391427927987703252686123831585450666604011945030136715835480535737770194489798387176342777444014126603347818150558769759026724845302090986163231248241702768201302552533463847444900563856590294671105623130490593234010310518563234118944317045094052321685577415024022407045502816272420180455663910091125394814985234212564724306673879558616298033713260940231871769514314286035904808709227236984227654395532500975488178043948333449235650136872759096447592591975921232482072720779424043519635554134214727615456166467450006406783912899239947623643089786673839375478416400281287558295658683039487048070996444731377525818657738197968838215089102940591582669986963705087282928356088747940869016792827456926477758088279180049033719742405383822582954268252594359246882794397638702318436787100651797892131235644777332571129219427246916917208906650528685718229217862061407528305703244938728433689455761436658524982114788723946134106154706878706444082971075233610141947326368619215569505504250344523813838708900207909882250188287210151408545408211552017202947407305615759128885695500847097596599078502471371055862627181778612483943945796600580067369510629255256538070208276562958864266658201539729629013345206324000289392791084812026934008012139764451009813198213322911442947297733358323494968023110295235032085071053416332599045452607884541106220241367347423943895570234382429486375815891650484185382180467118750302647864729442135384767651566957512480942769731547678650877944603299639417875948710082590386256729611664249171374745774087795993237224575281634017894610915520512107023733923505183653410400142720022882783590228049932871462921890391728216041491355217100913890788392092645338308314665339644259013658922410849073302490758415593031400943324710362026197094759990769892634560499543017402420120200880450376757662758723571932641368276088478576928725174676680328621455893671048291845883548819216937385171086119430583784230233410310905817077123665758368492648180479890203879140216547636671382579930468447910010433946839479080413105561492447625785057917478372814753135037558960132169154921495089224750717332902646621148164818188354984532952621690161375454406768269741786447421857415411808679781506190293300789746896514866932830308210828213626295322021583878629029147814403061422002512463250724204286148759086159491448590816696839669136064235629605426466839436019186760944129700808575797933329988417701960386198284170417066120192241648605477597177582536550669680153316438457486121686351173065076417941841078004182037868017075690272226965698796945031956551944040511071311447031991674918127067473197181450820879996594743923381175447351515374763224894702941510083061800507442197235083467128088387180072790595133648182116841279217162143765462766472088436586128303120505486314677507838986918607988762936510853448074704527987497749410694974242177639137041229195422217876553752639444009752564168535863885770648070250884889260654780940088033990417420475832850823238040748379413533242720641165716308774572795502336227077095657786969815159522424010362080819296161975913758500527763164428427935307577380924151331929662369548165237166121764461587430663491407252759890318110754830633575270937249678097868360356392911086578886900466191768934000580249745712551074809620789884246881069479944438196805337700108659552329179847885472394980741167162883447446631588512106341444297807056236762420368147383234271175789734478893428904725615340030129308840716295692768239721420905733703101066849970130735344216279332063711372184213148017965605286153007735064412422344907017497116883174285349210206309342374480777375597791754933903578219895270898384190131811470695863263698923084511310531392607529165176301608680493917620996669072638250941285783222971816644709737601852688083393315103157941558720834069441410636796657545078341042277617393104221811487379545861952558953505274592522445262973163467053541202997360990905231187151413283724225597251362445996874535977305829811410208565807328515761345348937982690992061559915847024177377637943155356674824688010247173974465192119427692969564127104241529266890452729152885886128638416101924737496816793391985497498346806715932836822668164487224462135131029163862830766298555593378815209024436349920393802485019615695925747503926689952866651666545386309505676762920908371604807726061615154728956032027380828033600421842358714801645582936439336390385170514964438261191268976656135809896000395017408976494566175896674020093943845846493546411207220759302376384337846779248211348543005027004885676448116945931615149927023167865141273644856935240954993522846454957844688810383820275670839591938447557683237668190399205244838004974405864770103475057466881876159326505033109440475682061943761968963120651889152333611265712661035023879957863000543124960904504084650912648405263756047980684118710949630530466054593060309622495358803064001754893642992148624296902835339466223314750000014715889411336640799804751169110480912272528701297348932530956426139951628041036193695088968070971354671986500964294467562296855805993020835273096448886287866706573964806557463243795055301459718959363475516340877579836428277014610989842735354727683455937898234043666124775721165094911177434811910199835704064465565067945271643647436010353398486966733943457080256110051084880329720338503866521922553401778264022711672009950748071397173884521007569949174219165358836552627579246821438375724425543098374443085945644908052102750506559134908187615166626499324182794118854991266572835328785312776728200938887597955159368781240208623654598930842070568882359494373787475545995952263732313864909389144879275655270242990245819399315705212382982675800083269550138166792616043911137793865958223120323708224952027196660748726103408536088270210216916605668806650498627824917734665495311295655637811503832019996350271169283504502388113793384640230172312729010170643182360368859050237879529165536182981788692685350602582666321481684876278673544448174815882204343921123701582169543910813124629647879203842071505352148804905069330943172640037049903596019264397026004266323106855213328901557095727000869099758519790810839315099585630930618504347950259386580333596629500313391614760803612599677895337758392442955043853206717102868517366914400235215087271945164739712369910696385187048963125489113814443218268401285886972027473660182857784587061464938300968078605603537837446174211108176095505461101111231466690470849865063616470949367563496795560617459125742211970572814035326684508952689936092733091410652799285607792839721134008791089492392603802816051250617825631729526318481602068575994279855440121070730173810203595769708945068079752320590356438628530641791960561905908365914625124716749701453207570886213254928797519980620006109619560122935799764363137118229428523815535015870610489191187617902651224743584687283524519729793693327972682542821913644444497920802817635560252628599418574275473547047893864584894135594594988772673484961420965728076786174714244651229445616138230305031829886390263322847583000795410465130305587840582360916238219382963639774014107820910616712807734348544147678149507157093640021350673235467663072216551470024838862162280418198727578162565840314091439553276093745836662267618464385912186249546394953670820791325809811670994088271792108950273417358812163576425488657619241971792932485373316001686055299117551442677455696697736514138714169082329835385838663132326078376948653311397310542978775379018857780018503395280405587423494861775477004549226729824785998184522073834925629396097706339308977685302503326168341282230377630448901912691977876578057518076863846224554369150190072791444630098466126161846390193933374476061181710901338567643441853526017162564149056233586478071563579471438730719052693218934228493588047694853094092531382499371965892922864426804583407719557533725100695306849555277496562331542333659737632862451029385957705431302117138191204607417735863493322850005951812085099251832296560391432902609258078076801630976382460331060644160818469613441149159346224541060423274438283257730957293216239103688339734603541638836299399376711547808516005668459724208744792098291048261412315627151709242556614435539021789353916751652528427330784308011513040980336524520620558975457877858890198307850463856398775398670736034533581024336700090182259598557650818683798562481175644302546188259373823363825029190525862345410782931777265647583532519470832819924644851264383803199649035840754080303867436967191821672596719347107080373056788166219317167295395514844017016119468833705971322180479438482236727922683202596223410985857472164883653921883024884259880669093640298345050350003920900681924336966187786380555133318334268254311917002359185948798434054933318647544415400767755888322015975467086425013697541744384994894418927383049925464478504568618907587496341742657646029845359744853584025586733768556810414480101587730887263510135205331490139504943984630365847263443492953487990245176492581528496913836368422896590074662196367804783755256751041121940857023617228860137487064398529663574480796909997805219765033326190602091795419189195710107578200992518144169505474099959255829092794307047870298610441974776412286041299278318167288016026643458160589990732470717003565232794860206229933659239574170446293240387116674148232050942964756971768903602793420737097873545357666730350838799452198180920844082621845763481559727830390765966900907873552325582423149752901714256058612620086931759325628514175562797069485359082548014869663661658819218288473639304215323562760439425828740706185275379437535982217917741955784803080907821083486304949954075234849023245483153041995596384652548403519207223197799795174612608893576987666333675612506785275300300874852223163989835530655595748562275842007128277172352859888645192638797261556938798898022431333124208519158589022593624445085035579714803326800791591179723343367797030349698769285629916897422595517399966058992819545908715939391354883283619793790300348055066596942625310149991265595392528065005135211664986735310491312511403837396600292050845912892874182116906184143125311618821299788837274128596235500305385682907795972186727424756265159859044820282550778265266092065344070982057918474340167324682205636227934175475626961077404981975060781171458476080251548487057070497057753650682025479980870463321049559059242095374599226151455259861975610084854721305078347860062991576850203011037992981395362494714542131798836317915053975691676642436651950107047561366462630113800698914094189500740778515241619708645014108469076578716019593854501653820673119401489120563443704057895150176481689203034793069065370592776109114172828220652288193128671727190661984880629864226897205399588143700668875050304789763723918722481857272672968455359793959783991623633160404016065882210153591899412639752949349883297739974892687414180631574175938711401390550864838056198191875774301363021085768021921634232102657086072314041634290225014314389759214887696473896024640705416225844250312518425400051569328364410983738671589548376162691322690810546515684312283106850015258090795927418558483361529552673600186057448315717794844346201082598962256200383788802872856741922881177178905602134599852213981130295182146208885641138742708123566449040584814461178671176282035410588697982467409077365524785195499946445778572720787838663966246428735036826024643113477568719376898142112884499226284999104177497860220380793560210375123882629539761495070479056444896426725674631198788048289721801345837722306806507256530664912117675154555862553537744569530225180883184792221862143498752750028755657218667595808485845512845326293611223514824743786877326256354328860714888486373723455524253880573224318617682955633625547167316393550701258400328425002842655558276858110015167686263646955835342260179446339003401391684962740204405733807069922107937563446577611769848917218368732756665694463235317567359735747493469096292495134828881740695217792132007982564998480382785034441904394673990006316795156473701718079974774865282644073944773309797309752886930532265474153397232404126875317732508119417237432515059955653874986948217953183684184018735274517127300237502820895668547316237473405883595902283331654505410464770068996618820336399335214753776579802893728961124749419234690359055263231140716370974284611631939482434398159862805196795732604358407881410907536770788479470911158737120099647730857497383791132716278643388870401143620809131371168298526477035825207434170101698468925389099084123294064285614190851657323356740779758627495505521779697915450194331508751846788390460773072246285602224278720137740270234435694495510122714877272133389374349295933682627846982960625910136994816925154205093293916617928866767602134771002959194587753283393568387076453495411572085889920858760822140668390582225931119256413545999669424954553322605308874418026801015151795197935397226962101740035519482956275374310041996990814785839044573587312190789026777974315961234823805842514458402710959711333217683461365576554985744259905320615323245432755166390064918288767669173403628008765732739131924588855820719220049352241372379203958849759554612293779737593304781723738945459334279971821459450700362686329000862109061435025933063218451237926972722122684704121701054304109832459895284700250051064639077008917757329263183479240771754151036665466615277361222743034176418739349476945714397766772914393027593729751083381477735174824521276837021212277032458821400503372318499811782934182281994341310311654984953498243612663469912357692436800671097332415702250335401132992232978723907839131348147665547010092127681414511311681054424822563152733214115994712588475066291798156945090505121757362371094846141843112059999118847314064890377254804616925495789518354746618788064335720464261014322409099197153903376686771714323627507406465818257900555601898091193941007779766263908055845423181662524065838307396891006921494292299615337646587726790753974109320323287351757115808574765649570084873116868111592728245853901881804331693847085895889973552479280410898962796289382470124433526681775761115349800221257627367349243699679587978661432689365221074079217689865392276913594700799425524250095035820678447006380856696985904055973543961922743575871530659452511278550123368596938601652905895504451093133714757907689465657019937995124487204387486945751236894292238106197887071650543059687229524809074628779605008153524881226437528881113370932482305541983932543899234777744427029939005707249498966594320369070282341942086793975557492644884877745257011186958758752673692464810522233689806184657241829570184866146176758363572712054402977096700748145295104069207263172966686950502305343802382522003277814323367541400623217655849433497494181320441341992184394606522800990893985796876788646403087486736624697775340183270848627759824465864974809239800790883407930529300460717930681941863250655498484020234009847547285370920122713290125016961056256027517170564038808714941181510607162873528764091559182952172140092501830353935273339498400413472642794112526520355002369467260888914406879990280416908914302614617846577545478024850499341495334613341821658879405780593953598274232654372475847235096458086799451593777666133084514999439209945274772278010358389121750424397199883277441117485866635652728136120982745283405665497013060901287030996113035285648289889036432108310273371679575304493196652671502993616175408131233412520064337981068485464689179494370792095537207165695057788501593756570373702550343394258958470655754632769951819228970732784711313646818594502402686300657875226012890841459459173109422884750440140611833361928882810964574709342113063419955471163157797149610435368206994875816145844659854051702116224908009571339754763949986089844506223937758612917993116242277705262409935379509529388052477439512098461864526567397042636202700807401391032353531021757820120180632274081876516162550800139001779256007433645437949818967563378052070762473766758919495807005768417272677253111680021402356468208707037756576371862588650779228476804017835399290616311925341475775991901922732722216620291882987870118298602007382078301512944787059232736519812515092247032095131808331419633162248033624565862834026939229220162627177206392162666576393678343506005640308721525432663779610989702414124101956634788116685739650666537199561033768400961102728985897759500996023930510394914444386447285169366924813100386505591479574197982037848613789140309840568496071509690604846854348931954750501650712726421169300705155258886365581991992655798600397676450506588824829065357007977997058555703893747593393323150606260486257430043117943152127130914462711010835196653709931240731403057237210322214193804233591869792040169509997553428520182557702025690173300179423832354789855400687669891517576143160733449645893584728185593144334992451748765453748925798758190627057164827601799622483132329807908573842230661866435678518511784465259702899641217569550707898274097151076673680418181624059741262339069114603406330562742810221386352036964757012856172340611612302805591428245968975566473792464436903578480957172537277275814075272199365644342064652913546437527659048823311323061256551338682464174150783507357009494268718194507009987964773440148316434948302214570864198039773940618818600285115552753572707458412919652042183640660254861825131976852422164484874406348725920425675248465936732854062993080530308223237538464894929938975088099469522474308190286448157375518831350579009602852838496405874858227428777781190875342584160059062438337181341805028253362699582398464431659628667670846559477166953264320642047414608072471180839063408353377846900211166380836270977908275082170272041564090550600798847445475679651850231657313470275834496757338115413051122141459679049428079837374252523069049192058043825973209529609569255533676787002321249912360664316698844362360999647079236419178554799481998092437209783644417585277411083329574341885769661358869622697052269544709372972758815551073844501443433140152483013809807614073356207243613558362382013038879418963958682319146785236497395046525669157201717049024660844133414277944427304965549222111710226484789002595699407351308287913429195409010390956703764872096285274667549390530668584144942582990360528682416473215544998430463785908459896601565436324034695376832626990331511288298269622825647766007548729472754667778092710297407710148327779446779732322579252871451195666324788465159321841298516487325601050056218884881198500676348224048366869445006306587448444191679167864408849405204337441766151981089852516262836815269157393699738787842157078144777781045740085118125827693613178523631188402899833300224461591180977239702109608413020663495779221338824083450713866296984277066540071464327932022905554849642591721684011887348464618147184403677340014271072674588345882809924367394421525932755090625570524055519943635944441289855623692508657121499693034752641015366254413589468682563847905473844615169737095923069255043615271919811027254928215312779816870017149742523539099697848025117937201454815155161541678261919319601443067001189943444727971135002688077363522045078586849593545517740444411508134293967757625603506969099622639194229314656557238024741262861323790921658942395163636488999956173516455091496030721526183619970417880632689425565934678619624679897810473336730832408356535695597680230723843489886435359697063338494677340510685010310103026735803364556830437516734678560182428302399523422480749392452518897783249819864368819836080512084868915737869427053405812046342915524999802224653952559078194647443883470161903587064474269614248237175921735287593412888990583777091216904596027061042136129095496023830013201405075134830645163307849590110854537206332604294793771358184441946849206630273749714677060539948048510981182495131356633889633592028963010024052938760206453243399814999062595664648083142269646019955545552428902417069182785188267056159326818568420989650142261841514221566595166205397548572475940419614268459485615165569832884173430180109901406987631105511899106260390151357360501102028049648983300227654171298511572416573981806131018015995854279511703821360894350731516462697113287007800628974042595034710536225853983748310566497936398485156494022567882391103440221252366675061137959274844669018587133344580175732566701999686565770209777228386373650902663238783562490317758158020995818641991850366338834019063134473430350235342296171519941480015853834024291523435857141434854823840943017167720914825449363540757237330429861331507148348251543397139701528764989506046541701288376284925683758471357090432769676372363417261627922187880369730901051263787868290995437722000706411761903007907753509154631767201296262207894740163801268350282478578765896524547383804788701877565372621672802873387774229276579223944294449388604084950088685832906067790334498802397184891694489951731561585224250125226033531319775035152189089856871795425614655624043872592466760813929419529845353291058900360063888445413338131981107927060580585449730114026029250365899301170233571824467552494406264519344282779213099737909188861469479241047031998216634116627314278057178773046585087660888368243452087602235881116672277170680717815943818742520124344935972130062861943635046474089681674427999773507881242317352210461999846854428198032875145107963596208158769949267646106897849346710834642508413803008891637915835733550379255386540728775516303759759643471243510128646282007751393647135219970432590184811214399907411020898383554451038871134948888053264942163396185717341574661661584874992706368464103958202040611682665335243574089426124108850798871992291762490724779152893010089205319485226984454765112478225735867447411033070089710949382344787428833107852327663899768109032452391581586128426688881687538668118640092648786559606023260214880845328487935434273815282739071041378634531025936250178371661115899381652795504206977001226078955335575065629489153395007915517785732387863019129035803502228515319095921991644757464028223825377166456037463710588004895790740612327666095786493838471672956101210558177110506218693962136831907315353627748815363482234236707160401783904614149500519329627564371395152666313097363068628252300189661533315440541943645540502663547420952252217022920279057662746170907943139138922779459097572766757825898471221459407187146385954009121277067048467778826714196251679598976900837914768326039532389164977606739679233569345077394941786204020953970339907256642544764664755098303660038288108858664317485150090681965953185245889860872366038111344542769280511563776973611470444650958734444213227287592135761381858287740969474980621500859368093097525473200383364776545283462120314256618326044520142091070370374296038742237610459825267484635986957374702188550114193066503663217425770135484095524949572128258891060073068474136856695484431382133819876916940256831598358277032360956581924916356001363331463958354096628431336159067712681611540700138510274462750030144338123836721406948502160586720509053228940647410306023164246568791673201551158877983013075345814235295056482122600963138064563610582763287198323636216452315439328713997626139689551947314939840713395740673290811704537274792982853452919354021154236697571532082046601041044996663638778621327194632918740446755461804645115632433141824712104367580053760104650900788128006499637387172138758368115400762618684437536836944828190056757417448658746129283013454092731765093456896813350478929960766117504892571217227848353614144626244465729953640284341824392348901008938632759201497244980055625527340053218987381331339221589403492558837760421503182550462576117009724063260591275327056663476251607076795589314096775455551296967213079102220777330227780465483233064151008860209376104195730697522717558049658300421009808138211939101964720238860553427677534314874850947946354603359438770513503840400828495305192519149311028997760919735202632689586433249370461040946425755727460169147033387845409539123865414856347382206982978581141590680304903229042332015245254414484276235782383876843580964034596103060802307503412796087371761531866593149847680522550786080503527065149965383251258015746708134592747770219102263035789662360334255866185019458354223697395151656353334335744194692483011589195329109777995863789249714204709020962931768505358858426084172007294991774021423941781019753984297797094636962272629480346848573852085317130170677777881843922149574460918933625376089306946247516325781999934639851699326686918174810295218348453937091817427465419244046163013861372204892085128417271775572899164327416905296772692928701265446321285452531115668128274668048749231173956675166004900264324798110501585414640044578884733073661789644239873925136167756000489763535285680572584923998380501006113600715664886517980329038945953545024868532348200979094437087695959562985630599315150791114198596383702308093546393263176096510125962032744092130853746335664930670406513029629643448136064810271333918649530482124341441390370427049761716272073546759519157069253852384024086045744088553539239730500932797257026456536461254382159537269269630903537897012750821094046593603991035568113314459733389126228836449216196105564994003127704481772152493808282288768011395643142926012622068213125534907813056914501973315492476084242379514237226595369467212121875220061965768440250069373569749025171572976452174379415147863868988136605013016864938322289711909469486902251545768695361122700291906606280598151493011364464654022901293932651248663577460998926274488739559504353026953184611133745081592351990023552791360375824326487235122254554398204018112491530060235059210871064547674652041361330068936163959453464913754569269536214087984434520646457212044189945994554890291104537217536566862865576945297065025701510536416671347275291390996646329236615230247768468128680582632042336348596624937251466119107614401036481386841006308464633794344952417997132608774860099060966714117461211145248099249798526845267154996496211603242174071587571414832645063703116114189981253336198797753150330076346214127058461147949012648116642976178216256545187638557512915061975960948204948716996897586171543268770557910938736585504198154913316410492377638373883414442015029786229828148661459322702978194522257811072407900026663988980799059772994928623048048004786921804358912212448131476194949922782174386443556157959434240144548122038045891601939522941589595652824710319308908991174566127968327207884132092224496827050274226293636350272872332594927591551974778225900257518114742807545680403874359863387258070634854810992409124779275136006045172848291868502059261647532734276166177257992721122835241521337811220793232135568255684824822431683503148962693957019002893375962219635564200510903508851376245269025257982308180881851770343980670652117868724473099006418286055781503377711250745401369030185554851432682530060105631359042033558570130056326307040444828625959392206674465646072035994068803513053434926691870288400680317579960305326349169205597645772129963054106965939902088445143078529422159672002559395505525540026294912915620330903640812502328161060312934776147156534243510459733069235020628117579482870303080736564896456432027187210723008522193658993852940407350534101729858160802062394531510454767322892007556935402668140640898438495264724504093244090734174476379179779990117382848329564507368436101606337646470789862506214647124528623059814110097956678782692623774268852641131644862967116863059845390032031155882540154568430343029242633463290645463166735780588169332653276437124486266783130864692291607136469144371630979128857238381002840930466495573103641053417569576347289286762777359229756387470864205217149112448790752675369596342023373991791263783781861249171790741888656250962358104950562752419889866263705306304261385527896179740931118330670878565941470966127110234859706791064503021622854807741601641196251883832129377610491188747344000459267504797815399189488133525864828738781759888688321866143717430857800041842086279317302797677469416276556980676617583177406598284621096130397053507713855866764837175275148998034138244308447556518203124293021189531136401173285083916777522012929088097631467556550991452937649179293328622457967599128029208985765145418978815327104548346705352425123589122175856341305288564358707548405585956644707624300897933153127705912208831155280833272449326950001122372622682641042193558799267157107628232635892200406456862554190455226124722311699787840387567111294414350931387007679802639679433992949050476284345994254185107099965857255580658334311845366139505592152316471513439500661672540882720602415901494005548931577899580938076824555739841985212586598311310567368453592493512360343662493995383807100106659081541626172386982152299397946010305935327933285271721628284894835089305740712283938341513511874175911960298238820901454229530222509490933825253589862686518005965379914077310819979657815243821103584787220718887666523115995922156425422595187045101729435046615797810404345026754104915387786609189475292767188277622826680315737606792193935694126082942363483104625767431772751914464035879437615210266956363369463799573142210319020223744217195291108054020168155400350713657485674784362643230428699020693776612391243013623019430005304596035284659041371660635361848157168351700653579472785222653871933208662272857627864303903808146106706749936821455217486669630260824602848240740772282843104152554386161597010277622254761128938196544552547743926241294095240374518474281957093996081448134354345942983061861762065862533824959243824124731515222288632639042365565429034501838925456638208122131390984480999905569570403185343466200979815867307614949653216563301057073277690427250596727239285873846321783316410493059534000831066725102257954894827770492808247271655740028577920113056691978440541767776974313522657560517110513036340192449092747575526725343242387021669568252221087199395433257512299875742633212202412057817699171958572249140899245413954269166188535465949154059277992635935856689010425351699812877270864892891277071532559856755669293336084755767935706317837016616113309596505381319251836864474043982183446171439694299051078276613517721453610507785805896763231722897817987815430427236793874159084326531796755586724931246842902296767918163766530958547480617911976356454986011527058823726003332839761061684817258304007589363665355713961930054834901325160426683443667071112698777337181057849878758764981731369855405171329658513991628060801840914323534237655345216437584002049988025370695919679612043382449778890373352648350606987325805033644157046696921856696990308216922683478104898928401231981789117929771359391641701469634860214541304747339813234628066144563897595514959512450675253322092431492851703681123875485889402307392986797205199443341681044657463555565077471298096759668073813750652010231703156587800754303660364303526080880297130184143183935902233007505463424735205756856413147863081182651385941051286574571366823984107583060847399320172235113748859342345267536272196305502808366096888593164086600891165300281329977964574786952165478177895013820990142838239575467816899651741846159420075465483915098439028945535656175368192763492402413126765912536776890865604678380916086882348987090081343006943642083402206374950412450605269175058796619446156255015187138081760715561449863167228958445529569857196393381997635673330300278874392005154684691493890348246868913883620392151932177797844103749198266734208376418401698671159948434051583897811455226855729154477115590721511522209474252717389354866436161800044748860327776201848835304869263044900511468597765817894661810435852111720304151114949844100490960650359404595160000637755241415776037844066638959446588859577333991848539697278585834846207566171462759018405404681560998344054965264442957235564173922948741489576315481635247264346034975134759450848253619690675963430853817539907629314904817286591965138428939405564567613334347485078217845795814253256352396779822892251256205603725034143032153232972747071367370975316745061202784424289903667833565883899167371161271800686930829458707407267260616711704212668138035517617923781399840839517755538932140748432975101527929430217868919220240641016219423598814600061372250226822937500263796112696935553953092342881174866636125746135263473261344655614050708591239753414908639750243884078861925447320423226420928031305033638122991979651182418207968666530673668398371601160508978956569090714116826080841450952663114028574163216177997933972389160798003829369982226252057415396001782758410014071444333219415965435566479648636973676127996442496599475177727791545796018871644824412846807397510154799968686262061888654339375135873324502747583803313871863975535957512371005125705188669739498732041310677047679775549041354549618101580126802473558764509810759510022347001690237005014969675015112740672974101302763178171722057428456244223514256291690776374957056479670600599708669778434710691455211283562173265686702962232604180026503649979889217604986687232734128289227889960963679097271058634378952917394672877430657977734062945497667506450426732329987551043530764718320410413638963707913005460094333582800448752951602499368924812253456849259659472150922921447475140650527470155236697211656103774902013103855960616440573361352713497026487010212747956929103267004374039055795823127941554208636399795040128887810949955459971876792699366059296933117404029340088099095662507496380756734154492114051247210397514879422332650394541380163711277222071245982672453377162611910274536091923267832201367426127210120902003286156622971210688568233074970653233096214608181404560630443352021573537478558565880558626340028309151707556960840866173243606634405721549719911041226403204380111991085086348459847516417682738226554382395979566343509604436514307997098998983634328996714652234865095780703001292105326344075676609034692924974376735635399606188131017655683502344707420203437408541566503271365952969980041062483200862146956745821198906692644783577963546416549018204916683176843093640296225854862174478964780968823484908789157648006335760443716912378392483961599423717653489561934164958400311391414135904617026492863504519586118243625322257429947463201382162421230305108433985302930006511479288079090111598601412636705987262806567811423557984905554911377405086035513278593653923905489829848398235558887891476944195081657533252176334430373550968305729478791582566330248133108125210394042229769749737321621969195388451383131204022023712364012129850374639601121778412610049740972622130968209770098875053881579971145665601210304164682870805203021240522601282751347100517797492912343232873225232486207533218099589703134911387340241537919562708249575766601609296359023118216081066433778439041585231927261563270535156351778338454665687096606996205427723380314072696971065138759559175113207510772077429840922968093939410018255851301359367744397161179232874131701679776237946668328234048396651707924813082560772529023762467931303796570339895185565119305202811223588938882967497997317627440175146448561308331231871515818663476623453545407171760674602403064959807627179249328469885395355403785551181123251408910446327554843267071703337307474233270688967914561203662958151882306507096109687089097966338194191413795266275908592410734493740173900083054199593454045217586797713850640937602071126473502015814052826847978119191735887099727324702715981037561037545671778466047714297638537960165670247671378015332121664299357868734350760448163645131378456320082260405158121531565389450605965098841671729377724337105544089395655639822231348906975031781319849032284747716098946333018289771377267724773710564749289184426006331874933787516089616072424984436509717688103036268187210348785536711573371535803922857813400426901309055999386063781872934542394977019502387635675920985303588702528239729469654870334368102570233422043153254570776553320175014188232251132800654373524245661899599999255167273378612435659094245994697204477558726827978594292946658998937508782267566331949594771874052262993622368135477327214278271361612890488283341239361459770579487491573969426263867278449306005902067894938712534277616327328270266555043681475257789660424175414778852236680172716218676260761643842270940173698276047103857309637895920468810647629991005410590203400528036517672330434680015857827791411568883428453200901464287616854160595181298961175978899656364600321558458554685928705739582552935538150461079989012017876277568548242079978414376560442287395667500976057233118935045232605274782981225263220669311413614102790519642569050742069577784738259793366138826856758625018687669520462460841041085963799749059333167325139700806916532914476654147265327328984128179359749317314696334431946802010477346843528581443551644763969496657496898132909381536194281218758609962050890426615360824776301660501122288653392779637130270736758244553530235277754611603946694512556288249843406368753946625355971002334505533627005777325051459446211892910430936143371909496344219896567889020367253771063204157452497270003323143290900844496908752786190791367121648674186542616721718322904625442736764633852916014781317551189716166863619530755400089023369742163620373561863589941466086276310392913879412693626608991941800848482400510266373814666239825053471121414360774525238304039236436243193491043365463534111939307326337671527971339502751058628602504809521059130600555271161805768545753314244883963138176361131243115056598229949220716419465240212402514194661539457717934699828237076113445208018449630579491920165993880321711408650001556358893724829256386979464881309261088668448795896914248290113940053927779315598883739358129403333145950933242043325584543606520772447738216749669910595773233803559413379532852399178630037214072989810966499670135442469570458588589667631428103891381021854706261904847626657131311114660979558455851389418327867157279784637877439922868762812114234085537904670509932618446112106307927546436002464918692344669651924686559229064431111869129606186599072489267668483848057363700307208848763487136865913845280053528077476744235255854468227132820596988122111383731114728629261460026696445227461495414048631856098006205260952190956490659117012635261511392433727015210273506509144292176265583802692902214162784698469939319621111788500676433454756338862315343324253883531034960330457184128163631191644184777598355388552222193150948377286636231612276185839380781146167127481413334574502355913864061052555539415464933499155096078406259400386718296834946188607241576135142965589650160610360029928475832640952463892780357859409153822204976711351391317579608117944378213093455847460493747978966669040005490301817127964785704391958129559527395042501785074468866717815387125190136480454737631022089191500275285250971332702690353633763419531031241747021127795399732199472332198889160648901963213585371291408308415657402143874301831435223184765778244551928434279062275448191115353321641226240855957370179653493431539814166207685480100001326188600614466158123823627986283027569335703007552549684710340729162305268148891384172987464979190547480966153267926936239365339745549383974508411852288754543718881604353868527954712190455429763431638459769490988232624817601353322470661916734802464682767100213613069004234420360244536080344896090779709174187266884333968303966646261721675379156180890466360922224212612995688547849097488148738201650079069879199338756845297585891290360890047917833968879084551655489764020188953004263491566489702406964590682266372453544322883128420211629328652099514914444093615268454443590366871702221158041670117358897209555273141532909810865256281002011812084122035702769794789558115996341531137770275148263261193352613211812301333861336254401608114794933179579409554810784903633066750930737611591941794624183294808184819034996472541447978311124952681776149374607919761090474109108828780406087904259933123004266401791500053165815613026351379841944128247362512207675737460635575166600809038627988993437254235820036891200793386093680971890959852758851724749503338202570042444209050434907649653212939356376419339826713454865298408789756162251464720280717392604691823676865525328678400540458455614432879487799152061105231325277319812927331109585517199569164359562460714449985640625394971415324870491335769771196695516770818710912054048474682845095924916445737151773531678702036090290026037496140058517145533061916429860245352055605947783023773207457362061789725065566117843223066018588746776650673106222220982478637818726971492094808390653852834727021638354837968839746271345592280069547480896734300794195218242164915474974590023074015080353258338589307157452750288431976244947177951573778227171362744232631661150947696289985888191893064514699645814259192971472036867258262994208417921250946796584472169246132945195438885852457687615920112864667373125149340004886251667627091594310843077771314330980191703045834329347356972081693087792996280301743436837144509688467030738399649971779912572434577805678460955332146056401206723926800432416767572014129216926566714925180313612140848281441743982328695281477525822292132673193959789575716455698514716813939027326470098245585061031801432159963448129915704360583891468891256392391474202649161911874155262113315155518853503395446178280844179431161751706838235048767095658201754565820639343368373279273967564480845621908942034560377433432621155807480915002084047891520402308794042000648806769722296091987326663301332837420762314520702157391568237995717207180513680748846929092735569541833631911680409518598663667547188071985214735367176291586319523603296435347992439923971341378627472550281378852901906777988335459278476557419263754277238118480615390544322703478178854246140550217729691901918687946223436027598340951988729671736031809232959789495565275372945137723807940489686485923466343804386214171159576763318855857716366561212123449580323506647340632857892238005380404457592555931559378699752044874298462100606149918942518927287384713963966783003262982624837273349547841900316348639059586699410167777401569567130693323702497448921422764794215597578547179362990260554471884979623516141736231391134289360052944977710005776446402986583660330005815102030395960165324737010301085375782228353860840536264978515031068293639964286610398536145122037726932830836724328657514197570379659523905069045940594573614029092333213945566830488044442854268845814841173265593236071458583274395297495592634930163471766115950988503243968384312550971351980151404551802868370432123557767784605930707705265036644111039838447033240800160177024516553042875286814340487873910305044854905434896535509913846216741296351673430932654319662818852984828674042744874585005207164198673424708710254589808652551559626365262756495434771322369061835031715067087851798914719786502414505619205543033720984978464819415400478593386514395234394908723425742926079190234027147437471438250020430255549671433946866223389510871832751312421622766366444276881560897192940016354708538981013706315176631728880883177625651015112702067669353473762692398146539981074351254813689355638406303998432156832618092899587948167613918169008734466149160500340927823218346447008066555775350891685358206245311881512891716821872923255166620725316717663305921925548850996052012386975051195748929778163226798293838300006951951733275800801021363780714085259901833819702282456234555080598786810356417846880281116278143842942519687345640793813451768031991571701204454314790248446719235468648229153779021128795074137201568320848743812944258475019067693834332413366857742515437673827346470600799430689184106968359516126904665294893957896796919699132509265700130577726465868333502007029837796910676605415684527681034056381764698969307846816173707253826154066549211186223146347186676304399645758379922309327312511729347583916721531179332651846103062960048244843569905262391603470811010294036357474058186799731651734958534360572948537548933295536607788381063753961795520266184137948775943108572320717159332279854653675671357499830749350570259080194967065676018958022218823809943051925815902519095817539061364523479219799916013265410999398714719131276067779520366581471139612752740054000915948515160321957135040245902437113722678762636195409269974663945908101690793906121796114472006389553215329529614228079485235696358825748767096303200869411641173175346474241694723405364544285855524715329734094435629056572740344078292832476875089904084266142191202249396951804841074857628631288410607791292201413384607428304547683985708389308846242714008924598844451462635572754395024520797129323843550938490197518118282760241991321739219998114215141237876755163702630700907384023470204210478912653014738202629950583979883959061675707854156152560897296986073690337922847727485479922070751772438006440456931490957258637651589469521174345586540312564780962256663487570366255685135092028342125725472086146213122333249081155333431480003929263618258040238045531728540319452162092242347522493514056328824884029867852081377410350791530796922972133685385005480608894544851644870775565247511081714891090662927111962393910620392624351926129928246586969542804619903380746158720204885623967153079632365039868533418368338843206697117616876001797631820810032977004070230024642746501398985080846398196630306358023334836191292161587253692386844137684200086261770203100693684620784724264095547120473478391051286028473104415597916616858701114502660848693463766213970417532699721337168866637533683850773885791509438119085539879583801213864097862663593996173513607972818507821875236405172010497060726034327629113181136327463119491016392756725271519010974669338611381921954244280584356242936684479000765795222209375320549146100397790946128433610426192027449418569743423139334079526959133413944911636025686397076658891224127929695523682931442481038582847596722119329975569572445806745320603845720295224854322157891501324229851119441618500497341155683049375513489219625903351607872584403431739124911404790084837102117861041878688072659166881551976321106018457076034301130227005427088941495990762439477769897913506358826106504950193268932713483651662988368369259453012397883157202645416690078689783157326660731562970444594524863568343954542537093425783625251002556361299702769714419873641154032844373031057855030923533110497253711787017758962231758179074847992909083967671946434178954730613708866404990051488794185145937166601106889846840966974949728461362559014404174148288966354845771222401919769647557531269125040670381458848129907821750372459744653541792923089082447495198673473191311219380140997199155652477039565905163014607454467051720943516513836977274459996447143089436416924841010169295748748059941144856987474686441514566838153406342608243771559373125688016404839960310831149139356817415751039213887231440169496393888946505454788358963173410508289801028290389268165858423194794768560669006244143467109389592421135913047680836176617880048571968181434944095339179013848155261504834173627234906034230581917743709810073285459768827491919902917782491559464787128423668428470715747666102574860292084163382003589541611371123190653936574427265898118830018524133733065830916653740591654845642444911075016375279727138651671205948764780096796982105348241408141033857032016035881662088735592504669600288531953833464944965750660731872678635375693036752488691464279752344389809398677408130556992054184364376825577744165058209024473887423111927163136669969798820987642801820241246295552026244031691672899121219476484708175622366669935996381477476542076929075297973521577061723170992904813543418307248598394483359344259966987238559196750346165794170812210755651322386495494297671426736297422168408055396679229946332432031423931033517846535849952077786030015959380373215305841207558295819717864062364824382292789987448788774100364396036761525093566294963680446403405570637068336400649429885953593179579875457724251938992526739235743593271209478369664221762701994748882396020615375589264234897140585722919131274346933347604579403169917113656997091571543323692780800887833385709862145303912453433506360296854693735692061397087095671091963218777902184706545527072252351702094898144018222652826687537381654980245165334477457257790558498410294310095689374617252184814391843968485985031631674864991889525715095005239200255421661772146147163895475167161765541902461328398366240535466407273194662718214388306069740890886780612219999512827006029628613091224644511021616125349874975075725747646523547334464289742475903208618033500250691375416348755158762721947420955193574770369706516458866730516123577440685222291782957176398012558531511816136423073150702322067498812019347812017638591489436416300893491063664195413317876491349844125583150006732512714051681095785221352374977578312389217308917452333420404412504932960791218361770948679203879319860463410612259805662583121559596917765246859446288855671157603896210887807586558436813528338789335847410799834436811558905700381117092811693004862324963061714980033464939546971142635236009850447954102338921508981442443867978278093680658710719243844437276311743871330819132362282355083988065074634951128706401336111971157346229941966748214601605460015108395019839183371012764378602484382305977676360726991678552474814944450041755748666722413588639927450384077763071286576394190485487172128689197999691821365389646436497803201664263797265205587069720843775729515949819925996884359820263689792038581483196440772164110989797947363637038946525474096440784856770423987560833564008103210715833366389782760488673570882593439527939744841332800711227693046891610073862331248570326257742207062961084957908790903113929243094905839472561553957248326751751476296091470576719562623117319871629230671632873489971715030097691808719650999367737824815947365273637521909266057803949732863905405008262733126783925405266744100388280009616623434841921571122684777263189715389925967915005981284482308268592088260342629397079273893276887145528171796130850636326728419760895905222860299614822447702946525397196619494100197817039486369461409324632926341887838065963484199169274902651192399159922355191776532938216948287202103663166647645009608154105114879825129240357250261232530801112092592758773060756970158385561812460387789876754647547281070181928809111699925410611896308085434384182285841380379700564903953340603668779304767114957356531066280988084105098504736021243886688136354892851710601320010577550589796863231981795289202196041085692746316240377604031122345954431261307470928100299178037678233861476691575139259617975533779404637772655493649056301580315386748950686229784355295669931455721832066398224482848870594080675966448478107474864070219903575107471152758612909460347174786291603721796090849321089723136313629788503546026458981933304130438137508843474027907069440962035011707598401255870156103978676495679186614433051124662389531655554086751504364362902127003471086522500273094538470498942275051535209647356929771676110063503229439864901859482509064663473779025816792419226588721027952566665352106839745694929009329796408986343323216574723328617962623346415777041983524391621912067012928424727593766722707857615669825248185565339942791440753722224319111228355790443826529811398256946410031051999247554783956484460318005988038165560483484819213185722633787309831310857436790557347958530148578094859446237515052398798449348114820732895319198191405217197612286732498130253393535945612993383749504743034403358929565820556110938764984186241865966696086974142788693582572110081868077211024143269262414947554926305591815817371638386061128795334793444561281866118603852534839262726281708949735137546291149611419375800691258131430452251624436340603757322966611690240469385318027073398000775947353052484508058238970637036463173326156287352734993869925847377651007695770811107144217151511158342355621535534351686400692225818879231912519858132024478823542720380768154792291196380472846617911401723563039124280840724183585646348739690762210428080736100066791601220227498992731866550950651475115414949028347575817921256924575792479201871265240816153638981080932206398987847900579600740331686790345155577469211876615307586092968294283738766197464214085984724627471454665769680987257576862793124089956097606169422194667079407482732259831321356771192931803781114064359698559619977813963288734449372835005140781951941407913982961743715236115719534207956576794751072766405630938200133644437720400882814507887506194159971035517040629498135426836230312320710498111924573217678487124038838657850259808512372071184495525232083395780154331977369309403156179405862750766680141176947934309686246181640545954957103569422221579464721092455927812574648025746089158398709263213865315121350279646010740509753342182661696918060896446313188377870986635745851600218562647926170158070512638406691220423369540911350037073375957772268508928918702677169831721186105138607304816086113045889960990884254240761873338431166842643824814870075379469834562551281616535944062190258498938603167143163726284688601853354998805809836990755818187366998321660998973810995352725677452200060656720470287830653650597887478621788054802112419422639784788018496397680667898463536064706876791297129971532468289486621563035545347797729389607197514804490946195893881567273565329890920386918075491919549579678208494249013241748888021978772359935184085245726380898059236488803796367418424418066262642392895868800271986888975301827701959040306727270700695430568931252731587361537606203766307290661791098291265344023065947967191114243650793547309848931683721126591879109927965004094647495057563340266004906385530133231392910892318511382881423395513489478614790539037226946627854782640624317856511402005799012497436129002369063845246181295192182513134467241874604298162888177447081906598050181351683784709901593528251908726522875856603531060686920387868090746193815298936775405563364889670030030613650845886980947346463134593112103641312047263408973586283994114236989867473447511325366012140026510528678378008645172573653257691103383704202848585016650099025659878551712853566082091414457907673798532378982140940246563050194041934988320572804546983677345025459448371833565572859036552520857771208707281749938151727003039672764039030018537854301289534863942046221884597401792347617702900974057126799111566438019091737621660140293232262097599451224142913817948458349775617131487693958698377039546794501112102563170285752996698330121484670456535801171160022920684897422690834473635354088205885679001226884108417276425553026757551825459635048360752869798673697615756448103913716426566935112429138403618151451853826274393979271622705701189872640283887928430975521736140234652558891750940364519701040096603684610402862226957162318285260806814303219239203391253476285565440205173697227891128428829425831367427721224455627328664241463344190446942263734488876236678534365886188276799923114048696707987678076605012323737238982223495161148855063463229202783990493591130817836652512549167853135528013859212726925049941630704589026474004185634896680377448271442814842066077494208518924213823282857923506454819958712320505941830771612172621997711332245183285387174984167272056775062688522423045590047838543543266568796749983353266654111545320768305359118626623090182135934045436181769474471132792750056829764350445594645786474461792820648049731995701373740443508753128900004322418870955202084209834031487263463454777400095467016881073132152836575528845406948998492339737984326765393612851224723395779157270296016559932393623203651052229272570342981503695344613338169218805668681237787136336759339309845759581157809346212774214763226515873597977243297499264876591430659269130379719461082030810746760878091175511086425387627007491347583211407767571620738881347313566755734892883506889840484409081538378298458027489685061516909404552862511334969353169383768600890383497909832257258805476704640068631232322242312787783736270418146084296832330348329913070980477371446456490865484814861667113159066703908537727541145501767293918009543011987953267612228025714771802362821618873340572012585470454857643970383244318189626376272647156024991609250790542769698847030354475146575247815729282095107868186589981923817562387582955105656542336844523341525729541483150120646800829592641314725632830223078355068001901123613536371827052598272733104064811535701297079720301689619887328988630028034393147345173350026347212905412312282911939641159210097223002769913571634991386301092572935340250096516470651165686775606983928683635146581010526975717741621998307386479780780862388154413966811226120188857021495666341575263260917146427832114616984716992734387538365044084125582083433019470044536678571935655849916692662471256908125743356365600625331714256512689394453830746776057339857925979773021449338892126599669428020295685055640372160344040263595576973842116181638162471463344236087208015823203948938286419967861855510774086828082504315376020195393334388877166985511135443367220838662482297370500827223487533294113603713961866248426082161366253651423583022469281683333209911737077487139030584967302254589788429986321245475809205320894743775501728854480986858766839349404104889940681875892609951780335501982601019699733132642843255088438853518379741371651034460775504853801989670435990621874644647845291092833910953183014844823474283119577594152451018568122812715278354039001441472906650137346407052601154479861075361334598677693555991807800360478715073225237334592073668629734570697639304551269659426381772304913376123900241229316549328291378686104598165847074480515068302097151103469057064420569116555333882384441123466817061569605160639915905470618160172997858929097546266674304452753943360243046434293297072730999942476912521870148685475911630848770153177146718207416532856423648276241846347046784804177925146789315143737901187746661951480003992424896734949348963101792318699151355722939001924327182222900966701846366631797691299399493318000834311981168597587659166353203610997960724779330745354119921792338762867825231239778000421837470972583831650899439014909693588409699909437945071788002770081691661321455256081204029814190124758983695004316992887395559176693195369952238173573375623602624658626765157031711991528789555986790536479230277642359999423349804504690695330613938585869531796167896009144433669181706074476873064724378403311989121950666618296714726829103751872530360024603190660465044524989291154720453981715665583975438473798565453257115154899348311740465106996789743983321802905924364804652732559221811388379628917668590557137363637779096572439321373473951804448322531464849653387260196562435604498625582156510143650804630181252106399580600885613800349600210893387760315639944829365656048782653411803514684126526882678120498367530107663544614939947218146856259576059091034130971528151381405962762586604528471646759999337604471556311235475287672304263229926710753926813887886805133862712135831841338371321581508485751837048638167411757945790878715660734743921805019186548449930048661514180449252469038918486829121634959569839559059903891006105820676171764024906612628495713326461759497110828467100555931735275782981651589505012455951268830088781708460070180698330949174767912762199419791128990997537268638725911077271548488486723479422986117335458936260693978281526007294053095337497527429954237281255622224798535033851874652964956064833818031743261849043373864208502252860780577766214739165133236886476649750486628990959103951146474129566002285720376638561025821705666895281355223799812175337533536486621566351413326230838820423433590725461496172130945676788324398271094323755396736737186536122266977360139146023298646609861804553012356563525468464959174065688495429585939192200269662885990731403153708840966138897286866207001304483413990803296256395578874671810384294539586212572827788957324487466122028466002136110063142516491144560463791520946047990668219879822428732128197280670172029848788171303149210933513538773306914610111942966307741815312937916042364847937364652482782500362080934185723967302659035583995318277682101858636019113937645393234543121557442934726581464144129303750106772794163750115408080523126760150696262955578343196949927742144001694154688253439884171665841614208228692900597604939437190994614148726547599292219066676608707137303951298627341057937715700563860320295516178650521726134321241450549462179090210959017867623819056889342437662457020231969036412072099442900903854765643247879610620726455979457868688441328166325774916439585106015169692459134850666490671028350818003614729952642173861935347242538772645804473589333732644583695926442855012625530969201909621368700710249498901867097338084575588299353463302784350753723257625193343122484308650764204850306160039739731981998904569710155768169988020181860030330571097810804897494529073022315531488121144386516443208349003806858789585748711433315971514498638566268388033465793564911674958607475766438311563155647646946501715100150576359046485980861532196370486856816691369643123189099486220217064934056472027053379884863656777699381766473798349327453689651134516075564517862455417453566417487865596523680297852544404216680458751737762627464377257574376576108753904007398610223132554904756753189368930800079755606837971242974490313456488887641224518346325448584285938866850872909414697682894502042682663721038433557822484490120030272965018072926203132024620521399292806636373896350392015184023657078644560248824812662738818203265064191932627326301962468854133212161866900285574922438669387625416896589984032960137369763474424979909994318915946308142216914282989676940506961799262935251072424669071926637621173765863232879687902866954584188649282473202605784041931302129862801973602912141090142991693154634309322295438909069320336237631109514328193998853018469474667169200186668434202916325790990272270068404299913212561554631241612878932648835605737729734978320005198892470935063707422188551955848949204692544870318158475780171493830081249609193575631882532914235780190554067398589258416869145633387032314433206677365674873388553349506102052589124793771302676500369154789626305306069804464351150608124224829565369665973147357683012248504715536056702664210938674759752422774529105422504654381526197697335304048349529990941883795375084563482775981399302516917516944900027752461156669744549889853948535957149762501724323156879826050932059558923929556168198328601186036707409847958388218312770870943320915830182725458077549467722414767035778257582934821917594841306407331902377794204297608538177572097192816023123043537474342779032601368514610754434916029061584239410578893423656172550633266170369620302698800637528695248473589759746731849467956262051952209377287784049622641904552662085462061994701621931257361183405548399130821035370654908500493290457227019380140040064874771479755399797677920199217345138842003605549216366543657980314162174420303007869934757951342766863004784037309082848479571458425720263057680207182802484443075985510736807357269929092461392958058755004510518919340925405005323401026974205845159197178298856252733569817207279126217041947071263900681138761446060525403992386314574781692363675166828578775602735134834983645490042423230857662675961955510777042753248582140127672067599288800913407658852889164886738792069580322961376217149116550242565325109340151420126780945622091237476074319755233756097430720485778638817955954199242495215520621406495071216347656503888778322667253333100888333168360374096821580800846341579306820641706681690821524057571852387747085549164012130286674608489755776440205389285977892242907143915020378251256868091542958759684623506535456445952006592764014590126791906100482879281487225768836077932185797035119138702225859564466227193634275773478339623367758985928981955737154349148031855368102203208209765227577035972947994573027966596893181126113076785819376635672040122499616328500391102487823693101906304164280451064641413867575737622542339463775469227513129035266775158648222551184317195622947904449397682077644100963538297578893507225941507932345780995369403579608159189517627685386049051491575647980398090532748787544332554791430199342570935885050150902514327472312691906303181337261689486186342987610158999975623794434226324779845080568056681470764573108085644198792739980069395263213259792631261189487370781855166254579954775704927555744537201788244677106586409655295197866358460574837763749149882858663424863450577683568343958770147237188110357207758320155620732787887453058093306376404954270767365795298194789611763104276984445541784931147553493168207318064981568104643164341263295178710051329627937408863155265185251820985728946764274272077845787339945511542114319970549594975747446961556321599627831726702604355603569782619316670825815126804776031211334918660441066913617376746191684167491489609043772567660025026320916207928221598309073888970882475806588224257961125261475742675230464693245627251942735559069971433245311462165170296612441301705913483930996118101289291526669401220617441191524030285184496028573625939538738262036352686438565391687289357627760792921377852185782065170306103432939069070048294662483846516331751690078778844650413746904309493416012496298411388441175338738641947055489409359988270945910263118223726222501369311774984699156305379182850269761138614928255912084510254786063371416773063089665049074922669941665105033695468673412203084815485603881890454340164446282359208819046965074158165789623313464634915302365679534456798353386028825068444105720667547863841570195142838617369004146195306306641337510217491090958916857637260713121960814167151951697744445181553352053619744877209366500075319334949033436170874521879609060011390018058672761920008112129708431365450020638144060558914682450256190729926058609017708142939500831619972047590148661321374247116111053949688003951547780419930912202054105967727982786451773010374785029044476876447277594382798651887575285122399540475857995273117984819640736641433509654538909981259118421105533369321946051430820779528813759195536756367430973542255593375727790186318707581238433054875356289263200407934506867688743293666394936947017804368114319009095478554129841871587792848329455781084769010070992424560166249134401363156284312336525282044228403293764494766138051205574909803838833468824613632402823813289374805683959953553156215211579509274716386097596543361857972099909925266483006467815068107016990884033207115465665826312162207101586545447107062794215983237254435490326407305708164286355954073684584174332388727652243956201987106134731082640233149161077236885901661393321952820921766083033462322628750962150882529420841392372626152359655536787677035019544678436683320190074059876883003401099241054533154420765925830348650065128381464509455102549529482580629620437164334835282112824827565128200702266930375196727803790738301978830792198208558734403408456185437527005958824670142248667450653645240661611759180811064540051779109162305626278001249871354188696972429373703767176633471986903394624626317652357094268698754162982703405519310311769220513148076782075385562873573773993080567030548065985394556763476941544163224997631873830819552630344582342351088101881144854239375961843852469527940277528491253996677816117248538066127807410668557918528533957930558122731008552267086350533763619132819727630045915949623036415629985754820439853496755690539130264223447862449393843502097815711681454964260550403506912109865513408356569985324187854565191183471909467413016186456926087781070286459731044856303389787788399612938878471904951173234802523405305832061643809692751893840447738941844366480511829464631729962074454656021492641114247396065546302285501936265304273081403253500686458841867711302034302047179090298468541396980924821510771134814220852520873126591277307631665680191054648652923419330783869297368099648446536917387084206477879253862982162895777447578643312476912870870804398158422756110207966583832876050594612313204844860638411999536747876802943598996403640004991307786036241985246919936323192124749583130002633395162588827908226864944281091403370536999480914728259789026752398127582131636928084268076143203436495330436946991743827930446626373545186445626914835023302153511853193296294360260904396656278917411995934287893608705230473087811660649735364705230110109631828826196914846672490178468806024638987306410066509005630616787757547981787662386030567595245616536646272660761159424313758159701849792807736551814408172554939195309718934949897487196845284903107689100836490936140533529655459792213861876049021262836607597507337996775323882054215821756859646380215065529218666331773959913559175776464061778993212648939070855609825065881050265695111030533471695672445608417486495876063911171796912092969916916449312303376233332213941189068716595002259498598192034724965439893325454193507058916698428752825286420411177626216489742640505051366400605811264941391494904061533536850332729437469210000137261813449933340394673084902529254772450690693468837216621944595051314760841007152085778607631098071051191583852624675326315639743313620834960147088688786598010478787874264380554476591503439628471209886770482760111959827240062946034499763567044901065417924933633408034320509122661435416109310327394204189893931205968916853621470549254491360173267879923298451865354683911011089894790117198009105659839053753700514379040340386766251525139790777271613655055647119049403822697656540221728901462531587031920278005607292158905901825043501983779574593256395887786663846164351610387785475936987894350808896423376381025115378017964698069952822378679109942245661997587925138362592288373422239545530203182840360929434018315948741398921432365837608298970538239365399554108047054161996560459849782705279480937240646506667452033234478112689056681506780179044624363344959281197668719530291499417423318448047851287810484563665677047380281098798595005757927406605785566838691828491034062724974689143680937586997407875956180096182658173125665668148034995298870840231021113313866031732145322689135939779766840989563743321480295098515096324919081192124446205356143597686529613174623882253616680945221046505609875604716425513344519680174789379185319803618539218780377931919755713134242036262460548665361001754021698618730918794464883119937028344399577771269506401704050219681001573540106260691309595866872156819468526919558681279103811333852416766873603425026672223102298048818169336316439781826381084591757192294731228004448550153088949500960961199025148647704443888195673872122790799471882952359646952242448612110352571419747985292864409571669730007096378821777524203278012048206238149840643396291107657517318463902481192519577363890956945834098774090240639464592282547070706189894932202096872838884546515077863185997045501033513788803305409492684426433705623767765316320564846826294135380736470964062204944408742773020431245750771882911142675141703148270512350937207919353209741186560841872749561884482194272979667839236343194623377427205249981458061829601547834810993108957228013099659666471312975409652003055459664704316832842728595311205727342106692277221578501973364080829933810860884923059733421240545893664612336389210389611226511621173015435908759224930348117398785187418328765523695294148792831849687162439934764707454187113748090659489209291107609858556642853985809090837614159113996716304152980832092564138513343686982447849517673980709730754552993572300557953069218657299230493427235179059107224392734430543049283797387054380914773802040205037658282927034735284321339028025258053173426790585856665194851131202416406665372483472359082991112618035261339126998480309088638641279738704747923365387909259292658999928094468839089835857619113987502759909673351487685533589161904299919713171176408779202800190874140445740293279807411591889981430995336837497257744130605332236288485528483654195773657111476483093774770332601565941412079630594140285735979379981940533138115974642917036906285552840164326438323794027136358841869244677454293274552617089104446068018432167140062243420629229257213060633437969787594804626753779264523578928026118093079363601887008511213568015211449194037167980472001748802120846005775589001003152284438401316723185784715382835320654712708694278192954892509357876134441791146477008044962304855918437567455208480777995472071464204338991122230543459977868625206121106821431015274303053406512767949933129782136615892036027381752824104068948337968392567665912260127910918875345682524516434265881139052393113280864609741700783273082882660670657316852430282247776381779486470715404302331717002789710280332755298273879294692816809383174909601276613882974746694578814291173910366191584879734849719692519274936246340128901496386843371359561290214830869033867842305764944742134431905319304938683016043490669579526391309636858277749759865274422510693294165711879101760846579037205080713712249455931064621876405883080938483468912022540165880779638909136460742262436641940282504769502504895130742921848886922622808100150569250518514185666700545109744864174569802444390428948409296696338751558887820765824164360052436682622325615477011942264815330595505343017619937827805205755031243698352353901545453080909111520359152801905731431391425708327463404804565741006731507806883167058154273465933091923789092788995403640382939222559434257465181359171428430433538804335529221172096560063070142400754545966732217192413150219013734386770965154683623596525700090972566636275696845698084959161481534415414495188361891905056552214166163703505037807673680657007125939025785589062322707461731432689703196505511867739411564211783361147133548644656426151461525382307297191934738377077930557578205790741686203270481253363678667794967612800825135797225171713853793063634773311016071423691158720555276896137315197252631644247196624859541650552573764560472390028333772602066967670072536048956474298979058690910972809248560471866365988054921585813763880902972550520834957352206839321765998195133251966501774861842743251720702931917998721663346957937975696083949173121434936274713320451427265134545026826489214049766735854764811656094363546131758093808229710041453447653884921474513752507603223428798403034275088838133567325557112784861310794817205748306746671408478244875997291757212974615163088041697032635183739672616260411739355167759034200141107247009460709246657074348061058752829242328634071167718968233646076915424014354924195716101881144236041709459104530190028729409084638329034521985570556565597296397731884098208470463412229870923816010413956029550306739393963822836778465944000886693910572819658716591494295853647639911552112917996778270078569595084028768237267203771252354715019070868462147598202975074735348260779261543820823738685797408375996156717004622528156090130156493246475363854384130185627950392766894896493787946070440305855725859535727505972498814052469614240959797414680106106901397378237297533652445628838980985754908043040640351366513574354093448270874587977811240445595954559241880956313125217755873739918881874852466031175595774107118409552136177350690647244276076942868729773798622860242568361209049127552544308056239903542894301372671815248223647968795909913132873580310666061770500713830821851609714349487932378076407410132522181184848988176854970736617808189874868365488929611104650650697846582592818915167536561198284792244725449936253393718817992718203275782028591709865967542971920613201044865435326586527573535206501909744799419102416670425801943108111405689636349472864584214396661532798816714105635879241323558743112011244591985250889637830483920776365674207487183047309410788859680530128923402426295242866152538917476303962054980424923873049151332802257586772016212473846470934845824999989719887837415463788318570173908353359202280373768679138869902271108674484547822686499071689090352063345222137129173618849391309640630299963325761015366496199156763659233082086955721045967830821421654096966121027640110586876089545776709872220896091241477262368477003232955438292065554359990909434762402395649452774968057122607785799784860030049470212484728855444959381328552820362219510590746381961419304123073410894534280272328884344558973071886143794743583262038329391957764213285161390699533891990685174581093765820233855122191382884236077443632960071628104278469889606658442963526625203666600127978560061603464419399305136282477001749609620341920193824223713508741330294661510339130875615926350823809316634153693663777699250209579174202411734543761819077508796011786347109533339285023827422474105035919023180135147867581807566375999288090064793345219672056577278193743360388293234197835356960160296767192088106959572755098584937742856219269890307972801635641495862890204027527932310333470722140143403708200286791806129695873860049286087973700019282229148001607741338881528629867603413274509455614845938442737924934135115954644065591208145778514643596649363594475109332843851277786897490673720570750221979882617599106346565403752343864941626620309015595476392611824582206151158444616455919063598672462571926624148810963357858061741747354555974166678983106780123795900307245062314298896491908161297148221810934074327972488447426429136525796771937992208767635784027425461603856969676446053845844126561507859639647733343709918299082522435155901646226993908065262779362556087480749001328807574034744559480157196018368733176752148244599148861875986054876125163993854637377461254504151964880666254162718231847801220627262101834194726224049274145879794691815053323176740084397442132965262961427559731909009311415266320229154673291473406875581892923046269541632755527763972262388556761785120639263621582629972210116617510996260224603974473235871511792355701476427966675523069064811297980024399683726064494830710363264899294987282026423611757944403308914741946011971675466690356398915810444120300596809408952178342067537133979082535439865659160536048608209561140791941258839886332352047425736312536857693264237359326963364109307021397021546503771694915814439898067714395070355802322633330807527071298155971013878279250059442565091132093852292256407270053035977433067791661820983611600796336482519918149129495417508498519948722902426691295926720290073232078321982258653871777426553048809304086928011645351857606289446326992572466440373209189599197375023605289936402653884987150338433924084597777040646057000339751358785958579825066997505096758842546958828680583140512661355532818878519393253012051027051729660716489859058896801378057022889275673951017874915106826959775170380066312481014834077872030040371144926748564114220924641721674344362130077310609334265811268263175446799692129190080529258583056132161375800987083834320962069453901312903322567340160925706996508739877634179656123122986518143324691222264935466974357606806545046363673803792402856271689797403165182148346897839769294672864835143319329936761352193074937514321297054905987977333835102697398870901824821729060238592179913413147584804798085355722274328267370816481156129447416861244510631371746931293507378418764861060355576778003537053616303042345751608031149430430271266890072336898581400752893384548575927017154645993497295616140730359575157890313530699959435618217054871770806821458350782607028939307249823310074364849126274973577227284558309856547582526964004664584285955000488359022010465711342842178653024943822641139196019740597783337122470980432378459546819624044262148040779947848661061745275825838567353312768685665582164300743049589151984856335301982873618740633681775958630431679674846365872516160376668796410487921037503089278865392573865174453924176240899184673142020525348710677508888206050252529987174364505945139051365114953406837374223150062744806574265586123599215751320704960965238251995476506649575447289640771230406512653455774574020329205974036226689690364261050756453432036754809198464928053561166538334652047919597604383029837877367692524638200049220038985304620166223335290744616423384301243264801897493109123242367377317925745970398999857142553029373925517409713185579984025333636184954332082926768885614967011081149359116488032335874434922811748437240201271015887319672467019347567438270965869352973390121922538732537537312433227243715086449902906013663971652710432394322060902871814031673660382047116412038804938151446466446747299114325471026915638994772171181903429018265268077860181416828178209033570127806335785703024872027353255016054424614252398191821447931796197245945861306032037453099296460535367478446329324382226532590502326618224151268558989177080374462094811102323236190723658888282999676929457782860602334141488753448317760989966692834086195633201318874282950348079164433257845923244602936751589416255210462017153392297398632266327642475465244841615670514975991871168977448141379548815797539901293657787718764397545987895847109086777298413359059739732542128369405272590797810397803362452756202670611151406824043940945235070188805718102781303738298751809541207496323371168106326583176850413203381702045041383417028618734758305233124545866677198147497364031463878843945017205435174659307489082227360869977004414442848096303599841352971066093034856677531708090571825998367324402236898160597598088029749058796406555471203357793814040959956368366251182667384737442192397636034846064016839280846648561546700915002366527888137716096034993775895555675900367760237563952300788127338980694784724790099299175105174930264557193738646725376003980450921926584766312370689746076617031675330744574259050718000926467220839300615476489869717385907878029713986867527434502051138810587387713292009248272241166085051228460278792233296235147630442484776414465241609599076883001779924992325600470079985757756643771763239137033713027717874321498027468460311758059945758891216731698562778651791582557655527332981404125989563510166673806861570813305479454882706189020259986168497644468372884751743339234164818090012624146133146071778404940303998019409561262571571576116192347314839588417442195252417945495245292932355206791785998061201435585460180143646347492673238606415400816216888603289508954472807505341578446548364225959513482441644838634959604407669895551936602718373390663249114618865440247812102532696847250748411125627357531092806099691091723169958282259396255246950049502528976402817892975583694432227435578875592698572775272717941536985040604069220500844329637002654053849468307724039893523154428370318626719677679649432115943483073534434263724481428059029794354565295680796415022834697255883793902623937396117859729686481192312977994314006776682876091734573852640173064403036707649537017727842677161524554721896883999798262297821047964423868707880122059849443959670109607859735881720361896337835427701254848055377359835897767433298771877548287690879260369203192450494436173256465396355465180326688111917964710372700800627171210342579932411498598132341593096587459346464648109820768586454897066935623305093076238909035840159691286106587740921314938280554196531031395616698966366763817082561590815093138465136073833743315642305478338774844855628229070553126209820747974768135427951954071297302685322078986982157259517558623065441741251831628145306626962158145991524885429151778394473416937493006432421968249475161735921330918969652235296668614345802895533747650722931468016653105714463538113466368298611423350774054217741508136827051492596201020164419794330518556247069505831102178421508980657582918708026870764334890744642985189710370576960245048845351252601536809652549480788928346547607955833635201588669893560385156647643843115886221232663997069453945456236608214497205765355110734884854263784933939839435157794617690872082081654470605419739590940128559450624648765486676772560733978423543387943492471574864472122458877431598415766130134825266507210922442706749415923720184349665248364966926233525181527189807328118091211639039950366649691490659966686247259250511745525782880429761771898764478370635865999311306688807117202535684828070225927330840670714417012553781869603233461893028259823979940854814504909069320337481175688395064546667615908911099364912349165724191508103453214733727693793913741777485084021900457745829712652123931958114346712260300768094549505402901810451409732314369071300395904445350946149929577693904594184745662825564802980764580298270303483249971936067896715454979822944723172182515668962220592263249133073149294017897130885013304588164537352985295911983563270613427954577153764922794992263027531565668947872961420380016153546444961724947449557024092831942631593077534166966957134089449536453114595936190657402702392964379107486501717928227050795880025453347755477194090111932610224385033287911209710613163004246025434155452838557077493426917080378683170859232938384724078684843641674389379806684732621726971968761829785028911816788364082054505791767073635022829714897404793590458497902099991538008361255950311215099734568779068032950287591887172048182919664136407459412052651074436931157655033648226354207854649440392437182698669602634714395821580029631677002408968575556335298805485373186084951220338223624207935475662577217904461399514215632358262622264933921329872039906414983439354438928946395621931104241638503244091513215577914158566014548561443632439445334019978999476692820480193185242060774836194489336051465648070673067578920497889000708789746569685356745282922654465540427817523507457415586600607378687478108343427492978991470880766027849757961242057012509737646836408468846436697665374043727095218074225745970724319336434078261403290152339616282315753921458631344787335858114312625747079350549371675130673296071880064562939889299907633640721443965311899590866351764198075536353769999171677296625266612066706068572799765679625595470518411840397071830416801702061372651918592711762469323686364934263576956181742113064896647151044351578149285244872556472073200911721866413331477987352083076620820065349028388966287343539514261755950352644276692298960537989157235988050309104104002747393250407084826441395574922885981476343103842397653040922160838723180670797622190407871130958874025356281372746677958539096751979711742311597112884619747167103667618426515750391032219122093985290388262678738026176985349769178878107827185142525278591871741528999382335210893807526012417742002755915271298989760532510118968918432986200046711633245913864782333014300905580855417340753466119876785797168166572128289869062063627158556524816731354629196322486140123602896674587824274009620973779831133891254115129889737456739771914335823979390032010162649495695296713412419491212861778731046338131235059422959882279251208687847356340932458603502669934316022246548659454796522868214504251637939047303293714526740384194589153246953838295481466229633128983443425728066150066126020946968132571461086613441592009356027839417184015230503219072800866675937346201168486193869455550413447759317731821016558358340262926282832884601563999298125802677126541822720802906744206180295449344191348371998808581849203086750813678322063255116230523005017119745266268803721653639755779994897211461030227709972839454421659740820287272196074816669998175960007681533312503691996773939586029486132636135423116179425111912447456936120120749855965976002425161801676929873788802403241400530207175076804129469770974283047221650794496748856314875802304222313098442440528842142425322367375251242412903258577716880116072976047529486232936599191155312270274051583454267097275182077403811914831698455532897562328896227489932821838478183902229219487209311785655925646856767681680172035628030115346687993952423563263796925645748756619463252317471458396573540350636048988030493045159670465948076118139099961761819192090293155320448643188589724463880631736743342414330280634809086162282119033651666514833705862484313264432027570959955238001479752121643374927869339096255274958289518503969157737528402081562504608738943497392017581285354163292386292302034613005713725794183494498829936076216981147099361863193115597906093901880201425785887493443860383279324313262098352646136234899042978679304963161458342985704622702107942496579942466058617637427189440240390796859629277648196222519146377798431682134772425350867707914225457070555715811468139981771947946126125793584663236433330120660205268658484082722855712014710975375738009722261080637105953805835782083502520123663101410135463113907926374144998090405197914537675484590814172897508646824606275284267348649132056799557651945746839422104451442215340329477290323138187265351090690689774844535198208026239651434983259037029635246984927776621221415649830798393212814683855431081733608138707190511962456225486779055074987130291300003797526882737623292470693243939042724971038212404728202299045910919510160471971313266136178877140542079209921158409610620569857546783377757360869433630350057963347668567873764329538846206245867950207132299530041655733511645594831497783966479128306804582078503068690675799990353982375851558312276616153056208337542340595590990327598831999735636123988103928301962638819405779930933662359389770433032260147111524699636395303668128495972610521100642418927119576205696647807957063639774950416261160304148943206835322751278782760554796925250630215390467883517262868048338587919755919547764342020360133862222416817946578234080553859706215087092949583355584084605702939271856070392167023686787077278075194323806302939400220594680128533102288784409392093451491688635985178451180258806858827757138364292500077279248841960437280675308358227793315110453750884144285353087476579670523540949559206187314617422776984855632510404155598390358654886365323014152726836193874455532148853826339021721062609841194994441858164752975544453963656930624309499203165381777656977097814351824957106202454821422502081748305060431462276911851857438217925883530012699196657920733330182276436040184791525201438599658352474063867069421490996251080823559612604378601254674106375220432392361752426907259093063789650454079335992349653745596850144265488314186381349234291280982689897450697432019458696643428906781993258198949274280614253216502400236414020206389633698954579786726856305933078840614098620142821271214028921032047431287609602979906847804722710999037135449340585196988185415087791261633396638119010892871211640224363399794466343626903611040199432595152919814614101259280219168694976456678995784177417588861375705799036425976272014727946202250879074080610361843018324086844101504067540184345723201493047591909922228963193818928265540931298195714452624557134770266573901724685602731339301055212052361166641554651043881285310961669365668570360798764890445703526732274252070381050835617655807140164814700599132149313210274673458308016100923377113438794285847297418927884173544881366151239915076273300223080644358522727331663062777433838867614535399520555416836988796096274158484095974978820966645999839492463135914821875915005741428895608910935298042071102106130676131536334528197542556352135610058355131820073841837657197644698246962227996787956062440273913178811857999184104191037228491267684668751669976246556991817678399083984361622787511835120957834357561774604853969849423661682415044285291211366392953209936626074107086120355591769466393802809230782657617656175881686742607503235461378658768063281687509885916139865052115236146261864273030796005475419414527450580441428445540396551879065693416828326469652802401154348180669852505780756030718902494973089249670666099590863976731632479892160348166215529652574687156947030030138083300325644515725260327753873153954353058282908103176808650499456315908467823244296527047961696083485748776564080815252661801975404420496953498133876722643185888281585207299022699271420431126944694363462239384524682478312334516161868647138598065186384132457726543113586661432776917699667793517336012642015018669490068506644971872216986702388406309713167011616720279555148724043607125385410592185944745038054307413876573361010711818174365911400375865160393116588109890571558177495945877476632375899951371725102343826791919875678608341163359540696801119855393679102147766125322276382946047834848478442336028265138981100746851782466949984912857038485014350208061298438532445733942123527612142290056925630041769793792196638020558420940682538925169731841320872495946562302983571262405437432140354221697665912620236513769853361396213264771685662525723370141847117703448479023538932686351655843893761611511374207780980052071967557128855687999146481454861900993442344013541316959377822602571357372910623715554033389604953885439887098542032035742558342859530360123454147903453804858898593254109143931956939544247319480877658330151174313818879061880388283198824897105639680176911278293193004072217509641581537521661893205146267748932234227212647282658930819017129930196912125188266850227042943744800122780772955640639905100219962843856143338813339538576423556635999153475215293838326105286254470516155536747792281605473910532053245597887373716181677406315745633562887470935312496783194158658152646702542488920667534459568482322710339605699726915990378892148977497203839575464733783119775811751045364214512625283079668264786089757366549376747023222933884886102163405962173835174853404725323726923895584953070392491801257672585063709143647431016539112575685391893506756874872599656051642226886359403733711531653384303131040408853302318628173748783477509838984414309222442495608962788410109441751029967567513181714780554937190279687134260640908546583675968269723164755868934592678904022486192021295373643797423131157408044774439541458411510020434186799660181175156407646028684943698821553960547252658551752467767656030011099053934170800418789076777379449949178937405214227683731576761150917618147592867130300841480086118275794372840660678715897060820278376706672322853076586001657709245917247627068635670110752580677107907369586717379201831635891623189583609814164219552287203387288686605863379325157286717690913109535997407884251371980800178492026487032714879801685602236333531622771540589893369991802667250505369727177267981043095769878585380857361400485735791864523543010393001111950659837259566830007784073105076687870967019264451870429262367055601337820467376054303111190168996901987061758013691926057562285516471906756407820576069137990415888450326873677953613695009558905408659842591921314844934419401217577835174173078124381369979361949930417206816314273015483991334540610722121544876390872167375610652229191410924343847444597188164864272644418240972123596463547533223872787611926325537904345388814232884136454769613099888743508848776952840704288049425438089625446796366085680228319281664616825413940486661326998833720522052085035515473066280970195038780877122747114244506901891896318425130440242788204690950060285252465875889337838895665223187371610282608480095628075848822601781779947646259423282933901703574121141063226728387445144314627685885425754287751082969240142387872358332735671041281783455750965237355440702173902328009330879709933635851535501872757312101083326843299770507339050230566988116413335248310883335147824159309576296481931275670348187418956518691777316227610288996489034517711017485599576924900191198825271381447884900693534331422571164158550155889672032399272701641351739289339612956150252492241405192264992275413255682788361299140590852062150740636903457168151674986678595713974671011619607034752298097761200428549927692777926601365985932742348904333654483570142058697810459119923177730421301405674301625441314122284659636786580567528555451053945316698164395160838298015306392641424408017436870453802299488347609267331875754897978254582587816888414116951181636599610698852531395042842119864808004524510222284729637138841770889167705550929294303054047579316142998152836412052465043535641575068667184032946677261135534279936339983519589319840015690906907263307262658801844355687280900325120061126606169864305114901891030124400682412523593506572044272085868110246196690270429549259443472770483733062575905722835352074915043029925274208703999739492466967239001231481537976452269123164558781355155863652151483273206147918451253706725569959067499664624682416808887319821934762191607074436311767643396306206934294275719143918920171753996899093824735315848046044003341474572232471193210845701186435879811023898791451840775601461453293101030362131221618570761832600929001929545799387099553888530729307965425798920644241066507411370437112494017913367608273506079777865204182237645372079991563039910344968137059366065430644979500177887784799007115808990905437129077427153202629800570803521978690602173304182056007226063450670318133189753719627474564729025883160515046409410389455855009005851466780028715752553550190673372817239165406978928403362412565745395187024484335667873240321296068696785927210412464720851740392863508264296842801881278965214958690338685971432831369972843349584538773343098824532556166202863959712366538799788920231180465627465787598950283322039829237923876981275330142798148814260738574350361847524172069649417505810220019427006401442488103074763644448276655720444878349773500107595940545865768975386421966299448195776420971207232997901470185572167044577929592246732994070629949927395479093895837324607478153986460618417131760786016145735983810163632258719729987074367571508760092090666106998707049094762907045252799855964973416502000815373124701723165182515454545626197990269722287693099610972810411687873399698663617699370233251964331640468041032267361012392817970985765356312968017352147775605668546968055536924657656095269339060269287779460586749110998674984856253116275248902438867497385930890718077289368100447667489124776626875746011097690394477903177347949918079321821783675591216545990773493155939230936264088972902647942173086686418123401662863216222664107369161214110319106155165838960427268569794096930486687190591591040845783140707661429233868466780653521325267214567636299301109848749028905543336712766901879220861769620623718553687247561392555123234265903687143489628109562631891836192446008630686608446941234632969094899559062766736305872895160257956744528800239295160014959826175781697933545641919626334343447974170314509452564420753679840098910317902886118301404751618949746456430704023658852250787520566957059557471619467291628081173752429713245084526436816775322468081111283754313324254953451595364584637025908639916132719890590820803973529266006223266708088158434180199417815347652926756642102820859171778909603319241161343918920342817376072868463970517534215499830679461152991334275796225213830069096798593263238295705454035665292266994542720604986039604028252335899642213614293227092338786845028878343078423160420189633170823868411406531717997214340555572237059266979553327930289431967255765614243904808913601535005829583658925680737772862331724260525647043546250182631947101183756814670118728754858429335720397120366178931414435580690449061772044267193397085862585644721503743832265021426736312070401944064031031481063952351852895222439082119298028664178211892939105042209134454583686406703827802259669001224081017527110732385218505405640313391782747775793428277152645378722479073747462232296788765073075119443350690691164795676887655001524946637442985048794228259664591990978149340124586141676534652890488551945608750189723281084157561275163898871375029286556213552488570931613327875153888634542863019002004526408687639937013716930344062717097801905993987965719606549678001793826629485661668467928365449491313565874628070581831907499478146161503059243568630553405133878664447387515062562019969304358206845508864102103089948765080294814730808990488193197840170847263518926515277148269352046165232139177803911888387325319700145671176174451235902711604653798850267013907580105257821301608809348374008757501203213904793970361517437525320046254899626416890134307910159851916685559878240574181419115945696917373224290432761123395577034427580946877067090813092912328546106284914744218991491843383435204095947296906872855567561202606228430696034003935459628430327840397816751137776845682537576650727714906595657927921661507862592166476544129123764176329882983896420000672984823603070355381257103031146949184972860101621099912556474526353777811340347853328300347833995796220012243073465776510424356274939105852676311606099511004777036350120215215073491249338180132469125569118594656077665941031362765876425833924718805471003794525246083623122889169992195627898016817453832496314933528762579532965764305221678909776088549205518334045764313775485581608565988115338115992637206893901926914801232056743005643502071044664708646996940889595465799698617333561466858177068707193383420798520482044811868611107466732354314983471342526771112474284442313081941498996510400002079314431229784196637404880105622165482746408536288252628624820172853842432132160146448482648275933994133553238620452797817097318125520783381780967772131828449470672940304457035689836741448024944715773596289369570078639197356248519331763983565238429173555568031609201534851780166481511286488371772707494751672629615753669184808693675167770488708567209775988306884652591370758577979843079510596402410082857281381409011064839325608681479878354319038058386412766294671238644214990190290192970188132817480968960256576079070957753061017176968694552821851559806206835776129081195013412334268253686595745871649293130297582793046767272139070264103720985139023120021432530101854808927441997405069353462943318377521372050629224005320973968339215938174561983846955945730913817184400372848322261981924289768206509021838940099448731983195472843963867578833888912864205728861644939545552017112160064261317992552125989171813202454664294699605116756741027319306730410235952864185700701347439833226739982492954837804059340827562861337407348421120949303472550625184504107070996417516121405867890128389542166787859624000046602986167500731274407184715881805858207410496153454655505919744131633568334939877092947173411524930892834637006484775890497991676864687215665331546897286246464399416142934305534419993079127151728633445391419303997106175598108906040719179027655398839217155170671684073948464039852030020478269556280954341730336296383013695579937781167895037635611567292409791906536085843404037725079473269491405775696133921558671330946302886697541369379244460866863401810229775051579737478186500416162442285755614428681015925287911985590199030149124660057372641492787088849853053157172438295795749229782010022098255516713529642827039705180888935124884448548272852044601044202332642992783174526842442070988282983210691377079478543264237650721863466969566871000420970367654030284240155442884864037655220274607173415405789510072319840394747560045021919316227524699742579947092224397621999352626597206260189622098710417293365560948237753822763275956589333056639275400195681730399753470917014087628509012161367710299378697668983715564128957547251992658483027052371802885677032726399338877388301465829225673666835399539478464104515479380625983943407006181430950979193605628202406266498635494503895733606078671499246143682222763297979714060157389811715212599354807192429552080576170746473482384873827032257310031478293296973346052475358486246357319855366606092892713650359763273148717079348493220171397441815282459983756676570711874816460550855712924476674826368571293407255037184948773282105120260072238500572545448984439585162315996742359148006713270622266828689991918347441639953276834743129333093719074967196470156063464205535230442254589856319321394576403493741913604022817895962735612172820724095622092174947341385006304433356696959729737990449262993407409008061602310996180469012901914661994311514408520431989506692093826241038251093421739675097053680269940492991483925472620632398249808703210128471139140458448856896998162840693880027605647307642682437010245304833346269031074102325183413477424117048810890403300464152796713535537826610743241467853802339951306044835423665652667054020491362970408243735103212497974227808715940665309818397390486546898662874896770396764862728822453734360103900390916383623400951343807289203273206018804395586874712916064159461392871086796304207862023086242167117152343756864217226400639629154825368998385449655349496989606103280068788615624734965480656682050068692972555931529548048536462334536704497988821650847067091874571591425562142437567007628730975403738554106423840497505259412443458536860607327242166361578203751926209456421601117232841651695459639660118937865885084371439457628072844194740910455543542497404828628823103920019814910146242763963658366739065222082741604216811222020034889966957119268900190798184422856565960717251160147499019915590843923088085713193610435081679850376786944896160690765765882863176748028913881953157471313332599260409346819184196443634769579333156688376429215209510679299987524765814012769379053749314899515116322116148876101281411507731130587167178858347448848147388536457664770399260854753220528657262085288531001763668412912571116007552665584348368835915928127403268744163657050323860803819325542846678850413762929072918161040505087256016747985007803994249349879455715636599795254437447433596468596180171395951969621554251816490896220906584434390959773480789439226183361258157425996816570913003005452465388820674475892006506547091809356734084506039121472742511192361441599706139067127592621702599491951051468847724542392025777357419888383144309486956260522328646050703912542726714404852119261130712394559099327915923935442258883448537114725166468148440784907619972093840028700120207589929092597680630696978044089060687997986055384449176537176377429972712136252861511384542453816328864462625894849868614520506159213412045778712487511910979032089192277260281968131980150120165029763268885063351208649598898746192941292238585839907399675900333965397599582681604149696427308181123660480903420804028598479900243755408071907086538124736768180124158389731911127981843414335702765648623793762309614968113740801340015375290411820706263126189231032748857138048019709567836196970935293557542016422232591202317323868590900588856365527672989324945904530919080990577239421930455564310912313405471103134604334679794740099499174053250558412194274860647395427556111414624370578304796898983124234285577304275951521783089772837511140818376856355359740702444199760908090962643482845700675218626322670863476761703206185250827739850718158778267714419124604996836965428285068688691983951269278411889350860903205645634192152011423270912905778581669103340550621909207129426147232239172424417531986412980822989186930878624190569605959863624699094010621572896939444079558974626255935698141465354238319032625229789203750963673811313021569180370167208687586039273249273006011223639759282505817706868318897729923372598790093465669247991965703898215782971307464823219014710333136802017544649395560060115236295716962854400221218442015160651006237135636013964393693401618910792908722975442551195437124948532226588891755262508408398621859667686614245567677917661548140318069352312810739888466398935129639074586682979897945354295970235587947537528686304510330107981801407534309242483316360470870548872521807476494074088317594557592136576340208724638137363303045292246800845514637975012145276809005294160906100648517698022524665286575702026777071947437207872728023832526485759152948460123113053987483671560610937508673998372040095118241556525349885090262170558017089545939422923010000185800554250030774418941963855404449965563306662550031369929801926254297288821844483411840856668880370146100776229670560424801150359186305821130902307339799014148315602091112438738821544223711276625984289572219862654249353421081202768486789005646420544795372125822800506943359980577135412235466689680719715474091057246229077413551783668252121342758510304377138034887731306280670423465504728827108686709657864945151217710959668264195957639924180858668670055043943981058193487859797144508833340197071164486353192826854932784599224904465496877914196186904724029740102916934346332071002805323177493071869448062758715750901857519861085424867548346900795442001103144512204707730230873558701434480266531119327016269126555384542922536568228966169338722946331318416609939298770709283203377739561928397359072355730348512240434849072094554676711514897174791308294953206526338369265610863798381215087375201422745467847478941753821063701084764794968302345054184706494579304658746627866109808264617497274909874595717706130367530520724647822845338375632685156826984162253244776565631452394741600597395122935228726932206419577358799639216244548104950700748187570506484386774961250987894505284649631956043168974513324278336403986626141690711392809680728271387523843184034696525555260916240834031415862998721332473631211557170788601531163960323383394450096671150227741403585271663030781531453966418740128225874782104659021896951421988593519304159773007918790675152026419810812740523232258154981616448139694966820525925781037560345031609385198830052602619202689686989952343855476625657080213547331381206730311643778703253158488867607685330006834695406144804517629914651067023307966654060172799709625497957195008792484272107981849326076921242241807478884140161870240417511172402346587836033816362129609377390370932125875348515103797653652472155048235839403401763628331713206606544455131116991860116909414707353592395555719265167870743260666084091528364941433591641383452980914541834613125869562831288611639728802036159088175329002707270120147300417514199239244025800740134402451192677235250620242537712962346939701271629507073835377514603051033255823513589832246000830156753197223822526717987890597333018595765233403533212032724891952865774508776083470888895967534009685876580200076613988999143326759685047134558816398324950447332179409216536218953675345562877750801120306638514773877328221371791243296951636556960878541146164231857960165240156567082551846118306171656003762461244819166140782713867066955964452437551904687471247332802664502146490997076769405967747297454246586247532706959259568278068740323780626024269223106570662303111495271393030613521629399004202963547721674607857800410141274697044072666591214836704350420845434588157644086040120191364142616655263292528157281034551599295980651196094503838040811914991075199560372039672476069744465358265290526467177387210846820507918905004440718385361818907701321616072361616722597655375741740934715441143327023390521454841622232379077369385545163830545354551482929374385446306469489239468548729208760939556815227308781326708088107281274803414296195958535416459140917965521414667748854311030018031961726340604611021400687785503066017304221318640678951117482493619660200006412639458368774662082695036480283564711583449666070455406551749649525345201180101305067250833172527322947092140975701300734052537274413261750285282817313391352596475932810093507778503712914430318098532148708624814109031593518582327036315400181859657078498550907540133992867556611347219709635106122079831145927954319267344113241552069127248980626737525116018311862657672116412297141303086148809990346867531080282321283631143635467087625172876064956719540712391650725184653130038088494745191807598355085670534496544076184735387308481645741459297910275815840799896503545421763508389915536031576074392694006907381728310615178291949224326298352106236550479926582596243884763940091271965664653517386755963668163342183570117816800275304854703460270268187850052778858137136514552315840436264023790833320500653210278568983070579046037705494630115998345557276662066967714055146790184759436501467232623271905986058301779250355913601883666114383002013529351095873341322419097831974012145614301648839934361528111799494771968162237297725464873884350165639940187639603026363013743099397932030568826149560855566419455824047106596163216801515165409680175915144980055134949788269746994737158242117954313798815413193508370587307269717483473019790565522592322175378321903688296808098846866186233965979300125138252620290099029557221058015232195308676086671059256198338729553386525557204895406833275468433450798650660241078687241363729317717902531189697162541663107722440181765444047926918452038187499666097403268002731577392486808441113367054600980151634092164651492479608771333814812604050093955641016806703402505963665949029793485556551408297314593245149201949547832096838987407843289626433022145816263768184265086091679613060216748099254549824314193927514768672621273874694566030838430214605856817277948813037962541215151964140243619404038746710445475122302101510155212459991867089349415539369229817780325887738228189601034766082331221241983706051015729521746187575439102716187189804955970568805130758707462478980661494022214852785086424881714942944523324581921821801374268161510517833282031535593006553376491227443287522999187113735889149581259372377904887445914960507850809756914513483228649144270780257688657082776062202854610875712715622576551734710480981442165679931781752899214293472323754041872100587631348111523094020184834922866100341266027413456303381052842981425295906968931217528537086577166862415939712056366536510990173643978663380196153620250767467449515723597877317574637649843420022407459811802405330808973936923114876138066336623478074975191219516238545107021832849022078054909767825330828643869407970038591352076483886788328180416281934996309782027039726796009467090280523082048528278038123575213436109657144775936881971672099224821085171472849682035801725738084398000948010146078550963330630456255363424298099269337651977037265615034034337744969529286805065332150949411477432551322923049075755377757638632064969064833512288105266189952300392728983610449719998065033318995272741496107193974126520311837202448033769600049566416893795244855983814301585151560791166030983189066965768002481453221260879535891692716420107288705672857985967720954694977784267061727493430303062819055333200178736234069759481902993299373243549217984886921440657554278971315026624838871737437428716445493887727357221178643140073316830307043169956449808033649503148033613921436828676775762336727991396758697004045826742299379034651618049907190792196091809367369806977453314026746117312481436655876247629933860101371689446411170858075619185767505771678256021849999224026852096265134658127315931280862500625183012622295289331365358440577121524258980571621186381999477729434829640056426841230949259820438909057986614791754679387266906634986036039595629950486596035964325855210054451742362717548047923290929084166986269109820683017104332712024973726594470387102014991115769341442629946280027579831817971465718658522253472893871403334407756753482435743663456643283057480731179134806694767533870256718594958973560112250478137926857974815698658543159308731421050251747814428264206375415832479402707458062694321604287557498932749370643922188997625327058070600471514319202688177559935423348620233256483961717430033702336679402899850170451492819519090302423163898478410038658666296786297529386587460953495544727633404930873861729873379306976651005602705583317666450241271093427264818511467104257736662051952261076013432077382903986549866975351714626009061558725795670062295047089553204833595019674361819184905301871529333182802170891209215652297041006507165026679439187993242529743364755745385392578948921805039698876207092368331037741195120976907043610278799448053577392072135551860484898474087336460664868612719881111761153154915351231849210652078852741816970529173352403985408135362684790625343210220849983262722231404368306230000173419019939590942122332477316929754347781631249851972771082018039402297663363291019423733634607932655082499168222294560167943807283198898854700679804197083268661623874997863835174745178103158047699762117310357876047603600676507082297014403417645050949170878449771135515777571512956168282065655892097479677663582662886958289292152102524180920564858700592065808136802956041941392029081331891424136082762173888417477590266322377161897601547498194120154967763026562290365460896025645147699255635350963822242728997149784154218943689753517801677251102844925351629336683706719936677094632798766095956406101547276077277543553769694607830741544398688592554560303072021980552398540183294058001930507945145321546339874266144055935478210137236097874565910970654328391549709297261508788126117237021180416426481489767680655282997636971115507537483247014240173325219567043923707619233108950106098306147287484962078383781653897113502702869125732716482160896753956914361402908808971506751392800469742614870763201072702693100378238225366610594716836454431788619058320121961465604005035534423396044596241984873664490831575547144017004186526722321553036379546888673959404431122590961759258720156539371264110685197888978716990954274956723911797618206576723423266082942046227612990364098003159057655255976517571444465567234256728492223649567473284083070042598180954129946363777107635016622388520514387482037260118535812605812690709921029885019054908050534137287455471392468809578845472024311467279795841239633500330851043245777386657879529829654378637016928954680339659834195403003338305137472069950684692498165113242480010918294477725909914153801782771980952692241571456410038608798359878078159725601743556636569543290279869452613324287729410483705095223083544142209926811381805172229977117870387974480801845790724347899439727899254846403546571401476457464486257724988373114299653041647466964457010743590913572981904818282037997180624850154700347475382352731271689451909834524726108020346549509258928532555321483820832769384343141711231588255314059967696619419032307118249328898036869163178746214026583767356168274983653727753017683335463378705477529013268557237265538274126392804718621241878189867758990457729676047084383085357610456827146398843324284357824671019025399980024967476609826713758598201355079650498787593561690560477272979414160486024753011666610646536371073460010302141138257577467524547349371200653601550071035420743641986207595531417499601560495851854494690787994898968372058453588211112348751424301558223472290021597731501966281340290800118970188936785689216703292050519408391163659640077644803509057766572605971883557216348426749643792476370558282200942348696950321285816820006033739222632806033619985766985057984857469197201901460950133943038388344445289917707179301190935497669005887503018982972824371832280941849667744225093940270087183742984269677441840008931702734547130602513610972670354302461463837774866968059494011921231634611338562416447578063595032653024387163824998858627989554707797059051282838209899915815171661876984952465085929476471136683498902328785799973543079927241683773028591864563470356555757784734915963364097735461699859366748694015598313051951130635664597442320617220418948637332931042141708615240090407148714344951177542709747134238949758584209204662751100581097361272892734678973220484541181597687491409160291668482548447750576198711304645673089736020002699123694961168182794767433129313823358085101300019634517210202334268398077413705024139803728112906905591030603648778617174554524858035367867597418853686464201904480949051696134972460858938344468353374191395853884903052234130818191686937593052545533914933216824964324806582362433641358615896339263370747150987493557496909526513711254521360766233824796365546259407037736041876064926383637884275004731292962151285470351505900251616709698881984831399641115896021630158993289059182100967183488585356068928419122865467639712536566645485354599089350884612760084119752131357085128567875491326094288444253188886711552963578180869668984193330322580960459764359253563987823610738031996109656679478460046271287059972520142522031161825873547024760045712258727933925765259207597329547983367075224567376410014742946337155392408755440095030210330897226149622405623962912292082103907372802935716635130659822447157171418633390253164563775940829953779978643193028894577740244775838837781292264859123679570720286539209794885854367473851152000013141377361311666073280788580353840158331299549482474433125742262356723406484869233552880316485596933897512088149401881732173318601239474968334722857934157569313655580451405131453738716688698424206804164598042843015061777532164466658104018770422815300694018730792720356236162948739481577479737907655665793434481235470916271337054841477977561118202246509109983158835709222971264155532814370499306092017288748832370618636360809821424902842056534746511240903651980341933009996600508463116542025697191558223382503376065456005829386759935980326623764039843285165530414506607811591073361793146739207967639455357298207168343674036534282553215473744552904638216406871809295651761162757774431556557678560083247791260383484872499224215694130851086010759253200287144601918807625416324805907497378574537497239521033545852068142169572112447039844335453505481863712639813817616465239811502275914810786268583414197230578032916767201906716360002910534643774536979067946387668833982502173132060456083741203463681038445851227374357349827811365888173038926759053084033878301932355181308612885053258733158606937366547598260784806137360003715062663497891216337006832249538269314136818922332294104148292224894229123545999214016089909584389459270331408350391588196666428474045190623218428976884265676058167671533967328156652747433083465726983812779417183767814742397237035359375882818101707435893372031502091732858272511671684661849062045346254054558548605760638013922396964749610048317291181767808965402077441549446381156971413154119025493748800498272475905546839899894280025563553558100902622063052325724762560508723269306605015324997148290238209369439294041601150966525682171078198027742044205678276441150089744995918073771167152097960372318959931768965534940336522125829790890071541098933831464639359511582376405299937206510089902699688334530886299547990900704836693407106604619874494939436768903292887712620350097523405950325515355714349897242918810671063087683378856639274098672521118144794124768691485132129813709056996901327363585373221616298385502171695710098255575805685367347275059276298344180331744525611898992905392580971750582654707270291145512836872896347408915180862247216965854597421022816099779734631857800021702429972105177937288082264555522149848717608935991433532855087807698746967932692585356049078839645455024899920920648472432727877821063627641364706010622257156906295293231940809861415639211468043081352168250513150167624352024145180994545488120186114605538864240637096792742341818603703574029930496962437580289705308473798280016032029683339793051547904994596992530202816338704100825653114846284266772992541068682547564378948034643670459403679742043177814023108922596268809295510285957453645433355238995239783994543482932705176767440237726974683763281067174056963669630151577446573729502875936866441349018392623138665512176163326912141666836131150033647876185673684835665931217904641490077764113960960452817677743638332484924777232461792390605127988590827812700003970685146437956418404489259345722143906369076156087840581411843483682044579132379938815354111238519729353810769663202336614751648280691715539497891731302138500164008155076870426398450412380679146256854985520835859599525886257826510309808437195235313035286930229151990893066575114858422322689792638116325343995175105340915931161405240095564745308492515806853878698783235532064880025845389299431824468925409717307747817333786233296494934261717642269852221128862860675482978761309482310854363462272796717218452298003269817472961716037583785969866044055865503522704570372258936922025187369276011498379620237125462691784284299276630342669682816437893856294662655494099999434908241446923078177381087185392696006687754898631338213435832205372174779261360212131793837193918358212090151799837342765372432207011820968024380061042529358910108633226092030118063728161738643235081759518470509792941491862960369650099618624332393440292641304425494072823729800161116309820201624633664813895190047584188215377630002410294049761730070343708918567765959306545182236166402553473353961375008111189505700542558536449361380456315887615907132775828852109767808749597662725569038152113959532474956704115792829870407836834079583483358522951700102625322930100032619754708142410536421753223434649031490169912166460831279412623616349825007102104150629779708322120111520941893629431428994404063741483836134760592505235141413149796052273773674105444415808713803741042895899492629936330569610415696556565998063647367343094206498178985888490954957519363247983071365106261982942846253001459803776054749756814645252934564673514764743260507992350055483461805201899222508690223604876480471771771719153640900301006265864359384643269822729475334662980800771534344760151136290874981471154507840796317960105633563603145042225902810563225552516554949608359427193919852299477401086277032733744824812076836038217772581669328707550017441506416081302389877248196296308428959203947528129985411400261766750155872004429922185774262220004775903044033901637901503090370226421195384488872341080480205016557092027093372843845776991179982549050012100732468149045340107331463631965216221335032934914799063196029362697343220333113565021932986681783136303330035220900919980508996660684567452762857650702393860456710102763676062129736317228051419773663391303990187970846525532469406442569205234672409456715797338513671276229809909561923783196880627002813259479582754846783505725094252643686806302772888519900797351796278066043422035192745440130997488042440510529165370777797170399529642590431022245989226168190470887104834607419727275203598853901434593315433494065389980207537380436560416389862548365805270286022127271157296054952072537983267324408426197884868373175022479576015884105300717561280290658910870623806686349400925190366067613160871813337681035262829609883900565866585777726758960404133846158536322198465075200541861682444051560078364191958056702649108485480332587110536765174794016463083909470907458275782080676307217603425745699104119875815224409129594954292047062315818610423166833151411461402616849185065015630171538508672855031357803180950946784609425749868084735661226165765863126552170854828347016925957839648215859036773226981994596152140223411885643131797692360951501081433664033785235786844389862756498674439065776909474248061979586689423202100117778195583591769384018753541398980146153076542439239660540295305729342878450691986186414329304325849086175693598754416129333684274984955197843281632051438978363416462470530638208838293893077089240599800022698130634502985017175167605180956649664625397274586818376479022372162267350679515539195546965129144508924746576161314592028246805056184605080494319954542468340152241563038608745896357806609137918023321393666159332815209371790203387634232146312961686351631187596348860328117716390810449761009764762866281310009235600228975820545449312522122166050545658285377881912688826905795414222254009404166621800986465793897363156495652329564642520047536210163995145016093717286912983466873860136136539408859261221869295301311987132326807591810634974914147408409273753797841277427868558037721136659153840979293142804701946802495423400429566519116578238059210110087857287826015299962497763053899171977720187088589284345170194694647584522575468019721775420307468246140359998869930949681930724492574339875164256376269186011391718200949171266372363060794637645953205118433021008326424133333997638294047400761030973229411460480321390072264171366817771641252137412296975581019598012274446623756279478084894200368852175438679550121845373040626360840527794236242446525115019427717913015207010732586789846450671729193479664207073762298284787101327847924774737960691923673999010341287876621496870492078032374654449342154829981262239930163085479537825786592177510780521375383345425948075446510756115667293780471103308306219655435060494571618243947988221003285941514518667701664923348438883339702683488209142097515480562064868190342950559472243599308709428672969876465661432123743398298278204734659470216187770378995056284912075202625385804597320448756584244466898442954179929406887887594613168782951892711426296813083961753140743426886072229060512505277970069754583001945773984220162365179719204840472022524163704647494716063039647055915213361129511602278461886951483719933032871295930462240079033298256541126939449222063919082495213154905020068023243888007072644285926134497727597026875272396718256597150820763819221307423442803433696823648859922269168867689058518044245864064075856934950798671132351861511453008307566999227286214240495149718517633461850863524445276225798479563107335618183992411460718957426762397964793858160279764406412125941602049752933543641296086535286538763325962421997412869561676657882522430204799486794001958897950271738201745662025812904922388837505765898223433859660343587309057393065337885560660113177612759465986230997835543161529303803893137581135257142384610798960148068860944993312528674780072217598020055948661770788103168861145550515456895498449550239157634496048610550529055818627497482882944282635073680472066505173811289260930428993949096500333391890502659187514652125377541465539138129689201497417552136061501402641712887091504891670086560014855936011830180094223191713092500046700310003406718591614967816044262190397485482652834141002752075809625969235750147436909128904256330845430183211720581825950935028627670730571865630902781763346120801703791656859842192763882593124344019361932917180147507109708225170925813112270139909586477823730200387490628392579441195866114592979431001924402870005309906489720728861972172235129329629209131170434875718709929453235737404211736177033273251789122298467115072629289770720132952245816196037018707393358332710947461427697102732606616915095017699812507748036948407024088981619345254302297120934304515565259190807512016350765999379160156114369841196698512131391230620273432250760804519647428646687453078729265419779052549466234833354077900994030779296336918630348429946575129008594668377167608633040897282970849225627822358185873398102600090445392466791054526394757127113835333706438925794476275286386446236485537461658068151644674329109026113745925422006071993504625462580518787714137664021020973092367826830279334480632764043369890127610244383593697394626486922644950900315844239654827998616544848756653038810124394614764030488675150934163572927166248459845982344038772692319917528344837808683693822788772385973076695160333643994662543524451430029805193826900800684671700485274993912978029985355803491469969531309976205547892926767448469469314609020213810906887050497050107599900864347651269717173025659999714829909252781974520989835433186856241780822434539793770226712768506047555977115090546045485490684644233748687268190547725494954632640180091413613269518977779229460091732910472585682230398588420771658090995838663045484260530738729625520942868977736685297258549782487620305974041652735567250906898973734307177050599695099372356779695000765127252403748922959853843035685217409240058446520006313685516092191527934979870651861152485038865460223018210463746197549961291511273345892233621409986455471300333669419798258817035337091031362522855354097650108810494466843809988403785722715663378274102081976798752399208097489282674495026688276884255637914684802939397693722382216055471489616056307497157191413539580715158846247185053620999026308522265678926549873463279785229694085594724987002376900540166633792708976113689191222546778181945363113120538079760633647941711446379793037858877227468566769904501778777367589449755528117716003570280615657848935780258706090246605740848852210014224575437883581264986747600856589653387697669504990843550427991817407539487543353838566052906935794353375319167048533725695702342084286178432576499624645787875007004441786380248124834849794894682780091637059299678892898846953915474005594077576081172858401600793169063197507623688714505645264835657415155235602617332920673040529464945262849383523411831569277169120464340108548531229265280102618819222353542918166661454113123943261293451942351303519688359927047596254184631458350102364795007791077476810964998184405530478303819480244599427573403955652231324145915768721301999372305996982159032611973464646838809316433997896003517988036147830987468679549879229462204530701032054110568103968221136241669759978977343580308592565826291669721135786996099774597041293127820560934025202026445047252334179661279125508906469960535124913950656866512319825192075438101448078730227576825462083896503578533452200985605697237325043593945807101148016097207434318467454439563665139914121936838647420633635836061126432919885083110215595230748207296527404890533676967939628984787983096069279995992507821039986527626327635621830688246911002886672238348711181450331703823154341239300543841316008118843738570637218077864453432158670043435951479503735042715247782835665204019218519182073573689505704249762556150259836715256228604535978257367178539445106324480941667898719055639028719129925201146216258481681282778417197863878525486119944714580222539854231414596210627018285941153555893835025316642654055215196450791653068217558641222462845561941809871360088349000319097145646378297686900789652565034740851939877451116132509115902188036882348651419371801464257024976966054633832908334136198111982500952734697231695362117327663602504778549985866885736163105328568763887675114091606303487659571937083071531139788678881507766582592441835718371830079613296336262814011957550439618557212966412152098667823052731768704190418284167014324880438035370248616153734002326786296070941435646032466183283091508075037715861542411808139594864021974585390360056599627932053179230155778355036612707533703464003498320289222721701110533057925272623122018100054228396823026038013524232779963212503457965600127829249345949393597164412473616346538129909158318400776309880782871569551183238366774295311198924222113175171877849361785336602954798921304414960638320705029012525752095779379860523252452076625004351005593319718926732568156047473172719574219828252415519200187934402102766727548516547547444924480604021370146773572871234470230004873832728787914390967733662651190035110444297392967706427910542754292752221933814660164252148846894146929066983263294333282225347675268046842941856665245435313733447638795709180964958637015153895137960243307823123541384766952182045720133234389609801123452611201889662822110953881905416070807528708920698536253834459023148348228827873949748971308292212913961331098076984184422528908863676825866798985056503329610613064219543037405080946855624890317507705033175101698287946309836712495285649500749064769473809787143008606362702766899716372634326451573419257433218434317535925570234416823023210698340906784389559976854805899007653161160342900467855657778502828126974039791864977014875489179544779105714883826960673310283089309308254247982529566099697386774692899078124994532140623393797705455740568898295794941539354961340051202363810345644879614083057782742072798220455260767551977789439902650386277573267405326452348361216745639765133397252913129402849630340261511631809131254360249091994652109319209973426180931002628827637995284057642467794021109602337903340156568050115149448389259522942323697608511692850678006501495320976723491992650152696402103052370248888583807144269994064220558965726369107231026679821141220630234696343890847337482388928576221297886625991837273133470140826312603963363750876322807083771304498878504703566296155397353792058134222969504891171341056017808882414514524049758230621037438279076570477245875692206261291423915103805360959248021919721162069950030771227866590620620293623827809219171065816619292001456430268505129354456626612544833298018472397825281924094798888238184150655535482907468636445932378509443794593429738857040271633423150343551687008288156340032639538944630107411514365318973604413392457240748341464330010823213187184343295014563712400657533439415767925849655727749352709082540474401915163430621012472900012626540673701798807617396525934610587028099409361113578579267277940019197098811927125911924159053440361228129697377002965950871685305152979047201868004054578088879308999364666232161691885694395037316421110887551670391525343029303025725403839760000804150523804279755431619756289279355514207589984602819873829186848316835998557715402582714049935491927823032529490504962204947642621161390609585590640494473179150604943239466924786332292304033252372961755199129264423590266591842290405638555210512144528386454531961712650102448551106163169424983098029147203622352100937726463308061445747964769896245211037047004301270397477241896196188658630377680556232259874731229240431598136100637705423555099142490841202283453228775800562635477667030461857482213870013209505272535397178464079147763518853047400644136332021984229979435918584887110076089563426982203268963292116774260460440992801274684008400185973289817343198188513621730284821306521816939975112574880639655039106016932200499848169024735032922358232399541381402674407061519617382309716208268849932040905711008206840861028740521621132874563044955599583747971851517809938746023117754678535567221130785638500809669851483854901250864305043016689126564548196985387048512601876164524297496903137390204325289064525968539469077454506529985021542252341464091539608052833372489409113822866321412225464331086942713826443591077976694203425573272397794359869282448944435489393269806660555730070797754245086740179791037011493672098213069741037071548541430827208809245036805415718780788433341844195474151744490219293602071839247520884213148108658208670272577158431917639953353128618610994106896185793758066464599044483083690138132919692272060881136311709527699304620592983464664719510509554689592342424163628834194528910901425412453657044399462070976761808915446814613535730667782950816052842466566062588047711109045634144972495816929154098525321695294816818754090213053715241906274539053215787116675755235353380441214998534511766826948663850101101529066806212268161702450550314288256721301005733758647814097481810733985317167710828117540843403142785522265841655941456394094791482570720881840238321981307218107611643887470504158689920267039712399192442754960954113361882009661482497624201012670102922967588004188228130187625320651829851667549682315631391060248347612111282629912536503970983093630934285503664997898046032309772288729431876948623208605089620973573078426947130540933335512904285658577664350190086249707695044609566901941307994581949120762759994293418615222218244105053675586115719212906712851773620939184532098709284398400015164916341597183902990256668895624047675776526121111218758988885300606979384475999608262256857290996955489456590791016698903062766913162336451755678067126812890015270495648128314977999766335330458319162404295868934465135259196594135139015778788795632636240123226594072315300836772677853073193744535277652797098133493786273494735817807544071214149481708352014269731918193769285458677994844774907862975360915156380959846440847051451528910666163794754840330721088047771885387981777382574842749524481634625269861807233420490714336700729494213175546662660617977238495710574082707431355141766109318236811733623287787508950572675001970994070214867735291517319719185314567711408684522495143643903058427259585051235580909440442984956562399482859163732256846176282986665048543003957391378796914399731977579095497879409193933190853487412202278017635051830846165340836062313594456832240098599377264822404732903964340805060712313141372955841798741806596583053184352451787772809259831733958621074934545730696422411148317022811222082561946826972956660284862072423084266486992222728324949960374799460430646922221030264373208800982593945833597988864844931432918209250532115031420668223123745463592513415129963559984455883992695340141094442352014443635414565581560229761641372594672278025408423083769918472419736638130341129263035109329348554837413010981705166845049785146334894662891535350395766294867685775051397506368144160272716803758030913706794087550915674182931639143695768344157446531947861506701865795082735370293753285561086281208759194221400680065510548785931075951612094062610641208760817141054785921356891967100809848062336145696959468038820057069092617063780972744305078915500675435750869459704783372916475122130457756737929565379544973276379027949017611138281670598616364231236394162070784536079938375204611678583104072776651645201837738477623252369617233127408478984343814661315978403512039728951951468432934839567145435107004690627097990041929573203792169953066896820888813646008167093559907911467315419021316404091684989109470874274062318932078963686365300983790113933895908749863675011627191778815497723651254680897758527440316697088742621605022004017102800874595453760195484451355943888135934059239861659756962091506708280282411189603012997440239629424194572246821481960167651828689688156593077019632374902442165524394420139881972428298897873412769319401291962216124630543419161921821063227270692134399472500888325559514840002506995572936710630551098629419701379551706943133339794645686311217617867392132320627741910667574236703932415182170880836623268220625991990515166278568809589564671905964024905007459255497614502408954738987648422433592605504560516868161276935926074353307439842538076502026957035652380842210141664139368929152686185192111717332522130069027198093722844400279021397863560279073539423899182473166765459415742165370471981469015571506787213551006136058989711344098687878299057681404094194325305509132363451245292555453075989076592072343815652729532219808010382293156513628753989519955357596846113416128994573120895466487741582873973440397475479620254660712015737373451675317121296800065143670935906645496394355269534553460686611328560122872187909307630400550490233860499659296263752060831319357305390249788261425730500316992301044224044486438784057627672225696716085660417082804243419524822327182238044162162415725822351097328651965594954125725568422071348245544787571273273753386023630832337592637386282938362243284175029244342793782339477360044158027282432390886605572493815335817182663621444511154715125763587948334361730522960647386529472040652366950400090255839887263108891578686409706772376085450988499907235475949446933803286050560152307099905994993578445173305886470790171944412348851761206665579632410547497276378693149931788670053133025233538945325419263932773221199667901685864072606412484931659838494156287740139970941202231394525419345588862709169507657381921440142209879772310703642713524209032980864161635515145206046925252965171948833265506668574950906211560587011334536929366873375246258083763122284413883170949236912550491621081814910953491890766141445610459523265067754647917289252551009902660673490879903125520350229932295109626453654561304263339315539105974362320475427374558178000530431797636788026380072945825002358464696413959471781633835666668333507095866478555826415705421744725850355810431421128457965391438216211518833557865544650499652084866771261340789759426858659214831578465467191337198695576717673197879385417305497818192691493970031798388407871447452962510151315656989774031383321288911329472582265649674586616031680720587189796330012613214037182731766403924895677158578314750694565226558273132845534002946991243143729466220537096769960332118035771792977732962812924455429417467354690439961538550242261600005695469922530399259961532192320780149384013286054953596675286988499046645693893971879955552114303597777704108077200839888898932702628361409544092154921862556592895433075716913933419222003438741756727273877071617173850446311513372341912422160619038162830928295210623265034626937951905113203301366869972742497492633361502859152278676968387572800835475255995578156321487638372683263302391669412247305240455515748046578367597569901836263588315665584750648156482103699067221129192938807244064195299005987828909793936578122518055918826808413664760498250332284653806128605293963843090827097177116185897771412047094564708329698010477899816385619594347972985255319972111305478733754930070825502319167824162250211152058987763338447964296494007344100103953269532736864179976650703200910440958532575990141843093333371079025975849544125835941823828380327812421054270519401766940331242602205969514729896622324528692959807177885490588666057930303124598864910615669205814366888069885980189590563208335918579538656848198366126764721928288195617771570799050993426055594840273523608372684531173947492050537542041509306389045494231485472142254860458039287663404460553220947450457032605764884816051651109096865604515818932760459719665216405254354650759763507881263463770044321630573066619166705319543828083614936365839160378250984124196602205842768213920605821684947462748128201450918970936763312148956934405484351415596049387186348812176845346272820272111083862774811160716153941969846989552791419341124316564974894598651447755168448014366052583320656135923845267409723033524273025593203011649640863792448889322757909186285682291613041293009433109227757609313314766557882049215603689328878008346113032722719997195109823490217155345751606790448618035206104318232833722396580320481551427156423592355605215678471573085758070218626099503882506228735317672040959192318284362413202101336861381395510068117092876126259647439178127156776625724244108456613100707691903598024864391373054458823461984377405577344542464174282648643903493798091339564867156466929203414596584551611397686129700641886181048648683067238761151446828379206895321153198893035805960163867617489203999633031753100560841616568777841548516125536259035944295077979033070273501450434964371646709466821977573418820387431376619875542309136155004104555083929953442549588613470062127771174132169036650459644258688665625356294014697143619979704782594876811388625185594754019224039651192286068424846399387985256648157959375691197042449152971663947566516282994855627958128129000331730986078186085372435827774240403624998169497052174549134784996158873481179412289494249734167579786605096337696835232134630438732848708348389086906533209145438308489223805322786411031302601861422240817108674971194886505368458971206411907721455491778614908911138905340748079787098153955279726021670661091950988534910381987567369218758258033219508941768483432131666572961282317922696000634752532937822886110411097735259272811032185018211758192694281780633533922973826886272982603993155768665930703507133132569867219696541557667268162799873674470500117981272788674572783237128249579406898706171842527776466650649656131041538521150440985936259124219331113848335497680091071577026901055922141025601741371255733201271685309469918277664016729145249668650326585003770313032236816075397064885421460068867016277018529271535349840343876432013151753995652632398281115507090139394510961331907225674950322968428483907489749783787519643727620449478673506053363973006967217903519225710221664789407337497124210108629213895302884898501718689340274241506338396817507783461489732815474464658905634868266505097225265031703702346396941303213677162025239021894218006858405456774178797222337970983027043633284509564591453665387997944248766483755214591684413331873297572111295458959225358423874802314314638728825032663640088654350404722171526072769704285171087207200452923096274708206289069465223844503796268699927208501100180846119328689650331508410364587761800536778234126014038621627458821775488308534004527247537405492768575071043097880813267631854175407798909776900808542807638994489172539066623043098205159647031002790940201616286675981575731283036236958658535853070521924460285709696825592587715271803958399441760284853775075125386938550838641657470909988196978225642588270555597436385829133203352846563603501524591437420104236998344271894729624479618490339625839126055969699915946373091937427016061641979374387067489690275251802466777095884693248787708196323774996725713257120426233252988219175735290323870949983259215426833957757107147798587497052755454420470540120092278946883236232530029381357764190596221582089303937764705952756094675152498895264945609065913966386516233046229847058753871253517822774475034564865320348717095542248353774324826601840176311728587566974749899929126514969338243674281626247661921033092123450034533637265567960466833271286815139972028173986786599229118295753710006079748938379099701617022394109519685806259730621999654499799657458221453309187049528015221056787702091611501796428097630512303181116509145368272238695904755402756823272918490388836422700782632469473285465615976480744727544702163624636498191836548497974092277776497213223362658055352949967187748168791937667104775847080523562714099587037934747208872844350525909197624852617870992635245443480130992201857916071286401278964848799746344292778595624696931373282087130584463172581549500444803373924101177829493249844041518249808175180287258297109338627045176501052867917058803270743215269546086526236487463165626440946011715636976977215565407828307730639944348918507936731473133594080602664849302152531097315176413975299859890128356123281705477436674355916529108121853191391173978279120254422700640449528977926563824882693992823880875293639582448102937828434839230168351084629100901217506457821370684812074537844725744493940177753598056168045643887861677359889354867767616089719641179356533346420814609280679451128833916733567129638897969904083102176732596974724467117887301823560735246120381724426210328342591503391410049105722041337149238280709603053978293613268271199699149603663996082531729066230514057359419200553679102141195240447648037465123272249969828321840426729156459234378348931146688256016926990804355454823746427435810484704067732219359397462474793958114188873906056929101793106684904470191733377212928511620061281337337700331300170588540285457451572807127745836081861689321647173942430928869904549235844232864125840712030612357583435647606521907102844016670663967689463191448159215016645733120897234108175624567955916614610683065678311376674265732104661428737933982120612675100442696381307336921088285611104682561615104013643035607547205371444186715366092905213240919125011314202354133885010765033530486655884605449892283599509196139058929587611617468229205874487322893597968158714504398885639987021993166179690413460932786947765100772572977708609749315893987743739362905656874344716193568850755517060163034734105180742780142309160817802072856047157555242342075583581259483124445072259910229409370060873085189893064162378905543548541658052496340310728113839228725961054239037844130582490233657755592122079396713109626895606745051673621316072396287767249539516510767221743680267114170396702613563334046009830496057963479464334658106857377037148512591836384024502510119725595374968354280420839074026848105388678451868854963360359853252699049851664013379256355619734629616027080037169956374498308228539094398860083678113325430957798744281361045913799563801108020336153316005352475145003188591796207122840614421808166015282933824607269349394002553205162805579975253310968076299750970931118718940487971586990240834782887375570476537029315356919702829971700091355750575001582062914693821567369824853958891393225032687277751368805873601996477559092972532918870499345342844433445418825309015111181534476850568999901419183183885414778498957263204599979105548888126003509882883954921900665083165776735263382522070916913151042394626523626961822183509762449882596858415587390412311364965918265675213549893445211179422305594527580586458062758980061653136818929752105073273147227801010839503556547297191730684826030978787998622368624594494024355106628380565113578334368905202917554630816811294106968082014957151347012153686691666630032431348523652712128891281841106896426052643160423630676023175110901038940658064548892881166002070999760842217304062271074935240534516977573343875587401133749075039935256563418773617433831396608973740817449955802204018196345733035644666070931520101745541081474243286947652452248850918597483096962806276291822038452475912423695909501893002649319912062540659019272779662688910395041553511783671442445055914820678547026143791421329927399142577881960271582318658096088327655185464417990702305654611176403516577947263387289797026508669045538745433812053623058816927025007343625165943992739790283538412737554815427856949068819450249312363956049757174409683019302816537667473446981084249607160483564725410983482777197095341234298816764026073569260573628637694033275261039787737104201298462687439358635748584652643029806640145967100627217383764632537828613401929003329569197203043776017131423983467563709449685788677546848668195255477457453020203132168005826139668590488649801989812819078083563429946769111913669898393535679957593151885422018410564483388642352128032132019525544357060674401328388008830571486594101752908863704848422648732737790315209056606756510833125801408527275255416621052562749180895329113824970455378133752661384416349414824708593645439940184477887945800317343867342882863385882892838946601364594659548023616447409631350976144904753522706063533292975926934933910783213740671190027879125005036335639551353548088063972368271220839734703125916145423688497992827417482468643138100130542115089826624550605130322556181194072229418008184280334413710316328550047851752023719867898991916211440243949040886440960231656944438332010541208643217534904545033611168145184641006765315204015666893440977908875281926468891742113567542508571659369396456808956190773225991304147002983859922878408708534643590022863120518739915554548013938222271134657083407037825628848949627077886028230306139814715786038284743920916326662385216192871377154105176599797815850932647367718782118149189568418664450828850453419681578133286402036772108667146491946657853905115482310227000721401939088859569353754964266593023237893803057008037003633885930707381515969264682711708428204929239167258528593589962351954563954984337484956442816215951645440136700138508468055395011619087765300580209041780321595907077044973256568337187347871972330322732518233288515262158014448247264191906282453270412844360214334446695340725100402484778141810895805009477134138803172127530057951471632257644824966413003445459222370248700192426543860067756741872227828087243429249951534782065508700412895194092423506967538127194989532044759870214461857041702364948093233489822015755695077921905488302337297957401898952561644530135601848616908319100341776352591544008052556091516829210473792972364283739895036722123482012362229176334469563280589133439831721192622792524536837699888836699064178691600028272236454890529815155560852753277996604109050607420701210042002807986851734239849956181810864953514622463116799980067595256313860330630770646964275213328268917321138117581837686715171249521837878588394585819705483637396065001590576413738021437213398096272674168208129285545908476196899893941882711888998543976719552294061574195363166373625736563640709725704436061567267275212235597808904188146845330646102855252090731585678365819605153665003857490231776524737146391719898769791977263902077717016658673549867746219270056360817751939906044861133671983208245167813583191178221180163006892110756139295792771664890240686483859426307570302027735621933130140247484744594748907147843196343075898008976368437116267682160148561221511693606200197623806701533210476188316531384730133997236538031627297556079065559768415504304687322627420683363234907993164286556158625426935395947368505843712180039710346204956668357641307375218238783568198590486919171415368583389278439886437655727584347965770980514440434990739704227232901579830176217147509496541503537586145449199086786538063760582635033754987022520278455316797807311836513227027406117004940164214698721318881030502219871362903514818464912050818491820401265128378081879332038861283696545802677869950115621266405730772056208911412619930153609419164753965315310499347639305983275863586561490416526138823592563606676897666549002724673544104008630158795195958236344133329830241796973063385111425188836270776742569591938023108557827107619775657341013119258821944233993323907333546002136900689242256593650278710549150284397777701535099111291183301823805490893106436614064443554294415302367189343199416183185710582473016871327443091536612175278598348710591905585116732217612438289242350704012845674903176561349950215462035782499302906348933944171392175638401608331201251172249520896562702358574770356777835915297695435029218260803167127177027012334691925494740712310434604869015866902339446170241162159258115631581379191828806084357804079530708223309371439167951188768621873995338664601566663328620936653354958634328375851296722795122997392526449148317116339558271036637171292080672911982983386410875818887598966311050183582394467051153042269370012101771702548381347105026430899676545306594171010220760016585450130928194574057160449573171400492369546675181148038441562338380096240736705650598746508277550047579323565760219247288205056895698844056475117315413811195762929203680163921118164821407736144365594613356530669994942955631691286599263861131807870957123440856895051425021568484916734022359985769673612050246763556087230692935338510163809179723049351282282824692037335511975797747061237809130897891781444323579994421141832720960078328170542601430009786749660513559776687448012668119420937493350815195323583263339568507844639392466549107332341639431805772377694730108877207518318817916409899894022573327713749930969101847252220618307741473405333076315540840350540726033889364075430728272733385467565162447793997743147533276225895966066189811114213942483528586340841304876744413021090284154464473052602444509205151799557850931563628693757149980376507217148988171797561171449102442482868886126546193987955140139648447204413351920868743550952569123885042226085574998401971394010792786698524515877110882780357678830967898585818141220885489579387170602868229541218392133754529345685168596717468694760749724140533981653594772905845537255607880771828182811004650360663735074228289547487469742321683029067051629046964243826068603619580324623929393879920710147916533357554500641421287943447247426920879969460412150264380298776609155675347817306553996000233234739225002940972922046972167329058640475986382419127064683738062537654290963254446156183627749786442143093137150540475098046817616964699922558817562864421732002283916884470345792140727317748846510913282222093253481794246678121085827636000772761769113809050404189157586235120173888213023019428205390408632962371888217095235504319293575946906473252760819718036725414545412631492478497402713611125070518173293539206897184901850688552436844861048953021888720473188008171491089637514456428657837795727714299924649810794388225406002536843034361457309616967512567649303366950793183799927790219598935239560881105703892066135744202694894089396186024511704758939040044568250606805576984549185510723399244826204121318391252280816614580899297436074736894107969182358648446357539462312609150414629523062339542329594226633152833931506997093510932097249830816058211626620496964524188602443188278968427037814784785720256899713887956843927369474312953793910981878872635944044084316978620366420872049502952763435948408591228558755100309263456993635436269837568706511313735153441353274133274480028817410270123996679833775981241868691509100716927538500351026389242885439300099630886932475931316283433988168771400791621721474156649319528325116121919139915251475042819899241520807096487180010597115160036858283491321240150154287051081778095419788891311139701204746658694637455517680432970641751949468145083765127406892997595203024046382966777287332794746527369241032596878502168750528443082230840134840295154964475157856306869257808130147090314864329047921540383878932888982438166909185553007614883491490328619070332109262004910713318644004692608541112454159890621051564857108291328514699342963178240703100541596554664885640351264557497909731151101945409292589273741675468343599398562562717102939153767924614513634554723287348752143032478235783795286619533065581903386401061360392794280207869147133281230353444256972058527528572494327107428031071223588939236319425519364031736823639899355287228506607366289073250294143105126696993557865944021737570640581095583462662717941049950086805818941631767671684940221219421647662989542314876575026845948517937681737727288505160895537804237798641045674378393493983521021902451564535316341485363721409348303660814698101508583836283320939959965028322316687507164732799691388596055630355122882019230538363361434839593124569267482057246199489231530983068374740906037186449396361060536473684664874215951561330054389932963114682131402948237471736872271389872347546080537276836336626421750947086439880828479313311879661962309096600745379302249036711497014300169726450397554111198706548309511896570193730283163172250863911878641804318260878683726601725341729283925176848063117533912816224777228554194173780003637208966162539436808994373521736672352579251969322136175636189669280426014756634637547719484572939344872243304834633184268793214902240256946174879205160686096374394628097132238366789119441869700207408088402929421944025463604504708831417105434295573334038362513818252608049191813689887210604677478417600197368085985307157337825718617962598157533610171279925480333589298493721833723611645356511862448520521431689528910920252432073314741848774656227315124874452602602420494846029394309268457704091420543885274953618177714392639204610107216728009436947457092792395286795407151082995254239833242262941957712192737789411463489259479650470552399122461021768267002916716674437060860246158801755663683841172450669224250527659448418120141665348718692558293287486829661186611815963354035106988804861169977086662482527477922852396152395319547108740846751957662425841512084973853832930571512873348147104971802745238098224353454301922307539381723414562994562327108295001255161820595109021777260555801126547433510265953196867796181084892175989155131531493187519850293495260529132794268355421494973129644483243095713020313714560628320061976935019308796310894067224473472252169689497893378655422466767568640487589973690598331334595577357653888430917666921893063605655887713013410255880589398604485518896462903748456585969030754965287101460137600840641554060530304772369925777319636807190248741363907817111721242047335357324546440639764685377045266646200956901185447022102494921906551307886844441125997620485333044845154189398794129674089863702325596270901718006080696446385187013306577778970549346990169373687664120284351389561058229128594245971056970794187132368774695719026588714376593439036170626661219750475611110165293324848131891569760386067646821962120858787430356909524080282407253625520378896643716467943864887890495969177900232145051840116315388087002720103942203221460652068403980884508655205576870412219153286688045550744355548459747018963874636327864475310364659306934071888587649256502393346343959213189950568140160974320183967351599470663021080423033057734971315504033306335994668119667931436637727719387491823210730159796969960772382163872936200095418311656339226552814748557409349407116623318055532881444834899876936537278211345284777747327381341863348307895738117145991779231726005924106408685328832992360431244142321891656831890666360551366155524791606645149920203994711561853554448232469929353628263687779397715690868262758236573973928799624540938323638023999459144885497570152041005605213344533735237203348943535078413567291488789798232564358293378999926909486239203821063043859264530204654222211319975567490327415784187460064753104750035441797636145301235650137513298838669509258936939854112877566099239346821078456396555363317419392529886900487484569817241045998828025730788322616280608661001073081494123128783321129037234047526373678472488077182458985119126970053908968787714908854772972599178318184364855005639378577327147456231284859864667827951392622690791020464959552080493446735174878328751669607268300093625527762757078794408504665909824142189462151255784994867390852462015601678298768916612025239594098955342010924120470807495268459679095913415820100908053666627013186470898614056593300032219946353362843977126662834396646108374328984809250268915879456082893850170624165878846358072074061012468337270987217051491755148013294231003546748160798399081972644030672406099820115896222305170840643927990828315925276722445286951234731762941949804135098208876642936026158885587252320485452403744250883552354330524488773258225349644972165205132500887425087629728849464363602406029315990931196303074548308106670790959024845677971120363692853774867147929586496429092702621740486902488251332322301869345284804122937643909373854385911538604932763179298658387012106541630388599522150197035801562793104064274712498964996001417300097823081832618051355288539660193079621601478745064639342446473323701750853129160139135801366471473621696462143587266997337773679309635401395069519233560121820393376174927493119046167535004619802595281000953088091236435623152751376064360496485258941233583984080675400843635942407281092254028149428586798506938935495622643454958570559959940256583829253435570747653219621871327889503444361081168350394495861122031257294992134221573922412367947720851124617977816730710894071720557818454103219886450237820695698541078240657071682270190135195055106038890225817922320844107271839722549703230713205518080739936662865278858925113353640410311356092311206627898868332077460050235107095954659700956433337813293205561552771214582173788765944024020589183860241147692734790914622397562925721194566238048696634091403391901962126814251805503155654988549696770816651840588983593261640370346957682270052659454763904404184695467730253552867889917468573759299380544351473378413048874215393607933618890265109600526810825575483055014239650390797258519450314752644662868294379403203202164413865193584608339958015169864964669903141346359782071920410160336288843099341086993545910816898677645152045300205774471486823933410627726247568564932732151805103311585715198036590953623697262487106298531432840879328689184427852720753110969028324986962965901216388554621468241295727975169885889348571950872649697736322375586523333737347856882811994637357748415448778192811793189905166322177570387124352579103187066773679451205657231820574845142132536196910575578284685328943281608254793942405102523754028052031685689206305362639333467454123329031424413955874991314010105099508724702815892625289957381380182116376669832956010076053187344990758108950553059662406932365533091939384137908270823256958364646496379896852246190767144520129729665050580582359289555029346398110206653508688240813399945227347760166738894080232302999173881727100285568159640521656345226741515968474045644310598006594608221483183603409755604385690371778864898218411452259780464649583580496994803837044816690019959257500277039995127916912516771921442659749646460712255821190722345496105829964065063638594753747649491234514434478584202178087902531157559583668862836347821674455106508038867486537029228268984701619258904406490254263496527444814983897387470696961198466404560945976540463566174793699586455476142908572167295605379299365730505981632420204141848627570923258190959429161266952286816210667963800976946163632816262362167482009087852329644374743340007844804393159231118870432722112501350286354479307893435686407969611724963812807851984819451559309519680089677348647635831529250147081094325582348581663747865083243949674865273048679514754282432411990745503177921004135787088367978240320443239363958259883103410343842212405201579892903842552269820274562691294835871697321861755121785665470752003339558253545556768229326470351206358527741331432827586431380865623404059381959820059722436248102910621940907664407402424686387833065481044316015773449737669526273406928300326019593944228319546724046849057505476645142935813977460180892637974649181734211734399733446099452506678594996183130224676960739905678880483821862182197978878539903531465145921839509302179098176191918133398667809775172506395311447735527364643104996671830080541497026980554037437920219351182782950231171014573316283940078666459383093660302596778250041289034337093906411682958749318637140986158153984649469322430825315229651470641210177910979845670881398642147707181859404549684509248995445938109958843456573477814667418653466162128922004631204478446657002877210178481825304436995118084490143612339432741859754019431483776926546764053316934069001186116164143645873144847648065752900808814699514383996999039674703986368944223482395164376328766982187389134562190174972514688880466417100641944364806537708448484054848474211839292255994711525841649654652629858402134453537375108049427112577835502443296498909570176124886888966026872106275138388131036220838055749440937421688551396182134767822030932606863504170487612603794311569289973255995470434202299642248739137155086117637288575502850525336374188686657481418078182297240932759959858989385778941997846533391772623209492063123953390474679338051982898843621484999237300991290400698273262574370106897265646017061277430737451065517262307018662023670689134783223266804470463641786601500933440705583263234264449402468541663639375709337737200992284517032584799718684298479535938300490966052358936490137055870779114374713833018590483062979837684101652365819854141986980721596036346669887411985225672630681556954171581543302210227418894743948822521396892064649082522098597696454699921825474803530251482324888851024049976559199300285978214735035148102776221441634326812364098012049204569788340868743775414607722519089251282303253071635620417503767728307967651227788812065891285105183470407135411864729650791238372082058436630757934544946111635296088774721688499286034969644720386966205860200103800004133409957144590110021091639662609747288051544566507275550902347899510950720354450650441653035506339715231991289278102581758148292580064741073877194805980987147838879586994027144640160752973540402777149889965849361969505020826940974230128644731475443452114501673351099525494458114587550084389297517964749744449445143670986084906068810522286713394882076024525447479665672089004785205754334824329140643835864879042885843223444685856836172744765267528558412997831054936949711258610417228352047869418170958357619570395513461873103061850378737414582534245147714000840592042952536014721918243040868549448386106490504551317056583804945146720686707361378197265791616711323894865158675153629125951398472593909990437878346049378109621554561434164689216382684317494213932433245550548790204921010635792553950465286795855854820004206041253430775418724614977283110067940501537365799418720226762794729441995519982526003860010868500794081238582993790066784491318614643842685687163821905863041065736897469130048123677293892362611497616244591963492725372783758314790114796376101326669663670922929484904843354203784664214961863960744561933496576956306921157958673192658158344686143924599871576525319870549739520985669097270838990027776451986478982309593241556265633438088624729781935492247267871612328314293951000373055122763266124456748349995778197715506792201161915092850147988022978067243502244638771880143490209422753264930157898582597045839473599497685564354738468912693368199246948909563552525456938252299950254271485012142961347977830690523636070804226150462740165080286057407997833344763094525845443311454662480434905895614765312722666868018529977967349810064856456419727074081653290843920786987997761860625028412557307918799159477147357725241794449635320964062610587989999113490103896164104803786054576087427768309010547592998914347877498445233178737100220822306637377933767935195453006883693686013571527826542245178926783980601155971461950717722321702204918346144643886654380068238136942694632547656373796310632029603392156191039806877861743259848190972545563625629833171597630918167589253545164712372730820862038368927662681470744374635001266660055412792717503609643637053915038271981453050938170568723139139507584821938978429726685841462836819651183286843289432459698610314788246956812482877208095464496690587279739931141665920380775289715304770016035334229283617634422052624281915493365238843074799369829925384855858652570390646899277591991235423073652586150688210099151581240249245792155088852634753972954309868441612955895321050768364652012818985403398057448414656926427973200584380675766323308872988529798658627542922349633172351327105000802497645237197425995121574307758478914761768173281774273620978108359769700508204874486327162440717509697393201339511913196939549331774231410397651409441330510754877553937458123173798747496244304643591917670152607583778981655446152401712943202974703717307670537433273051250071686577250522840386191613444241302007493765250852506106932726291425091697660951530019387049363841555171181717084278388606186358653718334025252803272523340638361275048386449685377900002323924743835842922620857655076859280809784118176214510626444914760917603608705206525476276414552451385566988946433074934189329142879456456761668834432998931845909367642379691511580801484682322870439841362301384670078410836031375684460155042998560077307636101604032129057972984030251001614923743700344470840816376221816011576833219058050006375066535234718302928465892019765283303402863511765971987235454036482145558337709714259165092624934674745779556240298213687585970869525998463126766845897346689074223182691940556324214704767850884128731359774144559936329974454004675942669258125405361764045309750218748661517483159608337760084240179005585742060552379115550190928769194109076388587114737374738987812569728264252741599838580613063585621318137914747263831008553345541750197682193445119322401330275209165324939697823203573402848311594606832751703438214927796164487543781096035196290367586980897857520412449834988681183373710445243612524535053095404937678168817458907977834992894098655946407610791105107122142162877281984428284110043302781077504326265787685729212507100334650639177468769936838693698312365496946684594195773832243855077656702566763620530130337499697721201651388760763777921187417891963387285239458359573710663219493885110390895070160040438277708944367604286636658025966975452502135881687936289788783288637559614611680900314749501291248540461116732569530591831532293802247872968081683842278921770234568590847607923017012658358380855082096754229627571975507505089700855323837007549358267091488568895611647594479521089270824878354469649334160554197638090225062747387875429197212719292272029970688171074618556802523564961210648054792620150292934610548527319920530449858217431433425780956016800074708560037382039614411088478132358686939796405752342177447746939953362631053539833286177232226953555143994410056932935561236358913978009480725512602198792431257753793570692527635616878730414811835684015359148087298256206634069229442133249344241771537486900829268184524855754215165475516162469551972621791550766115932356203848513853008336495473147913336827296201595871424356589398844238876714567612141559192060421140035735943400327601933122533636396901000048031829261942174701981955987944460652473571764322872524654476384380979330198494195337892661758439286173568385446388259715731592097426277146760144196906808427205744077131189701679026862213538322213487961682879568152310156166581414156604699544488786463346602447401567351423865821547573817643015993912265286935424849675170205247912998068858909418916708559253775101478232823728212788167121018448065835439944575564404013922197046955129677596502720156940119646986779354766569385285419347797732416956154777060404584577062439334507872455088927087793990308529427093505252726875816073728271670360867260231540659744921770568553809516213702122121674568187206870691076947697230269277160780607750436428457439638640757083321998940307995036102213405797337049087596463298029285185766500604543022260716311504607164329319094230848329616016968497250474899240316531530399574452148626566909145051060831070555505134945214488446782216685649013808996400974311901002911660757137535536670183162842596599401139249249769518995877370891033943553819821243694738758062702165861064871337302289173419323690011082062920236730309483646957697384502170146857341949735191486432356590983986329282233149805784581921564943694421723345835668878556570232021432376166498747944729860384200315540007972212425868211880799514132400660315925846929266686031801706890814051932502016958146288929062053214569609638027363340732959567964567471431683855809345551086711408595532842645328905784260515267488780420549627199356563839452545018941542778882318786661018120451781381443971996776025508162162855141559740440129295433029374523584581995536214479233411730063560915226973930166255302638082617455763033767669105649994434533483507643748737001934900942577432435427405719039248969700943730683685107291302740982232691115201415459195757700765988208567514995587140793090320999406903184643455441633571093413312667470921353148099650446850007445890582487781772176418458115840370577824415167177132055438270367420165532460504779247691760150886775555394508944645413197663965347092507984864614716268768720792835235692446740676281102775854634900427134482653682916569454821270245120115855796675826732979854501357162194754886572904945727612421820507357317888536234624872599343104307892948765886911750036625644253421232669080793064805554569349384651142356124324472803386354512547665674852140488036460251817003801741330027424573380008034330215740169819499480811375657945579514170328796704883311386470103133509333355443843283407508629225553980976441568022234566287562075406866431894770008366021379562736088203552007472890437659679785862661088996686929818319584370133767487561860067409282663018514306404306393241029889547269011969118865750396104107582095494069621045643033644891701651589872901524695958877352488044435109856959374906589755766027746215441076164945560465683112512255481127905792636349578438702060631800724102711307629822270224198169549982929218874324698813373344833550718036477173659349036078371009198217770430410179135570611493274227614168899421687102946123036634764033121372790075201230436016859745203617121578570627151877172800906840945416845426562380061322440193348505702695193088765084109408910962303627605052392582181407490128808521835533672085572704421105935852775898942732020464510470472842606719812486557931709324448133113297063941661401436319664094109813686821965191874353745922698670610371814572408810488387203450002863024418597197893679272171315374505131208997557835365851189897727610845940211262345489706336644813619117322175536699070624820502625356606964781224075011047770134848642412726661361911996930835873252873379514752520613187247544629116947901336834802152840165597158426673577268050713583074631772298735375684183584256225778056716685888965509713906766889470363564341014169943331206252693839331574640091670813226928681560583425444710703602805365967055591326274534326549144920667382542451286946437927730742360682793857172808790382330503607564061923582906998564125951560528309561925034958433642401406332979402125262655361383604576499990338310560980349580782069974743044847482615787275722566184806842993622453437719483517665732940252076287510185815546453264262251523421563754363618293603918155523682751819988436922944577214942560955642962131085998688723313633793032773059795308589337827949769942095452264616397100242026276299999709396159062747618430556764906461732449068882626150742768911040911089284052744019361701980877625259697505399254667108842088694767952189222337400542325738592570791578772766320870645613864480256061638605135167960308025956098345772738029682989321884282607798801433400691569907071840820931249481931743301194730318394115771415700293857730564927473768091754820200332729716719696460409156026742199816708752971670511349019186352249812267175657825281840408226434817852886296086804713536442985245934323100007475862426183164524103898057129058954221127480459896211675009095731807772969795515131055105750126635929716811703044999748354395310865985613017246308558897251579706958295472903600317710500740749617350920085469151187977983330362806271110564807678680727117212993868720892194343660382077130299058456889095047141927570106522807221330085742298300595004284267779860840775982957034212601961044137885011199459258187754197933123322443519177767833643327340344172035087819015240535353506901969644796756554242584015315980539776587418140187013571375908806760102050357305465763946517943705796822371475371565251204759414214437650798048631469364547569044659063977443243683107227690409477996466269852805174623466285888696880905390915773558028259104647287646019919048630391326980464356579368120048546725789974150009579840540885285206534955613782425684944943365990791046014825983683652834435242791831427425579192604506618994769558666209623345507545848004749447287652461741387601161733947907917816883362605987382621091221801040763539910530474208333702136878630603922534017323772113138086631014436169273829859385310229609285087222173683186549715292796567536582132514491253170346054607288416467319028212473165233292234078432504978434518250234955898245649461196844648215777152327870544382271214292692340740502971910000486481309859952789270646607979881225413623312414421554180900623194431057290222668196091860560832632276191379007780322457622222474434079875792638351561811919080085039471460776157010497255455771088005528146726223336254735575590020014377706164660600206203266292052921773238813944826179540208435372039256967865159906679556638403311759621455844221958327298954160677763229564326497454898488108703670539170075820054989637804760538669595164438509870773688795528795471468263920751032405932672701224035058491840941101623648404110025386030423805262729797331967570194271465409936453626188051849339318148896748627407825774606033979853134002374928621331984232646456296651466933041993926361075950223443686510775219871637703195055341530891778345022857160160116830886081203768760360286625315905584782507366208043117246537901186933155041354494931776631042575017419573249717263905281314130270542072539639951023306008403033011832552438270968023057969102392351306582309261510207711297377301359690778809658917829568250172711688934361935252257142996180240479102310929550190245712328716658657560393209675855710052643477415548264687751492723244623751944668541981432664859702866889071026078154177946915127075302531427033430551182618552058980084009182239215065238630795013098550166392724086807822493940604289806212438112993586111381120765128534948219682227274780629957328994865018064276972072537268792821974075130708126725046381841169970788345323662370320050072554404682030080791880118513484081202697478611807425981763211845216983947311502993683339181239731038879013217974452856929212076680239163077562679468596712712123406075204019101207192628966108335307057380795360681087859398531168687104112629696435701029709657797969381507197753962004506395510419787141203627774185069575196824061204989785118613422662406538891349365146027918843423172670932170477224389392769661583348685826859182158386580181217421157089524296668235860000068556069680698148905426809688347467208685903113261674754289264095933349073491499077583894490214181926519130341458997179624099001723742025402831441383512265953863445234249740851122721142266120755573869650824093796056179069445152415943439054606750546908739602984946694578125624745767165100185800348062649692791627661013468407870643271681035271766135541817335120385093318274030265513258310743887950087558022219507609105929587676025200037917586147584626268809822062077097999274432522573086681105668092244283481976562323998383430090236891238374339413626056810162791357354790086320097778116326533477962740672955059085772028621806234531315737397828283717015499376942135278605413192710306353676775803889984822353049393762174604563356406994638989961136646283254462740274946979211225104452493117917219757305700212176573329567985321754881272847038764196453390501048654200136207921485810153136233671012237531129026894740213135055833051323784888939578070883657323129575539830569417351263022879659836302722381033750677970374921698771816137127945886629638463347547849788093530771654707015239277192097133996212998319863978890728789053513054627661579780654943400246650265690980383156445693262490204386269246969441431926621516868950627889840377171876144248228787432167459725026119264305478788375401870619158724926700587405041983533989780432389104963180183361768852118963329577949750027764670632875626503365078178334090526866094974429199915586573551663136835072117051937120065947646617476906905124109312647950813154673428639808296735679840671838433272842010623649292597468119059850215907250433644452182767701376288445407540635446743105383723659362087294117780400760328158428322427111314757211554287966673841786914777273438487381935947220068135716568611446635129454062928446531325033649829964574674079459704498992304844254058740251477173420926606866752934441772681406942876814606024950464760117351002967913713931681408308155070961045510776249261794498077413082207503916581038697036822196764660332749144029124679220312526761442857717026090626667174886219227373098780493319730927994394021713061380650814101698895643902313911270467572020263920240640740966945645254516769429429149031920463809360482948337822669615034217016432108408919126555624558955413390849228003903357825317196669442684925220428967739783310681371522667875639462344198663619899220018503543903282543127057333163316853008081997623354546226894862246583578418078466682817804000354450824321650260688508946388620540349515471276349558042745485663365097415444396197780628656090262584234478972505794623268558449583260470557584483322769654063903452007952789961501841742093306658034403153725285801154598415167000643305587159978183751313881906251303817419551754040996727365245122749203358706395977854710316201448254962234366179225640698505538386574275343729217860714093107130958242048860146821780176266391029689413371778201831480218963342939434387282861221506066324528116833435546345445728322936656573180024171514887101883094088812634586400739887395200752463733759538596261808734672698370157936849140173755558013898801280747288326039929049082976033195784126791381301267441788090031947534276590974352707390285783308242134298965168366864607987255493430330425300959984098285713619406323398577664777999338274580679976729498677306057342981027944352317199543828255024580298900845339148144409789777108643467223242445310698845882288979570537666685757034370200640281434125896513193214101607538779080503041911753599267882049932459618271498575739767567118050089127831710465442770752555092071196174963287489306926192395190760932896801218117185573348659914669665333177377508109075753356401143935056720619187862336223599111306008103294772548796990851748244334687369404681514636830223251697262746706815138604765728191472103651259638359025823795036380999628704760855328450555540976727777585806754424593736073287236490980807306802767515760914302088108036831277827150641278186561354254889571720813683512309669434969772572104769590396446532740910661114670197591397211269484503393857163953569605108579732251350415839332543974884353997532400239726589439336659178939004244905432180317017298098918127526642439821365994716067442248872378792235184672463140164661402559646798603481950143939066073078309100763728994890566492905846310644554139131908811328070506790454920159352751858180675603224669885479847730674455711131774934643048929782619612565078136163395867904207370406053195017736433449519447400630093109102755347616791185267853215664568171399805118896500001137482904174413363304953239205274494218974057029223189277678571721948558058765603185581341405086795126117711079309804873332866553582339832983076693892860337122623997491749586130778149752249804026901559079433424014788158993859648863751700894290038084389070548915756501217500870134034460159474422327410979967439030777715631011024417205053405719940249175987423227590588625229949495730156102716727777423498814554158718696314076066870091164475857836983565965992300835998024430372700288603911158384005274631303405906958938582232339393917629930265181916477284687258878535365325788298503411113554986082179288160605193904831253438963599392495878261655559891124915005702864930184647553966876692216228566557270129013328876969692936606239488380190100401093364129187161584395159047819804504652120678261706532682371402481246412845247030229412270957264217779453310696660182813776170829607234365966755321243799088140328671089590679526941061765176522681456238839135294214709324579933294183615441745530529272433722415526454830135293044787045179600282284375957854961944086860417200178331087764611019911453929267152860377140176195456628241738331461322171420728742881245866938415748981536594643830885739989318622953227824056141266050406343536523001255700712591489344261306473372336891825477854884882521170141062267058101574974998736092212539028667054236604165938936376794854788012965853592423290103258134773072150218206853301163285910009298026806196477486527646820930147852549089805662728460508863479754120426003343001887449143690279302785836764182171817078530703760217951997717063851443307324393773587795498912480065369267109079280577956659182586372742483790368855674885077962043472486111789740748566335764955659111277188136463531255164341462288050853853741190296527100201406280748542752122819659841659209012191825814655330327787173203038185343807363061233949280413159437490609744198093943331947457688393533572969594496598671548533994788453534206262929901241242179655842178821456570350161421388434611939598546253828107597219716894074639121233344191276282226662568652238753328847855431625511825530290260869016458315793158482083077910580094058949770284758621962454749290515938863719982434361985760646544266444616521400908822697286457175639121761456157778934933362319651841051286393074453610265215667465065789114791530935539423367658236946295465489875999706296419952310872096610301139491753748483851368409209833663557316616760108168239915663625713950315019821167868486928474223749467198095295715634100997831643932941658238527563142533529398644046722047623257282443013267215734713479318693042361109643349633212918024611838723394663793416357539736271348049040960950593636354209136964723626212140930288770269756720945468140823596781870200238109248168306568897575426722372017302724883444840093019589882524746331068298772765270579250760623390174642262897733018931510427424440907306562643773415286386196073080328344929003981877622191458724931749253289924058655459866777030604246757826838238262652015674701802228134392451654846568847840874132383251875696811221357247989200291264386005323245538112804487248071826042377708701725885875686185267354057773825443030577958284361105302851060789952567374267145768580686488853048398246586656956441836723093359574853179809375386759730123016064236129058816194077486418906410721220131502969105254838819520487811233838212425476289068613898228051066542869728700205261070852771043140219635383145908679047680818996433185820011906512826611720656317674459167321616995260613332340790283242017596865422054949004611719756838389772637850690348555879399780891557429351398046253079579129830079256512520944909495762533037980259111261338089244309716119211548898536762680792076047915549757952363491672592638998932583970305695263992837044770842932809732344602522054042325839509370205633085422071017410218264261980546987669225945501909233930636864095972942896375411541200125233541777366706938858915442697550343292052310606812564678731628272105223165390236874786397149050749270724369139684240217997333598754614047838698936670528894880911928390590748320204487017798405858332831745026738740392792211774158185649319209138777175485899808450908275597134640120105222595497564247664055989024883813714355705333335785599279475029975906414266845753822229994574575896792259860513459687735225239467827369538679180672531825044783927781977049286022197769752081560403428309663396329805800443176114565394838167808727835504038821605876603036342551324517426101220183110705203577940844658618130327943219608924874355377719358566636844489445549851111505316931549316309431485951470431387179735019939987704377527018211337788973824042938850703826193045227241258818532818098627767895294489682981821980336538600434059811038633895111686519256572338102220214276589182076601696973133532001561213695831740754353703585515784663755023159446910040391050151018558051718536052438555008247100977482549447317993386017698968042401873675427555029384170530395309360337315232305683171616457511310080858597971558606941669136279882077284529784015693360369267535083236367249918379517333545635965200014355748557988011057615723275512978295581561333926805962882241699741978303814588435264495203114163067521862556653431089600284832534970994292754566618657587164644618982517573757651501552895936718300929264641566798931507490698466173804963270294558997886368066953687612085609554911976234525332470981266486258773627112647272208875671352346015419419360650913999938166146325051993426846293038496396168981411190385847010860372806555196833530204297188568612158167874855810186258849136870863237048045694628662739212457432550912059414030130568817380819211461587576248367557134994429861971791224209461342768233103735002999630504438224323811926869554145590902559522542310325405368400426754452605229023901017352318343850043330102326368777113440455335104528230237405241294941306963386979962853728523865099462591542677172478701994390602351618570720436685878726245588368373500726119442026581844227278829888197856650896934755592961076493871060848486911633982666298593317837487927554945151218652867914683064619277299902747729008276368910420357349363536272970077626216087334881674380403866069606499578332972303119680635976958822010990796200517412596672639731867298724194949064829630585546119340251666147781714563294433272130017650372447783045147087011972128837490966419575256668396348791087097340256063909037692565579975329880624787381558670142687031810984873330382875581750393585949070420700241987339149985959206095098407470892289438733454943252862200017702301406051728076209786121472958907281668541481679424999424359712077922814813569184951550471735235785624813525561497803207647712450730814620918315397803919887504240399779033159430369851857142572647324101585589694508991706553993719414585172917610305172012017761728113214152808797555034988968812850896659469432309126780581839063286938946005377543402472781396886651811308076943330264286239341089756577781147331250868286851038285758048586191149656740117046233066629491266982456801946823305403936846293176273745769979195496096142552433904688887964413412186317916428488392597610014581000035088854861960703667238554558391671767905673426855973701875021279528732340479907511893326116388246981433988763836814044264344200982873391963840683002770583731047358066534379526742975217008858937562197300485949875677126909696900320461298032456218080802511221366398473195239858008695130255065959662464018629623817997393629374633552766795346155507608028803395406780346503201506193186583887543383478918871854350441031755635882530926933101988465136441230437789491086468453590767969874637457287542211953493136145319736627455686719560931302735907534375713338822643556891616939644926758970630602331567453914139090364708622910893491249172562071277731361073867447259414090636351472340946249579804957931348772587846273053752846730478522036357459259409201509002710470370550772370563500740013860744921556576369770829953710393758930279037430547147834064351786824352555008820338057396592334547743908016171106392273839691126533105072989408929352725377840934948004651386402480154967426134594834511732638116877133151182551020041555094846378128519944131339809260552510864859206922852738664006325740682025354796243438996739995227515629603081124306441947481246917864755222158126293864749088514020737441106193181205428728345423436636329375307788664127646321110575771335121763197536915909736664612412481011251893649308474635123051061808835553117437861666540383901525889458187966022761227909266003827055631509828274556333911752704383894551005351275945695633312304572691479322625729639858125273561205767800881978856713641598733417154526693583092558633239790363863658874721105878046256671357104978569012823542074693619818009250645189222360349670609552203953941264597106693138939811982794401940370935629070548098638260645599812669008910988533956023920114661499148102506292675258342640975481969224295636472679439347932150963649837522662970508242475311798841771805612367185049580683315628578945387790544357844522978458683668041191294323960446267252844061598059724368346431443842418768079381790124349357530605457535377895074556534882523591332847256057313177133102911661746342739145466282263567953202753845717489465057377402768825804197320550102246074310355463089191207351545957206534696055209285596639044915790020908312493179228644048261697632228376491200126751852258030126047429486225605318291093181235895214915459443088146230559651630343181728512177673523192213803582924873027302843073065214570324964193492079762398458511640274497740493117129259547948800502752570307545941412773632358737537923423832494240671351339424834804975661613555693068161569277655614118427053898088683793335642778585900659697275299106690250812918201445684074788177201926908113083678384830754299912191582884225863625599829794733311607365548582120361851426594474711958004691887267573694076156610175406887023757672587197278227111185731578396474368388216620091969958578382652033985636317841239630242060168022943374167454020255719062178766098719298097322983872333517275121582718521329001252758619469052619977921217602528312331748309941132617969399052933141870655931168805019518540049169878107648029531319920013041217369124965063035273411437763898172259849651396761546265757845547479520092566649858513085328385013302133201292464404667796347961051641845524041592843094042894848600854197404437284001390119021742565254534594431031960273464046376450084523758933635423664042125504822975534429427468088161150489771861520054919851131415937220828961707966644273343753123794977820891779256586704863041000228210143113978117751706115583855543098640415562699198148819044335696787100091346992564825335577606120109141989900148312511081994311721092308978656017997518306232211105335520032908606579083939110615174932683335346185064739799066460641910657486497417165254729265593931972909244148629437077529618148153110045318149659785884572452629826247982364371719925365648249324821177361554265324327567650702605737820634546787617860840134177517813926520501275028949808275094980974255656410730106409800668357486886711325068387942967309577957137501914202017299804672038013681167691393744741335558241969655384173527189973078349263771962223201023696743342835373972298672509762094278572244326802145181217853435223455252954301351749535849753504676951029693620694901383963422849109297876435622881636358711763464950419506359072287672849088023105212730742318951003897528645802584562836689168544214938545359650185404012745960710168704623360334310097078683980485753679213514677061419443451210913137388989447055307542319705702006614165828806222820155811532106850992839533465130884950163318443932143573531195449283894957364574024237519300485074140920130282149578157735476417165050292975520252799786992251124073046653137057479711605820077395657150529726161425285344113491928394463466282062424020453898470793178405154442239016070978084642404241882328400938648737076612873692394112611465149530775986221468894874539568409927476513717546650121487762877581623403442673138766182240708287006135561611424891926561752454663232059766559432003336680670956184945306612840315929145176123307528815413169523408060242614531716297605109501817605333543374004100859119470098427321172134796575789264622554993440894468212663303160475511663192475816393449533562475578052536092337748314215727319259094221221638973422950436366700148643862706143981505939235300903759707900696860600485297843995270825538581364923107562089477338024082495942970366116235607301495476577330054607336478718789816235179883370947292612357141979301859677469577291403239327991995554441011766225032718651652740594260766240883668444178496095969790117271108459506545183131385973576720893934103267227990921734060803961067922469180723315609679107409009274648058318944648232330094839631678685409453156601456903257796655311390806650456647796556338866672302746422868813106874492764438279918406018214211757823870790752199233287861082205193328551014116447043885108273786158777421543050549046051793270583785821363260236908692329338694383712578289552778323343184268456452353626862291413880173687194227906130458799159219554356522162224742790386342547595913029548439941052280602238906527672949723866952142966468157288145378892935676742361639800013237733148240849871132128696858489016809393409739461298415388812780105776401243842415998004980696786204106075718081168900348057465308994046298084356001747147523245670114843922814764982713474797540574866182392801752422506364000969881827272114203431610974656079365381465265934750001267688192756187882644049754594803520801806163061506427786073168993340907372862923047293606986718493551442049232612357067379419401175162843994218469546936371653982262314667614799779855818505506594420194026951394513090163316119121418066072521504257759715238437261385374966223263576372313473003764921163745077930128518692635925783193811052220928304872287852804560252541191199496137595332044716487511858091111424103546778971738300564817514844927979525669733975114467518446301492575510063402387876344449142929173553944858703424014168964606472025260633451245706404248872562192801436030290570980605637955012847121687485892184856790877920339656597982879423529557871726624719244669787755709399769290402693010775760022961279092023633548768202681579852637533444794196704936991193864451347499817604728279162450732093164989406190032090945124306308288084719874133916786985504523934672512744573461252039124058422599618560212960789633477551816086227853378549844016624780495475238184437324895463807070007209664726227527400020173904383950380136155502480332785502193858675348882251720736971958591796741244285475872011440936925235931713288589391823550273595381318554768625066583050911044908235730534491963223134716096826734880854454663284125824124351737648231323183934623633831098204679281827517928363046908595078845185775152871649940954486359940213306556594800794256408551721871734028653270888604255777081099728434980203311232921723904117637189291402042477053652426213424945092407422282922672560393744019809306598924789616930187104018883287038276462283823439596280593533256486398307937968680694076978863915752893580111559975768355973653743870258166402156220838631776323087278536283646915584001177511263841871135783693984224941170898964823784454232243622475131736356411654183597162696947745536629650686268912676883390485056025481517724465942325834838101382327380332629169987299056344213606700806357522698096398424811139983396066551330087538743591379967170970043038790076532650478575609626149419219671893666012315178687625177851099918086561156536988487845272971137285721903542431611912339762090021875679742250365903573269287345444576014803895207158343595040151086476703953681292103655854331825189199682120692116467610686469438737296723374441566796718446513201554003697609305363143830195804980557401833694795050841473272034721667342926266939672589550708785702869404755426819858731664169078232009008931309052185905605794599980520580897426679147059104860761119552078867622006756171616030529172982650043998671430682799595256036532471853235685206455374383920720918424497026301009641152141872709751407621914851945841033633245949956619528328149042722930794776158139002172183121133611718873397011331619244078136102674145452147681769761494219448733916657976838854418091975543856845336080848509258304266994928745593946984739627701767726903750959237248822344743645905553039063928252401697891568714907343690347355307378051788039569187871489085100803858013652284612779529147088525998959652376007611959087005696392013020946762068536792579083416086221139045109287916799174193104559575028887525926275685014447835392715048131319134745088788427188641570672441719806624124397109945039341000632431945998190136367190518507065747624585094341410888193617958233914495490176977939744806140491681693838678785432805035644585730563320661283730997003274944750428646669567687370925585890856465329482740709133690337990559281332011236089329361977087061804941227624563829179467526033359051458163353914928783636344862251489400199316551817116275675155695776720087611792690652558960871666867551848839479885959192881227281296946651838180360121227701005265649119553995338795967141911382801338841909343221087141574007749177665585508852908736464270950166095521573672686712514917218119432054904562336936605833971312667500080194681143171057127365940853277690566190676875260297302748581441371599914548423350042920926743390769849745836536485027005538326383578115802497102588898369529117077726390384148784683508559655871625780444303378510030928995441339977608130609449313698769860272604995590037029547519980249776841058078344927399881932943897806645441589432099265181247922201409114329804049827219334045594670963886422105082033420754061812289515611585966605319315281656420979772244111656024140131223793423230794893011939845504365270507353449821424427264600602721016037215787780061162694629087772082114301603108666572819886846413257805761638997308012908823975218546237207870822627439912798342831544657475473523289538042728177612639201428862953156386355014736947402689685303217803813228968680807397948861627244656995527283443107093112981299209349461802825886538131034681618095482657752332408630202442755923369118407404761660369116297706403953526237382940424863962254725447898168529827065199498760982150205139441081703694757220750819988605772313713639591593933097178214283484428701879258863521328011873484541157204997954673133134359057494068980424829942512764712660045828885465237630223569573897757061969645843011712655348174391456734726232910315445874980710079241649039162696720477635827774735731536525445638321943387329649139084971365985208184878696144133024898475872634510454682545092162688336516995504323635089301324502806992216030695173371759465224462997035205115144391872023089100368554632963796657171476357683148654891313744109359501070913143965681266324438410453985587505701295171208407421224454970541622673682090016966857637577128979847513894708023672524978531437289827957234758487638644904368266766136329400480051497911396866750140535098388121715442825810384597916478924041613094970727574294436960670033066050935052585652398214113144883291415889496602561652499638345700817941046223051064833359531741983252680337884016361687933723686813029808250011080838295011340455134193968106285992694868639978523534272383381336622348890413860743511399950013975542449550038363063198961228145641719595912344570333808024721294007162198686607577905028342637112654169606539560182280636424717189510220643852282121837137041264142856627005644549624768239481509384060047751189012445516760061805079380190680673098942381073522935444845804874969736739213385483958939886937287398851308116408250910013894760314828087958262146956804441365300073537354453714086697026548363620494485975921888434213795882623561691009758579588558138927196986122042813400647357145057846429905755201329529591420973855589226366291453418262776175200024674294307384672289588050678218843212300589675281222711944807459574689276890252057962869586054786122847831068266836470150834841134315586226468310682157404153276342733848003436252607002149602335875241099708590358080460953418989382675206225409032730655518750757009264136833843951422194343583911032137721524966403079916698722621095868524716545874414978502274969697245464999232518660103779263565806234430382417604683533310081653718947261469610571695443131620008556170128267429731183019484852024375981305601237286010323975730352109463822792274053795161096548879388877058246301558670791815345196686906866111406557124998636409433385220860906415720672396967812956674935620034295935211904099199311988761370091621502170529844750447035804687172458760818101835781200455299200385824154914294244857866139612332591255297452942185130598220282688491426466185887628566383850718132117192902426505833615511686616157409233027550428268493660962151507058204843773384655963939214713078445689567738984128848961644331302949657161499142456061097096009003536477498403872511996007590473552201177214087645594717112238761258665921516034442329737869407269787165332577027748862691049674551513607142414658481323004104743708260094792849762835521451274218884779215076523370094442304378589293354679800610201129994145187796490600031801508852915712737928374230576042629496951943146140765463001406568166516664975409236996019375811238217378618210478099112346977618282528144869039274385852863024120045394432633459299335620276560823090973997775830399862117588080260764990361620868684611726556150480807565268371669479782297690594142441330965283983172976756664903854291020354098722372279203335899509932159770197393597126733462557957159807406828226796495838281206271962179412134427753286020345915767459225111836440415897288297564866047888661155999402693757953165923460150449135633731772933997282378331671326904914910038215386592519037315270418008889717480398860252736819045000689843427854596075177613775122266071622880502366580540948744855480151157432432289447714223762794294918750285163586809106284558925179466524080183316380833475423003282369751332870903167821659080924274475960862366621435054668400147524703052942537177460293573575282902473692815541906370739398005674293591374904463323914772231289658286409684632481820633330947016946460378274170599493248192738100074170142514070609026358525359141923340163477677769688042477432407707874180555227536069367107875650550872323123343610457709194803948428941289310177493174649912225966375722967892773032874611924947846828272047430205059695685018132586119861661839083024208452953698604739394905012080482229166544003577714709502145159378784138591521311637662359340498734173525688898976551966433607397098523595861348490235969068919092662859847588677631775007473623763139766348633163866730920419543635285397611061914539597857807476539412360285195958334977087138068027802621140653493400493072301522381997392254978217106375322013405631773435855101883219185093565831295488199360170643702250463130121764789938789868201252551029068237557050648712870934214655280372900252847841800607120431834094851625157147447003207143132827135308106452038605751999940990658988362374579446502485376500679504866616086239570977399544897778375200967153971935731660962674456790100858961298783435015443527130628984080554084578347722662271946202586103385182265601336558137744727437457725572069027304022660528820704587481962248370564618482850727838064772465432957228905138023782498458901876069171893070820069520539784621953766876295413447057807469996290070871137798967710607964928510109140059080342697204458917133012719332765860018928282278931615907204172423631220490026513964909703379468932409740218200437571751982129865273790212431994932945868213118732295175947697461235757660003520432890488463718520842440569281667376274861008343190668636218053197621069743064256841454350153392212627943916275409287400922253754696520161989482017837130618702008329396421944317055337931457062813993069646169432816239009964065679689543631314662045306987537865733230082269027030174747165263094542569991951225408664489683817402178162412322248507604509266217893910969036235079041418720492511362527372933572975416806503986291852294123846966244720774487134986699627441060948714908600801151993874617865328162228049687830069740713404551769363729062352468233183116107903153545561950089038669563143537936140139095176655168525782576155899940806005127074462610039396974986412338674698293726640492387140979015590019041899064324870620454618241662093375637361301663920116170409492408362424307314818943132936575697508260217905277613297645837514970555181451600534935576553453752246503612406063100264917718280069276265423756543867310122162824825669588738254418668395850998687490960828628423822493624580033388064025373137745800869625206792422404922724363537429047128398077889008624496680904864638596847367925493489003788566425791055597414090571822730253055483483245666708550377333455848732992490854608332748778875617327339254217018710269981320943071861346636819798437549617765518802740470801662962045130391955869614278010085227709414072570186534194130311926429126756364505380280477230172347797759057772568225658437763233935200452939940818699302532342553484134846693531476613990836293261651421941693017277006560935064095770655508509370822971365528898394492061337920107387885075601944153413564915482535246353270125325423754790717732589781364901595157400968157597364849693751266435076445053642336788264499754670339953045245169181373027733947928443437928806870415838842750861562648233089636213176650400597572497993194155549656545183575296749791132587489917025078882968443257415335605066997359022258618226971695307897928434514508813626502888496317038106106264738362452180426148740835622936707889855985038268312011935742834527049555532014619001525364111325415536611679339962610632513412453732898073328982412386199286199159217146485325326482487149372106126683356438809664959203846773127130445072379432944702537207077248761454245776509651600432925822665216098902729600451430245492204050880684647507039562633223541769736634264993481867937212253867081971966668301878567775999147628376720704777586239371125218813016715696476093359109769372601903910317873458751551357737636440196087873078996748908944972933726380088737924601039207694543126834834272296908563500410520325021783922635902159238160954038905561256369293671409413421560561255307736183095652559264434001915394085567960119572953878251144737834750033683392985770460869213579485563586907370331780210708799101547945828578380209697754885812859228993873076285483299482824871575002474633377116076681689526430575939456456429290551441869473256912766368533279925915483470634439564131945355911424645130864907571978122577771557396389887563561949499832404810326206904581952968011509193310212055232087749237781736527072704456432999819928752348900241783482077100846811164470157340270051968581627669021259649929234779476640272363311253984767939844699240822915403030079423213203449093298040260232394597264575775920614242820456803062113188121000159465751389448619228802181690241310373202348602118331907310020893828135964512758327938688681236333539641566757479346943948981991044056019709170669694014641470527140613817305889251428254119639818224827524292712676223250086483219125970930443924795930115726206887135051782457992458256592042328302477966017062175913321701915233126191872959778319425235728259995384078687648305499606338829722697196143378428608826111048382695648242750265413566495076417558973883134448345374204532562341287492408662857979183783963037925233609822658262406766594303203840418522689986103625803260279356025802353097033672310498129644772310699405810710772585726402498691672511515076942295047051645053811168613670725544967327891094177098518355398772643435780024849416369778652649148255902584604222466153452030088857977877364209600882215937689882894908030776970799539571530186328282867230049011229555794789438407435145269957851158035160889189223678994015284257930595154097874405684337360941485673041075489795647503754964847293710916231514682384980121953372542906698954536231645553311170491681051067112557294044903183637219974441651984310010206345266922617798325325592549544296317024748007894839831531988304645923266575245940155777442096319535913040699757111082863419736697054366645378524140359144724994168968339505395795702897501440050543176289627501788734543276981713685081714170105116031642769080817913265677335655978637148801562243720154539494618694310749156468425471533125506607386468090443523336076936817851419375642810810357880683647667119421061755267232664173486604215818331561460727626249751763069844321791555485668827677922296261982723597706915489843747612351543424172340450186861122370465231863829508810188401905104930568644726205759896983437822963151641902413769469336322533179546913352504215886190323751718466757613691375167128736897706004694213238160294290934043222594576538592726891827830100901093375050416683127897110414296931025986570101151147573379286935555413952124956027396341901969991523845867098041488862043626042708757868860630578209912563241379748895122803796515506337342913628664422822372644222114771563846385809540643588156900801705912851853783549357727951067624426956987582696254222666753419500921170461410123691003631850727944363802490172735026181326588782723241653816863051176534471898732020389909031011183419410746106634907970084731197413091091156222406359775672396232961420857577778766172043849529419655663476946333113270494168390951465987330512997149448980471336509805755869158016182209340949337688245193917950508149265158000034542970368409812749816572575818058757862019429511824435998746482563672335633442248969953637967464498022083042232132458974942390828022425797822955735473796130351536697449643639371084669534370622857493976003188325187067114787892503985540878856388751485951685108761985983971856343551182465105641001865677125222206448039237399882373045965167329495536552300018822449186406073516795276731747757450648408972736044302189528391486029385195512643816257486646780176314393242327626534306648826575111115482386556533062020936467706206519090763675412900255876677400138823253256158510290270134527519562836522098027044438109920485721125342622976491180284639204656623176548143616713604023854119930742925029185013926702339208842375303122295908911707549780088124058093304290730858580682582038305224875236754407846623504439864688329554686241589076997944863723931551781020354004167118694022407565521491552031046704088477980894550480826900746373758941254668392733464006277435162231395478233465177636816417394992789699742319820130238293882226167998194481198206494962631697260815386742271559387025949888819619407909479054321249437817291250085426021348855986372583241801363194522025870690537785395717918804431289456026059198565197891396385431527820262711768531297699582462524816007137919467459492925156765712482779890367713545659604989661627205365632602758873690613370827799807213186825715140382741332670292875256077511114810711609447197263493302875917836672094396193465432775206743810389528970965201702160421574152741807019464099795632830579288702872892526727785654699557863795764562905521530298165112593940948774064460574698703792577944976095951976962387152952956603740624280292011472893148939696154885870377860652117615009412280262563710839496017271508616503459392042100936886845278899443854019554799639873570547708606035282465976343451174543197267884190607733915932747966876018923801328533333756541190620222352277178301606108993969803241638613765769932969534111322767634506249191986565422979545811439450688472892501852255654217940538827962368095788390413452175416603087282904747196595687700334249325589471563963219258342281543657387831737475624313763319473616892313580892590717568510835919924418604529373402069133361027734898556846323078590626553862758990017487078238835919810561490538839323858735693750541425791829566154150428892229581463818219017637878881858480200526773451281087151736548844249114632043772426477718488010393239842869889573583606264688587459804204327892173224296217840881680111787274014940654004107088618677180236768523786442269777942439999341777737369751281990066658933419621540966287727287319405602598387482522417242192159484362496022791020524903938823628036070612199340444198700437941290935290979550352837682964592027071837863092414041755625811864331746004475491783089315971195635460131751213570695632649347071865319671645466030129685183948115055782421488391912451106034980017894256692851787485581566460932831485985508766943800945192864915110194504388505232392707069654469456339440752118016082962028073479515572825929394722672684484850703804987965068694406426367233885423897851938834838108966642640546028871980838314480349547954502239769363474543700591401736017770647798690906015843457814977309026533781642210204815194848945956001789547422667995571025108552640029741587754194515856701014577421466746382675172882674310828399996255542771608309835369252258875540479614367133752259221985812673185772236466693128521375545286096577454232687588766871867497292517804384562271128804977896285230184706608061649272026428395870427405257511473624428165496114375349161923947242372127922274529334043730683510841451121202790604217210570985262635002352295948200505930575047142956035222067316883028526130219593738153797242198895192073351001815062190036182022117237539701043467244019095690467432548669408091541086351798904172966013787957485279052101747549862164414502639845946481810149710818709850598855688620980121639792092120038520330255848718923799853111501482448369625938099061485260761922420558261438824830157535873566516631591777854458135665179630829311742635805462041644733509142839373230762405163097002969012189340452759606697071600079452632476210449393588573832126585945045599376184977884890872475734573875575194131445440437101962999440259572232073968531314956440979193711034671857853148832433312972670447915151240593815780295379815611831529785613605419320176267598473160795373908010754915180015622855118361513899152357977652723452015031222779957305660060370389038849644594858255760506755595358590579519887262295542213248616242795514647095740104705304666127780905363957321660932632195659724162241627756639666202937197560877643220810662544747047247047811833797406630766441647389413715137683666061777231938971179391445130907893105676206042590860683294188901364476088602100857029770578781997881452573259531342461625780203709482439083996451703534163402178189531679574594880895006839194909452638874312056040510282326835231259370923744459906852546456277434922871048517591372791348855182117125780181545701768956588762255868706032113733017038003830847611889387146150439443099424027625589435236899216013330999704647284942272873651188505238447910712429555817879786451041013317110879793816335851103656050944108301647814917133154305698941354091698598146704434704302030518739885139138481807633919797926658905524621522162202618775182481023197882125352181511314651493014356407275340386753875272806891388918816822868790588982784289395780796428082305652648476215355266063267722150046965524330621641500973590887953187031761624199965264353041035381626500678188924309731432606332641237250387330577923090978208330283282358521043202964475948937730693105230704986854770979883385535470176839131847095189140018964804635545028535453629608168011691372751071075113740236772688256102143375320820276465202915055614556800110771568915623718785018395868485305682064081748412647901221846160541503398133052725763276044227540780839002029898773107987053475688218424682898174594071573036717832345660293537308924078992651571437416572752088857489957561970959647141318473502107465306155068748947107955614009400664351275502748746632444005286017717416732143700972784369119577891488501638090092888294243056437170564282146658188407311458117994410007788005312053912091054275240134612616400518838516846716969362534529211894898951736472801904800095902528953052332598266997936606614749644504751519800232584157935071821954520378619337450440288433065566669505408926160494331774883471336774892397548834917549031945532304745680863681089906673782105620466868344998757626238709172543306375743581354563326428489193851795369446713829339211342274956152567856328817563702260114165808075639817842904816364925288329074276225219330265824326505292397604346650191123822761150144362391093422901388266997057262984026551492284422350443062328174679199001883439805964486498104710998639447586537517398004421360151948587874547810144985680711726946462985094593954710441486118646978033669505468559639467543682954166371995708833223836919988189298227818170720247901813159833453202743845780845116104991719166299883268029387603052646462573811471867493228617537016091043603421924947554351535894544392768323606249277039523567517429785837927651557261317966052931015446279832011655073991330120656236303229287271297809045390790778896630783716508846042165509793958358782065322390436608819389735291701434058537598913634783354022933647843292234416983221384943024587697973329076715934585209403302640112493908402966084298263929697910718880696628372725979119041255586134192779258256546575417610572187605212509881379536270865706614331490879579999710073941452812255331345495856652268624676411462776518886431251394455000330466090533111109547478220605870463407583253811690732859820213574051341888652564872355250593868940217078531577087721546330922564640514749221260364200274311906321093124046904862918940352018060353627810396543070808507437765820353262977180582060762843364938471381061023140552109762077607182145510950320641640857659488575788182769528592039973992255444517676997936044358911290372487567447570225218410664629714712977249044757072933081465908289574975018188655818700812814891437690071932606928694546262278056219128002795873606973582291458156414051899243857854580823273041867170832727798016809309595434122457341686646648637440168147450510022588935382847216547253793647320003195354397881207177703224254409660818276816239056818584585511749527693790256678142603551882659410048386381241528785856852984214522753369240056543206705160626179800858118029107549586137604933699765909899596737063550866133920917242712704847955431668187702938761633545790297952439648967422069365853410171144870892238556000791921849621758578067173012460932110299841557640415320381128814814971159564728160683698641096924524993237322863509265058685312582574418097823105704254428547881749813203586205461120820554012949714359132432613155593277100475657095953177525582784279846019670051418852699979541154948659331352391645170257819665839290570203938243160729006864611170483022714092467618851439850137958447680390433776152275198687886643792424127367040846786469694778474465889985742678476045546069191911233880618145734672052884256095659379603373089035026147034732886895776188790701356362897888438826978392766110749082231880920328349678623534037716419521524607821857423693533099466592809402942584421502136346291379903118274696020045651884909024134932516997112185228955469597619636637620739080455214108913940120015774554599374509295036289080697073066279413333480151646740716480153980773666811941391791596302251376983651848921405682608856077565397740051653433696774195182452908142587112369858131062908806949068218087902065363396498777122439197394408645818976306617998395700217378963035856013118027581213067621745785092080855510477114407569615023364665677609712343874701064715351040654161687929944014352423475912166216989827268167175480369714694088862703339160964223851113038139650549812078071875022369327236287799699040888866854692653549158779996304508417021331161708341774639996178926440758563732161794776992058863634474514825523130253899820567376564653663046840157802597287489147490635891690733669726342906906388949718300907732575878433047670036619394591251740706588581337638740171573707140582341108041532788382461393195222363002082978576396648837524849816191184186901515265396302688731055354057969709652394896702896903432227233676714884464759228976311749806009807875566014179352673729673808177524175572033126409629163735791490127901673159365158414323348334965014111114116198854373409904746136291363515275398655628326831470144721334949485801629028459718026810995559178565689223702016365167482459751851709741088885170193882722784007203964734190513401105236469907326340518391100208171382207171005152443818171440469462484162197955209365761525233446472708609086055122517525822043658069516124481209679556440459185265209779857234628491126751228511567507780038100446239066433848904100168498200832481123281812235309789070658208105139121635569191260958521152470311426754010827133823034503071407472225907848107732220458725936374748977880237657498480824346950215265925167660643985698319635155402225749508403741794915537044543597767991451678065743247475470956397346143076744534938335794111818562150931376781426482590811534163820415184323522690263650532491934548230990563044311298883822633734954725747126496698893016376823806171294855450259927905638658700464844700662976944956616648842477314541815128023628330848491905491836403445702343860906114279503967845828803219612931382919008800363148735251861496068828749249735334864478467738174419408117037887204289970539853227213631379380980115983073880858441243768749206219405607499979094483390053480362457047851619767658719665626417026875015193395807005057658694782454095921644149424623634022283068315542348891999899616719517287156366567118235606925623057118090899170630197036340150860355278454670015661874874443173346207421938152379005427671603869564247999918900445179038142144648335250418382823703260499019022800492585909946859111303098270405571902900753515078228124510098057602401801946968130479666092757967286085042105629475960296788325123636990504197268724924405420945166041796219928373067402743902939843042362061176224345214615504362955324350693393720788879063011561174148898298980129777828577622096204552490230987566089440416991849653231991183276376780428523245435187976872667175313761692027411811990488458549837995483592099637673257449179602554014954528078952098963336129349959514958003380803564898631897049567100851085841682748637106699496083666618245994978695909359269086954711167885156698381928261231993487249241381421688537223669762732012654844507372114413195557247005420825985973809543164851001818585390848731437103539559598326049502061076193490094974536295801369521955781739986789061343342770155808084028802786193077133939827635268896100894311245584081889161560602867699761913917795244476406411858917054035866681218152481201628479684085885621375342715690610072451859272269926062284969452525405440596560157790786574885410648453201430063346660905833442049611657204374413834008333008215262516958726273223965043159407849607592407685894832589364472170365167842144355656827772631923120811580317612271990019837086235704202224117439709717321205753991354173766783469614352049477834642402889795044527129635762380637805910295939067345836430965018368763906548314714978669479504142542445777124304168541657830352700161424868980705538249789021813389086487989023500504421406518281904168571946478442685278560026093413027654669206952013625275189686831348664061401685620877777287157772705511000259910836389525123256614519408006628505643030595947263186966783784364551212902616596156099438697164370165498927890509270214682051108702844806755904617769830538254853700844505295496982849559890661352918217880563350698493675652049245888635638198835632311641607531735657930303184531650956458991956625662677450407095316487256202924079299171526090379760340234753301491547040097917036289454738553318141555135134973558355204660035099118636409869418772977461301179342059996342278090563775424522805015219321101846075875150811991880547596547566960704853115729909949199825448701344612549923212505181224687348602291676038260684882371962287818122971990578880276890083723071205999141647356708776261394495677162617214125455110922378394955113544291227874886619157697602173565906434797691550026357072306614675366084118852414995398115212866216061314308036513230710685334919958385529738445836291960430185149303735798228285488912455652132215014612261146586846410368855057566013022002539515472178070292968582885230550496165121461232398535566906130181540963035560844804918837979126698885819750771012371034122477319869956784701858340703453344819220635246068821458635165785271055052532186732547561223815852063228420451462373666027277787888448377422518393970370894122264468660580056883731178436302190867908717939368088133747804580537309245819294108230631382242310565449720763788881556421912852815942385185780177292213837194294848490617379109179897876016507263928141741724011789659846284860576060986112598492970365601461901658906772910418520551502040618657449462220695017622175525159073436868970057988076118243782775390950126321077236705145622183341750936223841737248470865534168902369135748313436073615117062523566339557875741069458079277828623295916235396402264352495311445631707903134861658686313192022657669606047242794756947332176459697898547540426793806144900389588697383394563541241593118084506984316462050183391336011451715405148231343701758032947082492627364273502373539633599886710783182074161007753673850401074095189291987890648568195237356801420930649993529986270591881739609395759645253824879025709778383120993632479168217706279946182205495265205819603882008922885601967780244586996948106138566940995357193107542162028779297314407479219858726121510619917306562113990175538234006770914639722918776699824308313559991789365261821062112371099833228428144628512616676371569798743258338555307185066888784028551916232867632523864053485354969071159868446616862687068769947054544588011618232574870522639648493065485140923705255035222754723722772096081652826426437684318889001751667726116072520705382913697217336947269984237288516633640409904826647228872807024023248026821045812069951470201297586337844540291516500858156421297522094404010172743105924516745916638135115822344133168345904570755805618117398689540736677410409387065406633558482548600838794001380296124105298250791383050514461429538183896245988293321256133969635817885920940099881447066258201198411217709805650261810902671169475628373755693178394740269171994713343852506984807688115512992122572479755050737522561110057493196289212905886937143215972008732247128217886291930088699594775918086413547872758488446572035417036959425335323176860490473276575399715518798737595851488302410585992298312662886868535013196760974988127366636911392775004733539836643698612069446688436985855704939684010926982308305198442301044171796523263875387079363190324884857258611715085336668867824348395596857210720349421149160437680752180372824142888819990345950671132620662143162187355884122007576314646318579689095733556424580894292207632312995792727855398034913042505940334256001661552551315461233080189564985828069488330628739541469534147608193554387046113035335745071026663078536000958089042144612967357121419729277530358804622787719964116929962821864109697584383311287761744449718112841795053984378160336503001453948655659068821323961697499737716753783491548371731862601019337141735450851080808757523827552824511703398293450144916349829468972206354072908390821651743152212031348281339312944551690146559894791731201349983022446526014227545316449604716568148878402203047070955406437855108263727932901104738248040993632061402549360404956961732917102788735798811392096810926804841553923538012193796061345555934222838174636129541636308657402974756331554984716270043732631413704439932262808827731829666456177412378888811017808405526594323484986307232940430244135280519391506740702899956952583375397689152569244574805176511683256326884026397474298671554649803733954986613697070761923164892913026936103831985902044358393655857703217451542551982191744691882524993620632478427766168729327748383034377142944877374951503897322077090296619742079413786301998000586219989396897426358522835136750269788006247237400967276849454253680336285561848441260743672616088159766483044703275698990055668148496349253579399730533042352149017169265364935388213250431659760688850063697641800638433306227900725943403903442164260068508781378029899605788617807656694366093939612314534062324150300240421853616912456511451846399454170041088883951319599306020115634785250289076344257131629313810148413994822136266524610468878839960602160417075237973565509017519415648743335780429237398177612612772594662764547161200086981752207719636241486805368982223975190895215663191626761115397919691353580739615068645479944435202104135605739340857144692832181806362973640512938238971497275673471590841850024853158100835338154588265419876660957014391842828229328492885235247301339096048420722334154296725171830292029234941018433625496648569099212016113060349155572656586015184557701377582184199107479721687836907310051259141138943804231744270534159517661231030813406478887898832261575887557783981656658475844028034052188325035895893212967578881628366026300523731226172241341320257735876254794233785487016921348480014234192626974919860179881998747162489094102475275757541955948312405086857504527711809596676432861873918270097216238241694188275148278624041864322161689624980175031246501121856708085832276982801828721346587243497390776414915953721269379742697441307907658664091718871296600641469617716346898658276005233844918367564542285629971509269735752610072896465158173560476592997857983598039665672647848909674134404949997231949718677081741024012888197877277377330014502922709139275279656027778005324641884084301807358126906996080831407693139279743678048383806547679242717830228504739532164295618528040975371944510202255985873984940358093615447209315181799236671641543438054962257176517424635425993532911646755408224294269150548456142871523543277577696373913682066473830352276095744953095067911636098247084140550090760541439484424225673736153446537368598378556308046187741020643528890130454125817735988033915257960281627981176564420392642850915857008291088923144339556882056090491712419074178581263604153159187672495487404859656678040771605424602036036786084022312286561340773064430955564601437093000906405259024457009360893653987922349936786374974892206821193972792717369035347959912657581108877734194301530179526387117745300603042531750307220329557567710982110554456379701805058228900160167986668522819012425848307096334398267108904633711653421656221809568116202157861378060139378350396481543660080622474173536920972549320230755675090253779336590745640800667725551736720207435817577367443467657876082423962821533916463638422626067503522135596164704749167850043361913868000272789079596031193246616379920328690801480920065983618396920175869513543206624374076262619637600123616758385538847520960336567325406408464583199630374569278981597283985380887791878455734301203543165194820859386868722782682957825674398099220385194264073553289573712155822645610339720900159809764195406268488964347625944801259959254964842512231818984317237611893513469140741766472874038699390299597123851403886675484731170125833375504384250606218410250702830034464138615850543262943777317860765001593285228753743812272677440017826819309204444867883836044182549016472493002597769023303863193841539092433770724005826683482371568796304046544596302454792032856682592518983242387888976978624854911954497561429153112557168067280081689968586767312022521744034517857719535994432057230154205231530449291254863172724678670577229150338368160506490291059146317470888854698207958842080989805575903523276948782904623711337502153403087138046980124035865842654370095685338664632976541467875824924652071281654107420836316268998671878633155541424740069842339544038684718275983426150803655314596657583570226937805893859696980394474773769845883433354139886854680016603298688945118005876435167074003486537322825348218454105114607273608285220393684460423413859950280082033050239385745150178380477634736887718434951375625979691161231266193431140526881300646715091530502309596982786841684930513083361383755285767658110303131361803799854951681424349798029107275892710484818867091136824962508328032599233839679730222522078549469509528378486205626422701794578209435945658922876884368253958167805345626152778773589683993887739389025798628885521272796232562567040142823983671954330746263144063286731615501742023688336018094238973488878809055276217828626147088626008752195199292612379052492200435106676832106229729839293682396509382388262417294167817871210292186396007813592978142145742435899701057891766356581812509624532091482852477444155317191825099683582983637964935176643001861349462644149012184227612765255095764705795161613627227767878661839937488673524281433215106500428319949035753783002577311372490294888816159576003076925787929196699515852361842201604482707040233501256595493186646275921630703521694704477172464174568360981276683081261286583109316447549748136649565606712631140405824482953545786630777831075062291860898032918156935506008713469474618351701736402520985800838070458938434622259868398405364438727582334237566460801849059920575331515835186939120592149611070955740460161922540462034069324432287293591484659142697888524294978869970866383853429537133787358418158288740618743094650641953826817111880306789455897494723183510458452630502436113342736609548403878807319611875484091465625326003033495999218018346477542537061323919080718174387364955379157493084174847342041332191054359723244606038279578087902260038760488746756312962377213465886956399346853946099666936081849983261083306509500070282229701717847057564038897067641419597174881156027027553102046082555771811971486015891638066820122075313281600748607563504981544884870431541754076407490230977062945351837345697819557201678419903612547396528542980035262565136438233506914172176936690458364783906023118986183099550616750970723319889198545724370011145326712246777991207750181086267513362383119347665990589439089783275011886263027420689119116876976326112866675560433694883470254585676251139282836699131664838891018772628251738207521892936175498116351290086590125306152986492149579853960919914460388295647112927066972822533813100676281909324895409421663728947209188529205734533570835301168853742449478562428663025182818813826094493916176203815727952592559981374345767350618546790326569940723724639245502977412895966627492615837706364453890209071916121596824889711564556984708653999683239044650493720161815763280559678680625792206930397304746894176272938582222516636802448726014107408069212576507679219003774932654166901235753836020828592333049266633010135393435870773485406375232099837936651295762206036644808047725706986215529579077279042534965521247633522957849644240180874739160556375889144969037804664253957854207905842493545757605671587049283320269012810898594267883155022829141724296564929395703167811748803404144146300735160385698688981848982635127587932706833522499161777930536027224917893310181228034048757615503874296096753515337007823749581178828564201364018066202845887178280754781064182006007674279599479542305887919422746334986151703483265580243517771157048394201794387227716880002641996165311055140021359274728894240739831504492663539869599825906483662359945257291662914674275940688141875360346046417339933932252183832024135776119788267018312951182528963850693163414386743331120792357132382847747542972300920337514660101972592655127367078404389972021169806255692797160949972365791211517961347410630532172879343608636334650756931785087581918937178611952008900111883776494184600696504236333867375906866294062614336531459372052865841117134102032706004956230971322969646508249872139459745438488108387923948593472599337568572576472076129767039915263932433866090658182207125752593138176332745751031820492320571775099220849737209245779102341541018673983397012014860160492858770790038383042520992317849959305693297436967523457020674613940109596094405863301332657000539345378083464480443652847889956576286944599332749378243177298315280124197564282789640008489562657975657724505992819632960901520808879252706112471700957617132848864555842140788612977206996978778500350980845973008516265075467746905960907061328320119096870738869615989181969232180809002360248401806443918654231060542633839754531744987623850592961981918779109847717744688127713972725513057074547342833379471537841930502466051442676658005713606686114152825161723740335668230874815927051600822480481971777310850281910137894125746687380608639392068898039070381619733320903468801861081771752380459421042885465934574487488978952098281480165833595649371537473859416457558559406871719631209364744927934968896233873037774246654033142940561379360559780702277759217417952069165610441533040478796387077061964411350867122715331495937165380442513448240860159765529297535922211272984281537176782339028987208691316886522346350912719049281086230073107873784815906128292356037900144271157269172068624683092198458942807650318346081644087732823951721156398930655395033180919093883683857217510545674858634452665695210924459544081225956736902490762005194932059113666454150831127320704068791814215325663925388766206022131798695360669795542548190772996800238669296706041195634443594650351506535387712013448325421417288739960553556798000385440897077324931010356527896312464396828825784913284850702331033587476261386335852362480368454676188297123093217562740776905181420600485244409049372274700377410639947086859626990590986839353636549428936840900057065072876700795405721229233024652309057317180445962484838566140421747791460624005169903303015280060513730687876439133981672119753522649909340215169952035299203957275025783767937947895276612107168825409327909429304729741993759970894433061944606686165523045414368554980129215665114285552214253065654885811391555711863272305453087206985063650420344871257768022539501767207708224828376392184634074197516628103457143183239997369505480747396855179913215165817214414689269131300700378986178480022229880789562666450824143513903263207441612173619461565285038842721299345379671134762481949340557067994663320717886869293189386053707225687402304728173416233809429417366319842522845800609820981352937639107953618973620934215615717338562254077340221758216961573786310237885159332612471952799510290424339227662302325194068547544081794653166547551137195285869521528304361871685134037349039714858482678181031321683187361193771982891528642966570598231821136477265706642409968164067984226038283260400558986215992829724957535556800213515714354077950570540289255269422975919215909404746778725041376142426368088065267477384522558816375496181827800284110188836428691832303819913355456397584748895785615955946360005614747012547922612527570354383274715375037791638057049586685254886596546315232709805562318585138330848591504258154901297047738718144284892243147661012183533355110268736132363654526245599799865724453585482630141828335137058992104774955048629734276139591569690762948168898556324476107630332757290203380260427730884119657570204418909911154670531862052323725026669044938197760926036761849670366646511115004828990174156432424596375400437084040448235678852818615494785592960476817954757118747258314911963284150065217859842533791479702332455771998430068532602025945138717776780561627852202801006657003160154639605687168697662746521609383267814835909195048100526172283142440551775197200258502411481090592699472770410127967781892034678641367557811587334980237949966441386960815949735700063000909955861801406006555872411936158331660893076913909622570801134651475642726028897239492978272000801482306157592866326625477491865788502957317116720929133609983603694954662267619621657977060093159696790603359412427852762907289591151205342585774778930958157440579200530770962967896357288870024844193159356792716843765367591705383657774397011282877041675236413901774393820237378366807963327820426148437482939751620639668514187743099677430191885132879943004377590639714354256466557597942376216535971421967697160304206461021523346596105865464974571331658389351046500838203623551458197260661430365533187633676928849572948814079402551396685354502066257149895155103211962725404950612854541205835911370410818874248610674386949175287962540846986328528468132940689608166094675937836330597165897741046233038073421013155039479903717077483996605532511628959967226430115769134231368577953446371884738665453131188984411917286761890289397397048248336597700917428291921546980309825366237377843574108840032187539735327732828560377441576219613856319848519979009739248505211560118778943251015041069419701231825220366141223146815080816276465472771836045203040637992248749617618303326552003078511182249905894303238101072519258446477116557731889801084271760810603199747811826003936538164494674608869920481364589964711250111285654112567631471860446861673519755016551170594989044904103550358864982283174416155410910076283766112770149614052119571654899744888023702219627642245311760458465727719008946115270256808700929853261987607675889272948575907800189748989464035057606406753675471748094135624217590194439263606296021261983522183658137705833232720413693460578405443564598235237200728277033840337865322137452845983643528585629531541911524159378974367941037717301444156125312257449054412804898315858513270282464697546070077324724964724581524102663054895766716303274878748450587845793543047390192606026255922317318292038825595898444874121266474777836516542506058123035725842275408572662448391573167864417017244269105393211702581935162616775029491775127132259310825327658699214954741713949103350627493792351746247093799525009010897477329701033609267826060084704455988234201972226621940696959125251590921625461192975282354077185378214004903032042997166686367722419320597360086395737273482780399302828136501359492444145705219200486486434129148633326322259929109955451546179774011788789173746957614137955612564380368772164513797440683077793264547277566853821436695836781787654057146166481819748240546321940244761824788561128667073171376044476430794612110610048976429025838141337879643602770096312985392010649526864432158484045447994155233354495353055677445977564898489683795442671957861565540374861459853261164886126525385693071430695239161959226002147642409152737995839430627362730358653343681774636899405857056826782990222336485526090979315077208504202171857783210767371364624646686796244327735892011136542938713446193511695511313016884950247885273334161270224976669714775196995074887169097497603733388339416599802088949589684825297983699056144228185596756730004538816670394038642876114996781256967299618167534438912974847429238057091834061195744454387921658107960711049079092741457415179378624514506303550441251833929698451510540502883155704737311467985013881986567536841938375722181251795891895372269257179564091955456480614172493671172166147508197197846614375122484762728797809071896106549101610709467539414143539950098833838578263746112396681258249808381140372492542461655514027949598185983255823310260685312430571143486559949340130491530629048458113632195474663892598697477616141256055435765912800508147941292682380686172004751912104519969383548338429821895820024285391502066370604305992057437587991104147329605140362206913668867060028370399239022887091684290900847146518512167493629053786341919349749478331166234503709077103779911961114863601291216570739195043019466039800683906478837830122363952749139839153659811687074583578079371733597326706320351234985468554562367565234141197678192536572507279856744316095843219255462352616786379161619014156531749406964625887457598920863721643839060468043755762680391235003691918528590539372849755430243560952239789506172259639434922232370917818775130002386667052209165121516837774812312645974893406893539902253160670903532841784415807216968939163392243267492955642035837843730086380183612202066653919746433219130519771169361172153008049805371796409590508841716773208759700681513421480222472308254650819233197147021550664963058428344706291316502536761505331051348860489407336439535417153334509286692014844291337946823170718705725087483964383950606985865932166070504835801036326025617170474136405741395163434188385650235791215733268289414432879798749936957569406201378938233898190645840591349330861670411878443583016722416694014280207253433819003514532940397220000985451605063752324830679960244756630428458631892434965272797388007443089462736158398023883500413520253992986803071220572058148613680968426590695388398937636228610898688401583496004766857394079429000519716264410310233334353845692223338454165477095290151228838108080266622686915979429012597357391031226830501048219407222976251034913397617276459602387942983493174779521424996705848138118577828619161947207316845764936212873860868042589830071262401933672294372340882909790016086995472282125310790696037346756323137162744559089259543579173026377578900994996964801689260134808692124982823962060371850705353625237472453609206163279223779181343718678240241490443911870091465367992021378221222624823775590203209588571772640263082118278937652609713490257633078531544345470998487951511541934847593531598291141162092262740699792016665195612616668888001817999256311792690216222202711289740244200105612119736166475978134600801819095872411781513568585122544390012861513487973381919709385172195530750622527932143063809983133060138079224105337813276485648180600495158063972479155062768957047848229259575303793226813113724362683221641730248349097157521921048802410779395618317476058324953463763977158093788522751765811768495453255894796689495691729800397551621375649352499232087861208937068093361137287095684550737893190804904995820096541441312900299277646978768395075092004953018556032657740998354644367908908082852249152044341257379259719718316538449834499789867702054043681092492884890664823708128600229653541514411830334712172145565349947815214938842650194965643752085538012134991644240710473915587612751075101699016942897573409354210325927393317693098015131745773109461103730757217219195320245504583037521088017484979373462755412459933467667587488966248870457173964889049049638280122950616872337190023018155930731847926336692564573667664516349686083051179617982668154852933697136070098882738164765423133834980275137113540668894851732020972650580462066128683486132580781864756163702671200201243990263299231973246842451275938120257043801826968664482404794521547309198553405343612648200588361136831968533303199674215872615970149495993177402539559095045923847973069187373316505213707410927596715787241977694604462271869481688201146042066922706322804474046680489623149545758824760447715402767490720553393624731825229640280570818053366330470704081761152579427426125373367396785804414925528396935085250470204879277013555044564580822941983896066843317308872381941623063189669543293471682055808641461710520015556640889396200277464258599122914394260556704106395650709744676376855955343054419246790190803579130888351280190392039827739870746763420288633254309564067916289323208479667628146347078825573801395854590425327933692366169021236327764313531575219449265560305249519847046928268014517466319372525435890488353078889840685770801198026633815915364904990666658587233331363781500702005709518646008093674144451891825952561911888363459264015513891219504328843947472034640756153222806145688064369259700748783131382546252705674482795220483266362886382410085876332653259130624878780340246301146216225160549792489502764562587321951425841053600339794585805214346288072038343519809342117062782425360535105352845346792066146112631350558065990886091746818496944612023604699836226051757209916684253202433412679751769343547970956849192492600156791038566941055702704942656893280955166457362990162370272178813638388924244832565218522908039060701923999535062085228117219180119818968380752890812140283844845281599616492872195781897213943073640538202151021879159893978678319769947512281892089989279994566061334916528517784663918684605411187228653122753009011233649151715729474563175012215380247747842628955805779544783780779522030466019144770562908968771461771550226238853108036853214193923489974921994034483311300136312161300319143167669864885252699698720714946846577274458130989153298201871746910466920783765947476653580715761444957754893948812285414461076223348397163465426718889569930129250742740245878557281096994338164774908095214341534434620007512334884181782161893736826575975565743807809707232983981938124409119896114315662700431331157345659942107523905759429685662630950051661761107937624473249802946813329249868561666900831738922400748768613900283219922787551650994532208021965154819674475718420083769605421155674515419969686945540744366380760602661548294262938728685709632256745267415070623319816572124467855293978278165246613081209375716124111739013722705858166714521929084277089364823911437892334549278742590276863349090227772314666671318727215199424533546385643674251937595328018234040121071281213409662455053359734586906993087622734790746864367163800920462685830501965087371025696919616092586205308979938994921007375073002909005297012321902257933722395570328836370612902078116254856320587024561457531859716905626508276768568400600850120208894793839454222296586785681084821424703820422806621672337676491528368437844756312119701423028407405225098466625144036258622248922959782325858320767695576263258874440396403300445095671739340199578723180886832321310823507536321199625276234530056800507804279201311097468366002740811400938103007779592315179676525752346674956296530546990643667622522688147304118787008925018940291460793681529173364382513277204900552117092114752693862981874828275957091465611892806105076821528350198888944178498062701414853704362939089710152732244765046735067084824139423664857803861726371981910156423388538947200910672428496372466826873770249468314192081493972224537369495226323351807199343129933510993765766247755662764556519412166535201071785062762613954984573983875203708770617939564948015506325959861086843180796009562481176376593327962796996306380568784220646534988074352081180094330351014841714290153874524648790948035793019289889544437422679974379621999915993967724345996543112981246286190438615309977812614389416477347178021313486782044861454425821783026358981046244795190081397714615374169222068473709670941774398241008513151664774313588280197589582812421583019856963458434767567592771146099246097164813326122164774297119370681589138319775473679323872180077387335371517521699936883122878109681797824218431111047503793271398445543433700116226562368640045627412923230410320157202116684167871868692903661694774609234989197399750032743822136017677495042154210237147973174861121449765381899287710766433211961204409587360565545550485100515483909729258670708162934069907926246700552817458785857576450701889226427655198652093645787270576740182265230943902271471386285955687482295031008649583670833106835042779569640991670720872409028720711629684638582343760287266755962070273931834164928680893732810563639230560368422902665977246557694410990728360456373042077558869019761386139739851076499059855686226005869192506243612531029353007324075236778382476101735570338437844191473362714807184730645606343173517250810984677485073630633115058278574222489624599118559617657822383130795664613075038057949884247328678925015790564253837156961429678039881577060494831506345068540801244238405593640246734642311978558510955446605436672128943325020921079006344734827612860516908101529226499359377237354805699947308736047689001561415447770191397981754070470796706049084496175601306539658796545139803369413218674532139509302674348253327774778594964617209730623766581533068654896911311979444010911717745983791995845564130801333502021843219813046012895958177195772936317879658885213121373475132819305861545441124955246398325124006733997298223115404960121255428173934799324013395408526538722738033897730547974989090529947559770979562501889623334213121265238397356548717830145739242039077766999407454392537102572994358635558145034963203711503805934580839527468991467612265513376877963542703944697983113668680468579384086771189416531664018050149534559405047444786140930059835967568449371045034564643225921707630796464348904576292461551218865522089930339205021234184365223781849194184342437078074857452643854184712047396085682861351738063509307324888612378469412650487353973183807729978938724553271058800872560290360756815135170918782596043745599190181037414733226534887242276741863348053562662085110692505294707934719184048181724310707662622028315842098203565116796136537387827529663760173302882587191415662250809766416354565279111768055567202988097563683247264781244151720884861851573587862368265783334894116996789596599062455348758441225264364247566009518551931600142902205025988361617990711127390471465322419341673128804225938266995260175292723643068243700284139584414317289924784807189880079507905313474453461626418545899363391241998666017438992697983975579267558094347935570143876300173958105070923046245602458415710425313418203220693071076579980585867157596562850584996855509712080253773667401402095303875996119289423003879520728890399397512611837937814852015833090356303315335052214120251349485244738743763510884971274685428752143431436941738950676204377754522319056826125357973769243189572936713302266138991259112648694924270145387195607753070274065977797827737437340905091877126495187338357348172570100525380902277484144078360687019375190023603142252264852015001192900262826475004037222651264347911976593328139124604572835043562355834389579417646321064779865695357571721060293821362364249132930556368449468719370311182813741714146104602177045606596880173209846842111251927193100836203367404040698098811511063419437547787060075724021492960502865750309033173613987227262646010410060229330724892789908529052621568970338227287592312682353280878207524871541679620900977099591007677215124821351107144862975804137365457525983989571632547389705913516978988030638248342835100221506065328568020696550585971794757010301983151432898722702927616043367079458639111257472347549054713376572604901292078682378154413924481028363786615191708841129632043295482347423235509598737382074892443465783620431986218722514352560770899953672243759402120504642684319174998353628718719816728369370028152957178298551605117801148997377699830464920053449626460570668611533531172838907903504232855560973260133102428984211604121251098582614010275782400165222107872178232810453418284848985187087190403608917852676061785982100982436371467499770905444978476838617783689778081958932715574594906825562133642043196918857228679808288772874041379926338586203587356097302390575716854178554865683065273815894220695174534706358098276133847612652935676847172160014445781869491551757665147116666655730414119508151786216175871827870547710437684412090411132204278609619153749574118500264582945215589429309769927775194500241161152723025776290979676801802133900902811445121083973188937504064893771933091070219928428499188686469371582508100206610261569752740492049047184224305492754682384939572001119523438900791939462404976608503950763241428063229542053347006917734243165139914992146625142269906582924515197821578783752469264568740965544601320236337405173330811111846427288574172310874341016733830235450558329538769342556299332229915799893190824656745279883208930176645193260714227067908233443956362720353965911392006927674776451058309661211931681072220280651601296766456522648650056356103549538204059222992742803952386845028230210069956497501876369730519590862853659134065311521202002150873493218278800164544676077668462761619107497796497008643031845098131678600882545289862441125289318094056644944358258178355515478348183836402402453320313978446361253519524203634303195453756692845788422446910047370976881300867990445950038504059733870089185395731590208958077399413585751295079952846414802602401575866111015873805721457376535459984874765282591718837721437716374483774343646914213122408217669048555930406050420810016333546108907530025179789981049895102498293970865506697718557322374093561343142562111516630669998206892436476977412349616249484103068217210143434478420129624236341157550371378638170688557002110556862949586222049476922396022458974137986196038610427164598273462432648949304188562975907796505813828275649859111759030305853236342560936494263428922245821508249467928201824035492039210610404199441962506757067199185959144311293843209273392098396742287546906605484790565848649449481561154984012517985036891531155160021362966139564647167935957287776240694517143257569570577125913498778358113428096589716571985474789773205296585083649351657400027396073401450709773548904435178927300389069244443482253156791197757956226361888572785411589526194869997603300384648003135382446458038891451458840285296825723499328187938095996242543609663215399775171403226572079380079817789947457265877007490103685788301308444888504812425372008638067166362994785904493677500906745335092444232521505993694134990160259506779810770308360901495355050576845242197273895455207848414633778308799019039742181163450883764959784949707659467172396238130095789071632925339415958484126728182746683407884522346232066520125009352579466688456837859190865901108603832157220040923619196019953142565161996570123270426088319272303129219635903277273757152849563769439427700121975469615743272146940883326618651250570876029341254166367066730777166195266324124487746678332510832490131676146478145842143351821113727073026559399232957644466967973720127363315406748879522793632190000740839900316450528442989273018483893254307039907714086716689468590985297247948776641373327644356755913350557837709049205847594451225493135277850473914511531779719895134396165581962405754222595413624846668129522948670428843219398289103479537196261599054823069598232788492932506461694285606088142399126992852945212627441041088248716286445879833159880027412796336741233755790677751483489986724422558433121855835739805613694137223259471862090812900287763412995154223445519036183083245538691689279262535440933953195618243889850518031371144227253680895217571835660643253339341994670929111397493264462218992453203801123818594178519524733209152477272770841370985146785275547408493156100794782161615914021478726504434285220311314149399994270190645882927959307289368234690747968540904476756892769077370447197264842259712736538947913420768661107938900400108674244597678831019439801171862863266737631776180241579918632391720250851762285278599170583430141560934968116946431824981562946075682390250389797319899306904976612678228954632250521454165960227692864266939801311081910741369804040127417402241362562772678056576611889769597388559657775577142879986397104633506839214868856364046065006454533254689534963821985303712930618861893389326630936733026997059841841000509229860621088292912812696396971917388868817987444512199302624968181646492709093449738270161519242628972839774546506843303549307720107960199743218550101690806390656781250770514948984684113529570671528896499857407336694097191384027022520521855612905461934478985571350117714277922488899134810303237497940025388973031062729821779653403581571711370184001157159867750045057633985724223553475631282504573372117396987094754422804630713831829209305874832456600573856461572718258344359934822440223283948889176282902559646376456255608576022143332602947849689768967587428823611062491007932292033585208727683460286562336924619765236889379987146557385504974193436642652219330426292947148012257100860839584036511192382322355292567337990700340228738550197783202360998099042036050274687385725967311126941504341387350833632672090128033011619781921213233468886841153741276461266703695202411157052076163831675367188184859792902257993552662171399106289488042792351838704773991070177191051032810447557588782230910133484773511831193344388147879911952130364196075677557589423702945400927298197932102519808301707477843338064932606369883336941112089109433906147623086967114191585380678766220751601605310516492523311988299325836123843914678784861539242968982690543975562877824017162961261212635235503480241565338680149863287244152011538921437162072815107320357976225272462373125547284479966227194370298742688561908398697514211634894745188957040159089092117787519036838173371784318842025049552178261377964023212621596524384044414235490853144487714456153266615296466658375914605691726816768399071891510068750787619042666997533525727318279285864626150511578419317354394538186593674991922858655556708077303861413193427585004982079948406899669680026671755374562267028991652053983043567724034061143221126579474074064676321291694402305730247975437092642569796044518761245009179981537581410863430128362979343233997858932592382705600381654717368431653973135801606703990880594397860204317171100337224817193397249593609011296161179442218286027425613702217123831017508656465373324067486861224558249941656071607332140620741120381390702319906880959784592246786269135135175598671300440273079967228320840689205487786201835979595852315527913841160021114750035126548024805163349042916773624049759614065630700257592067031008418918060377506096202283665993777466311286970296735753583251125590634503688659960108307168475987627383753907786155911662052672121179758038144659596177963099958188267378915519772683725839248925770724831737579012433020148451475881016351286920532644475686149890721992947178453975551871573558281070320622855544839478471432318384190634767046409756574285927529801993953113047948423800120133877273947051505306251681425660773914754480590593042893345759749654876929676955194393526581190477743178101856163041034478675465240842028783529757751323052994523842925000711072978513168677642570631582996949002005518990359037885307232951159476023070734706698786525828341759454640764571288552732411759743035314540852209988266078494660929031050302880166129316876373862991996262962272343516512594146062363264687834265490900798805654038628173025616962274132173826611144133848678715080320984848520126916162113036523697298571339246082135479339346816646492497567985760202351189909365483501999841301429816102773021703126563611961380068711916009887767494044193552113521165861629554788162231080692901386606331147441799874629832810660058721095029753804982882916114212498170110120681135440386928905626746241244099147234489826783385800625508037186517910744603579191607004013764613199910227400447213387594062674895050432046845954412306157202255538904084209648645582002996684551956137432304347926361954395523748677587188366818818023280126128782334142478998610955726130507215510555461382981391076769366907545588193826841680191890819908493484708418827464947925041587509985631192416994048753448951106485638595029790295251536763405716965087731280248446869648024672534484138479482630606346409066107119876468886507162242192308109546915592275590338077095713118495143236091618759123021512316216017031602441555372213219754344911261095446885571758123558966022159629909145772418647491438045976029292851852006608071942630065747692647079185093795965621841535573815267658413589048244667699000141163282954409955932186547030159094619317581861857016713528367808891863316598920452604818890414492146577632274929340501281197794619634626540357311765153521312118298633774389751612514018080113543614334488021058088402006266984930543026831789374577742320188236107010017008259107050309298657872136554561802847012143407961553118554216717634601024178744966948036111844955142974659871431927752202303658915774018440191050097661070147823483413193769995924141148266613643615737198506232361296954445158146963046621844055159642471001378469867964700233257019221534221775925024382570863705589776066327718847837643766998076113510695024891166642764723738139877047824490663654943981986403730371634146300251248355228045002009222095278434261035293074810811466435444776621787366289862822031881019550151246508944340993981347765444896010517674224773332733392000330013978931667053998972265990010277935981955520417207084960128719498943925750155019340213402769908749270798478219794361794176337223196788850199045607292068554433313692707113193485405843557604239222739110374782567874615813226683952089764924953784793917155752381585983799335869539329301450936228189539711093043124824126881073900246286730956402780757151115050552719878851667718642513388243522879485140922762741609778934766177249287275883589086259262441689833587175281826373901383936068033189201143344090539126378552103288613162350763258143825920362612771458418456160350573877364958644624850458043225704048691060347974753040479261524968010005197568015384561003141948727425996453398850599347983612113529799839520087924447119326420057396520353678363397360818931641816531288623140046057874532033754291845216485498652248869439820094729959815148268802184958273884932093445251385941039564996285905195732386419021913654342206034621528213380312244146774161333620223867452873194738395500676166524719255202719463869082562105222505681801276140930893587524560215565956156381235652967795263979710683172649388362952237259642799096582336347754234218752216727979291221945728380212088862668247212444522451006643425385721044981377376295113796691232936709501401035863782531220746000919295190832968358909779429060127522153080386976979841046487564631631645540788419047014214888201373091972887595223657844406609650337600524999828403240656398944411412496227417450218934468835829531848577033997164899924845617670077450732183876093239858115921615391196679427176554413291027597256723356278096406780109293613282797287772154130486685912554193044971589318435020308011442239393347642744442658582284340401627042595073450781038774838160010752561012068039010064385651937129934988369525211947036957152045303660558722264448086920563294951472793526115296269438670980874631924897377161290208544107315405358524192995051986759661566304867769565649167035665022189530774609582990484235831804270846482227208861836262546906930411297282589513866663701044608003746688470076646855071427303654749573608344688654643749901629236932411719591985768625810957926458848223338248415298400219188879346684440730326998730068199001169273885643360694268574101735271164469268587644149737409245983216750354733003842061884268988923101902348234029239837744140374020876781855956880135101047609814008462944023303264133568778969610375451918787288958199784647472977871169568727378815332663964019319330483919151601950220268429428985597196437212492717326789876011008938331637982679641217143227282943584704478716139830385416694857931159831339567134869299353226087818814974702789532687293256195838776780679285589390097831721353855799424775120216272996796534287818283672425360866164007780791439070512282662307913292450866349125443692482445458507637011350216038872511562660863747717864241862687955609254662447985980434771712245105756815410925697162563592724183033044658723315711472517684078208298805655438691072433533622541387076857705038849707135915152052558420634248851583856154676161139899963147522092212875288492635012625043871906636480471860169899018499610767267967139161442179356484249113316408353211359765607736592596965369898416542561688980247164240531736297275755545702096962770926665309083662103730081733140728843220231945078317785687573889352023770041120880414711241645247292263044349916206403350577705716466278481699326123379476632256602478700390684584226685083848915346518368017686758085350092990955089349055007892408707050752400513917758494888712194101201052856296676674826094252824083963922409025414954504265656468845124528172089653511056328621380161493026958111048770644535150916601594399995117029501712412482500837331395828671509810552033667390969111638590971950210592747873755362389517551392060899518492597029309120891180772091126665209421156631823608654684969145335981026838374680052600139501788595019308137070850599533769543297410548471418439254486614453058304049609875398451966372087092055709520863655583983530538406587985917915664450497282266335693590913194059671622276123970696513578281343896501467846828790698429361103346035616953068564337469676495570241692581653316190451798328549851253688824308041814061889963257261009154373233244117219312394354273572247632220726105294050165381964342936508065971719060411333577906930142081054384702449718664570651269726072460273792012588686280365735897937656330711295819754678232342728754727883902094728682257367008933164799387565826122903376774414608579746952272878471414692147405911084539731829074922143734374729702808319247380951212900326031657254292432681124759832348485113183901267763283889837421320810603183411462321590774488360145281868419272545536358445079112699423227147335244830910716555875066161548340532236301177129471182453533833603159414197349732256642316227266289264299281740712700154345515735223403565347251163261256155162041061738260276180606138484464897772942247556934698986172948389764783027619233125794581936803060131858510394639947107671115341813611550318681784643392940848461063833454327777280861242691024525173274868188580668275663791770268554694283671657616174594172643668306670994065817497600775061624940756838419663141314169082613958402305797245399350521517913751298016889436429278574572377197433708780541005698068566301074655769405535371441413900839989078873249807495205503214028256119652509212560227922525244319978957466784233191986534396526871548493132844111822122015016419684156751602039966206156574667801264578718917424792789929799809422843753612060236728767541844587040917371625954666093468087006762310074772197957037387946140218205167882829824229587515955451501594574211180604771367724616179153863454066723289994382387508304680626070089336707799121811572069526357730291348468762005232288131061380355057681325945938634724359749578187152252234062528698821455143098812534716648482272985869833966770486831275790124394224614278724224679076285314539277897543051611802206988522704392902840854777025896045368027243187994775194136797406662312318263337928384959467797468333915457005148537311895610378747607037504256579051373141235751706008642480722840261725810333173163898404840408402973934879745771496372855846299729498908835222780021734476418924203677519949413690519574313125961021968657173106427178617542772985575943674550761947529692487030225431213967113569920234558212605003865183150234997128709042457181218021226842470416207063962540124992976643725508985915152584739033801456802191016529273740887182894288047790531421606592498846361621154627225735242605848955928417669237104436705654554959642351663051592169312595376062574480494527643855512908292409794294024641880631082536651876650494521116012196711723132645275764329618849025495400581182462690425329860906096074207223243625070546267174453160394628327432359549102101249431124210554686025400033767875009797420759523711797486463164569734515238574167948245583549728749118510577288916141161989509260625529846768937460014178825352713467831164480726991513653103758965256960357972344817463206873409744453527769584380043889439488829303688444644604396842394957506744260479901492653957780940768502319104332376272592465984078312410730075726237177945918531195898271939247409798177331174765286630154701757110160800307418497118787253834705831468693766644918643930322948727342171207243378718595841252326457577947671411587746570654832482468808635829400683668517013546419396920196278748706145974427848880364611126945654814065236107644204369827909793207794704429068018553658043777259659074596928261916030896057928081177006050838112244797943084512555318074201427906167278052085820276996583683289021857596788533821074972795509273626191853511318361394318112963481057252522871537794590079201177566391117220997392265622164947595124882797128196478470637583535119657798354170881160347149879384996770436597991284561289481317220843687165091165957838579062861748332390643914932547799845168641638633031471655991043016440920427819994764711882228048955495792204623158114526411710647686760611163127878459818261681484944923073405098875461260783294691212639885498376483865712160617349951839353411918568403665066779261984268395079626049496449227647960841644415892513552872720636220560474194134869698410146791049677164682651395721324661255438475971162900651205121698138093821044070851128331163384623248865421627217891334330794087615213184519980769608471473804903017792834098079432307486579828460451457602574393343774812083634877240462968194415066615116959446530768285371560153829108048153770929858511867433318213066675489191058739327101275196352221073537202907723342814176855427893361424303543226974980620968697249053389660714206560169798781189119746256723336709429754059652937792233484002306510024725054954388138502751013316541515688506685019868584779548158605073917570008320683478421630463495261247773058499285180516888683423139294046767920330165291855842190120883635646906633003124582815062577250011082507607353361255717324288110185895134825730491903422575234197696075998184170353106553191073663738439326478696091129962513077832375488374811172061849650610139955665218545238334723163023533805774911525332102185605760615357532816378305651966440735889881702499979915334378375194354322462347898282709039630370804786401000976692648826757457782372224307723207812151638805743256207402689657630951443802826458330715812741413472485998925373098893810150823123564832894396313897112064415095112886941143873943857988360445489215862108175786528649133417354454626618680089270071913638150692497133519448976804393454940860625869733212774247927018906530138363424489255182889839287467980131381422016061163102722378787357878795860280606116643344209080784181729359161260254559703500901659377606228119438613591424286611872892974318576666809581758630230848109422018287085393418709063516401530040239884962989452111371906596452020522046824304087556645896888365330692427975796315504916971808231292964062784251593533857083360918870443500630280598087950755480598300891703103670184963384596838579917788776039817397161747739839907192271193603034230453001774647296304039200746646236139282687944556367134825874519903121481156365025754735319262727673078723776445376784774812731644183398615512389860918586133644182012034264625863482808024422743868700077571099002770445800059600929139496027012242552892790652128572626390356277403160518463833943829127944435861434497852840640440916120528249578814461070810328473130225690937815516250258943096126442891657185063881723853956222462655832012091241122680675053199037942672334502909582382639478000696147623019232903500635064872445523696223668743805816153253563276663106466972046076128318279478256435340074733668317640570827617930475265227118680588802393306181768939884347109332548042093209302806969937276129958363459026429578063285348422532512460274665052804245554413580014488295622792698675569373417732634593894106572493410072341195101456121895502181648470105966969548736126878628773980769899084527411662378401576838178693416980506939174846758584894585474446656821136349392165482886908514653786335429762793639242951435535574794069109522093745555581240423155573448107952162633666935499951335636018704604936166533359811701297258880283966284910360158908156453076001593721617055333069749041297487973344330285792237721569122024118986760117324233496490674186663414205344824226170030275794826740738941114074647448399148018119508315246273800644755928340304031948018920782175990955216352961456157451921789184332324973800588415990360761748025612752736262134048607602623021299081008238586751820575200470635193625749642205749643339206549219876282595041126810332255652467722700528662200119509331733284810018080179701143720472434792291375911613413100661059319556786105166227089106629248731208907508791358625013243352453362715382178898331137413236894662942081180488814975434426850173982637779618630164576052626700159127586681291405138013993060801894429081045604845768045449172038799388761046578294805707263486234291394079328586314890368382815893983351784238241679512214963415423949516087837881284043478768790093831078141041767664706910001796211441279716762139120132290229496194003273583150351679716355702304535690926797620248565844896830692939960081640965593239387218630494696177516295684858752857907272581654997276130451348141131251705183232582158665048739309441624895417097044361621045503335336023290156829045394670737772425435149965799731516506885519781970891715309786788366247464564947370324991582278966393207561750519098948093878846384530699268026620936915626748259835745932439669891247858172732582224058945047328981321357134841344369406118165654916001650464043942181178925662533199715074354652441538646412967526384595257105671367475118626266784886718648855077747115354130867791720932979575920295431765009756192006280607460506518856354464608054089642975741808264079269465069884118943506640597022155882035489582935177096008753733083698311513046304099788333174731427688985711214415158898185217328710388654711369135692372159923173216359177567297356943471688631044058184398447994790979914705542510809495758709565193506364397638748515531880966838889639267652072702316816194576987650536508278628435794096847347184543312144312904409932790512645944070494411617235794087396918097148185979628348515323069170142896548007593800027166989176820793467592749502041412820143222880959417751143040995099853075349564516408917855827329296695724077235835190234747858387650583783775175604818690502713347286698878543511497223045173938221074168251808930402467058591548331964753518642773683518697177156129330484188364177534520638887956348800278893599469373304952281984384176791939729612891914632610546098646609624560928965403769320605078060664504308618468052397672326235327037609456215597423076995569409707407228655933037453169643735507873818725306831107033163601641566794981752683690474615539176211430542943300481219797053318454528120822800348295893661302292696020403301918060674744743260517147415585505854413242181793726051584927629039893787076423950109153018856768502653493129565767639053604912453155752311396553101109308568378579735816731293920891323677282026635452082647986212712944651978314027456045733564866398201042613995172034047102566037915135099937401040056695338653985824693551428152490362349045208035335689926730248447712057337114339285932973939991849923313093805508686686295297445676336041296558646819547489852398730691986397962749836262639285051002670224261631220627137160981008288797466805716529455058253027491146888164096487106594381574399363100306337108472309599349854578791963893957450422964920443332421353054173024652919145051646349020829680139828824746868572506834818959986396509391523185654250104704842288906613776557048006545833784804377540036501680667585338290203677066531827517679415985394689395223145110820711680990965407805714295607369522854119248530585854998260146883787514423523298215722598174320435573111831575207332881578264789496457030677620589614281799893623177204989399870296275797722433363099458994746672918778856990254430814060932505463693472605252949461870709708732513078076733813001472488275158168037024902263533114732808839719988137546761893905492355314118453255132994605951557458532255958833153210234190930698920872949598704237187239225042188957073973341349220094194303957850241063189358638286469862325869804122064724043977613494290292807663361701435315524005109365424985482607811737697890927018864588552833177209687622581886742390129294114516773879129545397274040064061719486537953651926533437812124959100037843686118428945368249739648687654604120611104277239874148945285005889543499024509512170901833286660451203910666341088590346103578868425761554536925463221896380460916307888109098096434112379399988751567010208653435992340193363380068444715527741523952427291552252492927192200701072400590927893928917983852250785397808309955981178042765715976444812610688859222873682048375677537518859065769232815949698337712168094768131499007701983123316875373878998209860287463152644543241718121816188448295876926548758426485507801166502482274691235122788416938551675122137162907793567779801878666632638953425961270899117667836392832508880117148149544134458603046680809189734442745012946859943224339070883481572261166375210475205326966442762510970095350922777142156880134061732366737045588238314645692780875877555850500270203678887219545138039550547999815028686384692564396835931472082456675053210320143133936430213050690576522909654606899884219593739818792944330825788714118874056417535959035071503116103953134816869438077659278117068548754189268646070382513998505486603845327823622046329558826294021710392219326506427166755841133878508208812838488748592874795046189034810279766789224591037960462875281152242493175817215389474728009085305774576323052233916917915110682594738175256628774832459434510404542780119622191644183679622212353908180842887339234179202462273435889742741727465291158709645082858953886348292469846511790150348778976012704971496349038424815101061035503065992602751241482547729646115241699126841895421199435748102756014576799912046914078037258675846470305306745865689899955059826392781392355384073433313038971836900727436347831705518745091754634921970246810828304243040597034272679398550040714778291408740762309478910617731104611253136677761077802324351675831661885347614454792810700889084606786073090743983713407435361065247191831942967198308526433445047691102174264007061175607345150027916777381468328347498250253238318063306255320260794372733505292735515408035897004930967321546885765677335409675098392677251922424987897014648653059174043340754937425903830651956453825882712013370718087505619278378507866041848434705786380472920849344573482815547373489276265238093362544836541626874147218745714925278615648368815766658529002401955177101864542603846974084760789755507651766604952533795208908317038912957129744110964630647757257429432470955993617651604924201763163617573714895120623176276319495826029830317150122113543849923616552673717880389836975743442200841387058486898459840314087588020444714611727115932390439871677072801848726172917249484617195648804278856765193809600536676178698326325805276394675840839490443297318580738842002570776364447757294130670861057307689857583498970979680142077265297431570925046857840687861541758792029028393893783691440175866985459902174102680873186402154424565063951644114259341137715854856456603847529707247835853811414407551935224862593062666549025872111867873562389038626719320537979576715025871295760957863457502652821711999952542687535417038085908865181356000833030807715551986378757939805562781174882862576329561239184221098454880211021176358591872375556994584185413745005806679690091311856170127026616541869780344206738926998785399218964321332783966823684910592646616241440794319460676374169927728688553025145617761660624633648189710073810643863142766943311794619331037436884611660762581769400335735289989506902438861464698349719641183278477180936900115983127087644288605846524079796320932920400015377041846534999978956076147548239481462163748432838581266140656377714500966647776083915158763362755574740314972466291985203570436262348201932330176836553408779686660824184107009914821935951781359524541578712983218079432685225180131975521433281869726870847958274710859334621843555247206942685276391925909772566488366216458843196510776099425892389157317250701072960276589337434816895198105011391567372940353866053063703124744983603089984643323093413703916255547367540291669660759655799323334223575506597858641625229436377561939596013472186087840488812958001336012624788612363758140118700039334686848048405477842760372978578484188894658847724004123525202673306928756097673548596411848721336299435682690041968621204092223296028522444866767546417080352423535124220105047565193128269315704190834294331317740852119159933342036710590231961614118442865781093216187209357190027921266131223382268934426436814045154611050382806194025374090720303200018044540462787802182044803493552781945265087872478753829676549121582793001887898693932590835387487235474327243557835762975435181380277162659721586731186055061257040949133755230318198882147571092159015743960799717976084196024140910711313517057542127659681364109373199616427167508091401959943812211103577103015560121697353652087340031171772685616227060857914194349386083420067810374325015382267208825942385187826551726967974786101518444209509262254022547063793834269470351840405453653696692548812316876588385822975274902806627437071092232275176903734737496751280960398169896548453511935177804088657401470593885616440259345904499944280476424806830107174439390198036422212415945515679563563807850810774508577559549368112161408304032563335342617711997158842591813977803679995341744616018773104374479636692648791921917719730617855450195126514298010269966632436107266574878634092262379446337410751623087198895826572252294011501393825518582058373554691753798042338658396482725122382654967706307658895766202098689143519350094927108591931772887534291306049784511360297729803797839859780657558089146104657712338644947597343163210718492739224869365490591982392582418432672638311528997162665770090913379552604491204514161662090880172269319254778254133250041750946981645380064187136658951529275018329656018432299281145429410115043109581559535571169755844047773536935576063254961837621352166693542434897716919941919972432380637149295576367713907698973331249655188400958046375266507085204644355508475043962761273526506605291652040033102390811215288255080848899297691972279543877064726017161840232360012737724799222516396498091124927081858266434933030597751592670919771105812705694807535396991224890246837031312366314917017577314271762171802925318144189988311569798921121905840060274152078060883875980478083503558817528706667592089018156817948088823452427634723127492220305384922086559930307105700877985449069726288730128430033554265493739419886125884465002796761629836149969225149605522472604978476642924887785792435388958675503468659306491337062834696086722105261302480921642167230934076235943339347371928806119811096223202373259805266727669271902858525989518661681741245810102231586925463895811879349440256157456209020816233431096917096618550411050217279467821218953175817205821796053561334418976036627565385180110413137061892876871338983423821231646657341039335481182725762024625822669096494033987503174586159771447938948730019584642019935634221402635411302302646126337369409878870866269047780556487615991166482807550603619618263038939137426544682618499984854697135218879694479528900255767007535175150800203425051329790998122660360454822108919078818664862762873589155877796050290706180361504943509695383056602815757032390172815513227630003525293300872433866161766229274938987744350512992763066603362298046235096019530815455197948566412126869865944188366237767177726452901683733192589594037582188433307332029412782345156421970381958195800400890923913735691946765967063453200710110931258634409782833774523261004902702094824593112591461632556778851676665059211048409870489928674699867914485582595082720089238040054868738924349232673362509174662602721674821820743412689153564351540532354913971486508304553418112393606882449278913674158035351730139266691674565141616786921077862748231247790661138631131662766490508516203725214312974166324674878404505361308863334848942347644370960641469137868631107557056132825772345949219711838197062029332761135119742441915965565071855944574449374379889327385762020484034846750332041326243252374906816270983571261128209671397406347703204322391837374009990043783979062887506977512816176759019558080600143867439349649570763604519465215233335180859609443650267434057973496389635767382084114883151146227788250289562465089656716749055391825499331733503527911254614537724447452148987666176133204697902160529357253836304127756291020199902982384118217119548172395586109922259277129647316267080624086987663437589219495372599325316556032322847332073775841789854358722874197656174569730295041349066161482630944596281307948587177684597609133905140765324354366543875292083141917782734872356172134193360749339647276681294537528591633661533601760885863883821989291051054860683021295522897193430556862775240879018588887479757119486721284595857093352580933355804358336463202341994635325634599899373362368316365954851297785426828952761433642846234835972036636429657449166253569550063407071556266162817941573967098771759371587083407322222979206039483642584897858905956455392951116290132964660648539732029008350621940449732604125736693072394184737013187041724300418434748935647754966375389263649413824814505199632196014337948296329924746216843145033293683513259168014557090058139035880221691599636914064683999545989497011851884725097998242016700511480727216003389982830778178085278789353300835845648724609104227271200928938570425021769925942976848553348969796680461608939885794878280637805976142094019012812127879348512895706860885406090354343173936399063943789987434139531722704234994223467715565939555231552840303438461849641301377648628895495728373478971875064733991419731457116564709339882265201634162676909946444386515380799336865415844566865423262986593742042647559429862779015531868768496068063698170050048053573488424716807090774151299696236992986469979294564686672232094420891443688368919511010118385889335428222177321332984572979576517645727470563310347045419149250227766987966670612892885692519101283311456454996432846092002726978738211274686862845033226273521492310045955958937468081851875664132030904133518033273328332302152777783705699425071652389578067683562715767052604726258379277946084623699050104088197116368725619720536418550823269072371803375927430011610952131980654023504790694789584589719301203559057314331491245893807392603229166049584780955132183557154870152862158068965274149563856663213759377442187526748905918538788199481339460000988239882123901362227432137732344527966995213287371570764280190596075921284075516114863993115737649833187928360060212757015572370126987387210080450056770543424253042694915878576483249795375997585646318266939200577156366536887244660817973629775218570070221407775937337760578144463583762216025580131788367790023307092463168530160228584071925650186760259069446916733800083609843849897377129563677451907044147485237060118382436238607548064484042091448404443274578306672323195118360405756664991623402480614754471635194923106706244949157089745588907591917904078010405522713960792240287745141317471948511550399468747843723819565987486823590525167598421956222123994212803841321438522236929296534136619817141571067591793763112338187714971590337978147567880432996644363405261496497568381114065418889362301132545678817538741464700274880735296928034492565022915703147738503249306435576509345884163361173645091135209976977776841562031145533830886648718233288665866056857867457787868508187670309303186773117476492530783872732042923410754468736266685892041503522044383274324536379858186958381830254963004154947408285988795920435286044597077816372078668317570279526867660144387136730175578174636942600914220980489288755200348293109117843737304000000721282812333590936814963508149872570954773218811848509682019494379621203220057689458944122067683371432346308652449029246839815475618500265342419983990564145852870011229420020392952726986860234702748713868038468054287831860232972691201302923825876803947743157763451467169822352226220205967294575498595094588367338058829289836641990778797749498650627530362629302103604524104696581515304174892759753091611192501128647488741100031272539220168717699103615939336687476848995410337433702737488397280373924032266996091478859235414177631638920530026583604495042194581207533641654336878865282199871320900618427296987545768931743741818561954695253665306239369418156102291217483375253813982122710292860528320126375511644672199528431641759493117090805233831993301890318730724584250853876689910252556013204923652525560611035829744509682326006933156491806356260458760785944221643338925063674846594190453491949828588713046493625536818426685337820666673307488100364702537936521286856197695281182912365872230650761350631652826945126824959461354247246627149619354935178590285937551933293695404988588382314278730517193210503680094168768019551681440561266760500508086967113380795785456642915033419833275692368602814048662969315930465382290775253495518931770337671875705003017501619846866176972522019082059110218091232121850679902387354971668193018673603243488587684033597260939688837768245724368015665919940825561375332930237576842822204680655496096848925869272444784204896656314648288498974499915656637007125460595781200606380086772851093232165050773189419451279300294124716813164053164793253041704916845365288516439020898096270849354397601754160705127647025667513286894569318581207890245768621282374627943814781982590563082765335257689599627531611192664632640376532279641415331127874701011349545308642218196837867142899944358640910927261964229569729355014264896408272459965190830521636021597195235768282351823676186891747599599324244027584719850994026297080363925381910767332549751005466560642626444548965247482353260605522662359259845239904598528645755664297218838179177212798050237495772411977162845918098119495836712093921442883505679514879876807680753643307777748052707892210670089950646912705181260227524457452709689214591940970512954505944426123600218206379511774093120743155292224005784102329632754960191562245827203818739183865718574276133669894534265159673054022668437140445416080477007925495378063772091715838681422881771699336469959331995163500504563852206939303775170867146801895165261529217832559010420302464245008402894792656319700747395201650257128358867980484466804113391618029265263599657975048196885877449809307071935996209817192289699160507443221111276447470017932975256466092546096992200732891196842983555344350477792481123468697128789829857834202620739177517951266732865363523063534544814158124091005167936663877142583544575549562517140744793227415078507546584300360274302204317738058558530387591355845584999035212999517414582116170892970071264259498348358778258570811710998029642930607625795969307208570753327393504837930189596480547155226217522759016250862189774016877933145472051840187760762759439131382057765080932981248214022475308852849437119704700511317800347610177295878475574724358621937553808345079837934723782683627982923423480309217825089645690764142591759415185383842326842049681880778789742924494658965436118293102044211173284506370227334384579691695266772248400759674950655659097048567765530014948320178763237779271082868009325092330124662528472448523710224993197746748741899865936156981523604272985037637100489164707224641117287431558050054388078628973196285981339084804348104063770661524341571518353596371935482666288509663189842412425854654764998777157798509828790292553644616471861447945778381849531740889799221023241297859421909826947958854841983673503505613062434260678876346151719107925454611727869815475909413949994497272756013338809643646657328252838901551285659664189494176876740996157681977410049521432961994880720425815295656302612064532951700885857687102383689268768944973469645411412417635863328507354339105025641680055497316849267691914207441691002963096265636599911854709186719640185126932126775520566057827200902876183556917654830868348753424250526011101986191293906200596394666490887810202348235195162224901054630359268171743389360636785982174067930563802377355552792539728424626078776414356461979901296693949143468426109817642353855706783943922855100291431992428028490812320835293954865396942078627013811195085108149067512168866022315249927928920367031301254223386383883761387084600112236103780020310037566094126192511237895190828272154490333666701233401597931115361271005456296390508591662327255671425663337598032905314245501424464946111809087645055964421800184614206083364698328323546250619810976037447688519376100910694570716486476364764327122851581728327745222736479383915559481441201537420146532964200553734368037376630539383829906697563564688510579561111274199152659727036075193418055387107287042866421517205541197011178741068277430685998886852736869239798768675352260217384848534284861692045812186066790872802296029751417971959837438531022560925833335711694356552402889770641400216003119451010964782257420868758569427094402823011312450738550948246683427594523075790020452175722405634322782424484655745326656356594978430546716854030643970445619236308221817459184952036581219729439731580153395460074154443823486004352861764818639919709968006935329380692303504542725545865792549624577713990591542487306591444002228486489957553841207042862665856177793686060869662340630594712109062268934313041768600270426576316820810531483444675970265558675093703770288884112497100530922842191667095807796248893925879347601011538244939009676362714284405120911725692176003869155184305454680793185615907488891105163034351174742892282329423406250011229813413881211338776649766613973247994059545165175986451162576297668876694137837114132878973254154224182269628640522581736019233829321012065659627007646734474590525747713353856062109156980569044905003947481940305613318393810302116870735139034460180358863701968822031175666050166248585792973843052058378333334855365879085499380051316707152262258230107174581580446854467172219524223457835924704399133832183785248126977497391577389858622162506500327834016040821664847441941510509033508665218302017903499204185479955591386749853148932556229524869589042890799972977037110381039687903794273652614637198619160738232812312013542833184457271986534633197378206558088674381588338980686370488346880607189597157667854254714620610333402108635597276018844291584889980120469457810892112067710170011820696439883863850762155629744183520176442288691852386496512868621041395750332455993684078038466651429172400279743195212625175483373154277511971708872968834252888697114857365284334237016737509029881471414244447514821823183784855723088199341790635774190448884833202633265243709981951025635139392181167889131878701513689738557542952203261066039812842463931618665060765355323567072080084956674085290919182411539706032439369301308814530664584569019113682861499427280852272259189109779692405956243605964073380871265460137990015088372957522660465775116354093446222724286684382467634451794491740279930749029403649451099633604857627453759249384310554178706254637393484661344811046010872708540689932346533254479628476497954851444921196267344718362556116261664028545934608480236690070000834282611828535362424924235265327185494840361718230536517101544996854177199005470693864232073080203899371295608852063565943647209588024321747116580820441690591229829231417539123014736086201049022891910275179845927220025045581838362856022802203108691633658211017664056179381568608657841673590388355358234160260931961409084565779979276068926915931161927794582865428454158745682762721167909723998080465948495494175968024156216135083264792087509122605777536480622328492599221890297523658203423135918103462789458822615374032682870757582991887701868654540176120864827327696229029838013068227799002163063980255781438180440230678446069440230853260197986602540912136199413143517924150618656137421901521430159871648758288446562302728599498298209196696359982984718606313540558289939737403232035449641952138684294677996654982817458210081228815185147319047743176663537250334352116976969936352226643919322575574157159173175083574275017492285886358270695938031619079627046883928904869249686274808305499821524355461392308934162044894478761266349578739619786307190390866029433421393701296942336732529547397443278411294775922455461297751250811422402677326930706613263512823158249358824663300266261570822093861815094315517193929854834654884186844095044599850798303217494940122459123077939190611488623208776826607062049326528732168361840107257321432153990862715762362347666518375824250254992684429590611908433489470321392614222058643279626591803482440164459952098405559135258684722511033470938059412953779614901133434865274814528479925755891905078427034949743043885693997773136423814670466878822602466407838824912990997635770224261411557780784788022298582805197246659363277516929132576040338018915179479951695066829046419534135003532104088041055962150234284896990851487084670867318394019616898041982427118687183132481748829843788247495760835167314837801187463522249180534392884551981790352011649882492150161442831199759063622084492008348621209931504189249350228769432403757064931511554206777194279561076198701978937255480480193393510197206131899358249735298194416201270669884686971622916910918236462734188433144783831477740312730560476186245459387399106305776424973616148101111146003358788518364276898342959163514606761356546467505635593131708403911438137807993265272687510737904813676311748562421649332257553069205237670163409755532522295408702901921291792383313430386366115026062111158936169869743450172020274817499204334682524988057929920959035313825164155426745772690265080120766580707009102469008562086746627471106180612303018520673649048804509171685526072499313977730121762833712743509406777406564028066705411536422467696178379655714298961687888393183815127552179199405413247045909221751465151320944834378506665395144438826288613781941722328978145823044047813045629586445712464465481139224005119192527189612924565045144536308976290594801235919110784622686178593474317966503139961331386884060459682649197803766065909229514117337584211287654984658662610453166010094051679029066373191362421974211189253925350122723803758829080859272518316339665995911814598846545345385388685630964153698035364552255943290024469138862883793154129144630524400051164653387932385585209494200409158282768328977941165600551417310281240346629763595344149447128516926202703275046154227312110151989448679880625914701117837146545336718697761525070332727991008086428644248790750921102717551178751309053199491999187517856421679705920996372368383872818874602038349258883990944624089485365036705738307500213606296973169702431199872712794224016832342895674387772795949154933664519612614364997432040378510260342703198094470671662981689789246427912836000000270612948973362171900880728299693578537675303458066232112326241032128382574555908537078888221159444347579328221771582413927648122393946050732812155461625305484306501223537860939162104215775700199192414332881777239570603450637313943525394780337864557723808513788914889941288534226338107771538608292538595463847155173541674049192247416508954380272655618947953714376077434714386745727650431287492066674262203875866049157504006838688764519576549470080194955875018649720508830846618235265308252685624879323376592631179495344308223464819823391023360884342929494181296173985660331588491176808885241508081124353769618951915102908763550597302823325885222676544015816951453419065192345962017960202815192753274409242526876311162173071242667905587480541601079855411119416774116617225761637384313191877788111985076482587713043040996179959885985283971744461148839293244003780287512459940196479076119705420801283845503344550158401246947456468170523189140187351920414295670765242741768117151100042429932259901155972220082120183908601269583851801242398446332760555221263535215357572611995410659467151738497240175168581713146643939034760166888822154460096761090069651298728779377989202690692830785731491358868286687904756995653637315507828812859831930696145285834760385860869282948033920160887782480798263372622879391512108534389924909553102199089457459928829627124819184420768495705650603501714252278981360899960964933887335843484938670085697766994126727492633846985281220980751578410286069919486795637253118181353212721417471609161008938785553600156943724173260772798652357118187255938418211327165365740417470203353376841666574488997479913013807240364652210844994988058662547924415143481492619298587758056712060355786422685578970620205643500714269397348361503925574771908851447605465839155740230214349426035181537949813760489430291059181072474001463065855207807005212331158693176534197547529261575007976352097936059244678522017408892344250145856694710307576022741175311815704025409111575391435122010852487162565823189172407790932356322080943296472117766019739876076090476463643379979562475947411949626944948250595086329206485497761317012071909162428932952234631842884131015917513051535528174093538272776351532931527846158606518251306677686226865496093938171005275723245628430532517355222509441114312497775316419097043289949094364414976644732646546210388267272193118773990142651351952329919951139621730396225534313967887248650087781963896915560142615580281478329827701027105082626456327862693829200299395034122487682264257476390078390031922338451401359976760949601366565529535906846005880417400722168723142432837445306106531939717588079146412714533262706248680704244117313486713479005601214944391482372627290320362381903283238313582333628728460114293371876295659168920771803283465538299814228004221490531524983825653943276102078745944817023966215455093629183421858609873905069918242767030371382623478779297465411258529645096043803694291705550955626126795306163653545220325665302974197549261501813224696856026721811618042970075295763116822805440160633617902948747602504600444199639158907129077813270418679599018481367464566445313381592785313858030561969802285341245165758641869598654402958755966661181722740561030213293205250859843035021939796563262239581902680414869929847453128473890002236385481992925190762300425013530798811853064399209739219668030725047315334340606073363348721018966565049647317057793680666029233137097157794240689799709221691246721878453276826106172997624018887322014287234843065265076088567372792504269414571160560702806173379324889835253189509441087090854213594606366567522155226332657031998344558505634802106398457373816126499420398119236782077241593924250678941523394459966315616941426986200190602938244292966071290920576962180761809137579023665378715651787209484750062240556934712196409119463611383093798032976518926238109633813947983673289426724893765556959372357759600895148761289635700739033553800980525222329852004271784043022271954256416419351579450082080839625951404921946982923726217412692113540860665334326333294474158549597728587503418389913983629378082962397729201766288881584671102195895672216185353484061886953890559731316557320850400155451348093267616579384751967469986337160335903376377742118520713941496531729745915811862675444514347134629326269251258111031886025197735706359582360798613540382489574348424631158945283421371999462725404121832456895169457572940102905407092791893406679223060846897595694769499397736379843743516292533611400845808463747259179060748859859263834083236928696756995162212838002888602719103682979626364236753477910252214324861227678864826162592063266391638052869747059209763860600840650774881695770669730529867104550068886278621932624465729917260263586464737312626059295694555725856449362854506380796435908794804777759756735430782920294821182834450963110781130168517162823579868527304126804090952846721517627505361514728116630053618384136553960440077981861117151436214618472860247372468047162354043334434491348206638740252775445967699351295324778897641930314804207474541511448493516301289833724953060753972284114924099916556855804249739010463509767435817314053612998736823079035597532448668082637602767687783416800685053967921595170452499014018836893890970258079922364952009633263740488272417828706370899606395072893638503834328189086089022011486811829015636536779934354739676965864880275804846989903381603135740944677424407072776649368876082219967752010482402486853656872918072054721431747154949539831941490225820396283796195406080962495727554827018200495756945260070471956179049242137415231319668700142584777356804700933982081878192779280918539685881819255959966523856272494516924755118634269122766630626749329937316906058925632487106015911580852436203848609459439110107525134770233229227783015560018324414298257152184634124218370758843766472146678068748994965002232042421395875275777985202227069658676496144385769299972891047475867064597585002619358260129964867382878589837102764531882231675784050480711767851122771787483449984141683151814834939807503618394598730631440423979780041204512755649906153929290424631701213159490262932040579162066974563273077457334152066001224127784313889409637600089807221835556799851531293897079653783734884603553198039156659627684426333860042134112411276580045185348969491283544754438683145968053271789289938770636170826684042801119701749248738443247703245634665469179975945976915187902626862161516382130792316717377013868585969086149802263311907292131279833634762467478205217812690028574824363674019035766338478968138314784859544563918930975598854482841074893952732218704221810695759500123837883551869494886666099546542554496629462778280821681874058519453096893999577294471061128384658046491871373912602593813739119614866748953676179303682462463383327142882830653325034633999032617769695968736082934685219798939475904274704318294971829111949090676377071734165845590798396127572657216178369193113427215906917381363018190723935398170097974914395825098124669251400504511469226048373628967429202207628838432315183460782206986578770948206126093032110033264885078950779417881499964836250925035711755739699390522240948833816175732644703646140900891425429798631435708905267714509297371062063420863044832373859101982225589900985821524746847161587321930888686672847960609160833163539813185565913881083828351814853429613144950864112031193027341597324621258855947250287061173994699097923923117858139825939144054102247956925937164566004596639324832537949018831758981637892319161258308753835510053082351688017420370736688856095190607082126922194877242704658379052496805592368263254145346783291917820050384079045634849973377320109298477628658021291079636651001809153988192481022461305631059128151966208311931902295869922433867990155640664127448773225578179851364995090556067650740335170165691484231580526076262342290250130335960362211430408892066832178009441216454689738115476585070547146351568576011997680847807980493830264135446720092188690151392630340934990525503180345423154020441617850529191989428600190821619022989499988367274627830529127093691133538010988347811186312359952482188397978099910183284302593153149139002510686490692561304733595717840862299963782410417799406589810805170511980365105465344749944424644719711572667559524358356897602730305664271612730749297830738946531110487125954146753387869673055957888797771711613032473463165317079970912982219682276458800132179146994097986145019195971624045571961266955837555013205610453746643064706448927748679880644770963514982971928584567350488501549393749966467967682701778084426183099701839767240974923479071130318224377541047754456989928055570855153218072578777133252105609628244587578681674768277005389310491860036908800652708330425598810530569884916159504195173916679643171654819081800937130536292446022052833165742711952720068260165357320593851834512600865117407966094573844288393944745708014361690043917965890100717174631286844380557534709224970086503539394852707623672769837337013494652853654880884913879430059399451811089824666430690488802396274383800690591681313834722440496058771766516498472218299059747813550450802966107002135042852909244781570227298035532115572168421198388364226231249728068933696494428151504563233241040311504897261893983694197094782626153277226896508538492937427450990198491290913525403010119550607473188707649326120377267122409241772302601381088108469001434404816028910417290440279794426157928960225380940698535324799845642505173288832671676489017190181679406774966875002979283835459946680402821194075370709978197316371109719947430983724200234772306066611817806910860456675217828946373076454128028946432584462670460522856373581123612139504965988697130525846351871738738626978755454595908612495576966894353993325061006956647085243462989673420280723692285409928895235582679654165376517338165327605896350352788056446830865138755053531365827508719724282428544166947719091654949429656897404431293430315084038471990409494889949368401324395455545424945809212710037515586214994769940485072003814688015182587195957092085974304732541715207038127640010447010316063831419961390402703819800149757959848754178884043405823396150597559959435311796489704178041282686245653976390313001461317171752542228689372699123986330757852142697744763176018489931274193977751692823226531862424251980960859036985675477709895023706725366969913662707858257249532359048635245331854346254634155483271852666923962805658952621769947387815863002423002733449972612158231472390544624035720309553465397274079707795699055759053552306429306863895702427961767754517522022410233299239921625063757125932758325590808161498202089984904227007247476587549591407082603408812022537805032337957598975033872588948994273399987227385161062103109075270767293782114401754172025453218848997756539573716738685760352947074682212199791875973796173715943795223990622668325159262656923900607846718360875493157561528333348915440303771224074359901407351651187534832218765903276124246142818411214675003026216422204971515986929746804197505058593040998071374225094078465404782296971150060193812086782477688369410083175693237325794279223409053967402718380610809026274773418438043867507162333287236338902910952453251446399943418227143497529047404594917097342878342486091977695045837998116430026489031982999934845239513193368178146441647740734377946044473727740600461837592233604750233705345396214805875704893144631750919198234810787137211228982361194601249601612983381464980687442275931673019150909786751927284628115046385754379862730935339332783983609632507606942543980087924950866330581394527860524385205980641747421934373980040046712316111296111752533599985537963194143223179350607435804870874424646835114290697350392963289548665389098256798341211764859901899423221236568392657554559767338143103016533956162278384568153224738030017487049304183621411145247441480500389512670991295527886335240535375767087905369434521444872459992705150091638019893562680028172675262025511410488312832707392911158080550566606061936361359151049312413846726670208517133339026368161074287791439502685076951759406468468903963288207106739128609943221651211217424131885412812775358517894946324392576321340923492477080165899586634725329179658296331585552383375056392451608189061780316222797627274284415686349838448828738533261087830858088966619682244865778294900114041111585171212737311633603357273988854343449737425746566128720495503543329717318951898117578213147541815431337261834399238508746114470746090192842650480543947017843568893986168304107391909802986630223915449883956067879905081631738346476969290778776502168705259048185146334281921801613960653765950928518044845693472034324510049790487000925713557080171706157908198374725596524062403247483695009050241993511755289787241786356864329675278891601146257349843228120404711997507145071958004915330533618231043835781776566499921166033947875826989962369852452863142398834354003849076390960846206502216837523657102642194628086054260026970103673165208373771071812536272133971980416600791536769439614455754455477379625570488591452127654047556237811413184199352603118996540445338621941534127426150888785911696147117546634331717547417843892746176004487787664751671083208179571434503600712189884846611165615433274266006809211635097173340355096188348177233127252936506936381158999652788238383527977144565436376288214502590578941122580275766806269756899902791570010898811699202918022833210667110878386641439506779436859269665736171114909009080997380036361213472146455782214529512032869583095133763227960514115313719918055128143741226916613073399278117088805053735949495928945115470678709440603408451110399745360353236549841355397041004242681505560146410202451227585684029371694212350733389302876681535290968032158743492194639921992513827513600726250273446832097727440827075680007526346342611107490172850607686413730890609971142428103362095582276442254385545644002673372130683367789654877477597869827390026399798206854147930323658878909878530141951901678712038288672609999774845920178416027604002356905327621032172353470166972129938208111262211940147001310289762756460021427162292687964278291368064968152789576703116554105876735060427248526132389860269499368019176397142650556894838420693782857159955327207167957439940431039312443173368839271139719640043362369898311728838571879680926817101799363592500202272506825011875397841078881519361067625441105522083034454509827889166691264130364738876342650496283664381135147280227304451543031991192044976383757825175833147957823570692301061839326257185046498934904480936207302031652434579474133915195337701136628337946504744753912894287692366745214350170501666271829509568779267531686366975195878451893941981525446511361786541367119186776718358419241299204005722666327930395034666767408429429653249754852442213718187513761678275931757200381071681638134784150008015605118039117452041194235550130005727039289691055035012651897722251264035136819466232812115929457547987682981579228220425789741197519835929194560451244702501361987673161725925353436202831548195559262247712853948197460281043282711968632403010181645472803637028522323568915211983807967343713178486317196389730675613597450062190910582254270093990532965356774343164876601109563708421851839226914348076646142175215970319270963348699688130943494905218150912548230191827792681630976912637874848056718485967438456085025071545354119712497509640517444320323813165531300838089981003424731417250115217655178434236033367078502632527287115152567773121924444043617476368823188253098489764121756690443398649481271860764809048496951382833897500708184521118335250925133717387468833786641631815633602689549631947418690552769129833558888938772596324234446244948784047028906806800774147197945045405664493082486761266279986029781178316521435858984388998473797683261940407021319932688518512964655719047568829130975217936134215607806750573436255801155258630622496147985458576767685755275653328163225360188657005858095514213428442962005242414089392615384074961863231940140473685126019976858962111335811380084079497548930701346088137907995102832325729453273533453631275152599408935849054717147238068100824250521636394780762220730137686860580784836214281726404960366955923202619000204862351478060063812963235670051496511279247524115365243030826119877084391691184218248420178398914805460171140005816432143824463912396489321052066931524283774263228686220802582105509222753254051643025621852393382135336885454335636473952911422224751064390758660034373180350967364207781773027148292783015203936884568068408028681740403845138049453347233694683084680598615352239413505273815630444588840045736218955070401993762646063255802339406812892674945244870186189945230182231247859112815216903641192835411861998649260555320869951412641868578543947408751536179797368501743616049630025938672886809314322590725527547282741539631842402252029935813140328972870355807479232866643692612150407612077114282998039426392070069928099943457580090929482071148802039632585229071923431376018939144879860610181238892680997399964842449426396440588059660106748503712577300936419843879313214539461786377932083830576211901375441519824598798742193069283182617838025101508637100035025841427092452853471715918360041316252539481980061986914802042865386227809846055809719277865972877808921698716743317209420075731866544903030416515221667240194604094957302095663201838952200625731695804591861052877863001540910797286426467239428426208091864376888159983900252770571281719956861096286628384886886041525327589439705616813377534879703562165717767041651245244980747852606704811236578339196166132763331182089846991306118821508021569598720970382993749178676565971319561032899705250080614935041671953308629710984488883165090144201174387387264597898781163619440926897097812129357210052735921808086240734513320424634561749427237523115760565826479723432202129712372451358116413152256020168624470493579683571815733576233649809057347300607259803784504409852102363059828262193225104386047958725015764197320329359528521177030653891997514942420472234236728256728175265462799041164384444511469142173006326963003388922400941071435712509971467880521831636063997849761915961796459471359616771561821283829217437180849447190572065140037462926954880295428963262388305492300181594553569807450914152884770712671245254847704403056032345884381090071043596490045951270940656572489256688878384703020945776126752893959202938710956133024751207529046031156955192637975713162865509111501631539038139398887939038332792900702680379683858258626399397796669489912403866721408951429999721225218372479970762718547102368074988114566262227916938900485496779982498128896145713499289598726141204954564596300585111783914040618157274359634030514624366795484856776131252670785237487516700994554140390008472158894242232505618523021233629160189510192776564363640883784750102616776142129131903816839684170788576895021956032903245930959706351752005569523310514473228792357829688142435185128354772240083384950666394165342099153018458706012449074743970012467005154014312103770046560366937414038590891488417595602523713953271333120267276648260814842789503646880400302112517142320123831941091923348666358251186511865051098554053626833779447450893048244171198236362047023575246952769158998834242083185027431645594460374758023878857826122473454407049310873158467523284127878117744851091712341359128352321546730042041491621471488950166694877808120129100454391483115213511591701088445182624045440546546377153677317616388810940964643213210668442950410157976833302904114564105808929788851326530497480716312375403947407315140180024210321080842948951957347305086470765770902557725316577557546691041299605243519517181793934550299337125625085333407030184886109528394871734197038752738756371451024320311687160240545467545531925318820668396737351712041291708964806527358116656949907658988868346375111925002740833896405510344645861582445099375496050651965639777486705871986819792111256424676570917321979109721057613692149613650185029266309345275597243456281643783026292412410473438448389891710842450329068186948597356176807701788250122595795532791022117136211068244163492741792985459579597658941401922497645142214801314650764340768702298009767913499603745502299103190710797219419189145156994677974463337356021432827446331856635364682854166973485039642026116981294892509769636733023627835082712715191481838621473533638680230772402509458429140710273856513385386816575932158131487121160008029213222744521048658869300595855600401403267492114569336966550771699790172745758358780435880324498838528161295667853425752650761920858636833461496831521169044966902234567967857092032381104376356911176955642559767159982559782843347777529490263964190269954563800258006266165330858476848914419092151074551762282672443920335120493691188713050491513257087339021917527773789728747813487280606119272574875130389330374591453504548833841285999215837824802342688894946062366235152805356695723335997379301949511288058731850681858513211551490516663154174087148763627352872501348725733845005501063981961307324737775306691442290282705750511855510295889636261129045415434354526945983669026737932738639919302024057758689461071661419518325337055501943276933876263454926564260546772814037958770306794290750572302324273350566059097133438375928270271241245566511887442165117546976317384924084791737905409733938973855907114970459786340880935595742653342751976813031899080772173203170875180057617444123005277618678412059776719725861523993907603785529118434247495359000490218865932969191793197073559064540510774927422884710716525878609108168474842745406560539729009920180442806951740242374778458725416751101367405008063848259516727753636125616803264245443679302960540137249863146033158560278179096715334572977501489992241460663621139889083527093029388882426500892443417858225550840463902071849542015776517777254029123825785453357355569614569133206756995692577581188649403990219341957951247554221912348426421069088485461501808886333513761110697572555601336593003127090550632370398085016126530830877994823990395841713259635690111973681692883996639321505862370374319085323622764060686380909613232503628868126868747446907242122158184680133460174824579760412115579482225224504398386498743782165198560406663442790027273851632877666823597491550995608169561126894287232030190274448099610455421751809872982497643018235993412546757401297814161742743654499091411395518028529749072200815863852594478679317177369218873229662321423013747559412878457139382842483848237817277580495809464619035773970639072798308109467524005685126771828233925626663355836211562394681863698951398131539415267593978937068527594430283510935069823832971240240973938621516523064112557379082569463585807109912545813061845711488536330544741611650963146137157035488535400666815170652879271404420383634722929475371739222054912219696459547647272928677733014604734472259091414915248932147958557649237086656718681904182420871794708624592477035961018535034766437710868724323860418329089943862540631263848045540531161910028242582339798830780691611589428719271939250247764541546407630795759707170165398669579203740406111209035241045357957495542725697021151700523833384413278616453981677760865674790291709135766909306034695696156841207903171791506261854098164207886775967759006000837815473248948559261257946753191501555640197977591132238522332867423779947089696382211908291874388887802381021291018895470414412570336376471850530251812880140484769667177663112409114166739744339687266758367736247228880775902657573648479153982326577696701352216716024562929101064214697176057441565927461799077415568173784809366406435033529712635019360042867804918617959702158008916066714317694599904635688725555478057995365073934789410658326808395442203741119949756394564852259327884021805730016498699353752399584860101159594977273464424028450251342433504533135031423176817678800741732227384555140550228781795218021113942422471840812125806369171735985025384156775400476558270257284151026269099232155707961829755751200511712678183772189518909792108187205167593503677911693797011701531841023222909069011629481292023069456541013375382248515421576932839042914795726656949128534890657576124084840923626672364854848085989385786053511556786735625681657834425147860798911341728491152879165749694810799412225421732739269230482781880393420752578046683542791800407378046426751371897101348725474534662072053341824138148925010516102466112743890926386216190697907743312393258655279728722613789333794275458809810480095706160329557728067073661756990428870167927484011884375315818626168612227170135684152947455265490106800318899007532445566362923356020971147354383243455334507493762977864186432935065700332993855477876368008411232292184598697680342300513635888751481266269592495725221688678107224181919253350526973564726035575121619458297685360080782219451432501589466961113284721333432380297639143036740944191255133219970479459576971879413086167126665390156106881235642677865554525921913559578356813865287200590759128123657661289293000284024988022806192510191976826316914993641519942138382359112617335489364021568300116162983275695077905898283224801723621544633583826799790714395204791697435194516006098022294869718267315328248048090078166379083048647240973665748077149517813675786892603843765662040081430400936144029532722391405544062753929747168038761119434311787701468438358406365105408147067697686478804095308165720423436058483080594594301587550185374552415248895879615156683750379505316800538335148919963141776486482337817825525920845575116798724519326633675722058536594309480058178028876345053701643407902692498214129913722308067918391621057359205494729609685730539473307892481066401378054514877678081267151153057867531723826757964357498930621195470788002339110299225570181961835557194614766962141142172631878867361016930799015254321914172016548636086422067393307619179875936972341976597611928528505099541324584269561725908172551207245732744347658209800290835795163506665626403548237224825810750385449175379451800448640068516168476007429569084295556394814019952899655025449148098015738726259755250100727177874812444269921974288183254744446775556460960573542247673988227977652965151171883403177859502771575394226793119293695211438515196094879613925854401001270250020688968590290663576341991552247080822778203736651103760181848745500397934718365632316107402394437630042614751172190736185359459329247789157959590788899699811403009193924034985062365231778049466305327775327783914347951306794518371450075415286751515261856607280305940824293330316411932461230088391304353755631969724001689189049584516406250228186736887766735251537314841192970464663920055216553382279858596433691007985443800934393613189351167135212024096077742790046389542927909794923975321062607163730781902816687487825785704509285853425734572702847909255243907973945563721778039080667603344008716522739538516389606907267473167916382817749306834176022181740255781710798017872929539987258926136554590113955197524913877783589404730553320384649873575512686995945332630253725670959290945245516046845654231251727446449139455400105435748617943887062842749626881542626991804705943977395753904572521856287412220230696439017363662852980592953760099129357424477784209621394604743124687114927651784437190282824957822135560753824929510788080066027661417626640133404068400944795148905833382770321390077812254410804753960315947657831172017379661557588119450253231350981581960618902693014781870876821409229767623479138532734810657417037901410170050150662580019482947744044498688339022060425849442887559217568433611853323091954814737997277920966324674650640694738616582700299857258765461897318152516897234101788744328722609513455278459539347856245269119764813626270330424489591106409974023997236270489040889253009044875440091749977108656499910900871688132743118723390322407049992848340459463019841763768747682894417586521409063230791207633559992226303283493324438284009595381701711511701290231555590933280537853042811286456669551134972403727225642193101183756855179526643384709973759416622056335752731002171857109838333968423331725662948346894984165414573474642339524888371977042489392844087615883509604881324061435829282458679068368863413352897426469427828579828710841507125210521747045748497310751554157456243322217392583718015313687632527851045030993309877016217329088886894919379762876707474225434608864015605173779291213016172470000846610745640669638712237840494202559612919021642954791387782379943895081568426122685316934421848340404560987970608367634998124593365754949989507150202079545481074588151757442878676510918239657125094491862527966095027571708675118533007353190090875281225104195595691109196407087714874194163950517464458011025687475161556835538540727086271492716589943272850317975993210223526843338871080922904739670566685065880139061417541024018259840876858720498750649381016158227225151085956434571971825356911563194588013650272382317680283508710586831838890470438487816787439815983569153208417238601271747205239024442153349873072621884323014045215479526617248306508749068749680646180155637409771879164921314762012712810686415863367386778152965703146687356805523892936395949200331192229090043206622202114179124102672933104663122132316209065465443843769366576642955878660195556482133130874591387222309145158336821813011708315994941380523451755284134982446922662858920771568617436587912892398094819256679305944470256263992496029141082403286063470535480775394250124098510399384048016963610121168591520598810412802877903003126363138902812912010579351958164449439798190843754263999260755841833693889549171983467025885476869403618994806275895063385084281190516752579712318433696205633546327031197289025246736774165860612191776274365617621607210793524883316340250063710763371827715215842611830216039647774962024859521853009453975152336240616748379621141855588574194360258390519775675238015576988837638336690496264527062634504967133085892766557511814918752709017809654112093276924410949700225228860719746547301050074702215565792259793871657175374249180240781813266135123765429988869974997646589088722692687410991152484538780710965000278763495277333922714310892122035077403360984117929107307405869240575546989424912961782450357021543633017705332782098792624695357365576477888838751406871420478409242878700006592107440332616649516999946810103334424242625699099527517429379100527685931424501143739787540804209115370431056584871390701002298200161402699787896356139820043205551928077749773791782088862524128303371027541022204063316494555875065738644941283826351392862950706060546015185350112409195266482326420025414822789576809974288910019086365175276651625971675948339976305953233034652202377424245086833866614038200542390057991372300386759716817563556676161291790873175722537567347743726949773930360310055842639912992821106958646652707000701403474743233176209535042474989588470744770198375200875089074269208864682907169046337828027190812914448552252982514103217929448581573128428181118896198411536059350840144347848697924059987544226025131133969209586709546651067771432273542782782357638912152837045442376116041481449355817825649288419226753265412794066000092834788011153924140796946655129964558512758857538503697584240234187475832954656431128903985263257477943720242034759098087196077561185912752173695250368587155782795376805812548704845517579554451117823765664846993908565385078762158206357679227602671099457398385093248062497268329765479849817126236160029370379051565586294919744810421894285841951151851002765326756614672954808882229093861588396994818777473019663726746807925408643237743727472833471839725372628102264307635155377453979688366641879312667002426935127565467335643915420710058611613391441756505658819411186583569088061677652039085108966266565657252826803932191220637999723027768983557970810521866914013649326934109628610506472420804199335761898478588640847340604461348090946464624983812860030841066309319293771043701437626635977758639076089845014547096837244484662282557460758707717167184789575126096214377208637420242896673867891784115038045973983344399875641859742294727351722371711017289637409068981993120443104736652991129973839803189716443417692700962894513598944009089486560091239717178183504995920441697113920291864767591054751252348338618889424990140862294075451101525942667399068427860823582800688214700025756210123426046911919963258304903477647679824911438986150978383742068722398935748548091041511343582796184656598394666894388102362367632658233450798580686163489046239823185687657539738854772894797444553673217767250063683937844143033560247041607362881646449903064478765209997522988092504247646353071053315883297855519377037496981278565749358604318824447266559005655751207798771014647440028570770960013413371065173117874305598397350382092330225289653581680456025852114888929252589874473225501741230577955222067207563198479655141134183080104776383781845720206207577880966019039567437523392622843850871204318088441761060941917402473527184449687632551174368339439473701502265975574001269112877883452532826537457883416691018944945698779367082547442604716348879131719832172879396429648567939746127805931722646509418131426845212112790204060810988848073737995147380474724753960824035682732379951721572713328809994287457320955172248843237784544592588821161675646367673573296756981670656024993939420801919236483014306320303982950678016223641950916446316771858066422050528696383372980398080415656428733292160684472905839196938821449959952107864728640759656866760596469979373826435138862488509082389990353174828714520906593689762812625694843460523034022454246543866742300828196319441099923434291006314885603205954738373073035289255483026264836066802985930942964377062052843058689353129927455521664673539894474784292656196846294556145739990244480655718033661937086942573803612925303363511494625607301454785307071523809617385727839652415135792499239137456036828154887236568653628841621115855571969431818453500963752432152677072985618174050352675690033482139985731287586420392182062565331803268117003377684200793135435604044871877000583235405785552499036317553751377851542818762851260954827679254494907754507171543330011903293229687686992436658215417247331409897733609003628230113272735853449003450367255459740607182638801102891520030211570405917313922589958892281165010817817849063752439887172075732599228301406811661556297941959902549497206771645293178885226244947767928809829997813024736330754352149066564876836220562038744606867693093777562736938244475251949960985833740977445086592380348794250601550045107293605353395757904899602779674320800043110679365536738900041495508349120393313376840507420527923817157267365289915615562580762213908525846426520773583956852532866662319931319593861440764545978656342814177890845781553756250083471254427790563844725777395016920647646625000273290788579871526623939657769727422032588095318431716626528054166259799264710588228092618966494717258758666291778822323868882623353551060785099769533888236445067945695941562172896887345233678148560425803550288045091185985532142930134892002650065704585718182651175228489111388865336947959650022712866516426560624613604794973109999463077438708658726255271796917471350004387395515271489884203188972679534620470458765954616519444572161976285134275738970004783213424416456134144969386414935753511511492886998186840384282853785703187373002652891556100232431567490232903361357304278255144913115668633113118560944878434180374199492764151694994619497688664870012227712583433321454660664499584273352707663207073851802618150010329977193326357707822239871019672292483553764678153723610661877828651330996026457509412667007901243317726960924837456746615689751088012969533082655236058377388786102322689185335228188623375325124966194777107107010922283265591424838640092247819538584028656952836674919796297673213498398963401989814133147112690984854055213407681378873965216402262704546441063216450576145320786385222351578759794872299200350696724799953996008219549513002773551339991914309514582009441630668839421177201043895532437316278764760704706402748914760661507586658177865221297715544796023968973463232774628110576406384460668583131208262865962673207104083513708355264736977268591914340467192656608747620296353790463703357766369850916227789454829309799046537056973548103341945219247414322329416695473950913723985916274992146960072488094866742907594926698919455783967593034131206582336614939449039059251498811417036250459452111131938967706235605751907136922755318429056904467921522638585511083021906211974506477095668020996761856956896799397175005699106506073501180008364254537914642922699105471648462429420433182382136919852940594384700045278155961856088341692665728620043888814731754064559894328560837534000934213347050598991582208491029977525251670436727252561868307659501997225278293671231791490783975370147232546103178084229345839627043798114804548339978787383282060166518811506639027071018348188262173656136985761002594651310828833531399146336902569525128117876660952728249227582640813843503403000200482694475824377203633631535244469371793118252623553332106262142055051430644962946919662168122070536386553428952966103538049965611494979296927761853563519461623226232749869799038767208552897435316919010143279560037947302731661013809323524800009575246942065639559103405737840942928909711041126218904224253946638152308219785291327245937927926908380593422625795323000045798898166560470884314989665326571371112052953401597859287383754934522687159389610820933390975330812892524272931184037445105045883629044302978954516964980769659989037832072967133088318065527088238068878931732768816220394076630633880426183434783450685179506006075505693341412558796542479382600294415134187952978186732372629504999420828789076858767618012662395457749012029775332339758647853462219753689990457940895894823923633452229023675216033800993709724975956351455990212927695203270547938368684170916240291835034358584671414915567953615216387758148876605149996888437840807594713063488623001593583621365662476369334051940795093219962712448668672476362888806267320620578437136287321064038537050367596099865684949199481223358374777518760535029442447797326118246984004455731996665557723300444647640629999349755142424266772221084303780590391975596314114723851391408065918169785960888426562803593567922957585758576646602874110204157996201265018781566819118310745795310724988684301219534333581130833021233430872284451641177646596769488671182095473102191573614173657263269784515636690417252660946325567339746080362241638157971915018321890114835278769425001315079700631275976856938698898442119573035973474797125796276038819451005935931572258672376103778429801404804311096699546849699014210277846261788267032618197265965561328651342219050298163308091416024341681984778209235217981897325357059818062470876342414725284393597778352399299257243542889474041312499807279796474300648758604133978025376464468460133314724786883106343907954309139406559853437227678777737574608347671431379942878082089681669129795649759958112991949999925590821112231671281743592861704426454151985381161067576903571151751338790046217621407148845982191549850755551748429003144231749245311334238500651871394160552879632305580522185942768010886947652795015450012559195530380344914241404016071932160579573789014008937461564262384977729981322322863265544120698409290795335866763824378774971729713635552905751848639685384660141942720430584461314801816068800603356885190210032338028998238559603887268000726223588539546953214707986009507402650082779995172888917074751368661683225714078556417451025276570571916958892822622874295318905563721822192082778961977288487010992809543344157092952613330920717944272004129793250557081416488894013124143207382957446257740307961499937599893042553249003289491045530182875370367617778103722054106855655238678374475869641707637936993555041903386731832229386527895977254122378151551841629840387970204522666888347810482711172983550296693983815060979396542077101142604757264797177778185364845994761537566743088454830722251566204951716214242362182939907018472741664128235966468474409089708523557342964308420597001250668298499937248617131676733264485350782463015672644598097222017221172346471705514181811031978298332897708748169428200153415581185490500517948204430384887668184254305836701469256134006155263373459195005616413364672441900181475069137135165461337184496147189303320546567867505774148991790417905095460935692986387743444652549441180107035181985300292716653672746131611564141867111218957891097549903999778764051843755435426492530725520085330756773606111728505351203217955023221643779707375109725920849735514062077075570557923426074773734353764696637304084922142260646377715047291872016033202892762631200691099408261725230302187663383985606732916319463980487618855197433547215502347456590834657115036810874781277945307601371103990230822532368337462674095203518300994728728165771895253413293592670873595663695644651766068120039667291896717772991226364988913912943049459729912025724991152393564350316101882207584002097020719049852937107543614959067876257157206529155668916046635125994224155323243153288798000924669500034193007858695024931736951750488977397560690153292302017879855475068753133463005486524887701550777533877700037455041405490219879544710637798808332188101189340551291106441717472895764911236883207571190255447666767821011563206884786169351321721615615818570442132570838187765532230182735149156894305639646989207487620534772523179757376683737530757572275187528631961329082017050427827970407560117117605126595207993296783232753730628324399290589165783734972102828085457681154420356337318202179565748090299004839472011984326454849856093835617032740134193920904452660052047316501943588096840204468974991306635482623063077136612212294052917819526769048381327854400689371276768673708418875584335799619550419896744226233177621734532058741426134199767258698155484407753328148521830279742003706109612207431210717503334402488128787779363872769081208654226794241137845820975712776716461809411691444471740979133809513836140314529435733975688249206525888958782860575141650538460717368715280995259096062195531137499495776787287974971088857303051317336254336591986907178307525192572061281244844412337998136297211092145530199473801111513789726849956356290708988160780277236522780978730026767961576342524179716589071038686604334344938212031843181021434259893581783214326684832065236570320095334799860462163191644903567445914764720816291052296417863753432353333370399676524211274646214247972584025637924407343513941286932578023111666056086108140897988875306422559425266845995835055693697618445308666021202700368997575370438238738356889474320697870062912548534039620970168672739880344367777135515800477174225199927771970394515554346334049207564864498843384769405111172915943065686469091341391995850761206015163930388731131123663744490027216492215310109346154050212876878224670150513346671391192654797255383016660019765782394755416694167006538355582440770773169553493909259722991373603253282612260376062681663511408197755319766173231242197645398605603142031461614117323674905014410309572651715857237219572750582553928036085831897448443263468934409007620718305138073342325616234941169265413437723285192252088388202287816019786958228850030140337102627223590682381734328837604200155676434745673265457262381730152428821132539952962188311289880284961374837842289007417201146108023539764893108338095736512448851308843049843139440275782602958190160533375192981256147673545286527531991571932549300888605718981992111287663261774961469417788370424674797375941375050889268621989372964191459154380040231928106027847234351334675010744641205018916135037617620201214983614938928688897552794482834528605849299244418046561696427009977870636800154550772310746770297803358146076026883618568179166277775955485733665712302401353279705061912129934134620243420298802673755767131535382576534380566116644656222701652671594320197778434336276546750328018096533994911865499339824519406347397470846949621643036673546349931998792607105116483702405865504392260118435038110766050840860772012912309048480310518442736798552307938445692482280670852484759726393595588262542446362477069101346423740007978678187619694431409069119315938491272536870287184546161562321356080223676694979040110246421181011886754043086522013364797679703833523816588881593905833654373332905094081533895198744771508354084732402217005126568266545158908069153439247077520538511876286318962702045013303119633160209898166480778384829090082291131413669461957743706566267020338594980491406462002376875075885495557650614703893645126251269582938297713435582920376184116270950270383239964184091573957087722151438070256809923166718462092178493881022011899094217601014822238286899576618653995622854436119284019080013366352063096788183654815488055529566957216056554126498344795748583621726073263270534801111379288075063607469338852295303844912663394217975326889793348952320516695204574250048699143432019023912722202404201567700095659183083833973254532989917720653695886751730075774920203046220417287651821490906884004331623505660866505095407654915824032930774784317416478650621952544319087320425807069588901102932984200578389760013536545233562414637055070722829452941737114123018654938161998798445233326804490340821331413173361186412629488067840510609345855352266934785783249587325593532588247150972399280557161817663396778837373816924102130394696038018089780684222860009372947944211541756427713666542709651742991327115898492760614429933225079969640859351616263735216765674373745026498227407177172610329145596257619169262301276474426469725938081288780472492246724459042378347538898542639122554853455364808603705641829322078444672287042673238848067396239531279597640841275751963674405337099818346982427450636528647806283569756099148957986171456576568841372191074469827424426044245436393669901563650214548572149047167346815328231910117830146074549397490115883596965856846802287404452087164341398019527071638776288934808967705912138662308062215362436148769153045312033812420516938780348019391667321568908752689036963839240426621483509179534473980187226511329457614420920711855741807905019349977873209961784392759437466745814977508244630978101855086995103949310585371842109800541230488239193676500394214812324999951787651522833530520441539214826271425595834976762725685295074347467537868035565001383034232648207293466368551198812951245231368174883942691390275656220169767763807890831824108430322044939575456770178505834395953955384583680579085203779300828504891106378828351893939992294873337821435517315026853222081817460804213335844866464289409088015563847885970218169418722405863311061240868297938628682621225966896232754088125219484718120078645863093002315895232909262922283632685379943994975130546890424072261477045966879375507784239725351548045943699840625188563753110008905788081856227206809382294461813059328615956724382848517101104127625847647975717176874971787406145340695829607766091687547210696582990787985254485086640902007856786213635466598152920485620697854448468412363397300538810267141949774954084145788045895475000436183513234349869050292775274277065841974941624193196393951797880571379320534668172797273678011449881248496782579441995956503337038968045117773582233276222379797644764094626690754627520993853701051427324305703231266307004084279035249265798181557431111398646865263930751666533108677670319177123721909277534336756334441221637473212143337003846863061940335399021652063822715775728021592685038221134641611442339003353174430983938471726181345267326642841643904431045389182969696309043006942349932722700898493654934835398850479968958962485521058455127023136651453202004609245609117951950234393811921266648550970374664274432549005539886923409845270481882680777922937267284413067252484544106205449369166923202168992728695257652752680307134275238835400791244898176112830468372441814322679536775441697360697850827499097672293382202491711550486769508337395327562325926878438084393924937110795612670972609179533733974725763923322401905304624922092994250747333548674113945600483685122728560615584306966136529287195039583057026929471877517782738749015475540958867395316203289095390874870583229916960948655736205049036829586144661291371843417172664229666326046400160557002329089691195003599892334706683691235712695647029000068985807605228813129434647367965314295028455036429593431524943020285605887733596900773321788602448340649389595154382567049426547433964922635535705590178766716518357169915105376615193281233625517634606993069449663714165759847609290301813553547614194434173300961905957921978993461331887072299081917988771857952518708108330021949273498070954250782949136521777591941453069472820884567039938891266832482457570587949607517341709214327771679826692517931991584818195991284455342077322707682701527715468733332299426314859186833738058011821183624182869080446771578395753563647178485637833866040574143527566439174923418989719763917175687717236051362546129171233941863946877509450402929181436375791568436241066446895455610097457120995154399207343212310790035961462765218253754569502091049171550990292103329066471821973854307642578187062833899109846456515378928076859764015839422686487340015303911272901448659194104820993228381164577033677772502228131516213843634757247919105902467086669941789123091802852759463724596472809926960680350216386437654516721298476001694598558015526697941360718264334389807391624734776904093386836628587706687081943950533794303750388682812770159541391446098041351935624256482067966546327310846514052970849434638564053824670643248547326608075695669998252108114873460852365281586873082720404198352390791346618186456020700928397940928861131966597205908210426952793371357499829712495265233356712950795965400238069701273082246852035009056950773017823981249098260642407626827010349180407791039149038171636412690423832603255863306192763923835375688956960557885640479262514909561371479656183573814253051984188746300650522444211135957892331288578933080942635578676344634506102135884666598157224810783377076811170613720727429186385797120641537030136065944850932407927850908953074640593182165738749487815267293493018455127139028346095218738886711058915770796630947587779554444244309225576350247398750199994771896464250433957414740372504967107649717182063179654384288472113427377832142837748908405959523325599515281742153963550978383636785414215170959999837405960952081722020728097053228553845554632034668543997520678177325987107463489746101727067081653956303436379393560669211964224653926549451931607676633843762763847551712850389620510826773262615515866200069602498129215952960395465080424992434177466336830940005412556713907798383824827159030062375964552658352544854018964778120475531943711063482034475615018168902093784769534438578498340904430108113533365126315880165712662387551777432603638422586412314650055809598421714884583349744090811238175842161887463695024598511345187849625324276979185621846077255374951629628925432085034966293613175837691325259194039223395219588004713435680152026903646614972046472119111382008251277141680404841730789539472378003337030619738941466099599129234308727440295581781252144417575327338974637436637262203482481597491356499742394429650473849856070122926760832643708419213587700721742521201188791747064523631131568013698264804924693174381715018304874449218920231290704872876312111964111351129314555274280491294999994186832803517284197219572912009891196158723986347234601456192808498967947482332861225686757256036532879851374677765791065885087017184691134277657829740903473892478198394339057003536529872403687114067338732083164170024447805263338148610223548091785980597237199354002002174596886665542612544576201813987438401498036497987634360509443564616866185366983744827773686082267403350677223696503800717677360618871787834144204625979424889704938135155824889969265597271226694899555878995029865204960604973674728345631469377364879643410068844954576257595303783245044117394618157892128578811298894098585526354305465622496470647688552698425484142492964344795807968433980131598513548148641503746287376596241635058037538473849749332642709542402774016964311992000252825005215115245131534413563366303063412248025639709890575907849126381522770973297144118045395914139860828829377895474712090027470504877599610549767016815489495235825657080909336020080618402345271034930803540093446092869861653716893776982053974884544797511339959750808206520158855210918465538907580290543438663762771929723055913736350238408141025690646280046994724210932197624029314191314542793655316397114371420178732976980157213715421825326487114687747949776577959277412451316832265104035112769443254307218544279513957538359862643351293489316229487847845683288790140503002235730832105638143229360763407392546412768728961260236699779159118943467931357726915693601702573837926978874782193310864392826862946168789730913744326736511631269743496410904869089589041068921545346854219558844380768969548464801820327874521191241781426564285837593473505296407414626147648784600123478587822504054596208508895285568327112542912016006952667155980990630112097085091204742671133334763588601976027430240834222801480302164521876600001780510033072271949876535150395997529713544658447198602392442196409961394193540817495214854592839489101832819983225110698778031018529454791397920075738887347817153927952778333717471302049077512137278839863836823710375613039610566157756424635508131035310152674511752867325588463122140979921362208689576804873456221394009134241397178691322078875331228221777968937378955010032287335111127192983556902593896509970855684502660221149521878719262299568960451805996926827860475839485820714694680058520033675588649842338577234290241378239209125002264648231908771512096091811076294221841974617752172153479587567103393801741964300481359190019693720377284796583909065996571774982427970464982197505013106698676978271292148217335945209276606414194991294485350696838796789448102685446241296027277997716216157604363936226324891165573729510384689678893921775412363323309107807395791571715448816232794621564643927603161792736093468142735283369873277907173008848984387268057701730545601457251418170222068418898807409055954236967309216852003823911840568712877972649959660147075223852749022742218403362476109616168899379459694827267240143253015687276693803405047931934998557929456840310551391065866134464417698997075428574097515070798533999080217655352003605142744160082734460725485472344522757521771237491295202481199602064424889894259188996175801391165862020939174131039241955054272512660821242183275155356179867256579805461873763588643198431518459807017554730602524877003142863016482015736098699023568900695924100815289142576541623537252745337383003716630847289266258440502665455021837325493310448761010215409701818354000372005887549950237771658911562528726575587702237694174371307874409904239448065927788991914663621999404829828106531325224233581213348425074305171945947801435732024617581410277212312959437805359363569837897031441055958575769145853878160001267647825999147343429573889276465169694593986967529830216089286873251811043628753344175737116874239835967506352473151150626841944836358659424238221015147318384064510153025369513261677840324767766568882251626426291583189403959748288951636698222035553490698470564694610633345185625226658707465676140622050516535080679149799417724632729677070568351958513510940137658005835547795473466961579083464758368404582867751587550021109198862331419161541379534752328349512232397478047224122051814962424524971144544242541032492533604803643047566890160727007659277246137759743027043838470263374526655224747557019048488978012925165912264072401349682995472122365916804023433676676989053960477882470151059308884224676357944433778862203917411564210559772432238554389071508001330462693225998880836265842524643112577778016205488296634222146884881963381215261265052403129686462730859177616548209372868532672310153538304030075108135863921612084479500395471783361329036848969572979150072057503845395653556094939836133872269432389460305561894709285137080320191613471791325798585913256777727763211858976691185681226857207692604385829315164168977614619758304569340313784721455376829422393581593034571600979469638112571529002004519195505037024679166617557902712798687085971189160345236012586470572817449449927189425752836152148268037027891564809962372179424983186705347775344765287402518630212992913513261246433717611214550973605908185022618137790619054383931178778566386610223828880352377220076435459380742506046629467109800214087261218461627590800893858083822302375425922016703901764100563489081149277080866013709750002855882090730230743254913594541136050919847738986795191809034717430777346050080509727940862368742618680672510354407333537086029591625645837510727858008992166368518946909718162881691744854902838346494826447033239099534209998540636565141470409809724087663988141358823503523279542204543555687718065441737578200299962075161650690752809128348795152587667347843066168389368985177287229487971336090402687017533525174639669713355419240660365970190804267253917501035930442472710383404558061298705706873473094478169673376920289721241763538594931023688386610644959124248883887724343775627427379116991462516979405317917363677410795862712512727917306720636905797832188873051648337644076257342472905580205266815493674389292853297496642860099259127443939382955768232691911853778404212229998367884883873232574066952753465344817402184495008087307009998607995864893185642477449497129144243104600516358348011977600900415053908625240109583351873004558000336089538089183608763586271697779683384398121005744208587014606811876677535441298121391408122026998750634834503773649655187220370094452156440955693224202462363420383026066119076023724699775714031613361041163941068899267677753999276795780400700250310748390402965118844001050540037593832903637341413090281328167784413750710558170301729167149410933654983683026714958126492252177461231336269806278741322053284437821437430671127906603376543252813025638916049258048204757052488261924417981676610791524600129120682613717464862604996306921294114463747454655961770169710445376493645586080825661741291545235784736798109314983173338267722805740950808325256680054129460826249480680690596625280497186205267090811110495923730397302617439050101538063304980563859980256524264082072480143498580309041006748148054358434210430199033457793562671228921361979897569735953045047635393509588795077951247714522867547572575778046770401756292540286628535576205514005680875625252266209918466492221538216789208593016010175312946658510159390749179003302954631645468724897574936125692249955153158534855698010868092404048068241413991996647766571055078943363946636711903182587628499241659485494713855677725895085995872939126659128659666669381209231322720295782074580623327367134801843260792087106830065094252505956247109140658032135663825733055559757830450246845953886908139259335802288172729342950999141129230975191650450662968048991264966860260653145344201947964616813335686680946675527608250518102191216934145875325199979489921465453543506813902181832081773955233744334585091101059665961478376278373556510710028637369125900651035448983137113615778686304985334252376766845078150932027046610036434137689374332110015126769767268913278316641929288714084832515933729694819462519079930029089782474047578290766158573084227055619452594494166937624311821669243091340320201563004841086185017681114188673599924652849803490905654397787880373626323378336248119440910563399902663118532647389294867215936957854246113335784776325901962126062556313829088108270399422324411063598473590038043908341732051129815563719331807051495381020700455312974783992906353188385188875741607775567757762461584668494463325060139185370872962661799833136530096406702106945216839296419248638582353916362120282968082191067511396513869737449553672157644016545700540779452853711780777237000130469654546294713615337460477582277827260117644447666574820354965526255445609064663420225994193045329105179109951290927318477708221258994151100325638294136455163968726465482664467694190093135756750908431389966613553146824805478898320762872692354752248309251657695395554888667411412015799554678454009481685999325910756707997475412807837310196601941012777836520625912219361470764832085863775743297832003466498535118058554977844709474490581742514306754563174896699495627013414066457907877804920569321981645208868500944009945775974322836619426242136365777932226135486647364586123064714506039559408528577442708187974234217403772679290339482681359855673650365419110301160345730121986250051196941548539750059069375846779870966623864293839419832073985943305814869340555965354779789105933102050717010936572418228473955935535640818853942244201021693484887252590316905410507657902364837270637405787751458562631894815267679523164752025085528528083357109718736096140166180060543037731103580165753758009694449588501414364328572239595362683678583705685814280294577833863890028887304307136384624187022471829578819726083336213141641504449666440441689465528302367279338410064231706479249610281025680653757913890379961840141096386296780959388995937395261195340831200251364460801747437379242985878542057473786198954638249025362192113375450963149757157426560922656992643074888839385572525433120360936979230926140704974759876619694892946951764219507744562134665127239393049046172783335685855987101785057465437947569252054377424441080677579921733691450082613741654520655873775541596292750209865237957967383434032049382390652448565716444563696108475366516321911086981475083780138692667902080443773102516448662575044142418207751980764323519126838230221421400003530936809895700699827414551307910040394957759524204090924502467571729857062506992684172902573386100966024341573895108706031584344244177696909414179213253291488724458256465513972211004413546229955319098045991345164644970096415358452292048466764811323696408572110350688297968758694067742645161399557237161678919085418764112865070801597241860923612255533957320777064737443070372280938801866270525053108966626737351144017930066655252489125333704839673906549791741115984279828429105387530671061624151556974149054451457991355744236545097781063908537424320135850983277044598668344485750533771109397255754425591225746137967418755592485012024719933858649291595105317671139587374172567928490949306031022050084016738925539715656249100774239073342823293190484851534268037568594853268152928152577657853625027298183178156883569852594551530617466183442034875761552750752771273033484583292256050016433157810534325986570497147808902679528172861905364509276988707762383571187022305190613838700218091509524447116828471322678291600454795062576735360269108370692844551789486241987157072175342505092695756061737183270171080350200903807562175402261656678560229472593029077365180280098293270607498462534606000346836948311620350509719676182025424804741601940190668290509204268481266023316196804889907824271211217676161065742276572419847739329658003025357799630144815756006512321355695778080026162314074044017491378140523782263554737875841232906233713875040053773674631592278565087680416910526661416816320551179976256056076888460540882751561196712294626285725462936564899986000584716372887139799976289186148575606933148776149761702848641034393009699687143060064608320518379722642965026996900239980996847999175528251332422752574821323556766146591632473592346034178428041648967833607738097387931120830256866921468709717338934732093461887312745050860095000461006688964178006628883716671848178776952580275353093583566326378626801435989782600490608703406173280868309309489629843046190747409115391730421793124145102687831222392688619338986825320450852806746787534653472217297382411248982800278603084840559636743566255941994344595176859981133774660386268691019549989483177378703549858836040904243848434160959136431992532063450104196682934234827018537715493515656332813505262094480542974392096423890139682006752880488342231836065767052788412439411974616700905915643892254442588094694721299303572853471784315818604357710871216196179008279814105223140475761122447225616829210019468936886592564425051927168570011854068485903120395848123975692791552808951056586615279289988155145624178836766415595752279378181764112211173016892546193635528979180295793962731314374124556416038719661868344233996986921798708527068661142885822500861228957580592987109019768877777259965876120841582554862231981653375860067979826368826945088627814333564580089039237086886124035267826719842732920704056280606883175716361132629487762381870264949028646796753027900779627155558103241484969432976465696273688542524059473199372621385614377545027497209597924799244254720055795897804339119038634532505591455039994733396739243396648383585006651796455848668000438636482006516322744332259153691184910501636276173081282320764571632531497043715401725069719977799865833938185938433587704556689085104956281730396911214552680045274947175319525883102421578346879101935307753994515514312238471279204192909009556775775234221243956870510020459786834784923810918404727699286049697859403721193810863016751956270795789077688580777683016183792459790544731240149435072915472214954389680648575157059040057186884395572303771805705871987087212608913534955282864328320800888879683631840920734171432078708790956249013728173620598712002195451799576651437263620159655341917821641155513336151294786661774613586950785328303007581278324770629525698500200141788667195132466029376201866619929232465496082330234738872037959138576196208051375556632343525946227441723724823737695637725898540776258439566218062877388929050775577153591885892419128949264566949745385113635102568451447901497496270653717852990784155810581572564282620532550984927739545094803025572652309727009927814817657380137041186741656728963758164028033780515675282495184556012356675763537332123264702451786320788336591521743044360635569655219655998128367778250181445599282899183932475537307250244758437349865145927437763573554996166430485927410265839332727347204987166825092932117894896906215478785846080182193374013802614114942193133316715761543224558649742698291548200683459515748187665396999211814817724410425096859037708367584069113708871716126638042572299208243198346829010166216197943962005422128544436285170921132776567311202220388395897813572752188338304046236929086270205571442613773698449815756888025516587881707380204758883168222448624303513067337476966145537717624458147427910697233455025576745893497037071208938183047312834754230086495542146306471775306447346808470696155170448514420937617368829970018351471954122305062012975957730101418716402238020055473715321030440501665294060981753362848396355552869693623826166692966358495322145682954636816604091729738447655504568831144019089425143917834485131768504006768122676860942597383389371598610112081682166298483021616293313905173559673700705174420270905412971465066184637707215061432773241137449159246993237420911398558844766918595830360188316478567005233009290004517968505944537965718181492552282436806753983690278397285231075037313501896398488965426720136947538544830895911184056232030745390334198432958642429849433978905575398010636710437250204940543310650119991964128829813467073139399097883998697932377473819012175032939765943106415808815321117203147690010415891933213414385248809027065789515756692663803502973918175537613067981205748317447771959155962481931997136272230971011279148532868891556029984642826450580676211587831183690664818103302617368410732824072161968508766622067069591943367442197158752461801577493389049544705786968798866555212949691858799088861360807705528830666990179148265201293856307226654575871342925788700934722098042999659010397036419988445339063714813979301460214756147153730315038907806613863138571064301100092697536603357434936905283517505121155466307172671396703672828474096185802969869200564046063174263546126647578824865787908232212482126145915164452435873716659758089484948370624142643566827171193113410727332102688065972856942509085887532192099244236445850775474541475267244573350301471485844981974546713373548094048646163618170251782236531258648967547927370151262507922776113718204097681695740740141779475931051786385346617455066047485846148572218220050515111969415216501627983296495721878822076960854086388447294931687987980896180294650862115787214770085366329268162309641997653588373584946400312965155287360775956399576174465616615451571751296760076440108344234591368449842489965561832839210436483476240692882392002336424508740257519422385761722351244108917559858790685934765927244439497547582060670335919723276276584985490058826840880175795809570580619832394727561916496494525539702141042907011371890933731184857011697896301615906350031907866004485936232291640861375134371867283066833774659402655621737707344849115854533825590931453694377403753602554945550184267573669037435002357276071662813972918089190517873321051480015493509653206279101853827866176484869489622037866893256380906099357573119189756180416184387683158511325219871922980456838598106668483787042821804567001298505381141382001026074151488179064128954853655049066060345825802982998627249663425162961481488502106824599802462180803583702395687903316642398233633928198796633558091798758057636502532988625233083867531122758328495524938483025688921897604229781697275517709905854309432737535417492278771074990247073868835444693931377012138556935404631621658382368291115098002284352961353928655577683733028045041644060791208567135556878586236599513851318379475484025599330783096091256616874603568828538388709418813468797260134886639843601747631116556439667014375401556225530115436882390913507057304445237995358786888328672310626995162364476981036916709940959052177868553962683226273415789877625474615735655704811671026651735921933596163575141445569869794746173926770412189160060268474361564356285613041979527247505715666973730304066608178027908790642379317263199053287753932113142782150988246628832149890473905915009971747288116773525465917174593401637122536748930349481610372521618897081084611476646027660452685266568358089998639871787505086969923808250826275931241394540731484969303423366759436743217408325547311387338872637791245903454708390488368640858491848542498867457793889149844714531135763398599522885872912926698048501307536937321194147962852345998634866885963704257011311338187850439568125332103552952808421099872532974395684560549478993458536095745741875736025992624280276181297797085048142398970547990957574735854955257024926019971764421621801016520721934415870404820564368969167916064565230278135802388661159790245510839042591673645994365322917364526782393769439494715881533178035095806103869287250047139823848491847245447164360273602866072032969227956883989434556605792162698134291625216529555105625564843927263448277067952555726641087299738886785370228292629373184146567369371215506718322705753043455793134478585085229601192469103869712756442156981464077561017504272042553884278516317108856957729202633504196290810821570714228538866836353052520071581802252561375248915933355239796613579697603050402045366378357360252445725794727623001227889319243322201993017660202300740324110541675910606178263902426573984048132958096477830179316740810307246114679688713725424237830738819590890548482066634845341545420986356392609502856714186163433933000246208463835755017752504565065616354743957275603305703484256546560913114234639737586462581116915831552906026314885388076083967315132838145167478267181590430951326940909963002746235402020833560471438859131378151999033150796678973841745823173207003901553710788782807895619237765020055780899953989943326333180973276799213316161340716351825608070969011824598763810992994327646799201825992059771473571398326902885922963668053084240872442481481097020939671501356553761609792394243245027774961388766744242616337858077162347985352126332279630752790586024066442161581486920516512426582459449854335938047924307918330284400551150004280844583695987404327417997608510738001245978245653547851650545849629706744799477359833590768931238089204720869243670270544846995856700240680408120587845939188107152804443362026038685873140553228791541568092025341039199665051753159350628365676700288503270174654816956636267270857486568113548760179381917054420536699025873058408473083922871649019176558958571721872650324220137314350803711127753952798805250461525517399263294861278213962270418554649067554430740184877861067861714120353591714956528250226923717363459741454205989455090990987161434435536108253204304184988575640056898744698933542992995563844432750238131757979133061441616933301565668826381258830283592946686287742667329890539838392085306086560444626210052142495482712540634276610156404148902082637350576283167990589991171922467693332097701634688964966111190110734023716890423001757602966283903205906088379600566087647494369029672730610011043993627486201169908532431211377463166258559353213878928888223581483884397416246785575131673968381682838238003648604073425162411947192413998117401740983131633518285646965686098136413612952131711725183754910999086774801227572909902170120798714726750302479751522408023731152002894468458562853736885752815366757705636678748443399768952632048757993974256162021512079079697040204683340237447088162421769739081591420504515571829753177038071491471920782042038024419019416797829911769407796481411071421508402064441535070659430365545016116567066649037684227619491792719600260495028133545314196570410911017497058685439199997772534017798572945772736638030006928578596872490576656417812107354859095324694277931683578957899667401967622775418253382293686167987459604698703395748172833415187037603867696062135032170401459734285528329105544271094713956194515430836205391918183590251683893955672270660678805595876765432452001384703077487158789518062413805193982733065649979946734121257611528298879113271946995506792029545359320008603269356466835624653144505514328006975274145345352322277769015554379752810521097859560610256326071604132775884926578751458163943145122742876498552525675578906723756024172380154600969304093090855693602976259533212893787341930731277923981060946277408730965435889410685759666149983270270250554194840134005924845293721270611975357682087284506406301849480324059035286611881161508232417576271668335852654860866687152053694213077244789043192270322797141181378827617212145721658955548754709222901937971383736543439321048357740018154495457747375082527257938276526805039071624763790854055668038947727930927925584361011142550030702847481309462692370614606321948966349220221719558626841418861457530925337295388468614203691398489608302844779320320720123501493480701095640632584736133766089651261556975967932424817988269590156756655685168757708501116834410127638950617244670329054044840350902941861867502977527836915336884058396998518024880841590981716745625134793992063326651903962033680554236108911481956599001262770023957673765824883123657470843896910575688977184331275876181525742071458418397281567485741128861453910158885351506787628472986453363602152709557884149098349405854705741356957263241324130739931793782715210458900383458441278055036423261438251142273619941644185738750398579631930791565628506573024121724249967837383312457147108099661777600812848559795209604556575867360407723706110854425127590562495137060505967436471691894588874879621840958396300061519213309248245812853015176939179318268655949984311065314276222136751233408922032014386338669933807271284448762788948989194815523610046265414043666529081415430046372161600161307739811918118692483075652335061809692638167761120509750450115796762055933164329763460340007144709439614180139185070398232436333256797520587389004157084280806946287796860222800738235727140222364541382262852645321681586970367977675865580541008691193696428022704800955304036953845267280906987808544760061940453349243495777522783571106079265748792839641443734274176163195117495269988733309150873300738674342427180435726627182388881660808996435705146573265731218113343232284632006589764116302512954478388316799324168216158041757893417886849424767585095807416957555829406258809342610935847972616745648057079818310573081047623237680776895967993997712637086823328474239170894460604514808883575630901417253856713268410378664974762122060659117126126191740038113055551866807074879711364353899260670753228590498129868263408689378164088558123259038084302644309629264384772041520189104697199148338834354118781871739430520012855447477669776212009789437064960828266600065312462886242859617284485519879391650966927999021063137057949869907428579590620060751000136737759725333226213385589126283111428172053569143057765423412727148270871244353279967128504491766177630480927247414265208192657860478840936251103605951721049509703978734730560399724735070588353311137787683455312842883555253716886661799714446763221842075196421075511027082826987899655269173186116164695239609666122527181189933860239607163746095290303109121260922322745425265238170895529910342755764455715920724889686762498263902421150888874668269926538099664096359212020279737743720828249794656989329892883415088299583455109960691328241612868873353609317841141865235319248526877405317385366831399755183489040838102166123347988936201310255601956324849896155962503897844199109038415194582824929572875947463479809793053678675311384406416606298127274481993199850331683712265883753633087391747409993604258764942667726649442169320286459639378663509726754943817768368413917061225636995045063662706849016618945743288598114785554359350228050053031845887358170412727778313742708956610058121096660538393175464458329207841584076851276340956573164585029354231566990401902419194523131883501824347439781904699639930204684234528456851207015821654518013673312908782926403140377845592310492074606161226561206828652757663424211026908192279976133189961353662476788060651785827875703827277478366451504484642899372210732796932957964497739668352740391863983614879354655868786796671199560145816376181939739619483324056114849418492168182625725580628310870589794747260289027753758415441859051565618424940009035206140628482929725183224011497191343344569881592831307703087075223819014279111787559374694253517521649836582860902906074321415051764856964774169469997672055466432714909652476784119914394599713962519634131497569580419227400578726137456897687824240192060114891497117572051123403108808275616734548303890485921993097822021117122965904492967203810005144800030760343503198072798297295815567566129723522170644757001756287261651384964463044796857104591907969980247473614595176235093844600221711751081403686898499133627903550755189792362664966747362087321746807363504199694664068784043558650370405559143615696859881983593326817410382578163332299303943355454938117181695959872543992451990588758052002688983526995361677615233538801721428601563876031537479053835831024696910439060281669716963393794390979814179452708381813210982109786491471911286876197949912940818253164456544192068812804135220959460704008644638219144698291753053980227685099809061654815958965619370304220303380673768934092839136851422986319173958065037229565668224593653958543123042130972341958487824306143330497869875463698007110902074196053989944884260830773212781075039137307331167897421338602793103601802517067850063756492726962192481771374475350089736929260288933879546026638850665523121599167296215005722153189698392699913300017183235880562965740119533342562122796408045513747830583375904717835242311648894362018129891389611617682896306410408331301854024331749839682727243355033052270512969604848686288298486519022236870392832285239475194587576035050235189450834257455909965564437136640753372445066007302881465156516117607595572540978279495016850608562471585428341059646155262367704703470807256375202089948327461790481743611230125031855759295795467096719833481989990824124527385363625034675099526630804906821546774729826003754488726018854124983682095290182335162416208220601926614580861406603977226271307660471635418461579187415619488208723362552016307574127056673761565721805389469676099304429397529351661746222097864427843684175668040393085086093514691440811877552799496679906626480358916175537732079362452764700559023114350939202321095619231239010844847319645844633709805754374900769723242114269849635885500664373651605756896755032813118831472217537487948931060657057674240142673500416065417052777771023095325222914415974803396244590376942100790138047363986448095115249591550999633046340559104956781161582875169861937307764783747481719513143029684310470394166009377832787860974127677051970007517624553002104582425230927554511046451827260615014755816284504915827271522112535385252498932061682546093952095336599877205990020824601096161431708281591944733761688771457546579722065624307371854699739965121831457334293708439723233008573602263659548012882621217419013302263949805222027242873591559674667329128914692575112917948962942846733788047534071375096906627693704515994066313375681820790901513861922245976903569833469897992756140735230268539056438921995709412639437145111688050760919512803967083228577296083548559974758997717616478423987763959397292899545724785052655050873937146789625082462548334911823490276434427263177563711518247157989211724946929276434993415017964745480890930841707641463188573315766067328677956621155771585200354180728170346112992284963510024000740588978930479885172881667574884480063660749536109461425682783456498540587695893788682129929241572636702698406819402827423977497381539684328220304724203375717692062821811085200940577318398752016166873900821023177406085622319798069074318624546512349351987964502197631342559159100268177731405888844488238603490525493589107291748985461520462711169174186685443483747053542804578177739112841252106282629781594046541376406184888252452543121293398186836119934762318463608786308356438474546381600697858555665809986543946124809527552287255625750373778336338164678827834317728063764792722259652260364970566958223847175923717387322801942937585169409875850175732435976514183164956724235203871908831594274291049613209202216377393468797876712239859193660730618436806944616156025683787943583016338733235557229707667387706869500200590236014155077201535837039798127644482091948843069423998921592233796687859616616761643242894924870124127389419603559369484132730965357298031297973031175377433531772523908907271073975070930341065871040780986802475360573048245763977890352003179282609687491857816906911131491728801740293763309594681172491077554867125326279761645128403496421333739113987762295702824716289886704037987459316841077611802859848941879746316581268872481850245104997425663563302157201734986882514412970240655901329720047827165261712715398175592337851153096626909407062758759805603479479791724206622456929119430994411889172012499053957228602924974810729721182775757227715548625610700315050556768603074478927141650498138074554123731490681084969652126991761542883036188235980302881364387464619856470730121097830145221847316597892990618569858260011720676848486426357735704400222788702249204155216747248574562572732856717827923729990207582884729321156468418108376533328280644376204724317727147430939855639661993618316188149332171169898223917258228656536306871548921236936039966723506494709860733413696871184040523750438664875148568432476216150044584411442119055631510625716013980695659721266663591445541246544927924043796665368231110927785280558132841596104643968309177259392390676786370041464647645079250498248289094114041421678266895168211354928382148820301678831640484077848452655154606871715145499969469770608335964446600425630932886763271205930047859937424817997458372107800945472902057497155083653688228972219515779696768944699730610607504144766668027895242530898182939825734551013684297426791970770492045947244867094293177377606734252606669450698052679071421407551695861955461234261329780798479228770808931968104965515464636585865818500529850335544852767302761636801856325096647149019294660264747099385957115433640495399844280141950132017765203483024941845655826754392375721325663182772883207875413438008206865947183217020222786041886500891024337873000304136970528952659392386323791457126466116187962464027089689832408932691645529205126895329488519628550702369716438773884605072593593857115329982447604616825122325355881108017009278294313962484204736599412150413807301692976365586755631739095311749330276797815138288737663170086791465172266159799727735057195665750540516988670048245187113217137885280850325890985296598980821751006505051766111530068626160042483302761840005363533048794251556267165612962135806873889239081257935607615594531073524236024094649714720606169399843807011498080334021133774834440692067471275488527333203219672392788614997676089684901132312050701187974730180286249939779233180930456316134903237540700310894074195702984450100595431261742501138451964268245667462471555783267329026576270257919955822372755404706200097724096579289973569929155405024559661989250306244443651368677882762671953816738242783649367168434756845411107347088148542260715031496442893924987494281316686027713729770211848018256121175496740038412189936693490489278061692792450904943778060321326938733004452645784704350797084219024912175376968675522965550516317307332794000561762070740034456140433508139833115369007514826404474992311862921904203845678221458106232435466115212054760526504114698820642198348653736847398709478967013716735909636460152170873850616389713166342134110050611842498101704787909044777237802228941463546480070826635299998025868518994215161061406756925005452589051001968362079924069155525791193564242584186451333065793798597730064995673764252858317105068368021428693271432025757229600770891792299646257983298300362256601330240833977597030900270377563057469401576313387898030714786504119163856980702358826067368080115913426512318843307317355595371546369346592627156263326841275963113833543703540930046810881184898995474581045840924928712696589660436272110228487617322942376011148703963434030620337218056070322377329383853287503342130710267563697844154642515026813533215427417854673268672200092388861319560951654960149002425048515270011328992586121929584989146019150452367046184700599589349155660409487361798900560017853937404633571944148672020796917792586804163634340062283867194649848579890859846970176038134416599044186755799706512802995980700624022712692898864187225032619775309167380341494479011225930364242256404463644416311926072344376511666946361878357000701579823788033320634024430833518309242182243340249551916291266078609062461906306474632783135678484739713310749344985265299215927137782282071848640505882499060266656549525119705714689236861474385018467676750179546410796968536867135580034962044850386306816277557838997652969355015746742991931743170955554494560645531618179005379298170594800176962816767178948749605300295430871984599589236336511376161344342165184437137801993933125933083613017277815480222528310874062092017058261294007361435501403856118357625742821569451284490569614787441291767667054827049125640138561475146270038494388079799448524622106905964703565268472345415746143579083042445479257091452269699303874141629764305065767567631738162237668270497468067956722772619072338005798495711113106250402144607271306072652410129871647435558253530141720183365323113943569224865244365355743700559159206637681068624353345249058289499806530366807916478112569525281140462698250133751680928670717883907089768217144379609629530149079312435961296034579162687961467066958217473843805241400370626342835839468244055886506968138305072372283062981191054086667173770117946389259140865294661685979265972188640586908806281051919099746686773298657529797431938328402527892728623476332021870020150860939331744568382823323080775959644061296208788511791702599199229497582686224905087175112896041373793873815067220046860722306919474385710064889069677039090628733154387644132414095985469795959091738384877455919474717311364280766471950691317445059479130002528361862344847870843892744937539281333462196653177197236470814759667422929675566914070074699784957081676442645340653963033519331679402953451937794599382937368343635425291708676705419114525487767804159884591355080200192216548541703476587845103441095134811369923741125087865211161466721676132082495988063771258391276176385410672672061261691157369529924545794527261152142491241638889253967842521881398541260566640541845389261115050214489925125634081899826323487337675531857529918273153878959791661061402860889395524884859675257269296373076204846199926803760168119365725867343053731511011887439745500394661552760907188690343780220381110479891809949457994973277324897789701398935620262423019997268509099928853508682937488595822692791670243500010168673088399862714325035924482965186623307832674502511648306254918996710207825303823067682208542931905439011018680830576768702719440214439744250838531163194202693233142938771704125102333518243910901856564277132708709840359690466236259003393078682139534967840750642909970879966634936043929506014661656322423067084315073047942732711924874608925893363479540495309133056661664874700610386809575280158283477142418472157157977674550526995529675540435844084734350437186207501309982405550799854580543514769946166375767107802817575207462239773518977893466939725988598934322181284972887770941547725329637094572602893037995981012854648783235665427180525569557810429411702971198168341641789029142822618266775817353795689412954944933612740420318859136790017937325769062013508605039134152848529962716855139493853336971474829184439195512252525093162943280481438972887554655764832408421276489811571929655985213707017867841256918215357087755612535158340959512941656042730533556011656686318852837676388588544503490083650331408614692519984541409741878903505451687878945624013345028588315572107852928964619631475537113582225544994368418261896072577887787257994959779424739502442615217499203565352060759171026591796738388992508030886480980867855369754894355658240784539972330038635306299711543540083730103288717940295706291526339511840506968557447849036256612081303140577229612263374578807170091182633002763099186102856453681205008306733450288168628221254027061237221062192918507187363003176314202316249403810353028795359024650615587548579605724249901726063530667954544303675066965276292089044343012447440865881780578455080017390976361690652684778757770735575826487569845075067366009314035549481988039228114725648639169909587179987729933607165877608611876832016175466434183904152531569962986607218551132959268457430838952382697955270684491911918373517158174201726709278761766669734675965653810102610045105906764353942374084890619457920348936981363980192129654909572956265035091730548230355007104550404028497314856887521875443984283297091283748652100974384747822155014218919606877346603009950527083303908276130688556268231240173279675955572237324323620449407623810681877987560068780558613001108285662021182651359380858297262644289387438054229328739134070369547514889469510697237276293683254416942750964270034644188039719366315105271128839113937494874828286045216567451408887486842678707290021070004046868322466355417767864080179586282099763307873415433215173158807369990099840035631297550654968628348112777178461608000412847993809827650218355874410061977143683545209109836167950058960975384274370011032721927803015688258649001193297597766379217256578406127060895769773560013248658585428422082719256518635790214717027383711642074211122376996008367507915728523491650731226874791084842473490644903771147171868890421216395773992142291395325578853745128489729526732573207254856558632908479993305792761695100988055904371092780533361477230576285959601416356321344935800673799161137906769233865512139067947679528350296805381577170159126446339531333169654301102298236014293923298688341180515356029864044784638443771256505402163255817770364331399503826445291559309943102817817486540871287717229637885391371825146094016537119659453200587896849976607704311448297235919322950680984329770764355004010895514967344531822854903812954272141204518083096596718801512625495240520014927796187195313383642902502998086459528047532181898720345144459160697489417837348612482625122461775679989440942821016410267305327751632869081729827802185066252880577036588011871883502265169390074779875515958179836333840846589603883479951139381882398069590803302252696255603471859471908576389289382830812483789599606565172743622656786094712279345702990575550027120969234373426287243406437443859752904548767344902986964725717601834529822926069376905312924147393993720429454246567032115092906244461066119367793179669798837006943649538750575934257772173138718930241623472924005512243854770885312498819309961923549171558653984781695738114478473346108076550402793572817623769465401191667931194306660323870939132125326740967602318691241550809043465710656632513294267733955693899307822792014008473255459091558464594080974606886632680696522368158721732617035221246624977785724352466834850430394424224635809471641835019558162013486088946796437089702574822849992285847869057571869254431765091893109573372639946181590932528572081305544074977836743762851026237595578813391846045955359277469099368221616130871469106409232238126097301877926671286341796697327676866682588914208799472242065473422089265559226248695639173438800095088083056805712890924138406271121100743239066962236226324011435921701468095680959901371273587623491084596634618072355642239801000970983219268414002791672723666533979688383405780454282691948760047985739187098620551346664227523859219161771742760737004019042043724828323447247352666549348994324486451200188005027016977670230650834543822518702640791603736820381865732023804077246392440184139002092608269217676725074984928090910684316363924902405240161785842378607938182031931820721436291747433580445858949106064941236468550402363093207823395362474289037549914548791517076194271467902245961545078977120124638170355235122761384774359618883673544650337945569362611554962481134466720072825250100271345220127887574528003663180816613632188102959668165605461057380277076602645775753275174748241706757195128189422865165246622749975735364796879102584234082402014000816105357602453670054480033949147474159915918385451922109055058202241633970167447958753256373494898835962265858359128675490404383729700176007567463517091151426759294243100379068560023331994061337393498626192292432442386793919889931355594436534783689250636430481141348463640672203377500489601742494528822620020082481808863658256685035582650406604236913298346795623016036851532435577482627375667999492997988729581846535090461670951224637876765226436275563359987808880653728913984391817311828141121889052842250869426524582669655740082918187714148685463137397443290347915695170750822351362048371265790198631746120595349420222714614481017536868413125794387880130887870778164545279669797818136856602192194355678622785034176737021362420003465147024879110391439459485745541111425421818369252103563867202227559610920653916956493876079837392848179501173043983481335013881995510842434957234311365876769702911862481260060530062389524204313823503258779602507071307649417096196209906687277666482617040474140839152308427992773882800282181640409817506844351800710798037485531050996550264433597783599505784963096049465693895747564329236596587545306411068772279163442612623060311170682212459271990568189225410125442398438284205337807331300091665331896956230372910590059337549008689914945275136157156881227326503816032888614546675333832683062500665358266838455996515165172951413340374255058551802919711920573777394741688867116102840089771972341854183550664665115036047615960958635631947625623717619063291467102948395965743366682366238892962123513702824097818149220567135759808590346053508482548403035080670264337908922604926415468296889388841614183492302403214473450471678798153663462498694074656398196410685327265923383035764251181828591879539836875109458652396392188205235590972996107394086403455106538585023746855081963196227130316504984329246211611113389526098603151026332770825818545240942231547342122778769556046816086003311554302652428526361250071978365777508360504442091643123422174361652927063175539589405374682138150243737019399211970410382061527443078838312715660862273615173911005435606892548414617461647606843444695287028435343515217665962655673427689197061185283568117706146128258100354001147560523643833799963337391069113555994481825760006231858106276613482722295095435027206202572304499877791816037964969486431668268222286184545356826056243409484528417190870078590324755767914803976989659946273428794942985218891843251287877354867802260079232792759949568801798247254524570838513001744197696176220257870045866690276766686876929980106197276303818289343147703371219277209975700179547652475408417154369669662872092956463236558250397285853058464145738999693318288283267907918473916357732426437787646909365338535243248324357402453619279252635359705414765306442551582909462526508625395608245562063959731200887424757766192916915416467539997010132124251318376070882761880357482331361100382768300142333674781193652881723616212451515226381021159635633663836814745933926516499286684997322403886862008378849731228188121774175579387402830053133018505316747565833776614145416713385796232655482410702011230874614069839257451117368784363462973011863838486671526610872003647086779842805805810774330734537025263311946133092813711515023789206274188381050473004489161801246362006604515366149115460655658808665009173470023819144241256459866434750892647856635447635006589482478929235982150117190084201704870493719660210355610189332504970786608554899192769482546109765333706260924952042679857858297607489549286194560605697371965635500623258783114022761940562409023432382162291278270850003821312748322920980857762688182900604907163314773403153455217041609973974930493768767635296709228689342817155022799454321653993542390053891313577868019973739087278609228121346155834537500321776408315401018998676825056302209732375413604947560798070763626192787861492175519493186659983578834100914088395442305309688252806633105195489377121894256650555075883070229398050046590280707377603662720224759548634033818013609869997791272367181178018593145030078633719744257354079818358287994120182378339654941845814746808226093826905219185798139396379325693042033961796625890315536106142398477287746652756821766889298726431935863904468424391289562767253832948147259444821942240801278584706213623656311153290395201973950593592482565104109843942785270143937007246365110250261300124203294286342115887573742590474539233082713151303310652688415945084318252143487188711330625464730382855274891287171170808674059855408511490785973253036539429303612203643395167403114999980872829999957930069481302325104196028862045122680670902129290011161903936207359887758269815911835457470540799437675340607584260554841609903173930040282967600752205240301509678992422750012894973303014155543718250243681401880477831077955131030905998082966103722153008442100204740171766890441817691330633114315909102984033418907958489037550740266231993837232038324128322426178299630944975073654763721432586435306347777042280850214670139148800339132376743403518589930137621003476364270661782010831749052131014852339707005554388573259584811595824560257389549573174956780662795789501975891943747249946235597678126136547119323518359627793343304677808789052442254034968344163933249793803408343243090711190541563938597291635563019257886514014809674916076841322910366475963376301032276426703772690280404891978234489169876961496895798758920581623083698214579802280205728352285710770106043848156193061869465038061863719478502128012192868641944924806159217271508208544095510759918005681487346325207566912567334784451325331541472043125487394211170694535856960116788360737053152164776594847892228370458599755210866465679976694013259692208016688954824998177624529810870421820579729331692611394111558780051660094762543958120513384779692123504162378119627229131317635882113322470648347825112014404636157296042632508640172904470630821483937062953339731483184774738810302327822474976417953046044783245595541444979761407063180249251048327485097604748656905727288630767489217161040784627801328123032267947931937241671511848625221201943027451152555982116217564033881154756254582993440282422680145432137871922713365572378750963006937217699284818493654036103286649815745437678298517897057412775499093467742320253426767373429832707009172503062568902435067687847492702535103912188969732910409095667918439614696807525040133417786629166003174044359446058204128573941769736620559551857420278777192735765049517561470265126371396665496871307891095486632645304509057969139579342225493892384497569708085376236293752165971180771565809161371450398586429304688619251997331233033356084628866561422945835188145280287808633075008637726028561859585924455211134390087558282093094913079867071699429183508010095490287624799759619789343940404287681971976017192777438435927602983153517824963685492101845989070686046520587968487449350357951958841304571199084552730029041072601679138170717529551978657729153160881035626413123153304948311720223370906625433012565610430076604709954274894006864470895880377205362744167721098466120252370299480798764282554363932024151141759077346056576276166791350230591780458429151943950395231931358409866785825384238611742392355362284972554026892656437185192840121735402439325113746736461300180133527822466911998205560655980270398631862552790161745192142800165589103183034044732710087080318686664606691307172853362715652867754095914697928674396106882941358866238145075645565851368071247539737358988960239633928935821561486037248318293134043956144559443617211408662606319509935692131550736677366185715946839391117526342988005882214781761777907571293791872035229652672753078109578533242670619242779229094434110993834313631143679865469347445706960373761134016031864308551159557544185199399727539558052751227419131055719092586717228791295184104934288502908971216482241809537992211027495728489571406352285082288886418925427852286770045356568872400051578078935891020764908021924958522995178719717810105040107862189253832049123626044865231503395636018553871222930504208391186907856576286328889096882833159994491963091774251266648712812130298112488943974359703449907564153001256732989782471574680516895731732607246214260586905571873473993576136868804236923924013806636389824212902589363119390090025982132871458836437992510276890320110322688529626112197884196188576543191175635716140234633651408903213371363415581204404756894379458209289617469115922514036395602780947931297805241147900767045079856999099579198036472826423358119600907156137221548100923711097512507223636835691098942424352635403846877341693689617180598367013841509695173650607316963144489442662212470849864217308752590218120415337298125839203617969691676723384785875511574697229893715872626115804504014469129629546273843964578502333109690767275969112243578153299487337187477794700740391052580309937903019358846770077932969217413168702948384480921627822817039918928469677800008499911064141360482556733861637595462827127863378689844639651648839728429237985843438175594143778032418292158913619432541937138128985131733145892097781753635606927360581184221743177492473446895293439969539907910843265592685877473437152082738832020235679053137638147528703697447455425421224768426521519711136852856835210362083108194176806001904200851300617105449645595932377919177565714470865219989891360539762918622222338654248971167834220181609087369815359415023369635042046930103369524427796319533792066004983394072605945922177409641514519118328876633477779616675497915405609621776146183957391947358663981937456032737069493213896403286625980479712715806570837987590578255641681102730600850436101659703138065653717420538850562728547786113013436788679759953220461448005964340491161605728628684779058885158450402198757792077738217390051221373248414314254527536432716046804972459458290167452636449773694671741781536984795756992677080120898822734376086989057267236980544323467869380662025820055784993110210447127848619298312846139412412158936712921876279482667308743903217099539313084571149882142729252869068342794838386531023098426913341962290933305407321562091426720216043119153042434513940367570735924232559092458900266708288145229017080253891868806394198514186642579182403583379384991298014819995535442361242405669012154422580560449240110734512023573130746114693287029613953388560381023922770606807330806531811184445048465914843281283241448039499003873530865836755711348288576398444351126091314605739728626436327383245304488366573396684105210057706826680306851726880105611737661071051899575433295813051987692380952276450195931677735408389307698473189345382156136051979653166458166649436064525553557945317774275088893432835388783487789483505951146580600676811489106055489981282115451785601151319224008692312928460112666967447948848068532311898511594802416971612332822756435537416194975547521781173871406390044813702480801815334399250726616082970091680843278792340361186430860711809028004268369393087424452314565060042575133047751303232740881781424489602703060171340424657341821563662267855197694823289413436456805193949158400999587217831865074551233301599881196825682548083798797381747691591978476998307689508817152276689734734928059928559083803829825169658076112468860933802036386210090039591776891037788070258976997788207639559843786733711376626264906293360477288893800248835814378139095752047285873357233191498051682115121130730521491392519837868491162735540800914248889990997062110403366577308058064770952832626800223711865947904977755951498508093011626462807214973227367580490521959987282491495407261843129890560909671659579818849689289526914750984060967972574645554285465265109782092972589184364075282262477136011400820803671723139670561571651823142284826781169897624660177350501907929649276437513839821017964579669221742036463082835405698941890225272662678719664555585958631999127476813824708637886565605787227146484192059763798267942505805261623101446646461691228433909144417966198848077842964237690050158795497720130874449855979847047826069556496138681015964269784772973518707173479707562897449012750918332976516779872565198874746030471187410527429353357192503168453227604494129426842713502489003475783042260942333643054672501583799726514395749207544989269615796568360089225804162987005599159421704092942416849712664718156586219980395415415321164323574513679928630840369333660364384038031716212902655124683982399293205767970217256222167079523008029596495834590930368974795289820236804279903031879107530578921313401378815804879599592502161558421928020094272406920774544866428789900662769390124536160165610407476410218928741005569141508495412966879441803101120939430742404033170017959052128295742540217669394535229664515730537836602219916747129279621202342526151755011349807654069152712821913243772706289038224662235891216485277450041021790182992851874032879047155813234888058778326460477390917862167954617708365559380217073298508454906585499500936918858323252214145605256430558626994544968537154052605735672401104056398983958264770411067199075876234036128816224374832310507384199691631887045000934628511175127223873407857005057801156042123356124170474410301210524883433227077585824697934299138237405588740440368427931019804379880619046875279662626233256716332993484575381241393685492742172393838028158774056117263416907771766529944551116845730308862678313228109393734531836199479806222111394428074609381557206875443160104228681439473261726489952703629887897217594568002872171043871615585298833099439789726056126599273852057672782991898103639464437013797917965313352964678650100471997946996084866106970894506354494004312677974737996052884513094958221869119527271146394692540915228176793309093105311325600494117720022596631875521639526333034181606680061029024289223060845709025634217089776689114672771763992816816093295059518812475667809718535046195123803821200423744762674463341664576326611053530141148984939740717727221945675840224664075760312471517622178117761824040480219372889373483571940314229019662637554647091523296560942959486924662354254147760684792692083372092375486171771741480232466871147663441442384880466565619552724322799922499894982742946105276440269414194350823302730334291969312019181409630948293857483585775069947477108214162818287133245866340919989815959983584832899718625060108614100062354476088461088772405607751185143184853801321841933137746341354698768685993066433800319629286237099618525536214254263899451544513489015308344516693796903000054322637538472562884881481974862275145739917209293129964510255494285234231329129860349873513948584255664078403315226303950929672040396845668319608231504513978401981111647718934048654128030404075515314392238057800900470151366099711073315317267991196215987204864838256804386496250443723509430798106089981369189542017234428243952603288026143091670725302281123772584482926076707893241256534304824775084834343092781929428917961545091706963892606848459183721281142278502064332155791684410934076778449932119698195736355186272599177244529980649288894430977886286594338984996796839065728350773044037169150782146563631133541822024493463490884150001349438911274652687692912460569829995658834702614047058159897928665099806896124398902874713504265218387523343640192254611718014704022899100117291175006983978983791074492602461406197136544104620935724268143837977876631276590648617615706005025582720215310970317259216916796302056685722359465600705526193493297498375560320429181934636666359822760363205067851677920465135382941410969751491109981115762930094453666388667987628707562392863643464311973275105534731738047713408256889876331080115861111022697158153290787055313319255936767511698569185258975659152317734275757072903059039115008045630168573270183566957075318891151693389410929340584854273362160580978389978289427083023688827766857915348665067566797497140772252569664298136800036553675721844713207496119297287209051244341507687053360835399332875197708290070058605440050165018189456643826691257586203647294358823603783597760838791316067561209055104457728354527285726704621231779299782676540950643713109618106080843887382895646899588365708923043464141749980250135865123073462062842986162547229230182908333403384530818241027103973684216299690178096890936521479106834787072508614194683757504561624495021162504453275798836822513374529340512313498399579470104423026160743355777365087901706103351940679302591362128316523116384503432866549569315515922873538703583552187336197876669004384097611389738982737842806715275777429564472048267422528490939560051933899800575898094846485836570453103001523805426992968678206194141925008801032112122576381785697654237543134241561263597573903165877127513170379734880432571156098564791787893335194715473378409749784539161905320122890544751275114027254785114950186392479070869620019224753322062346015304821273731955256511687186871518644307582636639928790262307179797355087823130929681799236821444343462059711000237394727100065857270642027255916341207214172319464794005321403713142307589328666567670026725826891600966274745593988804391372647888283443561041682938755944197820067652757456545009780755031708833716313097117353351603229010963631575337646764999162091634931806812811630795132887087357139813694839316335957285539511374865206497749608732650695003943973032648529279841838629487073263469232744058543622043729452295939652301709457863884143309459621422029727214355037355384871997970785230906064849075713289190207350273047442691335529483468942340818766612286092144183400415743546845094536002497593193536847655080208192914788277387397040611931802033236023191830354997909862728754437371380967206358110992359706156849147097567490493269883108523615474859938820356366758165750706500480183545418767803651950777958501477891123082430151570248432680392258512914964558394332790931567564748030501061605300953155021774891316440352474818651734208241482855134438703476967110568994277479213184066663662571263607996888812447383354753403538813712468289123950419573679046841605628617893454216564802457249231525547153998218562738186327103157986649199744298837572745888424253517633255626210261584403503151242659107561689980092913788465908740149662026653361016960529946337134030020576693272437110534601303522917300905957670205788836498090950307486593723917984390587574408401635265044463942808243808387827351655710432550109318656753309401327162014138432903404339229024391522440182094495899480803903013377980005488459925328923468328638557760295864855261887722458422518697025098668544397420963821165124606954510767701484001126672607913677239408243953369305837261145903300712714906156736190318675976062441051293679201121838189489697638900998690760493144841140183041567084401436358030957335026721119571206465521172564094281908781770293667835285085043542251311564828401793229116916391501069325344919511143563287774934650339803747684598315200014694947172162407750995180322875252453280438184254688364457305769306790788584644694044990979423628790215522415030699410070412088886407024849524355953518427839289206023073988398417864669719512588425574397895220847802663902404217577117541258282846064580627179896491253682282673570688235567951961662535819686500091588923449308035794147297582828792054072316061453154483424520284263750094528202410305131559911422206439353538070654024838158849198804072922221259963119892312808626715443382230033443274692451282383567641868705609867583836064549571158046882148609194263644871668703873976711995465834700739536499051137217384784708364238437736831701118968631330754965504686194729550933849315438446382022410950665343193294969711327389322649926394610034130655843853540299332689527596946239949482714699711935296046969432874842700946650736405366492962849147374806226879091815041506342186799915388821418879561553485102700988147786534655816278184764674167096778423992993439625416536148959809926202027252125062000309257182226429521356342960898062434270414345017505133981385746766530445990302376523309497348202457517912152390163986784618198198564859385157995150418531846181071212038414624933184056693158013095946537413880306201572706560137579247274155214722850363317627612690261997043199150836830677628302157931271839394342436483977969328091529149668997112474706218314774455333815283120804952183658018443726548838957274363253343741767676212680672341030676729921746574673937330181856169255264008908205511861242287615612700429369617638878863259742766350834168335837091833430606688313688075095089482581596710982929613342331974833597813780883808753724621574137692368738154817372775513565667576631593480879738508668351523717961887905365517563106277529682084348339818634039521735256906302790102398024279682496452903786250196163500724219851968510219029943047671330346936761867522710091135657144061460528048865984318829642743271232314496470876198112372106313254047426694788299166532923150371910446995084241698668697640887255974013789689292080589629282822688310661713309098935672405384934954373912485808423175531198879207179604999069120609697731284206491207671217379473619859175632319051931132532396600974758979633206686494443373104531494583328182106706365028800334414590746578871540512808880849309774672741226621009176052062506261435128376204136236139325081503791143797223713981422578765639146492735466109058075535616693641203635682462898218449504421061377704095736772747005299584758333200623950822697820819409933470360233718035963246979720790178526840112765423414251326876266795761700071651881731441607498134172685528767938977267488596151689363786634714631885699183972319492464915560664000522001661195611168098472426130452445075479282952680386739286619766203433082930282531767227900210352539779606715775963268269441531938332815104786872337862254355765737214294053912831969314443041166670260902904376209675713680034396221966550441105539624501450360267411914486869914244262414278479227037543982784053764752175556475891388852483334746209641168837563847489883161600961447762246077997370901627149800661778434051133680561124878931455429689589448244578651435058650297093147640719509353123962386470486226259639314705832163263690198329944406364579265722854348346236614371347409965517005310643024507404203014004825259515777737203997601368615323329380378024327164862340418752416193111683776116761757764638927473960639985555079249441110588855820876441984958945875037969747862473143873307254505343248581677839082849907640130222036690627202376850231205327476022029715293010706213451298784869882362903205665065213289379893955972821763469430791505762239440402510400331694127909238495627843283198231763697686470117688924661407530961994324802510129098619203028733696728218299396243615239374269314257996850135131407470534543256840925556864760676480883740760527632107349542952912582984307286173377386654726583681368498042136454371164466475309886991644043333704305527076584782902959049406994050948868723938606308656853055810387858166219318614625465629089785294769880107406065937093293726542948083717656868978824426013589503331967518844291562990560247058305109440561813998107648393761544748454489743187851117505319589181860728833574927137830735932930709998688799634821350872383511503150870085528909433399479707557820453238782356560715955922913115890645865692042448034120249563455822716665489253646115579655321906846945817306997522861849939554014135815785045561807518380709406918586884430182302699580265518487748997509415826364531088286457337957739985530754962096414766115201527204817288259137666341632836738472295485023043772511030195519034258583208951565094572314370922132251926386701765655225451455299978455875368247720033403564587690270677795981713334378153837521392313500872653331527991309515451520744741306514013797030501169941343921183954979148667589178640270592131083437838554098173330758223339100939971300894479347195649320308290022543377126763429021541226409717784850931803801582399292743410338447658947508227359124245763522321787168254914327188804733824531379110555963733869877253776155455630068553635093954181184665466066608025580339259649721367441981150195646266285276496704395870051757085485988061490154914746153355351703261244049620053470624362956874948000138679537748990765174273554337393576021915950034391663920052971320549345563600423614559692209532218012364947513321416558584055515082611288520520566273527921905648779187400057459859446057825160518953051241674551780699417299333700427824423310011241581375588709843482932587822622783811997604288896111319558368254848441314355676009866770215361879169068260759378207945561533054523987849369314508305624513451384435565861870064407745965539217750596107583626505152755839416353167753623640261326565066995103503883109047577453726240786372482987016862736651508667826830697292031355057210549423629986703977232684636752575442289688977048253078771609174893022834093382278146732087899196318620440157184529288007571171182360412682687026175517991618744376114117894281109468638942338361773494248626151311887083886400197587421207104405035974569784809910149680907650231958063764033603585450313686672783470369366377773661233648353903204676948161755022056274926967551501205536191318390334246307929971930320349314747034249013988683220461863014343549013964364587157495871315857813710571191505659647549958475559425748925149442940548156354470822336542096510374103162431301504291409363876458357511227273361563314904201822348774191698460405806732305408936726255013012669591714068498064313752548294368803026399456881219214198686580735936122029059525282353135472849629945981726127450704800139286651853927152326736773645080379312751004756935531824562033682664592620105413982480377126930248451841389234785803236588252144387594839160170133188826969760488648251738254220823961368214081524079827777864885884539136711188919366709284819471001090319926145530959121362202978827641809218485103674391102398832914940175824217853684251983342300873156725691792908190322145046424711944697321273427432711518775185571809577990438659076299211600669693262719660898979720325068489275900297270961722124618113173121416803102106314520623811943242040668498803497487204861045477137142719552007442455587438388971898024237711719128018494210231210112384021200082353498880240636569491599786677317078095139350301953405766338733795229547756824480508142471479924984585449350386931187366112032064532413115845948812660938107278122288702781166324858176066437437541398624274024288071235934633498837713596208901517073865702836936036208809148004738323095285983300375223511420083647208217730813443944662132471512897377961046230339579383952624022813644220132159423226805850805806192653317734210010738843454694779121306089281320639074296796265990670432302093033008340760176033686286791122045658461971808606552812663693459097900760295451550256021121891703216224557789456214686297385057849326863107631868021770432422595380933544769808770125310955200511415349294269024146188323618264900157700831772423042196583621724101680673124797493974351195220890499432417649095949457624663229383924865152000408537006754482073107819574211835261503242162125581835437767668109712684074130615080684936570080365926240355912596766899344600306290991334024681678608311583323782815696485675288934052190425027839641747085207921069247145699681108569001403511803416701236491513140318291815754658149252684761607974319161885888247686656242821728780124706033009328652545775853005675845357889050706934764945452230889412203780577653276647066167894441773115119362399890248869789793159866540428268764421010823599208050488963275243403982238206805931953633967057244612026738905769286870155316618568408635220303609923917543152314704250857790185708204550802135753943598355308421298639360616904118954132978906638165689790659095140919665032542630713722617800286984045170065168415131153188582183108072058074875708830373083575563789770620709693041419922219318062591412429210613096540970781454858700336422677472796662308539225616146217357084197870305429408073287039721612490094177504717329812113675055248842731238221414223704678999561086018200292972200697844107125094369995930997137884435401376812011551636350128832166565863096680376161619142220607390645913963858196179274246246217009628457949169350436523170633401123571078388498193311733578057578164136247839238770278037709608246507622839060293177439517085345458264138784149080441345992491331388041211068282781106727845644630803058114286947581376415295042923185628529852058723754069054642757892920332786810523984432560641136087966974701304454880058595718327642522202126202492907508895595623423669604663840157030557612522576075701719386756264304808238459120782125672651261187926862773731607866270373870303114727045680170659197123239629555425387223159225254007222580830900678549093495842711248062609492703012612462765905083187768418349282399369388404679002557026202913133176630676231755064787638598766387621286174785147253839399827775694447097105457765542500749536090129582145370914131252895222175155494766870309231348047566372069398750623145616621058999992770764992442174926267921770915540201846306270067905043353430696839255324438958687542068443976052918292547923175130787799386958651245097575043817346811039916991614036601781048274162421195968386162476304013142802636440196223169064479837257471150215999639106234412336697815414787300024503789874975394841320757679819998017311069381707799488656026285296901809053363509732242819369598110116768576339132895023663078000527530723454907599357664657195371045558057665440758725556726564659107540019402287522803508716536838712505573412053520353964616887461209905165349282726788403071348702316136518844169533853000268910427875467767068626397084156736413084853614471548780157565935424796086539070475801279689410600395166220736403903275981208251907435775163764573426150460813428345654090986062699811593155216716795658619965524608006237637257957420109107077006143477248019830679764255591535051914553134933258126714225859647050200551085740661122982070116662529196877657189749315192377994578438265811060080464345215897643242810846452335869320431989773450599514481027980009033465064913866542487938451181678196717975099096611856154389640445962495515903135902517233504865434260054081508246546198661128715941276438750421729128428729162153261046765876229143498248948415401532102802180955826104712093488670084634447999223813855845518900397615752131097643814444360524989817305373385498799379871263752472465339855919204337553215823743229548239770467734158364025793697946235965585817681692547327001997808852410827994174880283468877789622063381041784567214861855354518370164959916187553503030874286225403045173451409342789114811403942959479200996262211812375776843691821509668660939589251678461448172480306030125233751146982797166381296855644166047254588108631865249476820640635492948333098216943626241293366071002173771109308404378525460339395844549147516964139287984640552506553027730720970200915831337408672195828325452969111475074818670487432569038338689583652291321899120248176587647094553684592026555519584073641397093872519304638349275362428511205880883105742499896458619454356451767223914919655345015101607410113137540119893679736209578455283333468919584958461877789703186229257562932072989677671821103612639802047213178175749439288735563583420268406645742296569540811171972436258569023944420692109361569454360910093005860239797778825469876548175590596426952456853506594132009942548287405153963745503252511397953415624757812997086991849148417729362463652084750378286858157988423306269323919928846302979500281241466598761767771842422729009257940517075644830447843555595184181855554999580465187721086961995541592120058719403287110457569627955331663738089613412687513570822648670694780891185274749881863227047300912563174849019558442788327696306756321838178502696742097337256911165660575782418193452196509726799895700309170516228005272385257063259761503316017607899603801329609200673627046013998670716658442971825096260076391703662949865056802456707469294290102297171363410391131593494515146675144990321109872375062586158164728712379907284554433191790143751452181285058678155901463979664081282978151022756643960631166469783445595601774250913039692475070656561813214687114458025496076181099436440264266472495148303452022148927588049194046661480479275889326087222450923699729608389256579411756650029454768005192547705645998296185813360938089769397226681226506604416725161741733660706189329591942720396482118038562618924445104233040965977661532934946105870304428196613718327227109996189206827859060075047324321033549477710182506177989961429027567428440485654261402860583275270246631939691740195684676734170786813185019915204699014124813295622105307367618189869851988135885372393829063210052279374177613847109957479799681443009541879930889595752179736479534943360812662509935377070800436550566844546826605628446260470001019342904683567943981842336701974643143195992360301712496405252895769260434505058664635601323528650661857284148653959036561565412959760196844435268761064734381272186032409745623637574542132168523847894809390070973166214672098867828663093921399428801364691094438117194359273763059462597950536038402785112548376886170405733362195838227062348617946029001031890423252149435478381292626597636010093326151629230069175680004178826142262461677319027316175088451991759483390850855569957311139472922031242053730397580611628598960709904264744680501270091342011688966950285436627341552297123040231505471409193811637477029350329378267877181840481662584639400852795665640826119730433871092806256574025830834428580489779020548315105956295304088005950119127234464499816076419773466707168279282541102525631861193475008355160374514182104123073967387885821289706343055627684454153706356420926815026980387949321826369230082266951381008306512443271937663150373057229346636498756855902134086210256901727693443297787196846049688341133149318157388008315654057322760185312441659806351296307888680507420859514854709647642985544588297535787645441443924954871242812425139302862688032764661945645992692419432627392644589737231134943999793317145557406754520264826387327157175851422700365992851622192588889137775058234296565443917186980914498640103276588671609464606412645466640235730000728077714974024392717000151266894242691194422304608739024090404818146596421236182243256807656596580026493370773631316025516261636340763998577343972177783212411668978412999986968936373332703001148580475167919805159110537598912896455624653353074363009386790528498742429383800771701425913974169029530892808668435408019058835036437926703124121982627867297592878927104691652153029062451594703050138514141075537362332155428173372135971592448425968055099229985329312131353283210936669601556001903017853861611292721526143638529970601120404936423785567640481450694189164828779807137008892360902521621154797129669554795423245418684890451437137150189714283062278542088920859499694471190553017836250779616087504891305836749821618802601250131720405580576917724726675545052953336651172919187051214521316571993696671249963487406438667823350140362797936077324251914396930256759646901202911922153371101710597392206528279527030419074419408729976321729853816992628405515853068895718775788926536252598654370222453521804770614457766337431919235169591498835135592154798265216285871190187986083682401591815254081294142034933406787069028574360243374824386298937692201962002357053639113470400689155820768663770579292775988661047579799342777522757400881287804425519563118687643665219117072823988416820030435846688685943693851036595179534287071103808527164415202939710368728605738846263475362406483326709686187440996803140725149326286095809108728316030963158387666277836285485896072952193287684562348431249443758163390080113577165281907606627955359840340775453600559249848383730229350118086359214970385219358378623109086362852476229012012344027307612273625153487001724213245537836861424978802553029721495789636420140268083929140073419236278171139823614860560835534859895662064555248170391840240150961093112385574859929505747957050173767619541144912612495592264049488309514319866951572895828200164921954464476600542747435228589180652286512495103096428677398777476827298873784389665794414264455466743406244361182724502162992503630910166264628199940940969119556828908434604617814678028126353237668813661914560247928312207153129856663101002060265663096572762532720399087508753291017168209128088075707025875827623765919140420566506881357277501539425262981634947243141551763045283573295278188672337003912655837189180124945590886870365139953784568787107360180950334706127701362465257676027044264849720740884988637813316508014074895936616767554298556651873392042719258143158001097258615201451433244830957307849307424836255704885916800320464475479321354768593338816434436632201991022791115046475652518016279714270347260681207913486933766370246189260315696269439198331379518991637558207669906062709287047670585257774418274481626486381533354593003489644535597976628909558766792818592322562641276989832526755049211804853722450756772126497272541986153665257805167600085021916196261829508583882382479988139143547699653630652610564006565331481168352481610508068422164716899501995683832688645873193945177269841286394541493152920079461381410446938938742954920350255407844729448898572903675335561829025030669843415599665935771883309489112119018928453743835953200440057272407888458720678031448907883551362069926248078661610063456190349367446876476129855215926713761150622008739098375618768657826484466036207637291852350188309703141289723581112893885891333118007717337346051080110669447184521244662435418248137637431006692578168211566416946880795347188517036508843583697509184784051566737004719985455025977515997292422384941813972416439036286505679907619507633830753049180052386776816740061426394555615385361931320219448612428811410126190152523442780951211476190928833997654456244955234769882378959605518766860921714318573948005512507859935476117898533014052266201872635093336743694367976877807769148940925708684549056796536186579868577205420826639883079769114806234470886674508665989129121161626122498130269914206276734139455476159880618866490682517837963158022714410012657986084170105293836858430714549129621473248846163827720466099825121504650391892070760731438509718709736073404940980937470609947655510857124136767654991058787942543375399027733537829969463142297890478158728164947281371154850639547983509818503866070053140408335695963752170911240068648862011393661155630647424079021317526422802091602399569785779947346802929953148743879997035789036653440731173539468252378612820492645548415193402657144238538387295765647770810636687687908080981084811768504314828242791653813642938245295627308794488008801456333283313167834745186369570821981980136392426433145413051911205862166368532806675645121663284601329570219195366187655386753610814391488420181301305321650341265063239501139504335102520050781566154814753605678244454994568358424828300662409708951556251615376083110377347931537354515353861918069146698729223811217619835994921602585667226006053076565523726198992611676584724062190856643523187751714984181766377566264315811890941442466242905862526023794077962544540782666451336486984148862347563585620250624155716026094177585492470429420571393622645676801596378711310102394890506706200842480647277413330273508774580110978623716665568823054254537623730031694377609892325737133558569816841645241293950915922187458699175453363327441150733679630685167588198149366644389985229250078905908795654356775731470453916540219995381031754317620075082110721555276120751481782022944373558036437806370028612856245459024402252545430856262989772959644274523889157306765460727077495028632605524955065200993043543725953984755691672783914454681290856517612529387587822544523693042265746738308691550896210184233702474334048499922904685440620804428633424981213260433642593858823405737227554966015322007029059863183369992878345391726099641064589610694745800659584781383819079978823960064347847513284996239894030334350946999306515148563025471788215453702526760307495382358705705322893111863040425527197609153189107206771679573758881906281025848812536012422905154277427032085488887890616216112283215968822633190939855858533619159960108633944047481350404630414690360371713453362345206754888172797599217169644253323261297339175955048217574570461006674021427976160680027837488725148827334508465013650688115054535838356801040471254774245019543749702825522320224409122429326142999254396046256675102966019640533441902467884663451768289992148654773393415332733842562608164482244547860985341934754067973166002201139482333695440874699978175797732778886739302873265072476858474414105121498172295866152334782545748696327780007778064784528097544523040229916504001001210504196774017919432284760132472856740350407803691361375580137485540856356970272371086884971566444527846407753909956563950985086456847983057338085145949360750014925055962523108552371389366337209966683628351865582745681056643110389389410278695475688757076013434834112926705736778673590671937035603584491560808288704370258333081366995917590339590778697684612903129630520386255228701759944816132950129611209810542825911542447620727784276083548084566083598234634933459380835900695393275968275277312140875652348458626261440540846344561736536595847214730994981994574585649081017094324005007511213699978596416251513611340911714716822777453312228917786131044665627015430806017914593939450046584273305015652781395040752542007667787646314710575573992187093451134146395034831892010932496259560004025463907178557576375960312350261896110014997943322385680852310969773549277801892874513603569105601565630465291350369066169455658376842956139195630428333507971855103366312008311046358522957119779325343669247482612376025943885668157282600297475071609697765685683631895513428198651757810758340954942506311094951914506623187813097815517686955158420770707500233941375296849541604145367438653036518335138656558314726073842185727689881730159249512950842503756775452482459081921685369562721008116142352240054069095809077041511451998225653766478870981674510659192878487823108373584557727944142144559887211336091468906033226507074985191857783563297650137269563011999256805746523299998375466626239957616142837223227190419936590196506846465940201715070874664483116021744820242589984015524685458014075147517564204771114829004058190911555226182197851354043441435401135324784060724956818077134928648690303224190829685911436573256964603776015188755221430628382450081349403581321168236321377120812107205446710226454124622267982423556495380241938204372409125924547002839336712770408272224212845427664915949942294143458751018681744444872606653154152175854684329743196462240026877163671321151013460524134976956002773904179427036749136848222091280574042281141242757373874265339871361844366213799226287202563040566546445586588899548170610728971253449793242087649674014308137507481648677557453294977373261920529433486602264756749451369526872132254181926570247543812549852119288900394953368928465074896834463922059796465036642640344487444359976870285880292384066750686611349611459611791135760015262313117522196684550896698739290246681392855452900633199014056349087671270319327396660101045162543566036371084012386917078509082728342104034705340882591690645280518339313729348703663084945620943700134796665801698945178056197754068567577761197279706182291826003093958146195164119066419639230188240058327699836468523803361672537111769309978406642900335727570030987765965965213977691282777055643044978886198020468380079626277756178672878344215011946395157561396511323648424711128525692739004713307125361952228696815579762348486042566016261601276469523688730976968103365891488722247166496413456173741256276676033182088370590558142365982689421817624983722308539244652788364250341679998853320703648815427125905825928907895096119780700053624247430973999189851836560640650901255798656179930320206750528293767661966526602914421106251291701058833091464535166815979990533144137895262533969630733856239844224600256465488925525337083008478040994451405103828372681231745765198365392694674394213404465683252185743123739537209448296321180404456164246031490186012359121537908440308283793251033367618616274282044476922420918650969295212843878922263986285649089137515483878196412741590214254633361064106260200141536164015405084088240073628228615143699947570602580105639720025566673766296633348626599421759593403238504190924171776640690951853535959552702022052316345032910946189715779383967026154319123279807983591648771094228243405695855922412295247840470872571350589296338359337677667857861565875427154772466162074370009418352727334160651422969339670634626661508485403185161620008269572044431149418472265715710769851506094200979480945321410742708910893602877700463399983157739862242496450445401015567090807585697295639873490017795664513833135567407357455578540502753977904549019282113703728086896686752729459297178661218653120595208748279814591654974362676377951251402539469401535129374441557919417858104348722002410964469010640640442568059018563586067799137226369559271219397479114151198332601897739772797815841699455293117761361547572501282434932470652159655017092419228692651639797003581467763069960239103645216960638348708354263118328337646040280945629157172026622322169894899207264225367924128673360976837691165333951554784523020935272779884944281822823125505782791852574061883060594598117948393528762017437570870759745450095506364835169590908126191345736685336680241931812242691700771599234421157206468477828393079233374790886052585986939877078410989395122567074534651987355959092317869361089571719202043365747513852715746909266838901603836142896381312750464516771571952702953315119843464020660660217556271173126759359664004877662179285220403881992608386398893035398553692750007852899919432720909010245965001268012130276039623032534920750822821175711097525815670653088351457746429498043470765904292419185465096351786991162056911813046523719235655162630837456285746196032632388692993836919769904094066820720059141936981309136638435005730883213705307890877668051179244091076494378390643500145754789141247998897379071099182224374377484993355087315053952225976164762428486925062591389458004210278162489534670997731259443517340643056705813918054987459228630362819774931774642371294063060395155284369243368133978187260703123671702125825625862958107785868314724199583215006022223656385899232867098331467794339237274700629539842207098846821616136297848431324203624212534655177895526277723782343481417393651670841687558513100000073548121923059781147081844783373607455630521025050864358761111413997183322176386571435288091296161201896143705590996805453178900471152335981740553861901488338751747476570880494781843449576737342533911215055556129804844162452611021040324927238908333249424870306336869473137815243442373293837949552802360648304156229406913900199946689073472757032634730862362691281384172858866722181161775469580533211333327681704066982733694758115944834736329425683584016465856239484216427749521178359120724645814902665235423872446639483190912072867012550012894541601173887200611019532033837194423139816528570807592953383202681928195849128461872855971281471684768136545675433481574670959671838651961196501580019795862034093573949504800844545550087082408907388513202969635425903120580265294033907969675292836961394605510378389628184685848105856864580662273477771382213739821904959956242717989144368605982698374994875917772260320251299798340958607679709943039615193709359757174417163820551450087712756905820283347540927350620999593457765139002322207142969185329611297932336126316215730399265446081321499019078527528425514994777162718037436334097338112294192621656072232738362812036821000495423159733146184039450176671573962595497394266958688600157294167536923870493032050013548337960614722318795391445698315452612279329489324559351298702839814010311796524101416432424014913677713110651045801053221599044792542911884346662586961885139387910060017184712915521431241237755056845875694228241968403316401146776171264944938798577324763065206792019978096580222627117604487826478913847545811928086722919841079597519855301289377631855599595041917997708803410852279488776797609504570200776751954298223596469725723393156981542175887617705921520003470739793086043487493909654157549992387023899459625972304554284375217948992873281151090036432561986543133807525189878609282395291671232665516725968425806288626714340463310483634860709582954167725399164312285105152508394786826688538570497915404884011109426333502597326272757546691818644944028732175660572787785527773002765872309435683677434563520492063061836447376125115298178215119085261136308213108442140068579033900010909937147822710133006449654768884706306536293674141345934707454713995696521290201555005729049979610402597649319207593046969353712914360174276352929097463791595073917222440686102672198121346446628463354499280146473272582797622340070170149283758775329839394304504851960131104991083232810414078726708730994070716502286377406687754948460246360554385743481999981408965593590245338261160289558600332967815010718140853819226211404589666774607842919749704182475400747985673348260902697895574606007517061398462425820725116045066536108416559249453341015657947744272436318870546804246988346154810869388085492164869294137380409954645285582940411139564046969950089585533305005516601517446749681505480451341030884111842378137463751757190742336624544411853954207793661741459700520115676771751039569409109465851142016667500002288540895754661843650774045459510198663954419571977737351355645257646696681419855918836598248308765840272668820145576633446075412554516924801090605993141699011893064597254966724147284456645521750667903882900542914889895266508848187581615145852025692768871422250970693812284601247187873190172600304996866910902340725805018870868178669859477802541636648518366350967512747343694751720152164886576064379396581872148221119230305888555823119016168797121009454168039853473141778147711142224938071810994964268104114119936637820472292964974001968717571863114459603785771938975806331867388860397315379028422294838360435717690247781503651152561830021953470366216450863466083124589909421161752285383216269148782912548489130871924743593259251363042465159042491890466086613396988556410735611396612241286905819336910603720608150872947234009199294983171557918770464974766199582545753266240831286443920091384089755072225333929979241945246630336542273616585767971039554041959719298784916751687372044453443829659987509047750527572941335060604907284816603291821256543068277878233301453976518070770704282058150244594428241962745535259926799034484647163317445168923824577516884625230176003275565350355465219842702271814554232875701751313739241356344804728114683059334708593603252010400322863556880446072820264295244757152139844101170083312970441428222661597494756041560327153391546505673119469652085482464417073757434400449467233703289777566618105322242553647631416366286319281729921882579302956276418615320142757467532401171215961485576502038494339953664726652851898388838484451050520118648571145264305267107591077699592455814148788720488746037811034029020734818716219896473913418682250597136932461924559778594898415277415470415155665266032420469986605300888503293093437926041332036109822422846711345324696684712191649350560985369607626427652538125901181915315682045445909703697601465898666156963009629198427632144654988549587117077457682042759013103173908013326745428030847851779849611232913505931534365656523764369922141821447453306742798773862179660895265281610486660802312188722284925049744452396630502245689053450275274336454228044059873184191920252098526993272131020338104473134167269577287478148119738104104867960128517239994161451747752542663555961008757184469052154301751943840089648459453995497630908017970553649967612170786705748482205414445119804861299286890914639723863258107754279862472969203077468201684483867923555019073834916332798588553768268443997540723531990902102368637124919598981701275363955360668815443009943667521840399886699562645919679421049057585311535165206623079372859838199213965972670282164126027916476808587404674554566522558769617081922675617631844705977838156766499902513769005326055804127549573638858068039869651379681086895590878014192870181393377069600164822082320772897034708461871244838640183476462526209721754995022602210810821443731840918175940879222823250213634017122709814492540434107422622056430584500440318281039714656693873974123475539483170092342133612232697158007534109741566610249457592888273676639463564507503640162576410949500824519786461714692206673385655987694757123546745673139428726989079881986904508311728422249127097587340964774892550638535772194820610308543096309309513133074953334027734847715375839656371801733983382758096484052375992396284818656043437372143386598229744310808558547191820740451987159104101590528034151143580192792497327104930980750465461899325399897643710425720668857700667999362933795585532970745688405548607793530359157813218818685094754742629630009587305826555482948284777514433300979989376490992904945289214691523517197124134829705948878050743841307626493101063636129219247062102555111244738351147879074281994207602969283879934184118375518174611090805157204125450345295562563220316728092689958450255203947052316042435659736346488424546522360011938805731960771590953733568047152886148949430602694541196811168299032607443212594908052753576913294472262684975140971301358354917421206955589467429107052145065291801433418438469929455152793116849626406090051766623105936957546399520834280810903476986128052146053820494584131670332240715986508718029122447451224568967907555079533316751181273042324090307174078404552361049849294031275013317434159680264514322281124192127521568820267189837092000843992759234309184867235458609383464770244082374832072971565520022442395444223344819534047636554146097482712026559464032711265503571957870871269357457931388711908663763899485270815603484776088662944832069909364660352316147945855749518534169958993667883994546351800533910045400913160250989758237015743363941813033371079615886702975747515504551007396557761388420162074821697080088699554242320200767088657511455143029738569971788695640551720604880782822741490461128860401451797619266970763041886340483424423398128465519381544197610262604123579294447020954521802780552027396244035080124604855294340833970241404779081789797346246615737645679665612209682933844112752111422240539682973932082115133948545746860913194675466904521172808915876797115430305385670013186210592339758480854702443131321413151090151934681924511982377898319177227601113551751975045414684411950643315915551557117433616981737980161724342684583052377697824248768332605026485655057799655076775387628213129449786555508318068085146432724746968884683043708152653688169872696181561543856683209440728101009124188224709955865915638759665085659745886186494958709468907741252699591312265911289832983745812467547621982988809442513830803239669880455590530461423946446690831940365469254153799238719181712409846997861902094804387940733895039223482191658498609950350365218662532557478463565237046332782291642804203767638111931314239046620772349562326882828720800545494882750608771241245363406545231405960402772256256747259259261872401343225578367564613160941263421817770525641640592396675269263500790607679727566889267080130439572139807448275984719076749238217382362695166537348696904378230819812143377169511800603474226784635390533390680678496393264106702074726766943785908324107293292881959326260458016789144522669867612558993820586316423712526511436685627921653086148387118871923492108950737860340041584881003073317885820904726917607957925821199693251263559871172506781734113063320496992136857362210063910782496722018318150444202242214456050670964298553925868205727915524064870194017665785130154370397951498905276172707515215771328427451819237208319668216740383508237537760712401240251132489205932957468391457853387277317335335327775001811556318570867268983961344346274485896445731553684891362818066807037745568896236293143649394954551836924080108650810156726680643965550642122859736735890328155374815887999102544954156797968001913557967416822423268550391590397008745126794074149865323550615456786150234970660666262613584661580385150311772100988105326762769047811491628261794109847002757833254014992253899875033184220523389053991888261409838679791763326887314193916805403527052861232473846734046661103111973585001069652406411443897238685060497661850982559424411515626601164169146673918248540218196014687838181043955119540459675829800371401330507211245200026834988969771924504662227336970558832048837195349318817630054761356922675706177732506869195830030643653943796574852562745079477570118722670466180346533006608526138425758474232691500417532311736863112180763374993319709105724367616604952081537417617966662742966141375338542741942380113286861520424081338563199547039595417310547938387051066852119350015974772924592338761688591485328475330689731779576141029867795502648143500290443132648425934144665669069982920615497801928123198213681288070186708177592559510967388043596661489446459122219542616492070081268392263335339577491700638121094546410305671939966674462671650830077449997028221499100031392405551954166422622508994943962200850411902976541031577456461795551501456666051257921937919274049515193813063778134432782636639367810475638457056704108493484960027861956433482860358720581678893336042812219490102623555248682002725286840167938281174442047242724444112284230170911040082594756751810750481066491623309881763918977498747273242704521794581807266368659652403681380219695922643930985072381062233130359438632694601104262304982870920286460448827354812672647078018996804094301804328810691423280909353033021967541442164779734740026383475935009421001176757161348277797940873850236120453069995528058148326314465417943680725683943408303163824462160966251794981819167071555573960796860705422424831671278608754169913338135146997165228170915160763497008233760738943148718842911939554423442313258133685722095037581670703185127562367052583801391751691320338389382202486922641125355716791833711051689018443229344856690607322214778501768948412081500375899542028872533535007820835470356572667018737278581749800371222964009340763622954655786067407089458482079437337350106693472364983939160533127569787146766826336239533346446287612532185143455651475914308099866522191873485207770283893455672129730874668379509910308869223339621188242980975256868588963283562468571747911152304236466704584126546810142551536698990183180268688096064674598597726832242579183550615268718866142992969106661025174810666923821344527799125899930803233925284826931586683118402280197037362930714750247095369088897642301150545738498523577966186981911806224086842249653079634250802352920809801615654057261376008117492622893255778315215914619684937909620952008938318976259233308110285025762899530754344998334485728989837407354883054805561826057194049062479497345705354940054342389408713817661110433337945198140560494049277107673608948960067701951359499529622864526022486802916184456651541369777821099119527147367997777055405409922275994737945222162420001945747585219819912758293800296627743258584501507600050141165541334515855256746000847305448099434053778565179738760434580902271935214083357872364555014675286591962553096796979615452545156177767406474454621027078391154322647973200595935274251627101793241156557278788546211213040353292161531868067862703943029259705240645816115813517619548392645152446175349416499533297061991780170151544524278781174169822635814968989137267675690133409959355046914260378164456193610417503722605222626126048871759756843050760795046873803869408949828920380118408622193238873477854501309059377483975589802099027846244875940394354537428226656937192098745999225158839389386922791024652497090908557552072435892084647011555777163913654911806873999106603936846316932849470819486978987443436536263139058886845290203196711927704178306231751939805761649956407212066917462492162925471905791120734914379466929881238670147884738945800939194978463195153635699204268997886129523084957278331024906854243569783515791768710987428314589865123968734228251717709619976915935488000382245242547164432005061292187921398658815528004991064132240099974417032205625376759504414695616016615933852261708054913494114529444024536099233215358212208638708701016636901536809996109390951721654169824342835857005792022029733685726342570470711212856825411558747360273147560937213117518008230136798450892344213248407462523273940657244754895711789959939347127183502172357461982206505502461784409669946007762015917195193433916639754875686113801732310139010120328491232024569900365589604628373044458934657644008907138993949311605197109216485653531818855669723077764010488353043996250170071682889002947010831341927657551073648424156706158655847095182308544801600344277897330010974691712399086332378769076185489828272437621389818675186129830008883202790708219257121747578395018805283975842688772345410343880202690712627730709700703936628442420176101645186353305979157428463118822420707964140147597761309229751514586068024075615095988981594239263011157624708357253791390908260796500865833928585470502467554486019196320402672572458921870462007808555542844899383347559737341589442810277552806536651458358699513829233173435444929477994943180727886898743637434998811331734599097731133297497642136365788101350287294832734845515753118302130650806523348254113090630813663753994435816539041515911891195482714725512747587296474748341058507255550204471524722098643798951432915104447565289262853202028950226294782027112916652748315205176096925280261774346728034169703638220080708531120129550576943184427158678285193009960065498920634478262625250186275190698977435580585226809683929682818882840341104184316479836821886913518983690599521136719043190027708545606477753720702060105872404468465132041387440417771489011222275670962195154027227444338257879211069405117400157627212606238146557093581971623913317201526413025505882150687414793934252942673057697978218364395280767862904972228790026087823936869039683516042269452898062373132780025321138773056891839420280601072401226414594252415782009602614141888810410065914402424060771523955237041275910217937645263613723745957469651817340620898636205193134670037352668311770355374316999419677837076809488389305458002982416012144523954239924692328390982951711244852547937271269194443092389068398841718821679799284927818724167662714432456589895174828150679293050457695552503300334073368652992779965640866389544425325828400970719343319936263694827587718799089235684598539335937626745221761112046405395936670282853355036865199044523775091853456903218288024699110855114928222520737057563728854581851551524637858720494574596532274213314349803407557457867755828139285478258268283944700638128078612845171297176934790229722026633438577429065249432039324735618916901708919819572284618118812708678793085982718727544480671535465580175569517396562714363290881897332770201487543640188250706626494719960216918099643095413546976111098027412836141333999126170674479795771264866444122016629431649246410002556238168086281140277527967283183338833120944217420383587612546730319123416273063815902685303441843737933386516052327808371584764067671880014760491956255822360012685048025780757322224185977383914065358422418542523896079168688416717306532238716092549655052002839954309274655041219879815534111600388247297915431162480328127120262641973244923537332474591607716628798792463960461109131448621946505607003873934452573864922459431903724286508327417639312892365874109091288851987936910804394177181990945171956484394724724728189587829926802164932343673253036503292911996876938248412960745578557170242552325384101167481792327053940044858206065325656465285441020987199439348077305540092750754207035906884380838813659951914980186414427436783767075036151070734076664278614994961989237755544407009963559668738323799101028365428412793194434668509286138880880711025683048972126999505805811077650824571492171936734408005389950863193563021443925719635076383156866341590909494937702166309006393264939316135812103999502186578808453837513024617321811741910005616897277549128002536416065009935447523389326963009201304157516227982590066179495720727566765950573182873366163331757639305340771396479594906259582989071351654476544703144584951901741097724081283512605038863878654243927942430050531528976084007912287273470151285589336828851980903887420920566695249864577632481057995754310276505392857488623534807614815536800122090286055866364752966731398300212622459329881379971987229995657131467733133209915735587764272600954298398489205223446648114383229544898781602326009137184709211368011171272201908894069485317969067020781077138645513204094583078973144277277514081800377784523919548622518881106435523619249555788931238158427885225171827540498283737884272441140601813595702526878310379300530711771758938388350201423928434890784670942656408812314941151833408992300114850362075950506825430923736258792814610112618982707508833912471303198450089650180666019923328780566631157944253750271888768486517138797607210829612637470125769742748467330110330864675087402959590129772382113186936567525706909038857205849384006155706401703904399686658352822051531610560834128219396387933285397935406074806948520582948360747424706877526988512461166194528584639295538596608336925438326772754065859786257614536756584303143047118484239681776029089647683074345894347058834102698079841481357042995262300378896607925671015177247975679967685736409825918339694013471967427089897475349518415681803080210162693447684825988332862077263971659570510554341848257766687393956671064552869693439608496246244564661995932981543667925156269857271771736167762147658567576786565946371309343477560978701607501464545632248423985811388748775752284117867591398029602934366774390035753161390155465686859814567876420735451638753507620480731017223984920542861040769412358586577037765790469752955043747631844308640600588570119506141722524015722291564552511210617815484700807073419781344607473910308875175358149536644267576838461689125657273265447414227009639770008583435764246479907275425969957506917608735267381847832300826536851236829272710631166120933234237180386606778255078163470639489112639682979568172025689678557317068286552496439893544917955033918424308029393924316176294778203203006587336351797084348010823301467587585024180629000822596322713821445679997601453666697681885043097837755074255249073528829238703274717668719150262110783295579284593561719776126321962282759627987024998645462731703350238790691709078985406547653094389016579586663101350225893733140000629948794767974068404393552262206301761295649581902187167798508879165666988543168608978824234789356652177077833402589013141354597140465505088114628045369198342816393519161247977206625830927552032611126712591212321620442771581534102831452757463951446505147150081257362396084124350211434939714855659541855738344107365250533651800422695484373449547272325205943937937512345424972387157897691877530507858425190234736923984449774083996775641032160811731860734507687286580879624476878854414003794112243725283124708053552905951021368532677674690234023558906184475710738661500706740225286757291885642774198317551256019405141264083314832039825666501181230247573668601674926240417755984968968071850203157032024340113645920858946487101950385198842950932837359269852177131888937918770647815596034773112542842890755329740718435485349461593967980677745705997660592914553841345215649856358511675819023278317175657372628077652729770499283492418501660870398253870023057464532946161702627755006245368013800660258884274322012128013901163461482131307980322874419481415197318078235542322931100358630746422433827619137698211804626228692342357761376189635659223892298443797741417099096280625991093857306480370537076933788482892634170146653460694608399568925268249276778634166097547911770001861459349768490081540689155955831088646130096637224982321871127339358793268922124662263339264621952184721561801054722755731474356852470149169384083291494955583646323029770405233772254674200011126198109318880642575916356339032148892078539736227660857177823972034250169957080382132353010522819370661897166805351487458174228746175227014125638204175504567319691690273342824200980678016708412796026667995328462354312155477909221674107540864648957102967536342021287254448570125866103794875282411100726519281616253801382476369646945255666919322411093340143697153245989910208664701525359210443194704089389209062164472357515257165656440114971805006661787451803385209408309893318972789121316910796168893599632427046961930040667933266866496293660264406150619401752043414741304059473349137676505008213396295007589010111026416537462478783680288640312347489355226646326563546737728260949406670484507293673375277399158751615624918314873426128312223001877120464168903783237456742720950745547499771417253123725205856938777208728445049897382367207496012093061899281772758498171562844094544222688770747364049769418230729936142265573675064802140324460335141980148724512077622134967004446770715744807232259680320340476814890384778844471052694832485966695346644283018022898030460762889246178901301529565992361663195805252592010127080856765361483040626180615363969483486567630922973724391798044423078098963416683818945452530505007206587111354161181062242307217421308891824322211086063587738164372978504299604154555135509116088388155464085603752873289587906148319406138126467438058626090844150716642123587328730798819151886282439602301096633362848629822494996196245850633656948619674213153249344659556965724709266604226856803895224100846749078000562447769580638512055923563331039997425352423649583232350586209993631603098865061729339937488833700522152779296088808797366789553685180103141509157974060021491902917934330371921193314809876413766452558306098434297827006512984515291646977251330269365630729803863029384923410757563165881931754505074605618343410030760828839668169681446215704162008819311174313829001626213893709917806547131883489295493539209898141768922803566654569089082948922418673716478150085105480274543844607620826650450599844313611365413066251379774414232875135552969816073037876057283293997891486940950754197903692708404312889341217257584925847687681699829981172681028940455955810700512368564232451523255093354047873991093334623939047431595581148916144304302347346505584921100433209403237320992135893834520003838726200685719095835499084522668388704249105168911758153476785601351812046927361807366801997416573114710278267020777516488904024224952081378341685457865361427221122488408854117028543774181200902988706591687172398911580040055574121309508635455321459795661657735836926371865949288225460825320420025012620186209432881841879670834781809506070839675922433938154005476779756812998330264359116597663518151225266093574254833781883091172692116271413787796484073973928766190577713795535195700922066945067832829506305562413511692289603083892575318185169796732061980334722286017538573161134999182971247252036683958363148699858770588164074412984216141685718731985891363629546577840154141460346289421405649591217669589014370206311876154140265503240552214538673423731924828785266735431784043730605750698718704251820995668632551969434607688828999477947404027297692567381820401546024666660158245275580259434764161417962275394443122734452018498831976644956249020585853475801223313475793049335273781535990536561093366035623548314992875051641359566001620802956255510016767748573112577519236830813245515923713733904437386119247348862455328963133866367057960611935890225528107681768951600336742728071558699069942525375923802062180022658060359944416619280355616038281402196930361032374309592809168096841509981584871430759568599765056682860206006676503090458574824293806119279517619891143086619321251168339042740787563164133930444247618603974330782302531905095181860481894104075461394239438636786579987316301809072467113613857379063632075425654029959050600042972510780529861519468255127913194351418764306072156968646364222063546266367964743530520472678264353201553096736314871832398173955442785146857897789569403277908312110075213852267762505917906658032380958245684314228233881926433317871959399013005580303937885174528104610351177172160881495324199076887198253787236735644117807290331819697000139260700368592184291879350531074134451724030265475275892397651323211430738437918679471994996073975096271146436934495019241062705869191736636102854487945527820681653936869778465517928977765563983440676797281770006876319472468623463640387494426802517385068303069922587873340469660471753864400138442942766028840857106766759904423698130653264719407728318401594370941818927651096403799529401289344443053375210638474088077525364198399989287636020210575814785559880914398776763047310495363397804939139397894636415064325446167716205016695081441970111795625373628668388291239081472140756191987557332490006028165136729027104578775781892800407041513745049602357791711768309326940930179976866150820565631413383708794064987115426951990246126772382988867670844510612268711663641262007096295167013794314262636248700816724072938130092648671964852404244460081575441420501385067290963349645930487863764886059003042534574411595175624874442923929145058606216929115345152053334263739073257801678210311948446820830249386542030855778624883748229171085874829541220991982367186965339711233846094079803035229066107744009759431176806109663784558819430881432305360677757839682426739694211598498077846269304027530587324879486409120257221281700082010502830746442916395564733294579392622077841032261000528976589315593286883014913179138384271718106575870450191773675902779752283497882536168146463779491246390298912952702868092253623762428211601351022841456725933003597065118145344673628636589346118309340953263881291062055681771465039770472209385485706759906353437368402014556782098694230626609065670581512565062811261836662328099173958043309120172463357455908103812681375623924550533008455303649699997872314398627182079214644781739761295524842381446293789462822139184960020000968500356353069189040002963205045146884894483661417043267733528529235079354346058671237039715777573354349118959578286055876214495988744379162722151328611673605330427999282521261825910244097532750958142892247872124307904905208858318699532932223650165842452165890781928824720032338300313907488370636400537159612693528659779951925742362569945669113539263044071264353384253355851645012062149822027727179033536420696444957807709226380070903464384800694032209963054135973330304275285396280676739261151579434688680474096806385741311020361713369995278924641984448056829944733110344080588795203953566889600300440611545302699199412670227233403850214732939591550911441478155603375542552090793272357639032504525483351789296954370491539781117440503966383618933728211453276922008096207034515014785766769448786240139895274151277476600901041268933798834843104688608930398027268831603363737324743639414495821792400674022446240046564910804432291329378113153947489547488935802903439415023655018324183343793121116055767908733405917769683623669158460069749063914133677526096082476487972714113283286832063282448794416174795203028053837504095313367205820094808915630434955705302987305607736634440674860506261344730563053802847139559672877667134914630028849727529149758137776587630364799451839061584423471789920480230671750285131170481617681646159624288539578679098267750102179524584896639602041468426380328576785151746270148676157401634190544043300283361796336866997131584670908573930734576224669445749042793677738523077027161802748953526532579142811962250672800181226362956840754457081189085562486002249104492689851222146371431457934186071932211775730298813462102239623512800181887187200895387616953883395190020905311218134395871705564991562115541237590609052306975721081481960223903387887605188426032836635791480519461610894280793744388834288994004006022608011744875463396595405924211690708793928556844689774579808282140478396476966394507010655721819202852588030274473923528943148656579139982069539447791315043899768013902596213765329609245083196792531833793518154390957146931151487629934364399982257322884072810199320246090849811630480131463385011161817452230147487698074879803105802153750297890826593110765993582041362064604745625700128149837757434889117063215179573409616082338941778090961308560257965717221244243331057769872365392360434311453016480790829039638991988076479364514537940011053373366759142721291752275416286614969151767010346199724356810905187697607954484948629076040082051418610274867018253570255869113917410023786356860286110930933853928619705296312616305026390137690870025590399124191988291406804882736621429956769905446593936241847153786312409537714137948259023458628118995539676445746223652012715792514668878762201291122937428181094298962516541674381152239393675129361120394621905450256154450016521940400393249779356267980884369485044000132868767827621130262737163775126855305093983820866461463409150111428307070496696038722414340527043701020073163273220870352401240519727460814837410220560287397367315099207786997382635601458201460767759720784722598531470462223659611724032593897986403976390495010521265743717248726337805622014347113429373881048850662289668625602532836435782196638780357476088792239692158219169641752639824200540319560665395840271736616281588260214577265240571679418181613528104381052713633931987605843466603824613234719363632005617609228914961877584206966171836424850011682352879827982742211119199689165936880037471194641475524717613413202914949228481211377510592523826770181605664933585603892069908389557803259389172339107489611009283742014490922093151700452922061819182742851674294195571704360567989463880665048428612683453112492276671473388622149927703368586042046562808442592843872476743672229662539245014014093235441172373467336266649535499923294218407535903873029035939611555824851183041434463997456092624787839458466734218431516936730076118223660139690642447315621393687285006707947476871333600079018605225647676225742450106980591934062980256202213251753487787275704510249323315162022710782539298331243270343445959404471596350471140053947534849247992666940672045263825832884916112167230525905682468961623734685262245535842032745515966914363027426695773280750033032658321360748720247050275136715252706440399915369468090283650582527117645969971250395657486117071778282840783338965141215946589976452547287858866130015665958469818881360589243067865834837996906623076760227531417190470338851473097643861472967199517111731476137113319406090567124595003443764300929763597638130922786828432586248678349712505051924091228612130636310966750398331394840771463580380531472342868651336644186543871882029202720171700127666358897363646622771100934825492105225925842339298745191860796212247568379053500572575658013234241819295564350881615457972549464866816770657049474980529315017756324244938718071671600651252473372762839478535274762359843158380811382441741391293982591277783843500503198688364702405206885418166017198732497749945893704357941857557152273928563544545046868579221879797843705104334372101240786955038663374702639118846027728146611411299567387283212521620558055452642569618282227535702598416338836634454266575955992583509493608313864660212761444406382907753253679485496281757993880084137884452630334324875735466340106773221438755682082663499993716937766965638390439841348685233551701560235236100635631908051967752307813439620691479493796742744638701956290581040858962347099530560979031786274061474466830089473883801770898721180695185945771900326039445849847835292301547843766105689015150975361912578400410781378292587826410464437812445733039549827833245214260958227902086923401429117193411060908341784342312232814421022074129169769042083258973540440589418336832001942716749432226981794844981830177090690774479018338071065760642086516383603369008724730037862204383495477373797818078607404924974669434471488448027511250284059043300616981831753973701981988358015219331345211252393887186001911376045890014092306344610886076442510363846793321970877773248275399160046781502123338433573503416616274909508381386191857988968094090483709707492409768572903794428755268742986147566375453342283255090620110466096142317109290000521380734369213655087768739859778077856177758223589653167144418371651017587355623012304838468004306847905233712012315588200114778142015459095420088744957594353807577480999940447704401971720841937123238067709594887248581876979540869127821381416967614964321863871790822468239743253058000350171016288922532991357382053786760966713402618870470195899800177589387447138275962019284874835808127051669724705107264351569287896304483420223556272895994315791954479772299151859760709478290047449554405967976936929624270507221955530658469213224221621877508371914007390973458610473823687913383941964532779112114073071986771499589770841510226888532962906945631021028701436535843691734699908970020536696719669859172309821038447095945564012153975247586615649797971912443611172570425624707098036614042740192516712271185660385914595418605561221082577245345376136238917323841009301709025626551346001499188385056404782010477078640729468582098988924228824538200402205850360288560623386916926702337245863467299034200601091179136713490779448995915394796678245425459635931129876764155926918973903474681829620188352486328426561101438301246316273251029868922809285380320418465594696353542428217041248209841130542728347009091154462060447825322085607936592201443631906595609262424901605953517129530819471129264372381227512113973549660683821139561506204617944445991809736316322702251575105514934156789733301572563912385014615558802623326810685168443498050847584216592620495539746094968942310448844445861511795874428110825716706353458473232235778412701421462999038924359746789595444480776430618220783862739446004497629445552013859758827057077718756138615384788433631729078068083520457413084555369104444344871976830297659857677457860662923119092780039510601969983361157345893729362082755421579466322947279399535566528627705742971802382389629387103074407348956312433410791609391290227758270297235587892761910410560423135999696365203513248059283339514368500322767568885524162460003312016161883425660014700913146214071305820778089200206258038687947385237486094626553634933347061024353896117247591470328825606947723782292917082823179321350581237847928466855667069572426657970155072020070469924843347111151412180198265200149483476687601937113870929904952201772788920128617225756797802033164541614866059971928629700458103882718380280424795332837759577880809932339635713336452303757016404871033740297551951219102947881432124329238949348500804037283916052863032557102458448144670483814916433235937526220980338805676107755737748070256364476418675080456424361355279158352961903616542066237636130156449455813882939966149868139856156458646786669733463586172749324875380572175264203376597512919932618919592756433010831887015620835624799488210288631896570825127290443473154653210118112344883701036748049067579080025389058378791621309112534590162627346078151278997635376129741027113842931720919953207758551601083732249513605249994354046106181111101434138046828667919437967633341121348764088109400851463731134523805482470877813870081110588893179903385152229408249013958497158973555325584409992748918127914461842478934739409121337675329142661438894770040402692458873169160745559325225889960321165970092517923498132097604633232830936640082892762928004821641760585459470097270302313808996570096945252645762090350846607873946538070669587806458333288492602227387815923693912812543831300010047579367296570557840682062494934703302025372817365901611987266774446143609387921627301189221485040064390617970780943849213591263792119024842617627447616093350717235026723533289042136157189945869310497158686016291362005639261779160642942181812934454419056816082420326316581119330950600464201856812580616601167827342165580879838716271966646386593673934370481634915864680010413925475863353378268335871986062759545896617498865248784169645806895350737522319176780657804573564856069802871659899439030206666410536174636259597870601791325957307561786571534732633744283581504897663163753906443020538936405288228203230408858268097670282133022562214556823519990756319414349349592853658300988153253609923584750000387811993135599175236301781163074823805953465464963796520677584744227549003898350203976905210468243998924786643699512677214251667383804970557735360794225072544412953235501778517710487448522085727232967571238876130730285043053164316223296786614568450475426457270212583582618553801225403075700658007337148342305668977306729664677574203862814027792374363110122072121849799738269638366014257499151476843426625327943531991787980594699307928848842530615748005386231268064279113571763532333116088402724632735585558394096199427546264843381634804743983368342300660411181024322081615275308452305607353638450854739897304477309851646170671485354072460442474600013953386427182993081964967809423670938723192876276568185441362472300828357777156674482047075215303399961612088083293820361384888905658539789944802659128368362842856702492367948222824605855823421202210169020449057651124915854721468870011827534716141163792824746489201010496399047854225011254399298567829257175642763006878302855638515286598749594367227683935181234722406258536829335881061090534847015460200860924381063277607179143391582814633656503533375314596451180891339866224916902760037175220996928393593393022316938052759081163464829564077813876254679981587644086485545157541420218796695435987765895613799505700200040707666477391339422261403323933804725233083858240441447048806299659025530601101101124152206996481427648819223471883308398008157281994858893363747987560213919592010240164297823352308861715787443293419420582358863080699832036036415868122117058297205678603392756450600336523571565858879845480384819476897949433509756311745198864673522028604864028730943404326647238639269489295125446990945741625710619288697682248530247730185324105459055542424339153335937569472338222230001254787233029224918979162313631246607824136086226213199377085575682303259174920067626394121753818587213451675244091561004485463384649350246568073518947062431489553581164965075107103269785781751805230817269352465582244941212024073456528250869106362756179508713246873494896732098119852848900185891699170813975978016358898169293120005617769587435451546421773398570739533584601491078681815458482649230627791654984775357502843719454803831714806003412662355802483694321483445187692913612382246872841430046798868215064557561247448492858192114522340960740913312912589769061583771198503619856136702900256314382026085671518995396138530752532885946329724061298038975384202245094047350998331842015775252639989664744759680383719217109332636002326450654803787893456461874991020760903407242588269398916488743574597772868647482725321293660364884147863301480589776277794989114203696308015723507413060495753849627387702871435556166007154563577068992269646777666197701372242040281446850645004045774258705259145458043300689224239496494919601366926840681964279125212212004473250364345493130793672219652368156598657926631245234863308441646099396171796790391923311232102946569467070064108303962998585749314241520737151394993714243260169965160208744752892618482098577804813645966808692291496291668531976491482704868066852627560932609772255195216529342675942210860719593420005149396165370503645971408683221738757683744500635572741963650754302080039164828240929547158656737797245589508590326399444146620465779389629734124121031600914716925330281548385721725633455731729515150243258585446665075041829331290164299145387200168147119468508133809408437237854913462990128983079212289019674554173841808709390792250764857413918423043115593453505499636078762583533231795903318748490478315735113153763465567959064052676848258628199887240899278862827975839413139979940196979534857865951752607961954387262750366274887291724630533287110109311711512207423734207402510027650447758005807637006340319104781683365643334893048835857596145449920204515181845600977637164604837631602363155201815577059259254249256336148454617397671026981404101310759633538104161068859017979713817334703024962309716300322707606888668508896914333860934255054090491822647366055180196043848926043301841128528073923572534442541721924440117179498719445534468752006320795469702228818319085767643011335742924031057257189637610581342753161800671917431046435797750988691780451119970428798469241114238916516236553604377434647478521241729474916391080336381723633124382049303119312274340149267564450845946939676162338640127410271726044752242823001119940726210272914996608630669692225263188678696480504804591739508092491348600170352306294887787160698822210127745559484281725179873414781533916510900663724267637745358464777444307877362595683650296109901933375893223601759482958043452176469394062330744894255670210337731575878226943161653968633710729709518885459704236505265039190854371952802985352559957864301765927127830068671296265357722869832964381685875433078736499427232821758989480431654773680055052408187688437508363631448970317259905909541284754721019667411824889567496403215336168476138796511366136689899593123856545458695802619648995945971047812077853466569299194050510812493104863037951369998099975130207604170395703478629736577187131631764269301364756949665617624991941282976398774408067715409618930185026540415817634196458102027326905838995958096110540118909863939719325855731998937174721269466506818195056454331644199305588137676967554886852402349435968543972735699884761925713977728179763587849014640071052903098733264305769799625708561344168708540808602978423790443617496750386111822492300871398445046179042466098765376293845330430454146129009746690285340030184669036459457319270489329515518467591339782577866091516712826086669295044830537965331924073741089165406000917161675504588687848667691322353395357043498068055207858419271330142051522515907962282248595789459886369545996805277636502850021445713760523197252081984047734173879663149578981617158448098412676810349305446432252104435323699334795840229320220360536310205504716319133502825474548353403922118233146575536287816480435357956573035693245187025193935824174979774258302080991508879501327116693705147098919336317611438033509669971529603069708391124925269205228624263207003366942278730617628871881431981438291562345971663152150353644387614509896607069921009375269460721448283188734025719536285506100787512622727332906785141383814539771741601561613961522944853501858131879024077310159560755993201675565901053870568954014704668102386314697658198706106022910830265699935824256252800437783291549399565710147896488754553729769647373131409479761963939200111884980055449243145323287682773300732639271535412094019990136942004073482783936678601698048629915317373205001592969824100607783563427453218162266931990577742767431225763875655110853620764846594295902174801286924167455203320003190811742890073321717508734136759072643992017021105327345879014217646042971638977231429540924609292921265993278373396299110880229948142921535355657751083847960814716105039259729466248228000171599993724320676817889664845672880321240118177763743176566446032603218472349728420519002526583651588580771672522607759635494016556033175977443479802330505469101583101662366875267625057027762930822866640880836244851559515855874435104934590238312668304773322954611734079207783888674780050822612709799818267589582457162311612093340687246309436612938410473318415843565129623465788686697327857812199438891710276252645702221320120887695306123829996250552478717318172159029235144993708452013462484063646620815298445431759882890124392401821256315903284256922323064075703386730217674276553285570763428055453523366662690994953896515386525160586367653006458348276154656603087585423543765607057384341053059111264526637129918151095320144056350689776404696764773431274704360824516297331130330233259996132496463050344207092512860929877872441755389774501101998776326632180428571583798949947494041312485814943522363096423882774007874645594740738989037966356408819397234870595115439578325483269066902584966761747929627756190101258581989374675152374941059253561477587126171116494206129443581729408395157268589332645303487638779204953641810999937898813642223165559012824579534701432237144006708059885190273097390040227259864162479626691514783362952599439084477829879168831475504141322941163227771939750161870494194394086269761408041674263956719416673796117619848958559341751278699152917919408759595569806600906449513995335599981361385832500056501084883028429258687358362647886756705672330086300541853559914441532496180046244548067428581715630605815286490482246572612742471525990810037720185112647409570358993888626942671560559891310028354829488378248971617109066837253544847987423888266722043014326978136575466276269334435103769285772219094473878221798297379622487926917591125061603153723368043426711215479976093345059173931617047045971616881399103278495328197056718880870711888945236251959584136390316610924525026097099972278318655469971231683842168959645853204935099605563454188194995185135970460965925847978847153525726634617700370248664020758972895391445000505426092819016231013276252838651672321516452443702345906393655817694152276971871010675618738621170420960621941202160618265191294677248219483662757192124813000623067124261149825849309832401626276151335534268764053079028608465553900147404036051124987342669089003838392493375583730777568758738270397984751559685252362198426071221105513200610950539259881739166613878296843068511767600520687681013481444277071060593927360449992582494571176682016113127676673856050303863268249808613139662262909116425443460837732815931865739547409434340631354960766135942679136956148246669905979136434178674407731216459781928157324768573302442873990529421787517425142988813219041544577264497544427350895937735468228310389544249599347506681023008466772347004162365020572186534591241723915110689293645731075516283369725440333070813080430232439710073645693537953285233652368898005807381792642881751743197064426680157761752494035031671921702386585145007525626298289532332893711554467286476934746087627777799511669653711813522749960247661058779842038996856798002149247541575078461884145269786359014722702951487890760755333966703965395004131880860913323147771720666760170210348205167723007099692297952127162915309741528883121864812937563242692096926225443329924665208800702059967760811668299580116372605392097146666859037058352722369545959529460104008933104239979171524703839038210032350461495685597608254199860834002936783824776268670438261540752648877654617717957458943194983425216096006045598554063440142156632679067938150798610596174541120194787886503923540149326079120639827479837652846618409076144653612254853152253675214953471112403876853331222797193478157134436703446945407667446155477470773085120855493198953836763799589376883758812317394843682900835891965415249942653539386140950333054068336551576517884489692505429529486472216239094032846914226693538566821559475439241894859075670729199575041950529339078653252956828472878216092190973656181734834141770180879804965726859052625011925306689143439321489534649120301666430259090037905755829667918747510055394335834335438907502588397378166124070527716111056671128740526350670375402768026931278509174161431793326608559619158100680148458281471399441741244097305037739196728333700750343807191486868578335221132199755737091774323973279121128682466826011412145769448619680656148643396460361401681270444402975085481916808023833239649757198652283841738618400453240037883792310021684721472684959415852818460793511217042950535935965685522290040318137239608655756062084021647893497540223119594723872680374876890547587062118318099379916979203560672400497962431999702556228299966626324838465435017088918849937254564336419872162375922783095356489218501496120568463950236148189790752691257530628052374696856149760122924996246417426049462081228346435744389927087414454564679332552717909327192847943922739687552664373317353761333828268716760519533925608997697699435928070254428575317587528079295104604580456286994744543207566177881631461743400674281239326192052038969719870965585723386470042398012042164885573768241370918384875872486039636342069242169781734164033491396534128407045060288183483561467820701240921692940067179805577190366939123829296171251748955665425868381684228496368611411291880452670761397071285662622407535305109210730180844596766117589097819742040882290173971207228390441709373965076216020726347346193699498703840521011108827122185644121943113776282442268362048734654206597806083434699674358183210239354706251025242148049959146563635896501309353993153559954338260327715186122742069130842967272331763005811370682526129856511285372474985417518745797900620387659505557400503533724541417997200172888946611459706636446006915068992493304317566340714697630536622461889663368222391257036292585794250159448662548775962066241899568869853330275248725248964191416407236580222038567164262509574402842847405503614159615613043513405496892403437468121225754952995216383421822931325418815711700917165308378230743627389143744914392439909922292151323717875276601718582249092165585886919467458834582694801828097110029281680377512011457240524748096014353183284741026525684330446113460525663050367790545811353493313353753314026264126809748435347428668264978944626676540007898245160975408445705825133257533194593988605289932005075936132552309961793826914385846713158130933637791606846672932756421588928545448960182569336042646236978619466239618310831713264150059039367511824512768325993819227450345800989530500451843305363260037006517976957924966894917673866145840284220077698758855265322297597714543774321666362683761260900319961688084217770242212301955433564813303382876244054884123864290442248179000303365084706881853100947863509336622201081130330974162915709596121835584938561104474012274268216344419251852624993602985822542601862487932468341964703000707797932434568304304707977082943423239549443320444139726628513631282796144726687077709343891510979380548130098020754568097750835520701461103145247906121542591951545565347177298426138469657700845429986208929613517107636085627363016139818526466016033501540899797401497529754304943478932009495393499663274674727567640468481893011168881658190385670988132367209826554984331381382939515086296917105210199064467912493569387084050239061897797668377452032480108487408820157766840677920880581842729018275316700438725376326155444614043486466335489181394890468383583055006876308553577030835587916593666288567821703451952495822547676644477659780283389796309778358984662788565471259173486173360080050691068983390676959133078983641871126373896260661670426049702181523485461318077845540861931631530568721546065428771697401986695160928301505535690792991603927704945715522927011714858491642214428093509769781409154854036480592000812777355869789665462712795416358644538549628542474690201898129892612234916321474276301451588090988632333564574049085299899334918106827363374049018962886566857982827419896015573906832057376981332990360324725987652523333862588157092497962118509834102384297962087183787792633663666111600889735957676245693271949916213672236166534337217437197517548619391515624854120252967722284505388447008461395595943570946002869327971974308853552466657708208001562695440416087644008303035009278449793581723295961982444635122232198740252604774003067293773249515623434252120721952096121212429465874733070967599658838735032034496674918144185540796584866816942003043647469870929296130407193809267817081414471779487967106276575368148689839483903144871207155815539210993030742808837278332503256371938326738896306736844567383636491218113213525889298456139319970152184584976749162141735565850030935898505544271105547806816006312863345116298630228159070488490597872730380938759239498877260441071141494088550082564578759981579427122134999039836052748776553515661886905938934701445768665526952960555056054066816933636473749026670832611406024484311115897413955862775011890638889785682343392329176806361741116787565690326906858034821399903151471642208412497235104848845831979423159613575739394458674854612532570297412906703314661527670685929113870393703611091903017859108535889410385118654043730799548390527872287517172905894804815327875505415545185840231831507008619555775435727835129649546733871917918414923296734774293102929858609083524994988393289265213878317552784292930932408477044726332301950452696405938937844132428495399814895083928608984580563283516688614164762764305704348101327298124884369278718011600397544726153139892369882849036423369509131761282729005899494514510512025275401053845497095045501081018839264353037974695000888933175591002835732583536946133581890546394323089415418164460590775238031790110674136412558566964866280738333429080867436018347242198207188133071809212011526282454528853590597287016052149513803821852580071850076818790528305498166719932754528040170408052602746252847922115758474722685681596405662015620991481288107681627764180715990584786328611319912733293990706619570851789095886922247759628493098604110760442436433533032744838670622818827840075860952507283652981110468504474643895926384098821263960768525886999124785489953116998207260540113431144502841856655979716403278627868392065298948640789777543180748976274393748046668761774308117278426414937274113993263933864945243948866116410277472818304482432843043745274530472977777611589175125742493323148938135393529431541317039483977563148431833153002761161363351200069638176680204419039103683684510133224753549337298866836058868320547709227547124874204195314154808291026909657401275451067563270477301950406825919522495895453904798597516645326768978635268205972861823733600409301044019656985421057031791808595410967521942795115403712461017100977104656451441026161064995235925013932945769694449601291000152019717730583079532796561421738860202451293966436424052824919723143300064743729527373316852724634760155906157347987101115299163010802731152855016225160361269759140543884411064424540483502143087560874570738137851565239995299757998877991719102960821721996354615223733462119818244331519885631980799915742198842279923047526934370480750775194109649086226214968611572441892064206172048968254028005728111758614204693491302325539295611159728567279901008280241701511449753563019468008289046134030563610536921901180612732344597865415045945052646193897974956557726700255891188969562832784679671988798605192276778412614430801892713952848763071505498351193203369616304531959616267051796339222369889993690426314254067764599851330663005634822880521591158296334234470404489130071971351171952433008148355940869437261674489158618081968874231117928689699211666233613412556732931839690543594259289687277043290425641140735234624899695888597072206021552032112308027530981350921233763171609773859498611605360607073278640961419469652607683108456903064415489588747601574325632639006598158406903639084746664525077037315117930671626553757035333928512527242697828024200785208867151765415326925661767351018776056015644113033133607792857371046225769086035386271770343900796816287268445177120579188965604203853393419589679640587989741945055095429729134145353787352941901871400760383254687266094813399046482769143128523591004890585860482928278088228533539318077133299309971775107569547093472379449588434505843658441181278986312850534307504788942927837049453256244800027751171183004366402455543013354315060309928550050270464237986567995816949707918472218509108155891827362060399599454587359175380870619463559828810203146864160104566741715816641796523339316955811261909393149186459210834849276026545129392569027181199481359428326244244237732360304000174604294930106718498989593673160773686054237652589218625763650210394379535852711717499955968838249621801584631364033067508339025207057898933185249871673948033847204871430966980265548874650008291259394212819325884258500828761483275363064514751000031380471698772302367350804096116633063962261944728861529491926057645232396811338217163198529476796599478235903331504148029249779906317210746706192208169305369854759549586617440033704100136795823658014827631018888472686712866418960726987703265081729746855533131442961776721270225405309275403424464695876800477818224065042146228124052816482680477726350380268852334914824009399085746592625432842805687134350345841766246218943331592012375246485571344226462350239748877785690593554206145761190274358223708284325295631913624733897766753177136206333428067689804162429164994684969065635238239468797630669032924980187603590083730567748811267890056365646219304707975423163149275112797915968322420596132903447422273272596801674958358253426761776666051092533601664760274689622004621347217262263961122172059151135319204917026316671696080479122953653085646372877834859625984246766338665325091139725221439321634348554119754077850657763554015904499648283585687600419947944768218993917970582450797624952549554663085624020967802147878356843426360006438825741263290945959935804423362294113261565041478113491436022442459046287812674547006862285419181422954007814771261925332699365284797011763177439641384064978218367730723800141205862047757072956429114558872576704525444657636138563567461636484400563793026231737865097995546120730863036436128420155037984404280937281517986236303782276555655708499345849572242974019591404625832508938075729876692809740648870914319020892852766184665964609600587539191327145987347428475937750588969159835468742380935376853595722928683330649692356127151752542048294116685602733472407441414612345962709208570928595354412959686048608888408730833612727878530315571295949358111225747999056635942040611350197074046892742057674989221705607768982567053074183834778471138010165406035717933390905336029950181227557655227345992734918853755041206350514414556167082248385205088054402963877797143331090872968764052665899453937701573967869213442853901477925659690912465067860536753804580250094144326185285068598258236151917106449182620324827126074496048381051477746263887968712602037822999357934480261157109619338365983534375962231518502812703882743229741416045473574768425636899712696573244109044869145589029534203842998022167143543922280716873599286716396730185773026291607366446032806514074755978374642881683850656827791577481897380274448174710904675504209383980114464824246302921544401677025905947025504449808319381130881504402642598940283432664540980494102018788412464544930552918961876752054255228535649957093668316767008702227382095660231079401564702041429934816484852248248537104203809713838211049208456174739111934531981786135140538886128287565652581325078319147119444995343905164017923559990152765768434835947859356463282327887419600678803000464955048341792504001102640194195393259569990915501348465264301301009861463911703086967471489910937605234282656360578561151233059336708665676573331942750661584691205026674332965919805860444922741197307214137329538972928279653038900160667176756895858440020621974459009569146752162851219694981762097872644581706387123973131851819472561837230841172254474914973678378784721711971359512539257014278666666271252843581736341571857689038819999696872871414137044434299900720762071091361367362515926499365762054419165029158997177784572716514174136124253214439732152719296831940449204089743803946464156468300730632611232522944562957289013234837407215763948923873612795020982285204463732922260460514763205734896382567782567041000421470701562047073619024667400755560560638433483470310065171206296524453233222483942737232979950503574858438735577404300413806684142063149729803504565476155985969317018494578679370048825752928549235087579596799819038789474964154248100653648813224991570604496589562349962641518467840089656953521073918525484893611102228117729998040072960276565577330485340107438464749313485487351659956303995016075832606251262774933841225491447079816695786602229214166898792931229495539833325629587485190229438813872562511803575114281259452251116822501015883706744587315226646430481937105187004121015879758144471251291932127784130688149128039277366039511529498644926473033808820393432300386996050184392660918918136674986393686226453050284435840610518974814761977001863509330257209231810540148189162104791893352729475547801993606876290110045437323838120982927853411224998248646659636858998486541398357292785867596639233082105826567880994252300386227337151508269688949291227283947189203633573435284763167636533597455778729526873609960160712886045993317430532200221283635797388641221130474069594318751320949847376069903094226984036461551047369475021699574940096685197287039228074822663070835793480581080143987946652303669122642824231392007994094914095549946356210749516396926656397686956216517738530804096414636604605510190824504624460014883067527091168946687399986126024243308898280334486223683161734486666678141790716805547236530191768406477855045650892630193340170620440945562466539287893972660211254012525018113209760138680050775621361896076314687678487287501847250809412426719909579328989823934216940400784558062838611112823580163421508795859605787161345497618250791960355485857601009026358016606129531372436071489639438763179971281617130492630371912133699571694552251858342391820080562836369668923607020993016101639034468933650139224495407648372468862353604213849719874817145879816173879343749093073597262787669550276317549039241741048997538771976367056172196236969377254955017422807513998935099098593482140961128882313688663537862490926367483571285422466478306013029641945185570121029996007930858248404292600415868674235762155887829416991946512516165776269864124123681365547864321955372525564390465023565048265545830559405721364658732178905797749351204964357210136694840765918112977355819484356189316550914506190197208186555563160423757332162544194300795387816812363499405485026947996350647332808568093936930243510233975183448545679854631111940429693586478727396230115963288857438370950112822514455205115750560184023988893623021814868221375862991875140889701839591875354395780006196398835323567873989441857389375783558182196376420372053049632055657721242594084521692833582937847557702377476726192863805928871399197896528818949023264130538681210601197205317908845358767225097934051333652885589274612204025259843835888475205728279231538305549177171397572758010457802473142861419347968692590213847280346226685726156922206341064874663672925049343136386801845042470242671432944950555173463485487290646698850335548419910741000992358991478551154387752469126882831606025998569826048975270182313752895230142189328714199391498172322717115099111659799740126885258845209194810607669016458168672157990686982113639522856693004399798011172828127187370664979498267647053866885464564530927200885105487317239005646515077136115142026837599860546043125660486287017936673482206845711179876529979367603884088062207086407983800624299927010732907513071917993239846343728698354879777930666759017482894848514797978492635398778533102254832911120079468710590040582449582871482185040798552310760572529731010238128712999402451554592620071179076287364764203544852761680579505808598141424831293036528601317239344255709165442800591745866827800726545794668469164512581364910504019469219965700042620763248553955419996377337141218063249157578304536049094085097493478005982474037330930108360044596245678922907737630925340237164741126656052440917301905722995938445870185055200122111653571851824357761723562588100405123931296020606988206362989710903310533768990611073020826055866561582783282016465951591084143637468822438208542947307460632777503559972906003279772573719788202567722889339497035649771178891130459158907894984404515460719329793192106070313156100277321373553614128102012947497463432672765498434562112335806137591737676779337539346328430019357731835453772179122192918781596280065745891581605571248309238601632084893783332970620945530132463925117649633054943840204674328877154527263504220882266132249398033914910790899978750035235829313932728729503799697358513284499145704061088903059277069049152286406172119812551786715905254723436155591684427443780249745934760694611191096710492715868541520763693109680824799960663260189828108621018560340833033086460039103193102462636461160151781630707149913660989767671693722812551682683592784492817522877142024643997871645779819996467033462009801631688698022616838894917379376468835103411525445447418698747534840325974418805898092413054822798591733166058206260223844179654566817619085163556072393032136527261953622182528840807697339576230307424175666224213649987211267140159970662013557882950094075570068849055298403550374527386686941362861043640491010053724579724304257243390400577339206588340371146555021529872623665968462443650808580139455586231834080212782765605050580590030625109433890714522018115694968387234570430024007744192117019797582072975909143185188298020839622006830610725558469857939899259611407451036261375471010879409532430747769702312586686364380753794706883852793092934379800050104293262774971910641725634537265502537413257464444410017287815461619905921837925481915775170095329808722557217935231665234020593199881654281374350499696872864722197096501765230317076171449704348972822790554823790527062332180469560945533679299861011272129304570746094161656874187442124025873717188009011352158603727788367469707886475543767902658361653085955602736386207433959589854882165466789513189574839616242883647981444855414393373366153782826587269840854176549464006083082623852560854867438168024532400446098946989405815852469283694378336338072933351135935148303313708315707180059984712341762051459063776199278969470316600466981669304290403895310741199215117089993425162825272801709731478851581903778701517485759793100386102680886290011767626757002591082173925567274897126373430768257878171846125744567798178638623516254609865032028336265918151432193618399480477745360346665347525503663027389981846915378170265898911167478309281991166440676282876841245515238267260328238196815641918891208910541449317751711655605837475417872123792431661361948802977866423743262983017298568751853001612706223253309696932745387258238057235473400824614885784170058874663110320062120058969921184887915745163778658564358844184134886766897923549473610050431252151337417219488812598466284975533855562968704512961549723033386622352162216151173200224000780507997691317806185492703007145717986099494512445408219735688204319123762449632141024976845379330720036928161890701397836864301612164252182354135916835572426918994943108484150431732690491964484571881652028330596432173264628463565987947518541127019082465290892569997691444906486765705942359808735114440002175249353601439428787209029462731679957038426383183882006514412676784968555005143637138555027427617083510268635481968741282564527546441242191790643119911449401377893926074420640837874758080121888015996796626600114042740119565532214260041242625779165653252634441098204509929604369187390684153086511982705548031727295271037630492951974603270877536290313750372724251392785882308131310828487219305662570555357628598139905252045847174974816356749261171451147858607393355074486900454743854828993925925994457457442418669225479766435096725764390147565313297778009972657108302181409405855498336212681572519584757948409635908994001300279776777809895635704366966693497963421875345055402015447234442399992996831061342286060966173766218585866648385787546810634220069189525266668890850686995923052705466606900677888889091778809274786908462203958556343035913328803044511689043229853061730153602098158749210044368348098127404255891877658088717003809828313755172664439941612605678424196131763124416548509951583571497710496740507781382281473602072900100389676847916773083027229139258837699008791726157893752525359418680572092901725273827577026724613398187174972558727238141471988469836063696580691205258647374050919623352850127466308230702588069527888700592037595244315253355547150057990647492030454763187118240557651788949640848805622401212961302905329028043813685318152996906175617224723752602301804877553418260776289080513861463951830782729633672711036801105864701466306433357965786104620531503499164227464251361040609233440597502955692876716839827976546252775405661324195987275579664314992201511252882950521257303783888147398501945276568612074947106686053328028618826515325098432632407963154511698441080354513151211980769930343772611946305054961574539764069919323284498645668380893441545075107814217708676929218261600488675149625689921449008029920714799932549511129665159970085379290348630669399508419813193055705250258417444585271911950604253489625060815273427870632632852325157957834274825834399872178904088633351856393726316173398942672997675747492789605202489953775996906685372701464469392461826734003916427969087849899626481801745559385688541375758619939494297714671488850046703624227049100579203583808846413023275878509497689738644663725561393855639524048444542747482558011372602153160335773510586267465161169230123579878846640417341508757608250642292042244145826604763539862023412416806615592260923762983054293907037975300953170658895227112056061332586862295435033460866425392256218738715001873800903674987681913408716404448971122319302165621066851553593821645779402731855520308240125234168910816848072356477420681366059634117909968210541581465836444437102441263714379350973895580862548176310714772110594397144841357189092373771195242413626398601936000600920025828182785729269432453925739265306604582194302327814051650391716666557696252009113796600358424610699669267228445285842700662890046080301914905004432623997407658746948247157993367487367012489777078762775189432639155451734831031441304764363305391428682679287995923671069580712430339408872364393246230449457350149712268595052359918119512375084989548347548197673444442904224835703950590519622841855797741775948584403232461630908371431561168532859837640918153716190898966890495089566437773799020937765875817449904206549215577792852105569622861717510311980215527237791967952884493154096192962418046384007609610838332724429752725173925958129006026927608106498442853896115784994495537325488507148064214380505034247531184815343214934480747781219297527546514572902300935402682307585542258951532838379814337173018214352123216368957003590174274100014069202541390517231320493616796564078341471855321836978036444617045408976117055798306163651038859037933813293085413901059784774450221003865327226838580588051080604136536968694290851159466424750452629100146854469172560410236582170371823856929591833782107057231362952700640465241021811274037886736071295566013285066443756508538498414985804075579167206383721928955586677797972205645701859080779505185811178768149695058768459766089840875026666034004804227476109519757058238513083613028628001584410818507923175455441244189970282439522161647525870755204563168380339465365559475190282878187974629426291177946316523901400169369246924355597814873775809719434487832087206284765861189277889882721943090311220968982732766730594149334731184697545116032488115280694416454585945635790567443109485329114935319175295519586129597402353995567046182249998319566300536694737305747283054341703334819455556199509143458400344144811784679617290544598270248539980644261566332493813208781363824002703103530247812196805991956788390829169255879038270616280861159005396436318216458548040416533252785086404637851337121005109410331602983281295514037553817416791384676943928347398510115248199657963389311499440321766191730380560665460379439347793689212557325356389574202746253420841034147874231876788078412271391312720616597966149102780788659184584972524536641548772816871641335173105079732800560348910081788527375723774878902103903869317815370893232280045873514973638110969678772175524988715575245909677944520260297093472427948061316928453667207584860352160322907357187153355396916632225291659282117703089379307755393251589590157731757841513524735205125463121963763100954333365369605341641962009672391392560104591550528745920525503965454819226993857384599384181348444247061080244908823753865702443937460644647624959443512740357548042505030100984546135839954157014871908390004773279765110629991059131869889919648522811874530808563025922006737158064293243639527844666067988998165550802663763904424883322529130403957679440085101356629896554298752756184600049350023477587109056906116539570547725637187344348377096868379466207688944390987806612403560720301089321678732866877217088771742897614894650197544208440923371198463272300486601888191074933092039147018212259862239655819318307713749780540957162568992103869375640386090040920859865000371965065041255914374387090842348639435192645411512917286164764753027168106816017110584489496197338337729020373825408509267145634171747250381825694998368287615558909987704192816127294576872253306666716898771845978578769512373180149036537655057554461428605610176594874994262253204096421296844419442742207074419527876375020287435724082253955100515674263650232414756932089700749946239045725133535333966262556931254228512144159762739540211710589022929688501095102171503269568238200050162526088437113743138826312632561895769748913301000753389128694329078485018802706315779705204275234621259319858824237542233257548889009125371737152239167435104767596578652058125738696753142841887589008520324317227627545837921423114037474850226305453018721855412917537851256226753522764214707686039527853281088756777955741246664652263050870012162156227735899475109017964827756757543543405541876366573718858355767911478328182229011282355199762514403208866359218684311879102878379165284268265890501885080786967377221848289988476931438353847120366890391447169938515500315671203599707677783515664024065648436298632749958890837354023373025295431645752573902717700896708213124465363106066126263612399513811877781726424924304669622110249502558251458006428708165306915653210788581705100989831731049242241447678177606787219933171110391157196090161071287342686874809893596339238697947050807919575265394639396593932823164155722889372830318370916387362714708548560307059711372971317820963888768237013570658641655501555456625658163490098146342685969258847736342963898693577105457185544184782017019281373174955090253253338375354992335216715920985354605756437158728673247519061941221236974918557054278905161172525783454962893858899003199135216960839937940773300745344248815297526929705707925814319256550297544494868598883405913184788137894177777815516544842780008880163313463657568782060437486801515342997656946658183127621100438828259785564878600289543660082446209720796366903993179747341070655464339692069908483003458059267184189644126137725824435544606142621477888462325147840769878297002111030299584116385305488899932243583550955566487873979009929386847481323742167046426946484427940579423348393257105376126496471188076555396640119205746561254098967342033764704915383804084097541611389608359896864874978582300024317432795556418094953507059451685564857044908995797178022804391373749559855654253437767226238628667813179115680491836465001850880767187988052443239838447988469289234493461302559505310407946741570740670241750361889098908485795016238270783731882419300378251775584722104084340613136361264001453006459285314051518314387832685497700434697942235808768603457849854119435568234483768022818731824996624600592582217924531360928538398562628831506941603442841330189226029924287728994402277715397713213519690735322879826222953067957413108552544072582475394578436691253764409254007610296994128565858367230304814951709786024524328303553728642417850420840983072538329074231639329161415186160970156197683081719669408945500718654898638102020512734128383935967048302666394908155083287706519938115390436783834224020524939234012428680818798352995231564174109402102413647705913869711000495964195853611885060335043511906397109722640811750543366374364830421510604181170613075113807232159148663326169167125866205253982565890578633370923488356208709467719286769702250520900470701262862255020139176296692820588330274954866069463479893367772587238524007055305732068629500785886284703348784107714685552200447754336125006508088316629531469000255140986764709524366811133975658618227553584586189841174957454590431832664330065509732116040404719080290723251649878437197655752375984106770657035477914307548634281197564602661356759313622853264119899640142392157808058777449574989573104529408665139171568310415875988336806408686710986340872235202799350546334050055864274230361938065950743289409152873302732965245066498747847596310482427023199012669707143632753491218603466608501480675838825036316560784199886559096493693368396817823728643137778878122062526004693928572906963854680224409865858569330102862463403852831066485785446662531048340035109506557668502564052892348014291859968938966533565012805885040006243416423238073026318043223664459442522613576843658329831714309830108672822275276202045728145693541859198640359730905266370401977504180873180842715637362574708721513255549598019021598741760623418975527857735064771518218991017801985363629843778588052549161090520199201263548385124876620177535246651765060824671085853144503116577487251175192615146804142235538452775250509634062508545412399271490439978964114398579341570716405801621032962271560990322876519505027804850776490419029092634087321273530498665187434326452191533233162692487654254959646949135584914908974784153192948983991146682831767177622105083716673823759083711704712452347696142912473281108618427360932373811326726592445936713271973566992934851838592703770352499768526841653537647478144844709901464816411131931133286222607225488755811702100465241353917857457316580457351289855053107176687648088418158748517119435990733131075084715174944910180473143028428593525672637607559377165860714210308578114437582599427458624549977239751288446988371705521566727679840703454709538660853751660261920999449289958997234150036247366570384442120336326140273910134771471246925285278600930233305819294674092986538877390532554886999507233367528042724899266573592471543293111554038253512566313221025146407967274643104610749893727094125981108302911332313501646660646666241954076861830813479278619737109505239506349544284182743064164589076568702411833454116463156981561253864670907933078936702005669416923639927500099238780379300861004029279523268748097113832167269742938224665270223044166368786897725489870067466826836175518538839979816065647312095484497060848938716358405324862943168663060001140975562935005430894038500178108712791332672753180922857112849850963240691253654459639713320335336948113581397975026618502441038436850747050672198973833899300601692185088931329197487665887869948482904969908678223165481684914133041618746479274724915056127055540728079768823877707972548479213210496044275577103033267385225100619462537020971584209421119540165283516781004741880511220132995412032971270159428095805972508112153978244734159058938314140235760674862049441527656225355111199787593006394466931625154384642845668305997902623665890501915886510666765534086071109361687964063967837415239969677514078634027281048825708021890167146349727581399240658981237519793955905191841616907089303192893098223628056153239248793968558162582582634484516202645280142316446193634123321558190401066514102220522475324897936796668531666629769982798711473412148683191438336850858324989392449340825692334007043062049844459664814048672444741288806678591822390081981607820625045626738603636940611507371366989424496169850774035495026980872549470977757640664217094969714696603088429986165224866500202830493906657002372381399324849901765863431143694085730773545773909243111443965342725726910705822554067176127139404545324309389975940812242697077824387367121794737351060281180177633200066836531079988415876170756144890746680674197831391900085030801818854450678414295469898573786512592865584506903619080955048939752490397681787854033360271175386020354402528305246380006161952523905434563506997513201326011888816846082286709296790521225168094751132108017270106809470508291931537196125975078905006087473642890031795722261612402554028057534368407867171207689642653581005790152805567689232443952150339735441102172236763155617780278548555264503945961718279718433394673703577571429710787842874071088020286036443231860995364631832028982268438797380407108415914214614487849555171442442819794910398849058104021246633326004089484435677690081624272692342619914131096407082925299337541916534345402388501834339075700700226562946190101771729669446225832612966852242721838682775220497187631194710999842831408511230104532280799072355271975116347456918788916670775234927544503920286736883094691943893295856781655172511813680494398751199943880026330233377478096971288209969953018431421196508280924296466331795688519150848679115951925467803634783387015483197331788738841832085895919546255582752422096751351867464598639919050720236952246293776458261298915467315194442807092720500211805590038009443279275772760326949668229828460151766618783895467530482450270518005388011104638508690619793105002478064473648199155103507960890166372366735725211868941592005377198352925964854122269031442146973883859645369569706074175691638623216165753629475788814941803690029867594769363016651126138111961930800205146678261194400244744542097167102934586138794561248465001501347765585341165643589484347925724239935815587193453850120979523203897655039934226099595380930690121782046330750395623973843584662323004716548090756108989363184052644314638657610917438905279337822368531983259719094526598718239484770192238146938829126312983650752609070283114506105437660380243592703014432608043329106038238013417206418100318968097094162253246425480964778271194339932657126314607174549703412667333180797458756985525621389694913916451490661925703651035081081686578323415806231654858781881147100080386116946022839870371448061985873526540980920976299110808083395857738947129469732304538032613725321293344547364721536423105912078508133381344800735091137065233805889797931447490776911117762027171083973519980558953715897606425821082421845555793393986453961987166658640318840154967368952611689947487985706069292331713681654299591920092676453294818494661870505080517390733365333813634526408495320096940014798989448135378331554865068656076330996834969430107228660267539731745145577309493789967946518785565985953952560536196739684633353718092743802063605050803445930228177724611983432269245030742348640489427777499660994631542699709610505870003951605468798605185967529623790840807773436926976148353517915061070573466803303920213070436097567295282971760912052605267321167850154879610557783624656298301609958068988695888486432792179146348237047111491553585863906560125418452172883174539621111488282018017956037806857537892750559485174886172502766681709297966855985947729120008856704274435672785298452829988106481219245691099779628935601584633143982217726234230207148062696249280948192839213766538139116854697161619566633122298574051070418065517624486007131181994492431548170012302401475668710705188651174631154996862987898491558005350391993653451916581814120678297002948962355871777967545185120551115722435887814806371497223516701590408052052041168633226487384178338626620620003855745018997632990501744597486603649186286772335057243641022167757994328801980961503199617882271476700432419458169085436781474323905551106222820040673805790520283648479841088728362685847125050416186963931314964415461992496809507123508251398922226952216732780067574847282059520253431153200402600769863427832664518987163290043537225940607960230887670767115747215570022211606200428945182341405948359656703295261263669998132956018754799408243793906410420292432596092844643120129468636683277958528160896439233595314326171918373709337004876803517139763543318172759430997535139786304185199044056434154730675125294192253382676025472789251776970453204267994121954239737422996232542008278720979930500312017078368722005700425844373897508997287770379695660780320066955907293399737767755558337163048143669330446791655706409695940316216970512895829199302318984107734347982639681196213927288405660691181600082408210184466434134032432108880566566420643874592846274561827625773697312940354173724141592739571429870568562167648746559922155034354374146397833874392610137398394365237432216738418064093015760329067290434334593192897310782318164727573940782513670972578242374485246452531103730306637919889377110671199007977936555376718499631203522024484390261837155679954323268172129673855628161292000561555910045481557497491010348872339115099709858423128626923261591630752868827830433272567726052918125366639309276630451576066835891925393794215370100239110268583088510071688729689093723082538531579562926023053728964589017742716742102426894449772027956897777273781671617262583197094384054690579080174056656836549025743620182123015538006930366902480765202138718788854667264560410635997375779468686744127040137065430658433930754689553059657866879694831004021417202855043875328909068743368205079430071290314476628360654703990535580884048364341201186096077347760789682124157224177711962073011830311909802477433793088321672210184396832922063495557937991017903559096107179272249362916785857487393668884403796118495776125547959749651569529754208904122056401319585705120195996739664311047731024064267157753580111622875201588056331572938260445146660929205200702526508342067208098139353958573686623274883270643459404035629936030650681382619445282848066684787296009749894038256091242507652477651884541993730923135935680644938949826759848296200108921998546891919463473231119087245224427566926606309172336556880251008409841497259058537836814566490637028989200592996008807883451799645891240068013785302292756777778563970793992743068148452844101778758371956970340042679399035380630645545649013209393506241934458317532669146908772065309113074712416441301851673510751872311564800250022652281882497270409660891782012539437731055724841931743444787536650873954332530413817926519808566347686065977728457392041684905482959005024282117668339315275253718250787558543344873282366383852088267760311140256002844754846391578922053960775150858619674676936594717322536487907638127975542268824953651530433009120089662592890792123610047120278487794022702219223004157780518977672578535556613906032299780594069612712540053383131763053687034734884675861906833954245219127118368200777034420367119709967381065806070424097400095585442917592433175934392330487986802837900641408595369900506658399650187626863512846266413730022702261348635952154039877379043200756322367154675925312877177600067240821813926679694811431439656035926529472699771699265684942710323931654187964693825285894237160909699809722419575394222356599977532765495313537964862050122595900187761074078525909377699139778034119853218527011868197331523595340719112526570171983586673866504012022078973939452092426805229671416155662395290464628608997079277493279988237108950573603115400061029954086189839737263325960996257137540744634015096159367334880742513827300926585010386434278198452668346044033033420063958590795000142722998191661286537150303055249503068318227372089307582611126980854693597057623135001998627710432996431432216865664399466042498209199853466291853380820848980643856375971882964225575279262426717515480427445675629886667744426725360122712189687838974550650445805978536853758797091266188696304849291103645005165811934963824644091022900503856669189921396295695200144675437407103072404947112606510992213859178948405430300376501741940838741453802730178597607864604959440936909005288193813017236394958944509986811245853368676217467200514769575346820252959469420887383780645366710969017488458298590983362563562366858535427593311158036920536813822049447494744688124720169077013048490097422877079141422109766344962915153494590479226793457155041822555666247128110054181898280354596492945703889200957399967220461367193979328753058405441724439002140154196356581457638453928266726024517911690680348671365969797644637264152648168554067410606220299410652809520103678738920196639077000781141252364579320181185796122428143824816482685755057679928874900586767734852005092384573077894729638600920183997951090104782078247443671015751742480104528008922381370284916101974674239584012011837391421567636922526197553828621373663812348254476841163825257806094355752876628665021771168267485513173334504773671868359145785206496328471761656311461596817371203041334546133694420332758519980933805393383657520771399835048018010523050820205649844144188343219614763088603404014668563603311686707706389232919192679417286672524447110331708732567667002453817585844403167847302172865081301717419358393507597723903802808131743905202242913326675252732671837855216193622041085034658730574322736461338926279701222869878819988181879565449852530926692380125005431107355001937412232767711622824658267553167884740286503609284474392938176179644968270443302781910471345038578033475169418932985165903366957151693521500113656745354839432806737367217575715373331453065098068136405916271538842877230580182590072911472035248084661678695051396187452352674923278232091055086377684531325383689451262532936425090073730574859629216650910182164232394012675015977757512415741835242311805900340260875033735162651031995679033106770284712316892088750301990759624099422545778298345832460598256662728843487609299287963491272380182439230196125112041366310395636219023682853067137325882693928572631785735151080364412483154632060882552434263138255842681686907187106322586778023825195381404378021462844724346052379736922273836091227904457124543098338946229208125345953998582158085569714306873246846969037207940363654056337239813789226009865795044324385134996264747328632623697133373636233216067299780884436364817390109430547737431782036645889136583441224378101250085704664920643653629282603634236714660939679875022231680193046532456209347377684135105303500306106460910772121861919386850595763011748006608358517432643037378107483561571848369769603319632016374435907013381779684421822698511974033881328692602377381243970045772093800807660914191033432166902698644739238188907691904598356901410402671269925518179688436048262185603733093145498257614125303851822270339953816722687674351094550061918568788508245593393687352540935096079969052678281420821297755680956549234050884434039247303879752575482835904525207513725707604056746374468644886247670915185044847830878134196895923866525159941657630325216630773212158908997597506023990347410946164317560062965442187210467586614357620604738314464608251492335654608301746586410707533827798423205797868755947402718734223641751111190623476672552364316828864095922938473127021800601927639616437696986861437143749631187723417656868365509182481030984465522583516502775701606650724226801732837906847846803401520717131580404395917374401630228002822988274425263973269995709455107959377178784657763504459756855375809310966359725369087954422517899295392732420095220356264685393153299985080871344535702217827447785336892235416273922223479419952858575945480265547372687847129994443358170914188983250045854348786521801848397690457942950454937452475659894180882855184167970191013784594653752740010207666876486504887450150322470439504420013725497664112031831471338620641666889975478272199255166964817670107906441569299942710005066842813308830338613982835499873387127655317533810715676687870636088344477997524870929481143673167771163779354073036201594934577256049888260023271844790251888647862490081153088933898051919277380836666850158789426472981358802043530676392617038241397662110922034950659872310824216801284439070333636398828613038975703034933622178081268394522027743033414452703111017081553674287820946126990303095860828174939423793287347603095911508262046115862500942924196758193126198977869856647941077598332043375004796685539405203248786647968674100356716364706565519301177810760495827654459895588492748610484582749599382644270378210843704090883644924347461973857927195333179170700478340437938424698728572819899090896683614776102421969444243409926744194519475074053141996359102317430889008300562750734977341948268425103411507824635810868367145965091488805649888823630865781285793383974983440240757418909419156125263843011703544030206690215409147728366804252498275221287897246401317923755009105055836242544272490247073469828764894088713090217172107225180108353344472894352437035921594809062771225107234160250957260746532873636260738388553043904705798130680972024516376705326872911051917123998555370059505752974641444803822957475475707438309514290396688319670165448903430143380297199930084636125150761877253639074409778404101690192859390404861151517788744897689686557513895551902736994828619391756390202336164190739556035221902839240970598413094895157840038350604970189810868688119736163555937791510467592071030361449532031513506451254926455018569676510395970528610745547711148147800557768816879192724417846661461893407983725601110670051364074477102650836219449184331797162401324126428618185397668876448746104920455476197398417584091166274310539139242249552366645872880024694466868465285241232124252992588343065528374292853060911966215402930391440722709822835410782686522549563344912382739301055726969836294473086030607006785411209847752959000696505591081777404628734046194663817009029500646611098230533480542677679600406988191433358808989004184207676162183381683020635127747941861541163901380774617230349504816165456093337958923910763702747746938739954891407870162913747898311080300725074439159024283961565124628823255009740732057713357903093167956037344310695664396354255205870785005131209973358241632571373985536732482464461226974929844005373546559830876113594586750048240184440844945129254495823079937172630309222633573773342059371496027308446160800478583250888790389086507109520493896784030327834506776905644509454263575156196401357756569818154316866287943101698754852834470233608028930662928160942868668567167867789163013730116172078871985086074031517622226425163468971327477775557731451863893954996914339182898277422066488893060241635899152220541859752890010174992229278989148768886761555844877162928829535395151482433176733921584458438943919260571650472365221403832932805521635174116769324939853860400013079755625011247469066642816686681855806273875834684273981040376167815320665883264279756277440708965006585334198642916745521120506575029221348654266264284153127563123383598845651466157617147047918086274047354114974222887082037026613467603662369138441335088781684803281673958839559153364797465438246277510151349363096457288901397462026868440149305596610321755609199583404354589192301799364096871480408101820062120810560876352923759995857087583657705422441833313208516733298481298513923004709272682525487660875949005243518873585526316292484646484354639353791301988478445042962986953018820576216734248459238570799158363856185516659721115311780761514251450275796075357790274244047817875556723647498719974537751126760576293949011561673202709453352477103631372189386665359329552238812711643629684481514116692042188204398722887206120601194771930053838262352445843041616102295269497940196229916408425528407722352594774052523978669337996046632542437081635940667005651496709482413073809929629698333963603966680451865044214107204977053335869888546851581613711219222994414199241969046085414757214385978216460535340257089254846015577554166533853267516072879326649717438538957132917640994287912975974909154380574375639392767946027125835966344418934198366170051589406132999549803617277738191617866643925250596920569731136642179549382300081237260674592329286026916872772294663107894149507017700544562150313211983292782165090586831476578695768633604972726218146816071410939724608183732350559931997387197001827566848178685911301077408145763969047108645525591013567113070397353528921887929953173326207408230249917314494416891382201504162503052673089513936403149466437753123944451252803227437191228662955203871975347310212313124080884577723973018300956263153828972839653946041134169108299870981974476009980870760630831809519456635579625880084062140576930997283622432441073320345994376502669599889648873565658935854683833663157071522243609195852750037229582509084155026996794118076032306692489951207449615674953273125810973272094300265253325859013744794664570369354249413684073005474393395639584240478952178101682058319399179213605179449937109475488148467564941492306295857699303978940276539913467454861913042334233281477754109771856713003854037828332960218417054206964976920092110350422605134593520137506433164779018573196425191994707499513763706797429550864941387862635996767202457631804229233499542585924345309518991026130327256369663101454094608428699005936964288292750436316607080055674776456997053795175844113462549956475449674770174343003055153987541279600255945374582041903732441364753575873666405057642551298700506401058242800790743123938226116646607404133070285129064557504771972758765726250126617587944115830908950171498452417349991247495437323673009073817448927287411658677283931465939887287513039025822751523860816477149163833427680946827530420722884840850432571973410638360262281809500295257841920785157527931417209199018473297360514228781294864952574126511576372651298413698783252636831206348441286517737522168120437085341658926385753192534599535061889620400988868676797928895053202221904303442197582994478185445628242080602726476162755678986695825879633136457180672366847708365850678882676857113573340396160559670689419691506094392285540102484366529295719733123126122866968320151950340485370171674830064193888095456721526194579081166500747105155090027286413888341178989035786284419237260293124316751486460803863576751948752270176609126741314620078087683910707799911839196748840869143028012327155667887345042502386519533317031102044088715245889002263257298886999038378630891613857372264348466061805078602489250244382182089026458213783639764774391516691587081364771569222056598814335957127859851083378109501879499007671746808476764903246643510618498759396586688897901780082595378668727557511696553534198674045149515524869507660670778722970154632920827520771764362401948869008401997696684008778155016619201569387364198977923528667414392088512647929284730343507899263670851809759693257051851647446552226122218721745873534281063094360941746936061151496428178020086448545655607712027319643132903083888121445501074851289160656549981059544000070162426969840492610990236283853028945242985859610468309953037255234474280664688007077829406769455456800184342708974291920145407825434139548213361382121531038634436524156942068373246954109872374557851384280772416149367065967137479684532835195224351149685791309399086453387724210762896457901854313410044657115695286873440203430392668482750170056334640618141505249806394557748916018123890764281076140478266442370140508523002745253956531623263998163324241420357070665491096164130066780651426203502013227125558349957308891059706581735172079147372642915742730067483026266102867950064100711211015860967045048757912149851324242267956041448956507992253017404818557354636789809703540428656211413710023209279069156055373397020456924929753734559241198880907152807209254509740252238478393660481973151705818234848247561956544770479585031197132291036435879189209055155254147120827483921297335926240239991684465014286476238362645998279945051956167129170711321354897391456473960917724512030257778310000575296320644795619270000090854971482034862669115260038920822134258034439754450742783727955987801188398131586284454670202609997979700516359249709804004790657761631181830955801865683801888321859414337014239626922649976136471285891867357169826776163516792671502089231000638398211881782707806676898033804590318117331817494566251156744549852625155753353513040903353436913750691963910174395319341632793271727582683681749974065849117401690278146384441289924985977011751644473970669316973577065788335946653415141361073064862128996999537782297610498921287414772380555873183200571069143982005189852364730567060506906918217334638979719224875265474027872159218325394727217553310968613990276193458055820598995534178562869007285631181233434562614246705634863907250128484699748790518763437055269734493531938792034845745230711486553105346592454169102090162974790690495342910626552135744819020062547719491112948823563495812531836283917850851996750076345361886814673039318604033914853593130588335221439821330953618049482316489524570617984641260029987678975751071693067959066709165220906889712637591910686985873103722043227440745390750840778185287577101798055866183645425900107797933042057195670276632932903214538100913803537631446880404420744161791652820569930873191909040468323677567620737408438572678021524208768092115366729696206001026815725585610589002257439259458425565483593758000311176088496197370621320019063335819192788630966316047694252250487252586673254404250957728626191621272756924351279206306278177288608298956417944452436830091417294585453547649420353958511033641055941209170286657643421967633510754295118421096349338798723360359972510977784865916126485753855286704459333565126765122612160808157342521394359099998368958075871942306818406304108465148485301268168336014763065311253717183753607017641649458732489559282594938459200354415703609942130456714802516233840391095457038709766264919749701729823377621082102122598508337646342881261850665874491862470431074253158071919702865221694483980255331076983210925761807481966791210304509806537198105577123831281609166825492372876112259284114166182206875500321134446577787198237018583704745232213459079423425528863329974449989793558983912640864159193919902521592429650333181621640293988014730152731277800509015112961547803133486441618639376218706993978935167758565700724307405401613727450184729533928293596847998554099240369900814088338901177084269446739860274074467827926409489197903776438325940407738722764954971565059301870651165846920957225022654817520430407464071346776856005633492714885697449907644666382509663358114902834393325952828160909588175846612968120807066529620348817057398902314313662992703001966050957039797121710564879237986942976524787582663649575789027119085434426117669847511420402668833171302702834007497806006821946986019493700903020014634457555490589371387862277438014830524032038280109740848713091117587567834415552370389688136073478215148392769122742007653671043150245526483478253199245209021048825712657219266053402967899007203495976265849044390256723800098446991248135013518226689290619939785180983586600742427300370033725900971986146239081477909662298280691173287942104397185190397041926328219390221591269076634149900979396384514815313635351853153157499886929244239119950080711188285439733203266509927791749718758879220686374090482608120848716723530305799835374872406217920537148129336356606343227508694980471478184115857194777562207834212233485707203864496491011839483974592967866838060244651971437814382643746562142990517006250742782924483277563748380042224506521725932157152690337148673305075361754947416713124071717151155416339168990948595039972404836120469322219250490893320691249117781242444396816469770891253466398671155937549488954310860087823887543642863270964315140303747892841103352342077915218674777994420844436805652882086335151422096662708592115103191450490624099976849355740152270703632142190154686304540929877191764891047819532583450579736882694072381101417513317294673275780015199015557361482406769276407625438005793140477910910563732926737613414681380477982535315058786723503221796515650166191095258661554921618712333052909799100969833405040183789606341890480363104952904320912266924993172779143679763405163821331702462531422220683853724749180774435019490730736012334334825091783331624385991656486020394206698220120921187422002065761578984079309569610785870024925837631673464456786464666368892117223748601073596279878635875324982099283220843801519853300358309757830327307337528638312511346343559272121440594840730819677170102928326274559157567576660131620506840754617999745067376376553459956484182233650790150907248115263036266278004993059137326528008159803355940008942095893270597137277546306684526866980148663334697326792049557686069109341084695352887225922316210845886679219363924119560009989881322216324427880189608419534872929074916977428734764463322676816254396246756735355465637591818358173734029136568665171176807320411570420293956764906651983693089677636543287450662364596665784815008335567410404882318816315167316619509039492152026387803906563788721038364337513129784263453615307996936608602221461921661813457574825391229408787670299267264113476826389098657838410534247511039519715789789516999089788747500402263265965941290113642248107510074372615449168038687555442781702104089921151468753669460057659171486532728505529093953470489710996078850024102436166980868029544929377567535106826342669806764864255550775682850628736558825017944852830552177230986415031618701876897319199376381733987361101617552854229874596904702351569641418391274168974858707980139483416321141980733094439621928604613474820614919129879965724367435932814276577113417736803666615657274348538657753228394330594387865521953696316932739829341576925215223907558456216318799616813755373532098105897045037545387451393714533029433830736256758310345065719977498166905368575213165544937721136398735513812569702333102398308134456845180580745847084185609005539860091332937900546010682818359835215192457638984921881881205296196895679540322311118262437351720320340414157925539267535403359976662483912362791197261960325498269880901482168609096202878865003465080819620044919922530220580742554731788062022056270466308200703664868631693077393984742156186463694282786781638663646287522240981992051439417249406395407966888232722957326010864342506398014836135162254612313130410917498198366694449763270428007743925691232403547592317641112974944174497861340944591658127859989728401855490506180974909729660179113634291356889449468228698068962684892350715953959958763287022597411523921777012934808794851148506817738765495476799715860766792760392287698844644469428792848641540852798401702448615625308747569921861533752541667492773823030838047298265863448768109660220995281785731033276565742745867212260523697526777307473240237169934562518834752127788433720195462734586973531897821656779711974256502719865507477245887792113510853282365509092019324748512765633052267019808901177941452676269460678693634646841867828638285578570270625925636965571167753455705067042086681936913764603396752977890461193085250366326461712626050516562625486247457790085264940646404472197389671410918045603417128028072130288804719450240629774013504793613467240673839212690127050948689361628243782612613438169423652814954921561724552884878495584559338047400654137627052806537706582501766763990200952356559119266707708245141864583305654653395528773299688345282280422631600512649860789373709214190957799132863872735026314086250139238387879368835760019013299337707207006503828881207639471230659544882980864547508299278104703861066208871111886743736565592610483868995008442643998033323623982337757742768123289661809312768673467897250514545005622016237165087620995507203318312400026141153544743066995415881803064301619555554708080118316685701420902425218033048742562318669535362598927779879865162498442120849974283285725252878595239496581419595160673245186087810895651663661298210924938651952445291638286762094011743082159758151199000100387830459074489309730848308394087362415681350987532677728738438279666921989579647531473468003690195820502530023657189202265656415131320372442825289678134749076048463402437704679448557939349903833858391481509994101243396835421824789676255169591770966143881435834968264450712618723345292937742888460100668021272683337730028155761797381527913045519893250929767111874638023937511120309896063479140239423291163845092269716865581775551835892018447010655428506959443454045637495782171398663641500256437336962630891778074442596444656580429501899102567144126715707345475296030550001273334992384544080824270427124579981124560209483388602241420610225267717447861548741483974513355854630154074430578370713476827164520460576881568802193917722923164191049896879373024701588167683338926536676432620214922423756843946001829705187834498992975572917076476511064297694153839447393376486967258920881735387614722049563152319507085585998282077799081461061096973848376228933859956189976143089558590426366309020767212629241113475549516866746026724905103280398492821318641979819616420364442937838361046573107169940993737387476017675529543612989667953491640373608916205843910214837198153838048517130477570824586763585597684130514287645214235898572774277508511004521274208985871528533262315308703955047693189951196647193074082357007725886631543821300830829186767504165105158914836598040300085051493296613329667663362582297302890777385620077419267916251043987407691752445104541759942886626630481026726699147621589020784814342249725140499744000709181929243494090523189298966609728727978666597533892504684986952239532064725636856404577762611121080067909748722640344018540307284035161610136031331899475614703708599638752732308992843099306322440748064518560905333932290841162473866267746658592842220376771510134732429460347200051673505584444726319583659139754430612426102891248256470707105293423817548773423016934475217148410765429953212514016158890669080523291048154118910503932383044387140600427954242656861150154349307611105284073228446845894552542812987589238249481809024302812433573225011024919455454979169292322691309608741120980698908654876326695288311657432368819839908406637820708304831125922755430967162204910116380313797843818887751928585441923286362049279807197132605235081587089278306178469076834058663893237153692090593230081537399158620832146622905134858243892921270328236079868377294239786977621096920093867066381312606529106388155174459131100442183430639485038888987092705717574945817027218557747850975275981672380266006470144243818871052568955250669918102327868677780734254582471481488063907252722479541149942644009589213381802572774837307615911334330364984303055027970084765332654685047119250175107702232442741948892003394988878859236171991671754395197639740962668463678097287821335390916223409323431122073117391891652693322052485358302692155321054407454519212281259159756189561865903147202573066272122830860073717316668107621937298037746539165772267720084738823809911178314561859623595593868615357156354392932055771515707708993140450000189205128155152105636961985095906602128400664530221511158399017088302172502850990765311353381187177269922186957596478172718938944929102708936169508443656707881775199254862839319235626395120241470991303739625261016314519961574874451835161054433300890925470447082595376844340447435452417723506748406401086875228982791387019584358368958080505137198541376342953415848138948354274574031996914162965854489220839435587161064400483734488988686688732357979207792995794328160229386526008731632272369551106307432670247345972924315483545594793300744810760249241781703641894363963969866547243435658505252308779480361783905867953187986487309308401279948551439562257271264807316656717296120484554585433728840386466789432079930603963443009824295743488654716427376094673391220998420525180351568867273511745230726486132267009541282450336583670262036841767997329051398493409150031323658646405760825347839430856292559060792883505319639122928237977696918174891549940001665545283870315719219496189788120728256557844387348461362270220619871404275389657797091023096526076049163243701373360491108433127915453121288791594319789442388633807346100354663140300861537530411018778889148916978144529230617050597479924868737866731906564828837330859515763194947535255540705911537712098461755638241271028775649828974825437497115372216476475420382819509116003279355610963416093646252804415828304418933593256714367911897972544046143233743708365167311435919110179641890675541815130770508913868440609379836935386155735733316493348339840224924039093156282799505685651290580736837379800736876445753302703296979369645395414664800100744112571169256825114935475807689188577918525889189281105399658804374121597331715567454405207709813024435855620956864723636243084211440899048800576086880154721675228311430610338536418663617383006274097127047888672337475277977061855194938886966947724066472984972751475094280815494334450850946717466333131409080573886573466363079410804925904645573883287076912529880697102058393955599112752685341596518648238138127002393517582861515644989690701236174402425648970170449929945409282181647021867668945834063723493851962037572205664790383179186819820780793571256212254131246866551256416514595344044299488696224899301100740410177641905363810121365425112329037746205238625480616652843584642048625337455643402445471479550423208725417674112883657162860825296193579209796881941348245227914251141876029503941795666258813885718334255116508376719884063329309286957567786817465398907225145703950262370922600942813727093984462332494109018948669897294801261901657341429978910308190428506888308128284237028594682923655908410451832715464673147219154301431019361424699070103358438859309958362484252245617833318562461209407012696117686711809544767689864152610495289429784389981450705778906464481824850063007783071333927384785269997812484755042834805614202490784217086185890431329800301769710328449194083153576880685993705806175547151458621547466881373957782468871080947435845743077086819219798822951839502478012221719655779180306150826707699847861004295868052172436038607967763700321438445166147465766660508792735606970039629484762694399400296305522115626583982705691339673255641625946743755242870617624701054976006945190424689526550196858116010084798669183340758654947059561640037545760921042311556916311266870779195472757019016719126766437760478008141495677672199412235972320538927820729929370905363938131271701682044250791465600240975456204360422149325814731558967959264881010135307125626348034238814476737415286604779588865060659358180562874968536323411527592836684711750958268430253962289832964028117325322846869819207085520305914598353512269680974253807554005337192471914656770272189935340039829612032488248086429139163263034249079284308776197470660819102374835072953862588084364688512360480949389677541891058449070160683717595703821347558128399837139820941120261253795029575539637993866017042823382844854543136845444981876552527162941491775570791511099104514385054650237398560483225835521315220140998798175206937806976844700568282511867479775110633786141733007567441260514430276735874106368353740088722876822528331264861236781857451565092369343202593852991296059716884606436212715206497231137256633273966886067829625232009681009248562545621467356863789736152694253024175183589595878890448175634620544657068150431609261988277882539694818454615875546178874235982242304502820755544204476906585209011897951246097984597228612221380249745049667286015895306763578276935006238537660817572785363665158846286510790211673150635265957477924824900972890448096652372462252613026017355351060626581514989590566990855858149852052734694601225210619614021046421665742651573580886472253445540904788797369386451258833803973052567923767899206126039695709236952313071120037745727156884141352840648795306273482156751583737693228383822801218745474534160150180237029165881173381133840809606176329742836051881771785808280479616689780362520928386699320915129552149072431029004122018273774467490678537355145448414387617485044130675745889686149832702971031994176309585989003517853749809248829933011888969694744901042665460979438730344696741787496411264407858509552984021688476733559854214148701240986258488550599144028866544653810907412032606995415892554714622508974801885264447554191663214313506379948135070280994224795121491512766667850522212921307071306906500025663729140628279588316983621699491345069626493361837586234417717817112724891314804314371808422668209811308415482567064917709103038329085777046537980585744302408397872479529407131254625505382278290603685962659384804185294405319519432864993722138143963292360325363378351011910255161608478891558612765729018552273013859231556702013795408628467155868460060930317133211949176386295333139361703703935660510892531835639931100484531433701126449375014873532544070526736286117566906405531566526605666526785806861552935230302930405559332295371938839345119241029836168970487777596409068741060573600697779168427897080653174496345887259001249549802287246733271451676091676871465720619012709826525423898236041230697899268108913590103955083078263654887185563668403678838414176254295387832972121036065304446717296984903523828589387115880335680001199169349338206699075729087742699605105251822614976546268698417715227602850114396387839616121655033805489523998709542493914695504345601856412866384105992881040952957982200064808597034984970157553021876959573804360367869243327527601896980302468244466187719725052578461006687597118889255859351706328445238303029028863943056315052890699091260295974957780679332733724573992357061176190900856032954377700072136728198442141180489134407206881665532378212020007563640424162278682163467855705244780332591669767844403736834501794851722413814089458962946457576690752802237075623257823837355599037047235148829037932550951928210984094468812135502321103063945340693944571711326599061315124494405629825902293919439783504883726500087040056515436742681172942671304020125118106745168416635471723645014268849727454095423547836878997997133542720565666878367844743214897712531752919233832307588524510233311388654307170345205071691691623076823403773954360033094477078497018785456969857152012427060391161375345809188422108112172549695467432261747782439447593545504805297963959600177641576595191824649089262805508054461038705224392453449222670127339223673883920219173078833588951559769682543602219012473295523102802167474085408472107877926707276429531461496073569490358932233684672375178401553951903455846533955402464332100619515597225460073749661513022636683870460482882475571387371930398808097832821647926795930225985504936050621654239784539483875901622820813520920071377650867370291429805903951040218635609204283256505869362433652606792913072952926792988230969110690120257384813831199350243792546809151231240251729682105424526923355361162052124070808537824069834291777335311301554157365163635766928000751240836579294926861761174205796129805523081698243803951136746010584231088958848776601234145676795664692651767859970254782708172790105513278088144685818546602171657807718643383812424691579980528301370810349172334805690947258764800426633070903775735575257496723741802009082077299287746893068251548884449060022885537619682553989306069104582365461749314500908864313555449476999589571776687069095867254735808280888166463358868128621022336411298476711447586135934278940330370505387558024029481054639481630552688412357347439795021824982733020741258225662113137908125112732876346047112195801819328489730256106755539853751065790339723574711137147975437786441732257681150327941207702981904117154069779090876540603215977769788746223313140673565525387040930235041345731227342839091094396580638433320266832163338940766468572476401044865339049185434634745390391583835345385874248362658492250731863699060959182046290318262908320484746462495849187971116660893743314685384698225030208053282268324485749200797357204390432948685014223793767060698429393789363642409343109325178666426487351647823837613112296536122632937238898727753223391183843026520557890358291621140476387967869906339228905617345520348347999162082005533518687693114773297357888110454566631269538166083849994804009961366340444817236973946615388764503074431313536449294866589375034574783724703846581224563652540876526414771918265656957695203694811344166402022934162032180183575542563940940895739389863904902972678894203449810617156612538727607637642518223522626493119116495022178512933885971856330791341430257798109406414320365642250837601335366809212111345824383137188674542111477731746525251173370464206496056682019178168114781552073658880002829272586538156923374297323751848389490743153800715164841228092022875805876352380015885058338213136403053464083208389043368307692268744649565608046419963366508770821523327427115167221556997971805600815026315281729235465364867845883466903662355642882386704374111282741597405021533610181168149810974174412957526205880498664604084923880340993044845254496635874544832922845179398214703458597551898868976707458181211229621100829949698797248538632009586762811363222558040337099892261211530969227439927916982334094498444266020664696042063309413080451066848135748233391605476624565044590906410227577956438715644860322084638483665485940648736264682254847919873993391871421921765561627679987367147405979469447832128863760104761572403381209157984098200004338519958036399537960025182069661731380372628926431551275474031053160825752554179788330912115980265376648496403308244500655525867813782393846628195390562397232492523382953575674700302807792435088667566173707101416829856286491485450157505737953649995208596175083538504552508390087126566913346226742494700529915507635179416759969553656789439667004278982039027499721079748775511887897961165617380514233609442534175814330502555520351630939982117127288839400470391539731850002900868323352562877553709442133770709741484981315352874849364101478636436955168802464630454155056280036732690312798922486439004368926105294531772557924088846209999833406600675991785212967207631817163412077474328202115243309849521180499039926014594395022329602467035961664097710314092485631801639855582700371173811232316418894151133134429479877561391656227613550626371218502184746124518751349188781678499182371424551468200579471104856144589716199492626555882784847158556126325945455206942558957478463321830439571761312427404367798610039470526379423653884691604884083836426712805215634715849697958058329011400366117514022712981226183226735525867657183712092600767587687301128791748752757151534485636941846556357762137546774683770898594746530681822979451131827978263621907477257453749272451379870652572177957710981563116557753473139454686172879556905511586185493357451504757264315135072762150986934178289155644387556336567647276136220183005920438235428043903877962196048982025078433652119054928156167422933353662215557079989292003609054324799579444371660398133396864694925323898792915943594974758936768964655849307860364077018890408199751902694373787965716215510166046556569418872604788597368289469924578529299325932824420555019525836180478791912535580919107316133760362275814234344815123036147495044448268102814565854857523212480191453752772860409316633359549413363653971513031786600408407914877192261423645074383221107358658481138125392512367681792081041678154823611176862923475601894948654668768982340986810023573815474457246491183554458084539328355857204446001299706755823805772174319103990549392403257903161391909976025743939984255640389871741529981038307273372479042945858231627310953647842552056117907149024044741102479082300317620450838502495869720220323686728074040442808114416775365922953138371317282910039475127420681493474089565252721123250355503071098547692013770193176143033524069488533605827177366542531009530599115800583174975603193674172405779852793374140892511357249578438450539569547970859103535352036082641384537230496331364561801833465995438395141128263868353387103031390610190898873521242309236375835997818543126509226846415539408610131714828955339521427427466748552899236801236375240215562612124686729674520856397093096299418301935180145060062499564513448123490104353889701501046033886929495613900797985924277064216822516283009247736252748002771604455709808880702066303585196844380302984373397483990959199174107186155156644244728263375392127009582611271941621409422582915391126693096768734094149090836921080110800006103494955318942532006985589271955653824642567661417963603260780944846797581654017169795488058578779292764976542437766468560021301610249866603280221145765349811459918075137201705526972699288282620580288817218593506999625345962371734821414846245296843574607786498936156486562500573670269027490849394593175648996899963098578178574449568830922684775216870201975736778640728660935835284155740453264637897064186933862107123920108354731789482305691534738946392068990618929247183460617795706178662793119119816111799903765404907116965800218433420863086648997716523621406858695249695448021016140881552379128438594559071472160834721907227904427578023332612155146293790434968788781754233781492198318989795794477105176898213534725664749522705617868400456460245669419057565454118785849454339836045866139114313639663563349618927781868126770402693683216412794081706399149076806138482187624733408186505645363262076268021054244089301735977981874354330050096471392930680181561295568791915164001861145109514761423358967132354791279490277943351240951568085722161970431686704806869050023712882408056657696876231568250499622773908557820859039351874088538467882693695785729222025872326795322213364228078950101951179246106154074467189284164480363460093646879730214452337031257452966946174509047446696126113931991041680013043102247442966995882310011600878096765483787776940756623985009714127866172800990393050440921547623735621614727649950703693082471307020112836420280981960980546237068847720079258635934614414029826579645378410529072682265938714258356403890123685711799851334904846028864561731798908434751524664430908904930000107567463212075121769919722219820482339790937402423610860024183952329128914739989093145142323500718188232719816867665105727005954842845351583074722938321551862971332097873903220538881106753332643684806754568300041083423415270063264069845207431594503937845016929266885659144363726590743163857316802523501946008938076536303675609577078268863315120923047415526769433298025685265935799047870447085858173319456735192035138042286845284403102242980238101401247845790343369596422502966452371682085922806991833936426271117741172107440330080166733508073658450744441534577085307569250102826588455017891152677748480553091314171958432585585642478695859293393885336252006097049585651090096203128784578670966283727415487486406593811447894159224644661068218634242409041334458813501528367924895439388098291075060581462206708534464645733122802356679358073156895723724058406831042245236350635438547811328727623252484869369592895867667709284338682437284292234985467891809861148744772592582740142116544565554947772752592812906992281579461388279753877258427631762345618063912731502856194212390342709871512500848866565157378068906470294298766118154941689978463699887014245494480359299756022129359684067494335522582225079544041881032479368165234945392048756707412952304727442326015406537874804021961810163118467274147731542219805923565287820725171203749212648920258017686275099424231556231137666526513466296202906598288239240337265418848607182298486241273449971296496994188309112045411542546149111681307913074424493884823866431494288284379516106795184758429341714287382755886028667074472211345194084218934867644535651487148432282614533325386916067132677817782254868402660390751756345064138466993156829963757049733937971751885802495877131606554619394434531010364278046691670152975121959727683646818370637589991834611168771719519503365824373735769521393733456719812183616206626814039617320140865449607648989532550994885278875976005688708312479911460636848328460289538902946713470140612448534278878094126588139328553533919256486902762388070227431588720845439306794789217344906913249371340700422633427447185946621338832397933822945335233948119706998751902106348518559996463882269990052771981657310036463185921859597066099853808714216021457500355245718047498921691280773637196601401541405469301737449706826701120917492945516021256044790019114380507750574231421390601716238072392862579997630205331864715101745543768230647978731708151385464032348061937012406446557220964902165819877312917325868813178043445023004472865835720310557693856651826811630370540054512291192550992883479601725011972678468230826905770627831553734384926271153728449953135247131652199654569401391651853410793525233444545287729803234884940661960297046834588862183986138670515469795702907629017992842335928621551948129905670495591868785514252729396230130460824928165826977521862140086663840109300187979250138194180220587520986425287352054582918391273125453142731547321158307202632321133002572614933293205290909733377850232967739045173983008830719988292881472616196454572015831889675770823777368750854605567335798998323452825150380606621771266576833884407708174255145366184904740219403271462836840500651411990527216946640565974224508680799648375124699954081769603205722425625096596532357820416781203350169592874890597987445479635510050868516498315737157806072023293442020742839420880418002540295479615513663953592906392336552982889001716680264773481191182946118569146987768696565551036611440495173979579812407397306309210730355095824000792798782049026035689347421749568678517777111240252220565028572593605764456294355706578648508198869091853893560813941470445359470949995140787766957157756586564699923811107073165168600490278560784406582592742178812598627422477428119487571324391343652965648656571810751253745579099524059099435660323389912377671089046980968268155368292497282976149884524863611715423610410883142918994078681955159338938472836806201812208131013183638655539658440736875747470740015868234642494581817880253669273648740683698612980400618056781405145233239452731605368138836625335375173327420666940417804921783414603150306342609298644010419754159963564351855097156160393785431978820994194796948840284596865449712389006876398715076029139869951650082177876282348940817913294734458989357142370697372609086617177543041601153805777412677333285826106933487915817207034206000291085407728064693256542481187710186896837938481589055329828609860320636761140850419407745151186101109234602275684224478659184278740161443584701994425556209480512356492305997433660638714435506684539902840467903159761656109221414236555109564954836493076795333805675109962329006839503454906477217817858038093563860120897956617470094165050328592111053118787736863337205559592159011735536463313598619022241868379197035173839002968780529165546066700641860034976633712554069296032361035563346798122921496932914038432789129987701508212711103774423728257141082778647065708471260958739990416345704246160280382053314174997068139682250348796114454760793696036193643203203648606959023773122623099212782867120813741197449566037406434825631363862141850038075962101164885762286259553080158480364760876208680041215088746398912872803887798969431898810736497887261833030359099530658297299590972205700159743576561005037008956010747106913066112299196407421050489578318005419580651987664803070227679821808738317792980356223185706575337548738855673442591839802653739643514462173458185489835920725011875418660291176878734701761505634728157689265085772568939033525695736635200650787690200701745289124590663241784301863878616997266210909365068288752254901930285440369187645964158258762120774797812590245368906289577643009563979239012171176262716479387740074409302660602695914381284114268536933666688976794802664746828876364452249040173775753121560507519587814409125365990749202594962351038366602730544511089628078321114728516817308050994234112766783261327518114554477140269416753298189343823791968555322659420998425553266918047487436745162574181748591034244589275065552503174711631644401715220130985696658718585560385344070099121527825222433672199732811428201909248111550928357904684684504250081281025694901844927817757386229967729283592711824226191682983384136792844009266104194848976290534511200739250374068510077514408555474857833579982531803201904869715722057223318263127268722065901315283168094468065903786641456493693190471768907253390766252955519731090813083440167768726053107588729519437772819648254521675815022008028510591967115396311006961137624870079171540712474037502392324744024990244554421816942253860260384127555272405748225677021756441349059002759665009520934121511553013858756603393190612095637832912914008909931532413087870135808348679378578980683979573855776791829811091297295315664861525790352304340517405649713733229308758868421867291765165705508614851167036613279920459851363347746294387163672763111921629159796052728419481894516456783605452614339680479813975334251141529838990045828667331164645721073659662850297306339211866450838711256176059187429110194459140238145986468471951344688837932369683286596263697699316857841042023130221879301549965188227861376945310820073374386375792324774435787726067361286379905326024991331088690734817261613583387522570584536528693881865144245022275354425098508851735448059216412989485677850091539497000567136041768973955520117759775038078793699794399964671697021978596874029771818788493562856981942895551542915398335496209689528383659197709846674358325405830650711145939243824368856002315839759316415599489669321874711341603619977192519618337763291456187296681104179743071413734264705907262864895850342453074416339403157509038296763395200122618384151382347088943258879275227629105653738671682702914910141067181971449798864756019325363435707156973346700589649908700972533403411962867535865450518262524974597466070548373380956687495871962278865708369430163579899657616655997598105911718180675741779292995926282481800382574872284317103597161462661787111864601839187984095468338313262339044537945797145940197226877326586259216088884774990644228459192366965907587158120157640993069913648179837829763585727141390927093203231180169614588442667233013339309174489160364501617467037984223330244130293277418216100672518561399727938169371743363661585776203619004112748573152567461019074335286394735471230170168429769533335667354171190806329478219294271521199460185421283933832663001389530074206927844337029464733634692941956625648316324924907066686436372192912584751046636489802576371672688669634265926948935276464141632843507812539298220826159541565847000524211883662824976098197263265236027026935158426583465541883241519176735301408050761671171347577336034022726180848578447966131684678900876589205570730460592715913423347415060006594259956148535437976282981608120514288987816882849093348951123356738348508499428561535896195587096018179288599757436647336482405319219985648802204835415861431469593063888096655373056131425344823810048523608341885067242029486101367752303355050745264236848579604172235300939456470809893523338145394825953021129745053501909648183009434117881823982728549767939039207251565407868524239307532799654817512577894648413340790584116714670748131615318212602376421714857148345711965889764926062946811207593735206256747571339518697604816458412949429111445185552820843507074372443006199253732199724127624029464617434044651243880375886848826246941506497090558759623348301337626027460444299274834797087110824252918117943080504403156664415017944598920054458578507394079615442346850656886499409864086973001167906973565670313091858835246621359826226300032461372727590824250449396435703550062175545874770936178436956681478213767343618043774397638877860056320388140215439229324318739319255832610723007301915497084199671685952550409788866099789913939277390799121758123710904224900591028198627454722154547524739023795523326126212980539714133108095679501269488401381285008204447507609956327714207708504684039073723740898262137325014996251006232107018420216231033435413023137419802707768614842251297259979919329992420635290548692798831932272689548264376058856970530438599644243723956724864862079868615081867573286452099980195261445233795690195930276842778975673819745000552218800462214970870379112430963112835241962209284940555692709656611841374053512970738850044141909726634858075441009673228223006620147772740038279027124241590305271551328578008382318181379653099175926137972345550093332505555335941548005810847968318224110475846140275310475430937328464644692450667370503493276928858062374130970565621857414996076709096727153675121120850903879544692044780533093866282757218172658856299960530812297386219372472080481064777857355245194190181372840124369416880676879572170547903687035560423654040509395483003936974531809258511799734003831105652644006810996603890541635321423956209294544870654161752492158601193528019485220140439958293507046828367719388225884605512066418206805158461368929501763075561860446289258327441357148891884841305480980924993997708692200987109734764861193209180641314729746694671683184704105788534625435486184315236638848383239309898108859718008625966556163991817265675021015859067716184139180352605879828200278976257668330167366721420228477630184092686205111520763825605887996939335308641024644488431912966286086862033035252005771355777884988639358048452934752754173727834051754646027668949387529370442524390638149621307288571939684103848522077911760067288761586851110210245230129055428635026398492204129451017903982458905866219961699634771380453426529556734172495531180856721994599117865540786679572106089409244181941137648409257558109264109538038764179640731072952976215137704181602541731678277544755177227924488032731311286562474263944724254532283324853879982453879353053919881032120786503009493887790906923768255690788818525890826702633569625010742967946642193925136629546580425702785161169811752228459431722162603362505255908950815999468674800724965116779245980493503559572824865148325456122204771854024509253090339498242480179951892787190835153576054582493983167679123163452430323624455750605362013591463916813311462414090350202819633489968805874676201446299752665944820495505136043009836044954794405568426554640393914002706915543251497062133857437986548881663091822251736911587332263390305901517109224030834264155304406124161636559385864426668358599600379572808242962129863355393298796749954452960445530813676167769978322356564201206295426816793100816946354503750700521043323400726663914869148051770918499614050752569833968418227971726897460137032242256279031940350394981386255438293493920294311314637011881954383746069345890997617750256947542618742787581412884114694120517278067859353025164609580319871236750133636316619520048972786911250030856416438710551665121858646201126029607270523324700888321016914729383227772935230682524629888200319545648972614980374058950916087582427272641837854523963831083937547485835293395265231079975008706376071627155826606123965249126562602397435532403942768102642189157696861216020593702196563244426573601683193266444765930734594486796316388927684624557216372069611404900659370698567274284093370918681827842469488663348797529405397239903917952532506399613151586209426495528775652321019735206123532690050029717156965219536624831152551214131601563995801267706094043186084859211172971189444441245264490363555465009321238687958460891761494155802894366685669295010820374689849527360714212264192657180762395155791173848603126344572101559655998099539483092796264056886350713884845016288811680801687928019730496637659743947933215121312852133814429729112705427772888626286485787592536719044655416770471925645748800549611223030202514430882528612126775602521649402608152441944615277459296207115609200968850857930476432328339099246088938653253178001604330243914772354429959641960413273221336216077024810290827091364119148019399167166609854963263823265453802725163555487633496426526918684418171052833243739894430924680596631148574634146018997248252508135072012381737544087808072803090749988294160654450000311116498259698628966206948182729409909970513094029273275319286905323349361775149117017657111425182128926503899686109649003944372087809161461527625180683610616832513292230281744694269518901465048098607229193636594914595356815573148272511421643273490731752147139074346660417390059338111545501909058661552431912544127613878068265278196796162473617209872108000932441955790694412656366139824644145725837137935188808243090627324999235671290870409295807420973100662713062991759090548908491353532482078756602776639195913352274107477964917468820510482081855304857776329458214154284434633570996153030576613436252361202399940790872114266852889404540104330200597079365515038899204042049526664557006418604022214735293054205531710852828804120021221317368647160384144886870022548727127863541114072246615550990471002101177734131378571553629015518592111201622352428653780825729228076975814934825341825788063581075952627728176024653868697369971415875271188022482130414934729091341396022433893526263741890540110523471060638275080884005135270529142224210567946162002597054977569049337244304528424776594946226897362132766673107555565528321944699910683795590804882920941349268661109338425428847247438735298318409544469903717639848896276581133392822836949656641334444631648401405698553592199848440487019316852545136477052136578304970253230052966183820686812440965747814533126446479578779732773663456622704442285315457779333356508070624639511117457287963486483051907089481258721330323337113732864290625394332185900748003032359995860584300463182537562130899000212380047833654056143746347087422059788955648066160656414939034037245829994073051725663098552137191312984273973521717567534789999121594410739456561470985664730505092412868149470636487029636836614042798716203150370793696335647778888385161693397443569001208461960583502694659843335282533607617723569518432812212315161940837347170660717081300979468222530748436244386761564852198668997634418440799498995732432424279832396342640477663863554041950481379037410387501917213625724867486180148961786779313850918073908743891211179801599887795335036807867011773143743708222456078060139551732024632992923581859807169288077097930991827972426597105210051613494729031474219818250589985627904899131688416089367866282407100384822243578653175208162794488496471955643627082946914643511776957158630099934551040643816968570054613660292209968961800636268247114932593178576760080703648821624809297559693931806029404268399692506715195658266414496604239446061185700666362227383727636259847284658703744981699263842652974938453898375769585017608158216650658336787545160234864233902075626477019488378601056488215112791428338841138070300503524202546361836207943970567137798467071175060230107983130075579231837542656798538415953870866731506362856199469993365855194156769699194905650664088025788255425958591671624058983615996033300591575959522937501359023490522347483294507173206553608987453500343041200019769833642973143868332210424645446651821612567688201125055884219271498755208145172451131832493520173560458303278345311447595662153863766351179169430459385747779469275665954150754231464737137310666364596506372911096106025461964735489826844187052703967432907708887811785877207506224803641474535167584561192308417147898613257022616838888974914870359529123383962230540360052711203110090122877314810475207832044362644754689602373934850886700725327881573850722259551558579827840110824748044303631754569461036406306794255684995532506346230001558271405390767480598885832520810134196753775779970036258940321848665625950555466055522396377487182455359717661313967911552922594469014917895100137122564219467161350587190434658768869793434627968190901388601800400117777518740645068142048608901438550612566832120380965182649181000561569572381160616424889357616482331727106292066142800520257550638011422705635058995343134310846346508102764860046945892681797523060040326583782762820379003691252159823845211356271513498223303701155298700369578465362927493753038362665992158516348781655497551873642294171870411065337794596353210368470637261941123830316711215721850216184975604254554446025486739512171892594273306602317965012589767008521381081031276075635192644996993273864096093143214040951791079504100949932634286027861758392842513139416224969194092890467078091468121910359781264414208537502614941207021057462962085984556412129950883410070380494550174216155906488538456330223823960819016019218334032810408793303520613316340908146823245779316317190816263401193816642302572786396764884617663639573771609780617966994165875573894809892015577643726390045080311947911324214714284648023759836337332342313670954233452377811901653231527687302543558349354145541351870249724727854093970386682372073953072853137285169207631954532885611346864664695556159118232126964784256246593037092568115729938431662709423128175274309766558700516920176089638971503520903234862400639344887329273291653728527218795560316903509843486387907235998907581828200360572747604845415176107699281630802183109364735859734551866748716745826088637962750013590826083976605167481447434829920181865464733196406862867576557573678501119153638826232555456613027374657398224533663608790525986175788477739090956605224966865309885026288408834589204363178285208245374482786878980078617081644624902969850976175368436449915351602550425789070792515572654805767814343907702915666409961470167646323444316191631381158138073916902711492426518061712361003432538823563810032347864250782617836261157723142070931152394010938167305156024261829926888303707386814978908914734753783953967504896089558780094027103012810468566589341439989697903194032572820573543568771733698573152219651643160945442052528459429284723384303343407544301854307985927114351827060934155391375453544633690804921216731019773302264754925779732004745950857807210161604527755484187412218638380840724108607782925010773638078570631764424774005922876396020782608522619432583399640001195781639555125842135178662478395366547125962684988306742268587386892895567273079089238079111292814195647406982304576736549893482687955628249196111647030364677729393288652593013249790948358475106699220619904180527780029879701016267590989664460410772535901484424147969536086372504653985313044624361702293651828568697051381612629111817645742221177053643579597340204113756293107299686692580064689464487362879298358293063840500323297488449664819840269301712751039573351680878011679645575934051062103327238746452990489332805616801072422133918597397477733686305508806319171110958358695234937470149030056894820422077418744515854677428152362322696515669316517380165866525443553516812071181251792229799471151359009600529174102752704195473282090968881458936931409584330730660598392614708606656236824188936690827752731545630238494293641636362514409128239018791725719258490125493055437536864909830115749740330905742418013832390194044020011555040485869493861950312210817044035499813326017910939439579972957394921067671992603415949411761856722170421140649915156001140381817708482496001409738210922466182103918713930488108863835914518444698534589219461745937799633707410425037556715714289151912051539944063844377456926929081581071668005394116145570742649599372665046914366908911365783532474953671612723821422109210670133345786670432518306655184324726074412975961491152506963932531242006643234718812054333660823659378415978131529934715999773891163340382121430297562957519721354109145454717650538133482893724877403911132280352366284159992188416300016724398531218453827177483495949061276211276781712005621331127687575477287725903079987333241436067674021633283358848447627500925258079925570088124937491864925283802347526464836658161153880211400251226877451113116995834769031292193816547609908165630836431869037995974061848311636466804397043397444714818098929751087764055636776608616476587820886342850228936590709057955489758898940984361274389609108117191744338660954915064889764535969092158438847393778335336458450084147120340708870476551026975247018453028829477204446072459944874675836632720180652973602026528329678954839813367375949497065202992602007349354937119565534305110261993456736366579848072525696836961352277981420719104591241143352871831849572657050097192830902859138946067906435360621108432477757318463118444627384939243863801800203007500648679773507609665731971989113394608001032316883953688861001422502908451125437906733912064392355568808650164090880840932256579752578799650445018697752729668550907693686136240092289030287707408786862733371468925608927114257391160111844525174114470288785832303070456177127102542870830112739400456775436953164510984377076792924378052385754247133694427597746193276147346667494985586046698703662131937205209919632772334262414587953995421164908914620854062809375244342563922866499991979797751847040061638493458284027236616750518929380579789972912000014579109272040164725585551163055302450700711202851461922668063380318310252354061452421941127147620510475650249843719870127718231060545530886881533887649292151455939266958585652373382835937354539421562758726821784764481522249575775058690082498172639682031929490588001655626783713193091320542600948069010880999450483893122267345327200051298335864344450291617812483274816959103627704287096908080013587742837816693701763598129042001301584497659381629131102987938263128343120872976080679013151878049771098633308970889694668342741781211310614765924976887485822088652822790310042020310769509672092110068628780790232104450888659464793748612063204210506721842393778299247756645458524350083511064521311287420362058770840173337648936156038272233604843487957084480644450492220509226126383236896563355551602202964651794977243125327006383836895809544177125726778951420237986895294147270475510284081228499771615372694239829969351953764560322774219611163420116385974395869280013346613362423609006377593526942717584956199818908405634885182490573587129353186172922917397122217654619353528652035361840987576757712219362055127108799788785982815946422445990387327041311233777263440053631433545875145761302240964738344797963150651781618632202917118961017845106673177634698235856866907793994230337147306495103746733621058732511926119556680857970543463285926315156666199471269032669410365592018928445032514420499974425355761599553863810411122848760761149221526956899267691077471136203275093805288840495844179689797500246534995138678456638128035264886337939456670371305536964506099084371800872527285666394022927264984230875205040990870182139339696093865025004048323994897378495602369130350345621801458650160152830328805056312386483788776958447569923164490853274465592250117463163167891030600344343083367378098667636787889569850506528807211467653752488034391388745804215298377092875872922277462743157293936173949810993371235556671741345511169837919794345411076347975582651341403180506376861006532375855272157527100810058208861987966878342050588421080638655014646049266540462361626432041154956083808872937946251500616516158704824344965384115857234173145032997604778493352475289621668543328563206636727706462107342651303409082009917009647588397421376209450900041234800445864996350754438797027170947231047999699269450675756907672154310531754067884098058862365034942546669479082652857203562783317891583511790271727368271468054433709174364994154538448082456515569243991936961109110285932742106842892374071218838746095139077743064033878161052906885645550663541119254921906061535280648062193556273055018536621281630227077150387453753911676053144384748851016858697677839720005654198329062789415866348672544856980486584022113927056977390397782607029870122869880852669241317732767231545793905610367255648769734538009433053443010101122142569571935626898604124710978294787760603072996575071932678336866335275688094554753206322583907133713367883005213114018217914049736837269287561543506344163667945857371487241277367312282266344568550984974312925732678105222023877816928064118446428084903270908534216718152456721452212771076784231425884443664893344427649823613079285102330436859809227671179150059652705644313109794375830829044739905504293652541742916465999490321109948019262873841373447653951236004180681999729737547274726347735992545643435514103718377793466205662882026416970153596453801315071464417515082525187939059623761119193652290815998708473945435224092459701594151600205523279222368319015720117650578698239276332649705452534895429836528542547269964816517930398499047886356760607715119968488502852825108553689102605557243431509169323714672702166075433299876460690332005569942925553771374070191605183570203459504914195470273404368541072452348658010279574540991502844532802491496532394972883568059485144543542719905629099947797051307014524441843764417578102850120134938948435464749491826750884413209262060407207671995663266388379607436125229270740647165887910854514139296942093359957225509135682659268070947198767665450081268366387124199387230139098880754265198120626628864293393241202522280819510204964026062250178848431573364090927773776782264832255158778259955038194902153993120090130869764133424612974539056348550949503407936115172558075900748968341518329678388156991839290425579871225633147935265605986114201770404238900103528747758585813708612541847446480386818250566612988683036293213564778287052263395733929528431212374503901776028259573471163532448005020564784829175527451968598388305420925730879347493744375085515341407316950907680622464262437404666154884955848117817526768168170819911263590987933825314281317871923595378335967304453170431089700018103220432463337768050423498334891423306030763279742834466258202988582270399520576481834611603209880540168547126950993000163739789581429121118334420176093715090443147262252510493176606054214282276616222276643956741885819470821859653248617754244554272490332128611665011794854939758392541391951855798006420546239124952272598167529659944512391801824003433989586267835774995906965643638619468173530615281671554860137350467830314396954164488111696738107740366034810182459577711941899584923368164459680336655575992357081135440939140101666215129793690981187482387699972858717721637334276365034802691780459668535800739895032420568823616426636496602068698222362982875522130542871899679927787325646670308064803519105861661471088724369286070299147857607728559826491299478278812017724032326654525719219870356307026242839696895563493474024849176499426676299690468993701668847362843078556237586901143994051740088663617318892377062304810024009460239373743869270334759909051008710526932498024492034663615552528816727469811112430820776093214735577387794977382966129362942262008359548622654137325010535507116297885413378678723449628024977048825968394835486055454640382084606465205005312566316900775237939268023256363025078227284979410141437984789151127463578463210891492850131770711382464161119111732647032700156726688909693284496991838332776080477504500322266194982309420986766465155272299822101741736419888138279610010767932353598933008904154978193229422320216854094908266333113305789304824771631824280951823604884675099585412677337828818013911925223594528077010831293173148722861434109135497907997069934196074240395548744656654658434454074234105680634299512761497724046761335641145671171475828431084366506810981741310416542806958759854035076821618013352150404993100065401327812629560973366980738053242819931820003163878987092345022974810429416816112345728587272674469567864756940891598367438309470573391222076344858243135829046291686437305270222505781946157475229403958010659519127191432977801598034282209629663303607499374089927375551439392484531092302970212648273678755074544673945979307566226519763752231518242039880246680115536522774552944421696589577769087715923327516474634363506162255198921667653121115044151793558361516687837941889203153840397087206407558137724224650322815297464458432618109881933643825666048718523049476532951219536196383345040409138829307012483787285650240047688153829077355678125484586382578749198724081923382267466940622210492301436574390299427867401169742709455452720892284130314163749688740450485682900197756410290627542847365160259917255612103719500950755481307201042451701953114431048680919904299820675372872230636549868020068655246835173047308386169453678901174966226751212041264213253667864125452993556110014391672270219071953677846812420689499457554129169592328848720137921338706945021865474180158116639636089115153372551738407316129371769972415270131048181757373124448148040376178746566215191458764000949791417772223593407992220089939142399673470045684202816080095139969056654722190655873140972112534112163745868319974507195576740513810135131905875779496115312134970478885438137226821512293424370674826960435411638259357410065802897916823253620311000264964011360686427202718409780515275907766379477574218218008022964990196077789574606624854487244646605002683542485911733748260097610998347072697516681281924754788433809742297449834440110764295736274207135611565143197455817231880530119691478546729031800140461919642553534905336692261293276786676336281620666796107759602588075389118175113232919159348400477584844043470676443184743379327245561095660212336713645583953045069968738082352417238937391159919321206755654721718745310948322734030703725620105752251843651962563008518140436793488190682595843458343484095744428561556045042135696243296511421541415681215668982298918483168946897491660041405981740950339469513712219766625141182823636352364999698021962782816340256753770865713682448651456793224043934300333479680047170610170042126000267442202931390351731931644427869501021963099409474760095688339162922136990952628341763494658701027780597526989566260409727359143201482056589171324389939261986428091769512560098789505933815031545321572210175867159441299029997018167524447937327377942952321430760658310625590527425691762189322126196898773280302451079622534403223557498768090486394135863960763791494841157796524370201896285211990356090524522617940678225210877820252470094592480085918332400427866407180069539846068429907334026148360160280618750335895992705759063297846654742805886780260455382574517265210591519144211069901204411642215311785185033731703467594366922984333527893755088096688138705698327818767554313796658664662732318846835789396629466587518485290036195695912134392840198397928016454083214049272132719525168678570763272434440457069313880504443755012252103963217673289049299961597952048304276263535539434845878152512793720879755062682623106289497975678862903288782419256558881468425942554897675216177865345876126199984975335823839510382673300566254838607807012729090748237174780893190280809682290042021436635891868916102810491907616270234287339744814738168346744792967533544236676865891146959225981260987512624544940910676278881333673332899925094415562014572652712709296366196163762702894795607042847147785677922111957100117829793028538900199036197558487685395386905248673973511713875958368647313979414173647648999874994708107950495097574459806643084397352860792123825774061653149141552993691715305301714037813078141734400273413306801208737460863720795593316620754326303264698601894836287432993677971896886963163160182765391354905362330649350989400326869317622566374730134837990016533749460915645618021858318936234047177850241386273297715208437594350323750268182931018943202980923841272647293834531387804896768957674959070809259963223200972532120941533600196487188074580359291650628861930140180557612718881793973345100747065474575815644663142877105684848872534924320315036720510084560986842271481326136413386448783444085675848137064262737454796405437621325983766648676514359165283169481518459526905279002583239065892057500356046419003034384115232516595203630523971007757769774194243950115195604050232547258734445969744308191350360900304946913199128489234632021939617910016914684817294761475030055011327538605177671147388295588644297584129977796839889783785469896193882915315560456387182789377101170747282443401932347499278876734401825842702894600814261857342736128136037177989119360708527050123001446486561335919435026194791980124896890274367217962691677518587981834445033871125809070522709518964243799453710696474422311558528490813431141539823146475167490743272712656519481170743771422964442585697053927788820918412564102349935932778638339377939869263740653416427572650937246732327748910275956339504472071308331075777969116701034444880020836731044301068859682620211892318265728637065369763795441797063871421017562386510091745153787212710538857143560103671426748183404173620604356948740323628984221661952287450099059574787141412675580988210906944754396037263725389934322052076581305316124688210561908659873839849898136318213473810398064641279276277434070431970442168931714328701519552538577051973159491610776584564862930289647275117587071831286272048993805177984271494055290534643387199760414816504672973640081961271043339359920559939988435715779811156279040203299075829784161659318377323421782105122582189341705611289864544205966763663116999845210636449847053316706779348986803813523826444186071229136139107832741823209305030007943731380157647932299534735780850433907573664791268260011866266381682934062720413442153917493161698957191331492432351914180101262276908127339222912103920390465799243167250232674533469281124904151888330364284301954369889334929042264935423194172142877983418918380418097442529877189855727043474569043202472246097981756324699723739372447178585035759296398949880131848829099157251010997815727924968165855948548982076907162090906108396021176983944499205680005537091133700276772647161556450475118327054471913159868422497015115438880550876600225937556006333437698499309309448635621219277859793450695294426520232962714101386310456189115637802651897390272425498977437489233688273375269052795604208893074315342339637566551046904798327047299758119216376899522602512440418060759299059030209430146924407926772740376770916655902257516905456753598978446302614913919220889374679200606275829125379852907058034176675206862726823271634780734941073952750301447709570655464218628299198497795978131340530717934137711137622835071137426648693165035309122477997981151371955090208213039822228373748298478276273507957095714960550599244573959380712654064723724021893592775074860638006931003516496611557260353819278297096771428823874287284673972223289306138346468390940749551833165789191225720497439136810949904005698239504323029195286148067891714304255325311257756784327308846120480667652983906723513569855804491761520153460998876433927298026963873960837118454041116260124371536607758057060497520961934459946269970736501007010492594212190103190187817934940209487867238238980064288332683816241518263532132091257040830846219740980747353292488848725372274113456436824030784775859163581346265897008593698513723992713208729470298572046516499715910687428172088180796482381283679172262011449962585328728693614130395916862168869570816675064632952178930380238913269866685629171967503686039273726025698294749641725175889370750025137101021739814205237367194925753245886496690434319682093280734400069603105478233864711284959678574255140637846842632064504860922701451946425685987785020315466626798761862684715210915568174807618649917320828648482101553800365710946222461500959086494258511560530589459563189425469710042592642046564004987665264627953014883445109574926423995084381159823965139741123651344830491186696227662510773876448044161269641805560474997184513918592855077081436447960952121975238023685662578865869481749526018519282967851807474862646881968691930955601254142125984223193527557780973586074552808214824418445514605965704513420070860752754849867664305207917371448669071452809168967600671538321429167704464032459482628891670072670727934655218665437562479161718570880346707884267312125545530956452593812832351565331253536668421178118521761756649732306279129408293836665599972559325753056697887268536301886630209536561090272465060650158674496050070301962750504879979739111225023828462566493299497296670814411586552525090713538385742970674836422361445782408753497130162661580269756539985915344745656352735370696751578509961419943941105808357949924693767969520812888266773732042820923823247475531795416421858175817716298221430964709438835126343291100535078005568374812601641213189860232838643405400245144536166960643339944112950854860543069855812471293121912363946426289373914213759140105085431643742908941107373280131972181428746133551944525569497123708339552872559010319500820537691928041584688451975606282131405072887464023925384965218451572764514079680875298160581307117575701918854476392076018620133629034662595287646750478849147586785100942331237678909216736600849266628672721584907843231947083213296802560279956879918799735600541366281671292254783725021393685265719586974080250820683387516456941570238120677668820316175848414114354852525248170996505633827187959510815135128136688055429540826567409119093668840102699725497332373657060298278074491012537643468530414047694811411429520795711459232857980293881709802546896160989847121405987754547657689276822604245378457107221648709822880648722726598179933263694647110862206571910070463476443016828286752528664815350046036236799340076753899467513763377308173276549299788280927961033470244048436259618206097987659879894774691153029923154493378058096045417810648175998909480913142659511557306269059264024113066807902274393039605569512376097263100887412035889510012263588446070995953640295349293828179227824434378083667686254985115066460552171791571196479445958790684465556606944519323770448995401208928994966846958435252922642373786799031616579562089478963886489575660393979940503651009492079103660221371861991690492697474017118969920978034705344864775723424344299223766924922774301626038044365402317435386084081630201387270745694780951095539369991589977734651344576543410232214524358025646069101176259505814161038600882738935246423749045106588428565628909694791012376202968006870835700144977540778452573490756712016407108981578601730825781696349668445542059517952573534895232690154689493879647341793017946968662535806288787368586324367393168908619874221007116974918140193103395934811024494942677818621009192570159612055466580764867351141259273816494476284582280051766328973934651947061782303020540711220429289697946172782467797445461316124142504471245785099679765708638083630515156282117637258882138237694678277794322848391928469015147771041964184369808520319732159932685157110173947510007970329499664580113242291007302068503462575875651193249047321610398814365060014798006409445849950346502307484107326904896266831659299101774022484269588476797293344543263049829399716640230292244139413835325947618695906095651177270021932849825448185270267561517289661398441355240337336248749095180657921127049151506081835217639902601085591899185829709187332910570933807222523987645717958037784276848031857236379947770983757642792409341044024934388409511264575047823395561327715249949152737842337881531059485551743574250793437115188595053650889395916110340081292668597508625157689315239007177519064637018906823470557831649602839207990530502066395422687689283041552087011463541022454635867902887314536162978466530171764355834710020684268517598785978030270688003799279402399220772861834656116674803205954521862127774191057403215219199409941942419125277040958068073738955919197606010398624630079219434629036799302914311981199246169243521750311053226162695327165350844792410391432006249632137183828457823068515465135967519569248610674463033429607362876607240110804677419816029608629330696594141497421287291530268740988961961013046056761895605245205483170833443576295395100818215148763199170726942934997687059923681111253096092636965071737336507605015994037014791861244636672985239116090297811085660778182425846735161757803829712642962970944521989098131096558291032575280366184228866058591468832869236083649920017708003306326137009290690460701277016012269173905511267162375055584004318398763509735706720841069094296710203291136064560814610003511788278375761724184097908866719644802384700218565586584770498562611671735477737238416490195937149447279691412191038497865671880505356193075994917870516221806172667880623481167415353616556503349945731775563035539308177345356158950212647396310653944708698979397067593089420566072249739370785460617691408122178056082077525121307964092336972313037120551124245465083933364172761521246446604065313386784902146271019421760712422957758304138402960704892781576987312864629945347898904992327460805838725064226840211738498203523578940979663062287082942194878113567217902451694438350299668167766744147355175393737763558394186426149970246366097901468523824813587557832259810831545123747479680731813001645301671489921011024966381387729781288431645548432527732617551876025831262690724242392153641595540406144288829215591670665931826191008147211242400955900789641066841216066562010488802807711336401211413130575943577065151235679774918346911447884664924403024018546214013251980467285312559428705557927130183378851857653947050187521455264833252933795673349864134257865537304916140402853998312929617019882426089483028075640063708371313495953791917488088078512894021918609680696504254973907976896227024819538112772104290225078076069860415067630659069064831289472625853448865941083880353286285086985983537434000262664301467904204712523939178489292542605713394820186011869406129499958306187350692105287756951574082746582788179010317925124571889898779703910350340787743833073579470874510099896498147106308422893919583074443150359718865171100178653122011264596124900477109604686120801941887849994021934983059912799704517656595353691971824236478032423567723747660976679581536595641252991269470737280875201670629797269520028732509486055454786150441430481023719724152699849714439879008241696068333158383508754751590767574559156774380640793728557475331361939502141159675875319064205382048129880466923002033437122208736803998124160314902697445641398264385910074859209313831489814334670407333895660228052305808708797618143813534022990042637312766241863231069549870396172846275951109281555825835347576596271398655213873191846316589970729335452564927590365684321747522621127010276345613626968943366741372483178537547897569768140033677063592621336533210719275462507149196794883503429089484889321061181156907331867448428871966065062289512277446452679167354726973376726469022425060721375555268670122336511440658261615143992995401713650518137927971744296585461293415237793810201968829262424841713954565530742514522082022207441779852112169334570461809778998760592334714028339785215465296020913935589987958597433357401758314044332120236544011202903208511217024821440952705974878058917176826923455535014549138688246405411828348707720904807179963976854923610101286007173806954498157793624094189016852197722104745361053517196384312602190912582677887807285419238871833655642674475874705488307640083344247598061445013507679110962181431280876996564640992680671812614655401749959903725791809569834550915483629132994545272926914342773249408265178022002570362901790914594821303847597068294507507850559407771512214829341130834484520177921692010674482095935455593179729721269810061098633143026018651725858385553429280336880852741985864585611885421842782187309627540999308100842571921605301196532478730539450711463274084811836416796278622095768339700302885863031982169427358783349750521417471894174573247050555026327000425762738512942629980976187399072268250846410792452816485484127723048211623935832759469376190047477440790720043962671943048731660265869132948664980998454905090188800961513126830133123919292692262102692229264786436697087126738106222760551850289831608654925770451076778375319709165346587804907563674440499809187499587090311617274163183022701289709824012279181863828616530353693938662461764738467174654554675567564659155265226522259008486856970435218150352623057553609234896409233134433150350021608206469448374984487949892160814237658349612028537629792774107059353878921214939641969805326774810321278628020008660243279807784393489259106499578184600872050467773354230440041346147363325023565538246295554587628574571309968914053209329077114060236421957162222826741912908567477928610863034860624914628186041136796977429349189301752711872430520108778274147015193167811705731195112290778010323023557024400674667990498646563674357220297188202003913165899914286347095487830342005308350365560163956451043544932676489062536375482998742540861303652646016427073810622441072093166284955889471218016505838093913308027634827256331562400324309830998142551921748393272639584136325202492413723839508407399708882894295806878898605058122477548639917064295552104191586485954586098615739391493193424266503923168883193841614862399936582378223671839575414671655345157917203194183716906601071868475545359294757719807195964952969740577339174791218344355435326197609837676071619203781135047825705001875024093088309895122798983348059643804619442479498573242628760782896610014049381052298285078240640740670534668500774512521730006251741600045798378958296162932678033586235463256474590071402439163877335680606155921239506501800474505871974663778367865104268189101523521792983942512326941125624679015275308456579793314345452865118221184106165777298629122266265711789926281607481480676903100748825705872472755586895307336765280003767328725318644441911225590250515233814276692551277927176219816692813273378280380417302508201492723007632381107877965347191210592574066469726313901850475612889918912816440282857248361503778808197797978194380953354646369416611526338236986344778566589267793578019882606837520777774415951037685580935884869071212661992394877347870457576573872366267622657916912646798386556755149547653395304962188198711215716211656633725457119935367238574642422479122997855839895451123214791617683081602972293610599928228474427041647790233636311425476708378035592500055355952404142247158058235824900765741000017293950254132165764995652637089311506434102941589519530593445065093430091321416204055051737271440075887670304898681892386074095037734151702292348136750352772927535027179303067501899726130056538383367071350617511252177464710668324459531197112500710005340696377410496563973427747972657968884059801810477214913276516644942302548139202808217611871744867953890587307801006468630441829251289720348197545641405992762539219914795725224219963794508596474586707069876013685455223214775778587997131446712508183095021992578408998783788752861758733581630105965632385636568023611457755612074399718038343628858875688699707517937946143982187414458644778119861301670260035435507030780149277745064869096144890884130564634225619371631238466881509327597353232658199184940479335448011770147845251002766548015341549454593093115069099224949561634451027317057697484339160422546610521056312637232410482122851552036178372251320199037184211364854480418736678907614885965651188817121731620852019494399096378035203894185577351809016746295921180626766770512761677464196325063038160549610462409819167433441953378626545081161425742076959235144772871058125942498111862950806838587214023308853571876469091847833161719419335426992838424283038151838574504823986393583359579130503164855422816298369119198270181147258281984570208186337800146618748801213822800705007764010330934099578785153282555814531220810785758237599581546881548193636875169896776057116119198953330801287303335010167520192636871057588232023063886730555643769715898764679294040785403317348508013237937756831989365524060264683532590541731385844129577309119216228750670913241558942360721706576213555401702973692060899814918341367327895072060225065226372434594393936593619492204996487316314572062172858722891080367424771704540146111156646303465327701723944844149492730636740801053309758354267293478408859194408713071896730459430731873898815767096750985275443114631289786538539229759160438053753600935489854204134014109125501472081430222133933712809007671356150114337719592933879707353077351795870425871209037876408656798350268283765624276181561724443049897525233476708751690734804725617335763436857312127949943193386179896416201664389883054711400506247902609556928868586150210960542700338746194878520824909877479100960143667527768407059200914612261165400079302941873452765511935959661414888496646354920915515997183741997310040510476492568199842520007497749771689535116750139197622776535391472307253714577168810712013602929663401103944156587132511489653763238705787133509065431009847662692504272856479215349776576366609460122493410455457472191825432095255558332999433636651368989279420056982484313666376195744772216551416662889114957856894823480934007634530183182844628953201856537488012581716520391388867676704171953798588879889054297167268534844974752917361177021679465367430517107970231400048539668805051565257469186844536140779369650358843030826705223217349444767076583220572946680891323738688601906858217647138683606621793453721321591896439162962256327792578718640385818736349434696192101744693336450259854273499763048560092680564809185028151825702759352863633426949520833822232835266861127761323221124460878289896214161867260836123283315235277232101742330278245591365571863555062579644136647014622776119451215878715720701022870966854592794559504914075990198180272007301828283040737415093672205565574778788346599201485356390985560498041188612486712203165304037186516397672254232661346481895465030659797661541222835180757525425728791317784086470178880623843934071024093358462738642745436678355229012548628520777563842498592936317535655762740451746475320383558998580233805707544367422086313981201736752793986109536940328225178362085113874775761537355114969026115789178006070418001815247585378154531665838223889429959211839679421602782494402340200127604318347033205377990386121856185087347978117135461013383970232665491931613421932464158681124994469114561414982148902034898385067881693238994114061944443737096573846118064308179617151491151527198522924198448025037729638288096758474607474559926748530921475162193107420861163489142027335794355200805508207008814799216405536798150511077189103523982289333469049560374899987964552853256387561238259193028888908595364883596448536112673357828355436078221185461370797598269786605183970129624011011106024448659368010082334918103335312103466114209471770954546778331159899224653024245289329512255776741085109050093566141904839117725647780226302556874056863801225572746081399651041841704829292121531087924727027807645613758776680248164702816443866293079342487330665000678252386491086748783901505043563524397790112703103918131284410684787327609902819222085532154629153699842817288299627171209674657560609840898529448659487406256459879190773855259280778852826284300568452891327314152756837192599429502291186479534205376539915571334441691379724648390390438076427366348494021039006346537606442147267865402866945873964845200998040473753454583537383819798549539260373943703275560434605382883207962890292204536646794747392690879750786335347173129422733644146516421115508145692736682151254065452711700194127660387048948985765449404873285508781995345524750141041008282661882231072484162651127363916983252557835085621055679631097313704798358400010593188917271751874825903798456241211361255876180867808373744479801189996831390452077758063333704419414720493331430962612450340831337145121510168874065920412398839757307723974246929336736376284738204876488107270508467964008782845264138318884042814842066018253893852480117006862993990077286948167229972357345832596793195588955594222027500396965775600024802993403877557415332113429493835081381619588484685615348370224665352864399477552978496504268659894905170268331186116712799730015078904482445893402052798939554355466114611231444076075622032897711874456262693449727335814044987073726642750644840836883454263563844362482394404434751361090671970498025246579833139820692849813103679816899459266641607619891693675642673381064151702526458499782558230001078807962450106003453735604327488188644548167367615428593957871050782104548134098917981258286103374453608608549774578027716608730738331069567135172614680781715449955437320124051634984413763913908159301351366131470411969277138549516812538792412203138341805652797260113490687404387863831815488446527661706311797616749372425177261691786299420069110730412784269862415080736381837920883171209951827814912407558814909874397985244679834682097880067603805867426090949203772774513396816681528786115797977729156662198062690745872313150304957104454351637544156349816263597542796385690621022248921522059809189435043712927419125648024717245686029157902227650669467881545370610771773331555366287090189061864518319269167402650599035635726839529405798662184192438728798867786619080227349263313233340725621359372449132077081143201398877386086377347390276885613203000901865094799462909861282843607700288099707096948544175053204255905157180030990493161657446493151222018718789535480403042184315663052785857971068550233672887782787380095523340384773680270380324333593505027691203873202361480791757054926187496109491175606353565224379567354943989452888444012861610265591381263427452935084855957216159781879971703281399581064847148788357417911710053469041366503112370920769880007682180796229359062502057953700068055227099245968461729212813300821595566385281579057636338366571679257692025479557187999020801703567804989344363004003017326131968170672226796386490683448813145316415300419286514147220871436343977830078644789723021240002419870587852245699338774746740283977334140475411416985316976054094357923401232660955605127752500840458931517293420455814770860832221131041350155779468211197391656415060826662639806131654459294475365238559055273148141061752515572331820389150222558446811393305863474067050895613855689711331033073397654162759162133850079833946949391198474008550111145484586285327299053178353767181034898978321545722439475283279406216292610340977819843598040626103920419380016842991742769795148938990693416104509328494787015967373017343117661087687399870548921713496790079255703509584685559547630892629981063912753864952657782532541087701283975600777939422470991627086242916932944685394969409913734250401269937427974697854832883087545270273603765155153912795632252413710582553316979662750814711192034932313643276181449453474527540486922077036811721312788758484213173568909405870187496267761151039568302350092768463880361223549115530285122628989601140657328969392918535027849227785560384863698977662962657589892513122671932815621657478355003672148727421437048738650031609299574498335549359698680768010093168208868413559467231443472144266062801894081424949077444269639170270274044099571032059333281720359855312571890493798908603959658150395417403382493640261043363030971927672549051231719294798815314380940744033578288515504508353930439792849550795518871698943942252318301293743769640491111056528473076434039256659736177402327920413979004878576648310434142304315119720432673932583053050735256462776738151002000941571506213908557095497046475143640061960206136936611914959687315472357513678881236893913811754765789780790392823565077547125599139512050183192346263269744113497600858237852315066661655661017557168732306952445766388685339111721800461263658250109057952380873339022474340611546152065264116821854451367323784381794851654867385549943116973189275107804519419953156012084863068536976580273793220741003408230079007015970568391307043351268295496012784248141486450838935714580058866012268913099850585752744291115452460502065656991904940482606909632194545271548353272346528637235047669579665745842634506342973059267881185994417414726325382060820912394596870878638374259860754912938240285566903542168947857187674019641206167826716490947953631529300976818575736522876988605148066893304159238803743667637972770842640210743164739037056569209211190315863290906620288946422699173658437790784031003411996510919777505303060475728392686246484017886415484153327152265159470261567544774104320755053731458054223650130457830531377177388571587872544741231045039169529181772786792935333522837178740115321961600326421321994339152197221366113919597918767804471213598387256951429181675725739881331893576407715415524796357738600331730427751296340932377564196855314437585072437701280114200362804584172996621910531080416168544770931954833245388326362282449182696955374423331587486570765384826389013366089579424015566449086820293807534931963363992929331793700053161571004546608092941386629872431749059802842133012720772289597639055053718750771797629409202860186233083182742332764987164738808249995634457197205105527436847966928800785281579327972486999332321038786126800459193629775731639901340643229285037038734867709662804971716320912793110818815711114635206938951673728868301311396472929853052044747401080489984486392799280069906495617531205798624172386985859553682673024970954656365609264735345365177645528764220880869007549362789325191469003540834409062220655033313684261976166228764293986185132555618761829927336745022625753114010818385483874741326500762400008836047441768679439493087663299587978563142627412879954553360528491926420610649960085695215026994775621749558918620081044736544099393572757455423310998835201886521267186194608582995377723347840869993069535831960637265151002978533089310449703253687165908076802449816061204632886469775473595266845605968396331962947771253774323951806791534217636030334475876716582446378637674265390444452492371377431484901054255868616355589892536534792774331466460323667615385865458500277243874082745348244232121633505215469742601706506243497489456915359704705304394863769661228301122643165552564478213489888424350375642077052594490826917706142925974387365365425715772628323634714011381028789673759516806984730237054467898684594547399693991673581014275166516969219568759782871635871697853955600911535291092901009943890192203201290540134517701287464045869264610314606757090292810603281939427375103414716508434480434323503008850238741003695432930908234108129387698695087456541367179746749181192095484580797944595299553996222668855551888751465161326991250262122550322500668307186070461387816852223603591746847781493644642308864929687235149160001097312968967486637220423994910127397373515671752148082268740490336078907085867530712165871717960867587902563749345338737258814198371648923760173977052955101668552467864665239590212184758835586379192571921359708632357318027484730027701294305089456801066192313933846115885916343359015159225633114831557865516712201488786977886389548426287122958995951164726364196332708395693671803257272929633296955557898539663840489980306125283424293662764511519914952176765028383973596135261942125509395797535671531164504507436864172462791022202101633243711713398790045254583846074487695544509783942010372914932913298589180903558591003124687917717794371653301011541142301617894440044930540281609387735207471871821791195378476735195005298501392264828155398505317567663657170667218773142306745344237730657427818571459286046573048341515390830863902912350826572529489773179068176339072891664196417704389215102981008419276537147870132212995885918329495816548965062500131618201567990826235547112856677021255597666798215862150839862810923898794049367967004366235528721588495238132417452410155157177675957820699045712981154367303006388353674359918221034488472160671156942941188059408935020754159578062029733650305938572343807180777626751882205184689201383784739349104855652857402824870628261031318307992931698172346626423807069378005339667993406435188090216700218053721570037540977690275629475151927742003355083460275135493528536565556532336633659004077439406386828518880901179558312484150692303611753062096386837915332875812384706982885804964120833909787083842676203207745240924616306895599996550637210376486349230429471279870007608643059378889616259319779488099408914520616558331703917693482044128044194906032455652840899235718168392028857886240158740287948414750091662393608323864024656572021001788593812106421353529096458868755281268823004526838622589518611435551346895307597331388707667998765361639426529227784676537558559360636948485136666725914757386430081409581443864570171959214990092254121581845690856844195441297578185869512442040504778198465310408094481127256367858184189461295357439961666378091539406064780977290932611759072659387891535696692827106536944436781998711431894728780801773082159040654263973481617767283285781017299216844343571242141517157177059893841823212936595682469607266474748527261817858207031684847142714945040048456827521052964566622113071934259494778396366326741372702170449031464139200860148816039151493011088804662633540660727464598734552114075412007624973929176912980515465179167525185411995076122980252337415488633307359510183032989906031467989165211769163862251775712099999693260328885098681947885253915208157783557790180876214871491195766028712102816487842451655024359842570172152227706487387867727519759889160415583829753682371557749480886171632782617416810601358398825405922843022329519323024385706470966095279296284326495666683628434799372871311106892537622809090318958341041030188489799062765773129137386359439228227222021480097531577769181317801187046843363297838242083174831413274329189922185287154428470007128695131485904372316402382828044922772583136296694082095100459367547922595471551685942831148908789541826895611373723831008060505104112714090936266139950921900263988502178809071377554059211315281662551377012637666742862793461426503602217144203647050164127094474944021096390993657274175490555759432243088603735198537536201325141181069221910380290191132466676279714297122164725011317960315398929415943538300194279826579447790546508797302322372755523355330668994554036556490961612591202956174203128301988536777102929983825898743795499912339637107351930445746570916159809072867247031439738796287395365606579939983769295431050975975181032520289167623178828338430604688036318183170289364361787005149864707132797187811289706834494275211333154712909922386668699644823599882979957612739750215909043640842910532426896225183191235537447997852293306026287958744631673452110427669665199126451774921710056655042698925932861027663972388882091980942685938154996703153331666076960925669668217792034371807818349295907840943799710108824055817205622676979546556535032800097232649326690523886659613632331206864991595016688891799411511981489263240251457628371961266647766374104042291835637823298060628481680881183480240576944626044911329479309572347247792156470728115085434403519501106490551213648136455132648569996064425047008974534995552879012344673385603960709793423646782669276390592853337914146109303063703461998800552452619143823156946583854056309943632730016089165378376821387263921294170937188142936602885138940721423158531896143607391422920544906145883771753161555503500779715174329262018015919836246845463605721287994335949132415151959723778178596982380051700634012066224784448880789226293198670914298302114989213194121601629904404613613373233064009131385735975089522317205362752687547662820917827869772765896997875198652472280795302444011789643058947370130730968572507737460190788397639658676889882559625116781465116069994344142343311659942434878415790187844210750535520039364865192428708939113031286825952942228059970850531359251059368269051261924842023262486017299583064511307989346616623461690355092022546484777033516035797218963621098227491446771132427315968329644385818447700787517486862477384256498507965389388789312406971033736455011500742955344598944886798352873602544653104651583470061380179687865319513886707583109734947222969974311841618646033875245438814806550442740737148659492904714505010645139193764545681274690100420665924682454526327937532145713395710624244038477748819364864996314848304568167297091053451352873573462533728470017460003768821829027214462179982091474685044387663169779133811857692005425371438553645991890847903942654870645031821067365282059825871376216601174009251609288082206127947813138560334105028225951007751861067537947237708486502221612280523858466451746891738835234582647495579406736483390004884128970342789809813650602779418760277876756673617229926271619882470826945237500241056475058498342656669514095334655632988381070921889533427770144279142780301818383041547725390282319590634585328524946531095383841351689753838328614927584871481328726498791332622766778272564487437703475474948265915910123928600849818603937388217473709293159385017211509499275031957806282594979977654955205672112105338899263468122038350993389237076038697407983834004385126271892329010098764420338629612175854295439713722877770836559226552861075416639780475562503993360067048768916290122123712880166088029683888952753255437987798010209650187076751362488625719026481651540458376759359030448742066863334455444590031283420448345310350119528030904812847396936993284926529257497860563964716522902103417833154059995520192226214676918455412868772861112113932699482023365750560170765445184785123331186107310422895022856151096340076580898900619141482577058428365210585608506969290245329139946256797216146877512238004666802909847729931119806201215677956096750597185695510676913806052224102630959503028353472868634439253921531351240184692936185736885485772237596534034759169966102396695596196823519579649125588486051218877391769199549569259696218908109479810415350259506662981050776628202106692268299928595654298982309836384999752038763200932966250254892659611663355649005616696696134515639595575350719825755983055411868113339657545642775291535148496856550820942984387563220157743356196512017110038212248094516534173930647904353426495906112719452400913854637072510845257065127789586850572854251044221380506994073841646895179991164887199153998299270699742738224527402818810387972230692077306888235647263431877013724020653461981527457419557360959060643187979296543971073917848318512463338257989175074559091747292552905548319041369735396789897710176618453756311842000506030368072200933681907516251303157539365547712116987192025983066273424155797466156928866649600924435089686673693827277526520556062787856372819104570985741113493126114782044371520265198747480016556637932602841805162856570039720304341354926764095814901400453933583683399020521337062846950168221284007613768396812226965328556623754198943037103708777601998751737672065135066107102539212976487436216307872829108723513884929627311000791048276990145811566807585758588307735483364573376131859304028771270184898807299984529087926438182434529038348135320149868585703411789629443756148306134129061204782337901606627445009290173404684990700442753998707174768854844979872733362461688729622202812378976844543013943780766651739825641031127123337610175791654876182862094260140230075974064886348247963820753076653112243336887896825326409206802859904049779962515375497577173147945249744142430520474291040882723638760084076111968341667778840473272313856037974582169040869629200345294002950324316035679805834826356396937275011203556480421406419309833812597156088445516908434167545458716827500553047976408420156488980337854264268431020812840493539251899982631583557895150872785994069851949000466800982248762724195459707770767433464711994868568589313959042714703553731448535088838820751092711882920334140527159795146810170809253598662375144958925603958475983863557094446634521635317796789130887289513902749640876347108921567849698572130006214655175145290640522963646638047333896084029086883941517273961115720481341471026051840944941568146638052008084702804564584405780752841939767630797322787738394181828294258607208741708308334738896492742053712660903002622783720868920730988180120218811075166648796571041491884676859344594924241255356845647131353014132674691047633611653662662943008718962369931461537614373456155554987091391206283720169107361081997780423750296904282962846763103490643173747828456590681892544630365274359569468547875623251594293539955590245288864109377065889534679372678950920633707398905281164468449354923832715569187875991975737807470439186329046592436539125317777108894584861225828470520531484880759445238149748006186857885087481265013663821927098854382536455774691414122325021881782842444416529427589665940683252907154796473362719705844304251929378853272442113995309453882628206428568308684028547635972083663978062170337883368973494232918914564242320509789503415380668484845831248940514088488437528897748082547792569452580584445790067017341050375017099481541125941750488956390425095614446584468419814274961627036485567008805109515020914329161568000004016351793929773660750398400416529874419533419195496321532485402787363402974456429771950962988919493478549171880328423314031989357276495485170238803799693275514307237474295353708588951200330467421826329651990265581469261303661716128893452736825846850428119860323429602438164127128035247152207819965916735533460369492108490105753213160772833368012748215554565901506398216097521222061670587317530996796924840582285913100211653915008318219090574209724478001067196070053577359433535307387846123287981611165459063924461502441014602126612246050640194959971129448796260967045295294931538270255605204168358855189524632865173787662133903508949872811781147860763416104379781685370371639112069737621869591135681851520696749756650311291942920824930840202252770615452181637479781367811362050068146688486052124861061217583074292379940634573060376730236532281587950586147345190221224334393611345285767062029981473090077628690751570465134083465549991795790104274877077894895727727036245199038974346534272481989139468838698191024719014088692053757770006167220356749538961476668919442513602485561574778555353350053897801342315027371996712604250629804132730795038857855282214435614291968397069403399136195884468583200192364940714062566650867173062974710056005983033513747128131505674799864832223175891535874565069384385849451668258130560618593219016589093535763595431722826625418970249641896346056382354426133453009574679519229674921569987821071716519170881308051468047881919267939036227655036385554982209858560425278024222555965870095422161155613659954823166448128240437936379314031462169949315998183352867650362320503771027424624346389441518175644574633040115983986129935185371151607025153832505742511395599575493833075832210460399151157205443592515467008627773627416893199560899437923598818057038863797579237126856426496545746542818512576445300673108323128994375456406200083713132935537338245745977966895586465827062276835729750066219987002215533880961810058596368754946139855887635483558186308748638679853604278890519588847449303383624960870101975732657818739865932088970021812813012487210847908937733003781562194520679797192080823153562475963943842264100515217042629068557493032310082662791597206001815014476886081633591324974243949177597874138158695864993303224441161869606278234256974044348160827595099558246506203024354642960641508070897453544409459213901749995235785419131631631167274466120340345032703271375370045669745992599056964200127372446595135737232805157196074699505421816717485875191656225271917469462850242895827053711002070041493386974779153873446222894465947088091465683441853932215945611802003034803625616957365492694997507695536880662296786532382819770633425726008594424072317906441676188261824764732463643290728717028572644766409653912378167371085385459186924538650620132609915349833540892556538466150264931682600676833699663397538260948298796821412291089183339683547424330160978907463693046846912062787470178545112090110719855838060334157046004998156860051939154877091968139709595460353458664274761515369457221461517655576998911330678422030444668175011098423962430558964378036607330954537303373757066822842829094968264802477645072280550903228450633817915952885039919010627898709359737209275823850412373414834237695700099564570615082645054378943761657065738167353462664214526081559049949479345119155256964532745296622994095265032796635809245733544768994924900730295516729923774786419108450148840493856625236978669728833787898702915547230368113746872330026578378187058246438023244055034407815090273752343564119811851658705078830988275828381764700967724240303022035335549796488433874424665963670023014363714314381762967494382779190768893984800794628561184473416604714342290326135408043397754868918733695950117146110803023718459035226220964213536596949221729415300545365030964205148877325684667829807728229462285290387566691535350403246081488783452935164259622477428339359189325318041262688645438528850912598104143115869683539928021090880994431972558157600563995294421211543336510371812945417552755189066171735400325558549789929831643223015225773754755495002458751721498544588177389370775899505032390311374661368363715085237567553680188434942150743232932220330446304744457614026174659456794283663813430383124437408502451987460692441590655615491589075442629079066818008946680313386508716424245969664053623082615176657074630154059297155440989114750078612862947610522823963727259230502386343694311115503749193862398242206786476826127095327667552504025061361317269527402748402683475444103583802138656461630286990210452613772272088734794615338037425744055285573953255072316470246734432919611993130882332846992362035003429297359934642274774453180568901813771125414998010374542103882309403241085993999712765625484498979731414095102838111799866777251201874263002949146714755834353753696684481064222137050386050062300511797911505497527191613953671700863264000907718369507897090585252381788605212023456613282200911429041693973867611222255030247660652795839347107171420594400388039528856678659985105021369899251794987718396262279762421964138189183429312081223512503085424170400628581356850754826569748176797483137742453087637571642149074127420225794056128573958655671817541021301873648730161684768519636182889357738779338152072717769725951265282605526658190924689996893262838293128236937226688745454890228933169725775679221153106312185690641293822259278289686775818188773145671589381558407129695622428060476165031255377624134497467490547869595423240141682459799228320726125569412143674903653263317214570575984871168751624109822124485216079375146278985641345205866006311468863090258390263639638080482053495064399074771653637686025371615030542010824120318259426411076074424476250121319434261444776296293730411231222547209837522018061330848286016390164890896051592837111859545108651223349161186321620907160723512596139158821043686150862181183308931289131387126887155729806968456288741291695660683997231384790358788695497109630625418486961763016140871622842444556178604525351029590385255604192319517706865900127901890225748533916211641996625188290890956082338208792548369347976201328532373913893844403719653683840030917431306559526624057885608299115100458058302405586778630466364772214337505594109457608259662896984665387224271454847377198751618642231855932656153465051171243433507726932567911542993046568957433992999796522735488408587028415307774760586767308380092902738110635323199408779827430990237789856174432184040813623419323676518307887337274618837892003119983978334583167535770857751404808747195137178311201157869133714129029633647112868648926630673429179784358399733892872383368264043422655216380149241747676479667208667223823819133499293350051529323486683953709759648156013994935883872646412850695090589764319361612674845087091247846771441634190217276093640074134323930503829823210823459683854574552753688657783056421784322537320773976635509771006646825708712469251545950131823121139949135219639264393722728585707481065687231108429715106741497621044899413895913379440062711859069147740053381112708453816729776241601097731185428748938390269254868755961241629021801780588509626828491087664330939224889821858717259614938395263061789884302598696156762924683418235656833411658363021407018401815317246854449583500740374735604008823504502015664799576579176101696133836895003229581461829313256575954100737004796754853718071511130531715075916827075448033215724423885997621254423614413421946056878789369924115867147925834374267621302495738759014409212340579287253069040836005894265568151882150625541064526014197295903852324939259314972116925540869029084928658798449380954436617487338471236598227618738277427127988464842616164508264311959985137501736143683208883123152330813598715448492504628180957551542693345681989362355903085301912177428662642186823270141237431231266415493179348380792493638032722852841190817672329993863581105251873433111591921162013212107491271559909423000118599704949658132669007895322225617188576000551703066648139513006030482189664052723045907185665712969007423312163908831042270502117368620947375392279977838635919923655675002185144797346267785644306845569570613548553876065171137217035028057370495261573115906974235825813523845706134502304959738833520326114005386088227980780575843504590337657990470690346120640304235858688654594747067641506555602420633993941230654275154873083257965970427013015274511117276896766674857909846221055759193297286010362405105486283766861043336149618224909978454663091360891530657024258494209899226774794106272766008411715234913485426814689060896277183847493029606025752949012084403512077338181849284092170147641223149952362370748145342534428281451388986383003268550038055140797553412385638635831122322569849123485163269789578695685370692555570105121083216086524864542443187611950069070294753169638541014188684944163612219136911407410848493639727841031028595450650892882408336415748699066531519480961244020257861251951677200804957511398927962560729897612918178822355776607632226118064156453446935827909775460970233017803097981869800953231263754908268798963826096187465922011199895331222549005941847450636812750069389553700095017773577036282844333658953273404565285745830111762682410074446666273567451801505015037102221596000351737689887180071670077618533046644287715891206795168335275686233163032290310679896462088917403031325246463834728005111311288433740973789954823344910426235203338508664549137433428355193726265301072210548513287855086411376319817400802814918906041609627395690006073169853422018538853049445607358685566301361484350952825998911230152605659557891526535720280266991018969017916671288219538832073897668813625624051199702834055576418226853420649754164654182089804505411061995566531759939747838997584476781144716727895608733257948229213596644538713910013094606951514404453771481887950883236461028890837525980356017918881947491364650145139873339365871459256304186733787323096685816168764743229660913310475254359478051661089114568360385036886068794505393906083103732647975320749161460872658525821177060720484193877658149735271683659656880181448664993349112376437418759261886668408331126969790356547962788401533426343553099904521802423479372667913590864932571372337111675278408084339883436448639555655134243238132380328541023513036248067056803815473875805682905001662192159819069403461800614431160904509217976144351658144632212268805601989538269771581658886773880699525284337761934982785629573496316276504177056738186030147499856773442380443374304314519844486211761280444916950216458759715623155455574351616237124684884445903201274020749064691145146636597899341609349934711144739692057379032625598018737892895935441775493750926077285183328921918602785944987093969825257336327672374081825674538843609922467442157186291442437777248591816205328447730393634231078470715087298629503823700888870438283234073204864498447662089356719216564112290942442300588404352456286419776568558890017022116490978199387181259523631508250067795161758628303776869145967502141786184877205647528285521988425330686866810155521781575697262054388964921336142376069398252499942140943760786914709182559207003882793146111399208416592859970251128073955665356538435514110247810753463600133297431474800152274141392933231261908927962747578140796244665752005526670531383358119338372300948354622003409692808726157583122865139445592197565769461653640437535186124423562648113732221142103065339207754697244934049382075452257995943902814954178570910408774739118977877976789426324982133859912181659585456936793474125506225294380747144692664660154206322623500870761808055572525179015875863475882756742686135578266440676789788382246516069156317964733683038860194256686684017656158995732935587684786078522582822680636446518295359602497483905218414422031910184387183837180880534687988358102958792099459318438538591648876175461469818615503961073048295740279371811122352453543083061118463880527329765503136705619252863850235209066972858045328783294303111197618945517289226502451710306599953983477181682051632534544156243612388339285744546892618455245618810452616885686353865369185906357459224679646194672672319534900522187184370857888967674847375790665479304714142548654213959172619736377661283788080789229558780353961017258625466273996103804703790296556071487945269914232705483285656553363040873515057318290929800110037146884955142778523945700645414174297778345878485154938205683903603971737415905024280622606819137851701411688040417616154118539217275968109207392907543346038680396395671550979688151586365213951140054394247094348468506959967427929573805691664566282266118710924710722192474093154149077242398973711277277800640028683996255864907529396994163734625058442422081001884796291647072762062543009401046310788253817622997391920231548364703310101068994196708286402141679019116353602426817395928247650954286826355943768721385164067876729781676614927996711561100510071962994990184295251581338170971848921975148928364771235118111149853398852704358588364560127259499799498207220636474559550323798213744848257385506465120002171274703875054591231347083738986775280240047184485853573070215802202684654149651769755899610695747338197595115217334069225363400684234872875290446651882992378674151955697354549356608297982640299489537285858031096979040321792449487738290249009633936818346275462352911846614007719601162016324158437757721069942617523173267582551606325386357484027738875180570880837741885855530355834992349500715084079917099300279918657810125691552349666253569331127879251992458627604625628350631694669143391388769134871272525712871936226965970993414242831275377634967806071410953025245634236178721642360101368429918341325977795998980472944604742063781778886817346493535935599464831537361634429255660874278573788990167370766911361925752577249110811237290842524968924235724477382508872078339365230231680115745598243556851247067121996709253028472288715885738720449341244265992153301249053129669229948239235138065953773222874630150327613647465820050892003313831983557052881182633616572016573697402706840321748943526758129681323941433476663584743925349527672656553757065212128753467235380748484177938097883370739013184451996301619984635780523366332901684122706030852458499476151947324697939749915531680012877493450742095623988609265870645001322969206577640659767949353982378540488144161218354791785618244627940716052968260223216579331538819270425293444969895661949478332567478714878751202330341204556912766276137554342010320489764748328487391850067505787839689579274019895399600921153562444497541091916837595874416646293755514755641470417153196077352272127985256385415012812459331390100172729074464041032256779032362797405193230179247642632402371368167222710907628552031489112420411972249498176794765194797075019773217866518753253986645587257584586668356454529487811335382479622730017214889868534092601222202678820841279796795189324906698447887560455683159644571081478066646817286097979222990076484951908791249704946912691943136528225547644688967776110985427195762810561868612923290535744837632063147437016137029350732629358479117668791987573865409503004527161949631571433684413147175427892276228186917101249247673577356012920883773473631848456394374137000952568829873878695648032291720115042905955581153050813259452008780705723348159070373561716004403553025680692115220316059972200407782964762266655262703346719869772959493236199704314492890105566408752181692967869867535714588933671644581079220350058032064066246288640206096111534085358274519886039996992211527394059256646023728995066107185589524369098794264340726035139410546798904305182199908117171102699599472710236884400387695842305989471893229544897247494376002277338086237205251909208399553765811399105992187946607572755824418856801615423407070964961871366788355109147289170623375237085896861878984211748449339293661303637473309329558185565523188798733387864070156473135353737155100924489979166590865429887774415736489775051609666966951241025907312852938275605895210216503964207368844726793599562349747446411745832183954326156883047145503304685219988903916558922819879129985633506168459423726336609527835188593914286723296910058403798818596836804316995474611239237207522210122025284367941486814406282310586685601651720518349711466791985622762996908740335635045799509475294053663575452718802999705391766162420903063560271279107414503551679003379654947780688829848898086500776884802761311206822013471711440884299143067547472049384103299145599848389960269058702268235916944802668043753118384183994814542946838670100394316585079709163911425960648301656481540439894210711621013737522100942582925104979336332462357788995509066958772452239825790743533261846107056231257224446037795201138117920107311662569566079192741853675233682660864788604355937907277410243602454460019931625146414829766261008281854459745377302988514597509854378868359620844460839112083718549076040770218659647429397022102020256833661825342071288178291593062881547166678719361741445147293698977717418793650599697902526857598293181731381370206182760344091740061732863751993606977706954722736291127430765714337752568021616094822753735931846034284816953441684404820985640237848925248204808897370448849075692430721856294929367580433115629593169671708106505269148491633565620385058269192265527848748662328830040096642077368261224489875973243436548254542536894285253330011328903488226249394992346525857593881658674055640616609648504607371945741494458018907384886961060950801298391896431119336968454792866726912528188279137823322429526872013509450797302579157772768593052518619167309408559243815062502353660367516570136835588442383061895267689654373720535812436783476421181669425552011832563898613273167738049056250369371468950654730135800433169305259805559039564015136917026750850703988962193297179942398359001537006939250337919647005642137734850906788504861229819660401380012622015428807511344728388890888891532703671533553405545931550349406286708408697698545093289438434787526903922812749629487032529142640023049319872291060129102091803257146661892342967416754646674058549489435174201607239595780309524613922580210107342801841043541558923307824011455636446128871374754560801319050789390549519091114518926172021980963608345559088324060851390368220096375643514059877508541310309786790270477889013081162074818250135837036319574892553827962512568063015938635544329238437202276199425064814896209252637002233537957086219821321703199265213803307771328181853949957348164604563958145988437667512707116271377556924475234940055420513852212654383107146344241451861660734135373489471892585802484322673356408278427716275269722792198619001902992309969758761908192040200851626153681346928272789603970506699676446891686602667390673276484736415802341823824232488267885105729246522905168891862320318089754385382340245710599243836534262567427714430253037079965012577431841567207940218526457854905816832310055331952657164791648596502488148553240963322205295030158849539886474811869758122910018332062296600497398503862362124485917840995510612916663386213372774094755794067437970620868312934193695716027184512219543772391592006760334398707074981117406308611985828323499555274202876800298818636673840515881715773432398903859649122361837223119065127718810549342644385146611219014167378672246638064097086002412985986602573244204364081551533410891895487492493037445722498646233507552102766837781182779377409240811099459754907875362774130935959453762189224424672183713366569286844274230561388908110428229241065067759833345428296397143243596629167732847766692327918723761918929363269787096814372811781982924964014955730955293674503553073585514594309249988536739403666734827156460704591317027733596556539919371468974278361836183452082946708800794873187137507983651187610186527405568513980161545983029530671742134064997318462525374055737053392257894119265315478538754180744883080328405956761801483736841399597356952243768673670663599610868303151432710867724996628346935681711057249783719461046957003584626223555366678501412605868178477190624115151078508538231186102329605181912549775250972408853237009195570842223486347718661147211286306649028559846870498135428950363428665889441503838792703311527973383808007184063351589814450424873743901186915510281105891468252202834816787230041662914466720188820452050040624599702241507249106759639436236064468932250444517954643449490872278441781521810295785751072116540827507220047619612313239016946991191355188331230542221786878235102841366258423254533684734969225744502869468205837836491002642434392573157319519074162005749047045238295609485395676323945205301301275124067887930087912209716048227283118183933945077272464454989108787810134337893518217474608690918946556177984392157074860423116319028746718082494995138100660078999508929750958743932611071425313160824290490725824793407907539287194584462630701725513146512072229369920758138457596662381245158829957408657801170279478286788507072941209753049316946198852589640267937288089010126862365419304534066970192762854835823527641625139935930852500793147915083173671343670637306620591269092145321422664603782087415871179112795361855504030087005475462922175075574259060197081575768693593435280218173031075448488904187206029924253719455217755317338146563158082888156542675346166778653508770754617905980186919983063711896165383243577675441547128623674071941812070617469801977735709058365436859366538966490189898578636146604680253656763487493290079418578055712453661405240751593666449012211910594143306839026666450872009830601781705419350660466077540246392542820781876400649546128804437712303687524999432563514640713710781715827199944244396902334575141360502476185975136379483116508726429664630683310136543058209223350595423303943057957185620551440982766686031384027123919225352533535387073858354649218567071742751042986134835102140968556642359491662842531025910274787324329543173880718628748200043425238681964691180806468843706174840403082224053197524580981986754587748202706626259106716025751269919335773650908235576317200082807921638479364098853872601329372290811547768143470507028611157308721875673619855869009361048210315874116961274610226802546215308605729611505349041020445453811641709233876427926531776359278322085945079721069935326447672250501896315780876841314468627941047668556699807140503505132414540216623826284944102650586737276090166863537707087154911497226673582115612731169840901338701435273923635848446985144856939980629412652138845333327254450543019195416005400097542937863446445433193530415726402479983959805624670812095774359492038859734710581456421028784512444150782966829675543449127093430310508944649400457264286489738493414733261274223341024021160868109514785409630292854267070353598099514460305814481865268144338982891168059302283186563830029147419507734604115339846304181598585750018768769371082237204630635102757604926542596579429615122620386691468485953829219254972925502819122257553174732489769320052067885797705610425736053540460944967244087067545867760035785078358826310001193319678263188454831948294164380205656563307508490343915942753781688496920818767921229955973187755249529829133359974542048474995634988914539540363179219230151394323403423170616903867689564969847679498110393556639121650369447159650685875119244827277008543506843083675199908898608762440703670100416862520376061987597204716782038048493474049579501279622894449406206144317379801734759033684065069085133687472309300949836978430921720422553853502515931482268470657685422148434208791216581296652990820682909553247852413690501474100313372988950262922133853798321033048411912144291981766920060579306942132976817273519125338381225296815434609372502120034072680461366562386242832916341284997335713379021092278836197592504234319162998812386596022893886061826137751492523217300006133461060455102324327690560030075863382871280508031262546641346989242928558438734490276367127851976400235086804962577919751018877104675151222417185256732372237074366795662497620271527228228747102303251612099706595989173003898042452779544834382424523620872264911186938980579144476607233465724386278093274160011448461062914506429135689000782250544595154035308972801978326119276751775106870423755781317812018463440495384215073777650825968087086215840170184406400564460773458405903237231899265346777298237698745585998139300310915905152506941653170732638395224424464797465766984722358371968223270786845208674640513643298673423276364013250994487082635543072229963208603582384636772869110189984725657825255000735456652837951094373153732153147046430103335336838632559023354024437965466890894968073392637248546098068282233916572995278935081550216706742388157422356204771932603182704079817564305555426275710765402749026352029630231923800516438151207066030186329442422571055504636729564716658467010376223443097250648661785037433755226539167015771547271551896628921524341381884778166943208586263503403064186694635949758961548013745680229951767009166549608879218820637835633902054467354474508112634496051302480821668728544156944731511953210879010851172017386686645154627811900131080288359916646431723461001506351214200072709143625107979331966721945889407668249653501971245989395016829245313512798192606496710574929543409694276567142396067541625128219227552926478581681118550737530076847336345223956769341268225948350925307090988538420477765961501501282133589845816992745457719929101605995455546554018718650215874430075200847589175963427084832373475547403563557710747901363182855784607353667592793648082090713159722674178931040382247143179879774093824122044850820349192832967413277231256201030560184917702548307787916395377833562636620168068074939686317349680595133438307570478149601554028320881140065544663220528259793892244969553464987074082996356967536707430528614913093296734298506798408003250709000732786712335844534481015469190047912182997210757256073139294539086145395462717606842208601910257029163496215983787984317591252054104331782210975870332924289604887215360616198143501488056877914026970778012084159108305655032504575080795053391221367935857021136209008505915148399473761136154516159186324996875518675115678314803742268678649558797308966329261629264277672076005382721882809993071375289491861437251642404383539010397749234363879213363509675476833319058382709402850511082512488559890080108619657899876884007065078755966527496325305086898813130762088662387210436394376125091766375976831015616845675506868127993677297399195852003819445244814207954871345024864979997743082872003871783220172781748957872926865393658875132710010889238122312808892099963419906409989467793432222680770492368322008741855793741890266487728335221736702977700145711772327344161627911762165124050991732315131132195597611895180027235036478096670237880336334419484915977198711588937456645699367109800162050608222291144610124003059166371384786341193503580851871332788607634411109291979731910529734978985904530759030542613302031781853418845266554017276450790812822279768240512193200851909136918293835235279211058679560179669684444384899251770149164240487240415861987214731880853154180378352778587594613311946826351310308651657719228409256137713518478644895277464117034710237696983681837187321494669934875770552119245761858731025024714609049800805143015330829076092245531932965511199485926069715461628627115976159530377663142899911005633577140432934112148897067394790992570842096736498787063185298720062680528415438065196498914106017972906491355999254603569074621335075173369141539214355988952049744566899391937041249746361422978896629811774378130560882424129202163821244155513993433078126344515557026057093131170462317003336523100882277574188631987982806075451338264350507269063297048732889152372567042371148288495059247089040900101999833444461181685285194514878385865371146638148441318967860319490039738487946300833031589947264543717353020300747618739471409164595616067726521874033731534653026167610294328770210005359948162589188637256805138129310333630412851381261776023178213772775829744854274768773394220969153527243909729627975055582446125361985105682182281170228425303157421216394606156742618471734730371503553785440731078423151751448602673257928133479456968889179486675668641729864885727688103138310805614251591212509242296406388261394672507656654780482235870655172378408952386892006983060136120801916353004308758684928683153552543739085090944767430061667964867509539643738219503701385286793952955233971123845369246373207188541958554621815820142575281507583244256191469557932720421306512880328797631240974562853296800606824290116342409673617022779039159511061726921035251130557575917907973393375450066814676726774901912250740229233559714181663420833461997481042289711528791076696788894040415223500756271078856185609778938143600363135016274929425469930344550189116485583937986437523343274479396211744871975821068179026406428180169922629074864116649036448605210893390740086303623834704172814608681430412327154951263073199840405962923987050755502401560147819685012037044268253125652698104935953671607094198220528068530274412397400444435556106141207553730850033095357903352227965948722529335871548581469889559044005010883312341780194690865635831169353786326656299045241271236301157563482672871306375840871633402623459425477324575895002564690801731193115243349580646281240694864619827301107141246095873280588097326973660162840282817649849818325112321562067541689271560873554068046635075394496868032466126695505986254981012251851777802158650910804298093150969990844443391562882068756205234411976306096101751286958755093120687308664249388403523335228968660868512906443001620413700835760919136651593867558199716580404566925654538997392301758223193481393957195568193305784899654446918035230363325297316238404728989675859229682666432018543652049737002179618005225477692783449952890906178052337603613598814644279289925913289068191967208826563438349237845430081265004382005758067364012977176621888192679425677050143428201903450910311803186406338589942247564211451941510531015594698578854581871284982565306857290805590605174130005549923537569610815302369968539685393803359695418320915450005789365415828848601892992689237354925751780668676371452673315127349387573664770496744418823536133339734438106765430594272889976718031386435770829768214597202659892175768838537798469846173128280468186660558085068766948383599499776146655490721720835558558377261974581195271074831853932862512248618806098827234623365457189290615430525608206700445706936210046032107421138055343984036260430388557310006712352118033379134394477102971524554594707042679738212668222954108156658983692989514515487409623920560488554340697135289884726204750422589926273577165480676342622525094162973201054923314288592315408327611239671041217550787590477699021823691842433166127114585159883484781138933209116966924463958818623963521394853069921409372247126638446400611365609939249448771761220119026690665101477778657957840926054488074121595637201912846987681530719740590513913178105384169764399011149243005438567547041933518486610548967634314596580160486422315542817677055781474287941846106539835423407081163830844100033011788388724100564827989986275735224089991999052411185927267632851683985281350457328966544867561379429298920670326153830750928925795711621681813887720980811809081882172658539843474361320832581599638830693137630879586357695585934953022455406386900211472927475356024816253042231189746207732322500066020739906813956295422450363743621620133971786371633256670735690063443584333857949654664699555735487620554242717313748996890044039570575141671747854898607241850495315620278852735954253635856849888965759390492230243032712678069703051662577065971648972635705568894226822446910627455967806193457625063795996441107058957616695068977046098748154865429106925321145513809948894509137505434486330907090449550282070521546159214343239689584970670193096497293555878129448431040979602942871984826663043280122020171958257808713284062151404490979318100760257490793013158650284163323278722326798466399706919984996482951878041886344524060649496679396950155172590260391353672976336374164449704613074403345497652409116238007737410844831453109136257865400167106423733910978637217383297028272213156605058301448313115387942122063216911184730223700919061743612107693439923537100159816601336739112969938180028793206996075437234969305821710522590709219843823407240054027766594782426991445151879201107441529147989102151285919061992666846203049613194209172589615856204082421522918388228128005931182043290205971219943739883275881017226389168358162598839295979024811607647011767887982231143619776438845165164590836667228898668589358134527212422423137921240355388217470030570539751719953673875613606844513726602681387218598234852873429965857838092599765210506562978566897362108525052039705011793455303753382559490342339006304120154918275527849558957362272454700367911152038847908366225393359652994053415600111034151249414777057813498743076299778577176248967171765037646794269378200245707398434597466947221202787949773086248575409865938476714165699949173681978062312036497645185871495063513027197162912772538134790735493590340151688898813566599196156405515269543312304301236947697548541612084580111447647872695359700671923599790729286394389408417449807638617580898878921836659600015163914864869541860257548582468750547442448430688081998935810130032325193494413099715438882619675014521030344973201558474061335545611077506255930635724685157146776992218091509659925000864053664767291163994118263922154376506959001113052412334993521695720866383763684744145637479401916332340729109348387392583245852399606844142464296993182268504936306038058123636150621417237210822048701793446225559224460575534655470072560640616331043100596229788380951492882941173886334762499476304917666020445921869326817113266584528545910476180438542337639951945552300268034948278864998026901145809593896242470448421286187534214171581130366176806067283984330348870279941521293480841366273155543920046279747377312686098249480624018012390381798154570293523259111773438147795227437665328326719505979686610591684172896646325950509761308493548967819793599003253624009628661860067672645508187639534790568900145745624174552210280826754343346775685648416108159226538433745606319514777416512446188864760327672113925032342409715193889287968102533581195310164582638226103785389382511604165419558197940801605775359388603616558101796000712500365667609797969131277818727143496872491123450893443878056190335610364967727083837252023780183447865292868519836372942754940610999880232416104561394777384420741589316641214249584415975122022838214104865166100324001403313037625564924895811223492425160049819474802960951090079291514917557063403341957396626738907872868674637773175810693330903520702705239085984686865962018700259092644755167144045459011054707363906066402184835675554075062507475532387898403099430949349959967576249864331402755658447375269180711121024497913479086654890513121607781645249246742455356446902681692061412234384187834969973526150301807274695275856371556177773573999954868835335552907502605928227053478160147168499573703051255498831247139242884595773174354492757570749669754263522282081612521714065931838207001642128657324389481066349229929620501505919880233346229968103222164410967802222130102617282755275605612245612491902477363382873646054592046451958088593589841158277507817612805535992887709405304010387830271110111886360938714147002379545235918269691501753829666596307599914665679650225592280043520756806501457300461611144415062388712407854874665531303794508348011538271098590020716793335130738741365211119300305406485140896327741899453145121872228811622607542797605528499788537156803840700990637454408605611648292677942651330987103804037473531951670404740958333389134392259630462707416951844830097798947896039611397565542171168530568821561615410381460687694779078667593573242942540556219683072948403585690754718792570447045418663876596718583962356409410198765867098690110805463028710796143050939938304279700381470954892816672228351675485404178085264489083797591694673678470372099854468177850307524383762750659348089362248040393430716928036232069294671339528697055646204542608523213802587844491164154989101380705035454036984602258135273417571082545371637886653154904945276731555435132372063439365725231328522968927599037693402076567140271658157828489867969096098170531890581986258752529356536286892289358009087541384515699790650349975889335616625574395151267453408477780286901930867656711711577892053042985935585887114273089337990253815086542240814556358996076644562963263876615803864615091070009765774984571809117499346114408050775015610597894144827968279059152359039465882055777810272574033203400603396942468002086885893129583725614318243856115507974323694811140473474771161450510986264037841737331620861142963471224622950794687394202456674111612726964901040297307064953152931915446827818346332376918363052650831684015747815389592702825472679115192688803917483418068970489943364811779107420718762129851860072295701814597765341244156598703358697778472266127625096858443923350556916948465953476264798625917414021519961071217175142611122770091538982553393849793447252616816995035013582503755826186686920640671515302316308057689330612489469898178828125821844867406945073277413698740810159381463851232025872006699455892020404909281234068993329821584178142777630293363862990919560413404918583442059977833339421778384544650738801230902393201150211586307845420455882110879716978497746590337595221321042464946200134193777431909063890000771352336131852663690568429688436840178088680874050250088060021499510750386548192100973134557593912745637292029155571449110831432746064658507320738263051605712143448558748671306999555839630878348243470421028328877134337458620973857181362899922592952635170398481440994773524845174605080277183111262964481202012026084639222789118500405771127436261381944817393652701611892942220267616782732781522143475235409021326178632301552065558440194776056232250904637749973836836526766391908109304153375374952447302602485782762785554938396174571497198989356100596339537163475996468761012092327791295633913001315633186722026567938401167461062566867083629906355424551752888493241889506505456385256888992793942486157118406766944036007100081914381878555263995986955487700081627071490204986444202333348306027164390752295561352122192240868622908062042642879030864249249388285030479814815974757752933938049619292789079203924693149769556722156981758851576206261231852120441126095480214782535646011584676699177625964142941530543164370812995927723860373452552450042083504226909321552023873506874334094397032230609538074264005036049022341700415180858562714377154079663913596718519799612304982881113138385460127281335151448655084245274830906853082843419251361773979670991677933956293616609749658510798085161059174608410579057152325549825473858904076247573652232924493860266118941479092838817633788741871508293194867232914660720416325023940885128299893877286683493624490056434930618362220965577648417494137276505741129447646398573260986201380439842816839758112847523294066001271841049161568034190526509391124590050465082302346214570042507426406309254447547918486324273013407242618139147431607130717642677159421688436805377189006340144204334099768073196206794278896881622119235376321445856418326504864044658728976361865228381181789782362249670832538184900721321953279187887710740704037207209540242386073138743955780706919460811394460987259333061800502069778409245709647704165690088573621926751173457301534067253679729762678366741687111251451427051893040297755251144050002468482717210678056687640158225175527673802803738239296351051389932528896769924284257875622864554230914118250899863218834319654637329228336617138116449442511296616907170715460478066189869425750293289226273218555907988569236587276183269727519302851187889608604724584413551263274965941277006605008531226395276513362932098597846845621424085890853190907349795998345365224965461085608854761003767038912456887957044561652135150479815025070396754313165438527575746545929444446509936956123039666167285262669353074189623821331361600189177985591792362905552025558749422805842885691345401072515702152535026950237138035306449489028669097030964129228946629595640224008412100332195801375899336520193285756410466109092721820886159631787091093700384912271441263149519120978194669249936565432746270764159344596851509329946335168038801970183259071692411967571164039871475428676492221823044470211599389044616417520204469846171228108507856782934828932096532541834718235831435013474833639269956777885939164768489692022868379732811354439612374908425741138241144475379917734167130577940262823422391502170217921100806885098469138749628528226834659126686561931186287840157810279438643900965277144055454543608778531024263759889539902957778301672410782530372276240524036770849783056941137873971263460249622262082932515397253301751786876067940396996731919280805871904940033340938423090136564456574721628055804557228976708540841459091675705793148413030718620566722659725059965047112713831533081898510851673118033248484732737963383224495921597722222285035511976748646672173515154341331523324373437292513040914435636254573105631416868680486836359913546538652964734927357459694617064121381417936314905340986941990432717019118366885014172423260426393988089804800844141254760103019318583261521537012781317987191199536480834873275140263694013518014408986480881193708782379253018520627297041031880821843949340182422094008025202120792215266521050528691674530352582614172140482987304368283031392666941878583555879945744933016543967003084233091357364431015474805494167131563011859004964044997153343828620674303063487290515036645015535258575799969017132012359856295456848962700719946341786691870156369963841918577131035001105143829146553526196606928477926023781815114822681959965334203281577272797188048687558194568564896359653008165655838304317818003390939542550050172691484018681148848900719176112028727668206872711385377507027317892939297442473962539999073152295712682393059719011020584003431440041720007426702243300225296438540306223951265968943687604354271679126012277912757581781942123037903156912564912937814621490409242683956813308236789531535561302767750188894938334834142062060184157686338756911065491772542252335949483743686764005122883482572920058215831941620809394149180772577096207898288098223758739242994751642747903565342921473995490784979528414810947382518825729534976854033130918843103288921748977100876516979103144863697602819011291342927426010777103700744430504833647624578269171742890243701713093676799007321530414168731846608666322884420757194844780296581300679130143762490709147239560665981544890204240847613833901165423301078255377891705680508631997705489658081091253765864181845888454703492737678863698333218927785009996280044180739947511837652876522132296680054113887258820331727662262984893581689672705744940118164004536806734916727402502352250664191168735257676974667406973804499630333016913410187120186708445552651765251680638906713583476384908167048348043546371388786488039864817500007685279976841464655252657504934029678178274199405846836051109930575513639072300148982441451398128845999758443623232272093268302275082373888582702684838274434905834454681766741919110425620986995734694290855076263747035463994530182930980232546323477029227467805863247532333193236127736918985742662705801969565352714950633049915328850975414593303620283384529177064181070494844612567342824663124176693758897427577675221957868945141079910397954061287198247878250979090739494468467370989586244513945910212051924605954474208040726420796993628488592588553277800696981677808160095929541336163458050240077306345138039949721142273918065741365953024934531213732425105520054201242076285080290304105098172660962934605910348838050500553145246936522238742875037308447488175019619712553734138722044543433325433921979549946581980584096960832955136066422750857165750836333969190294248392707052039626252760703768867247400416545727299484673489237245070490547403719556598549903389679317493152228455986066040849778822901590382043967669742917881665435448076119618705340547462689449492424988488834361191859835936448310332331824318931534261915515958992275578588149176559769533483161539516397156297357685271349165832985623179793866492060235264788756623957977088446300390519385893043384821905892354578515772059755615457831398162762962674344611461314107434823179121240790630939303337032042605192197407444837813053574031331739382302844775126767187170417717582985915624596702490664910958727464088830170662921355704641414481520490633732113548934357780296048534492162625753607168744334616111440911107388246065365800759435090672836921282810743865931832194257121563148249847857762515631706434853021670332923158774796913931783086665754321843243683361746505642035077310403038552393826904618796832446949590088060698408062548148459435479045702522926953945616886145934613984705296422929518691746809191440689773800674931733333586708833044756498550319806742688099369118395443696393013875481626450966733196217738478381348747504561191460913667324713513985244852483790560748888795317093674618351005839646305691907464122576387918905345638270451901769915775327930726041852632711931293084774421549884797968385302387800591798667734868383965717206828388070617278455801868695300556441520947628638372780226292527215712555623124995632051368650733667610701086504193182983948872616942045501788121286438282515700419815358702242193218968004081520032805850530435253557996706931939579747926223210729883215768738130963567885484292680013538020388678940951677448877272341590994011637488709439998676412816816600513307958758399796220223251747879871287016730523614009220577022650016999648011922446011455846086889160997647083588965689073329077006076495983409236857341888202765886609306440134134648387498319949461322436710109788206854637832793238359760469011032873952653957360177595453014869225901620553324956327314217562365608216079325818339312140530033381666615895079083037553675472653914070155059312196976179157016556750914265738356228523553528796930672086742495682078311272807698440459540568380187809373173306922283667049029739370281016468906348739208583122043594651933275897445410884147255126586892728522030414997312141122060391717536178473968315213492670795196676026019527809413011091500520371284757430899523941162091656410895043895478967957690805000559479112831350907656256148658892041979973889520427262167278149385553615975858946715397319306108038930838270057248189343022502349837249238954704418510016854973179229776933027889902938436675410150553556154789523048272828793334375108557768128564965954681577991572204642978837661727167608577600411035273671104005481107411854971503622410492170772065962641547961038553275310409192163106334129709654645617166707514260425705669474559426685355963387362191673518274624908263714750940624414519235596788337762984748627535784959054530875888414694615792427279202933734395501666308685347576823732646070439362619966152903342366069174947678962655014761965794876207427129069901541243393541044079461977693243953300044106548061263458544705947419466108444356039016207670817664136494202885886065933004449949688842200792131330484635042785394614899059274890860830966661173514819557236286151293843285422050047782518595341134319019477926630676741792345679094735567274435540622884868377493381103920670300445611954797901887376903730699718559157182133090388308838644994853905754262791623828063719964232615122814220755456286668699991395158971553090170011267370197220666913686560315242389342948541626383615679947725039513898925438055561129308340387282233977385598278645934741028506168743608240808721559641909034885755644314001495858862370624049517609707632963658775723186896851564693087647828161544442942434750238111841997231108540430375157039977061138693210798051167553025167196173388458291858097802940840380121358038650387392885851065509750793105828910403284324061483599250899568190728813606115642178326634389101572144232846531454121583262589848187200345221519496814136522218985675007675011697560651165451049705565805093660968312159975835591765274566272415137709195015828220087174449202220360525004136841695403954147264279401269967816342461375561157914975768868482251878791392256430190849556005880453343174504765169639606677809019550875763512976076801913679207689647564747808363829722178524595694155229588769803087708647347766090809069896356856374357595292588705505439876398539471386755570220193897183600245928000162953280820923502336485742164102611410340057200798716504046228979043198237739619163255996968664643906429196502646085000754826180489730018732372712175005597456671674984538364543191472314262785380059216089409815867489634592591966546307170673976950607717906706868702443007662092237964372072478259141716925984167031613255908667276532943375019043271335188923971828814472292602571351001337251442282623429584285608340931048246591028863767648850577433054726675801324613030855009728370642991991026873390133229955377309885573920518453472471535915540473446298102111792653052235652432371246275050983376291358218495319760674343441673891861595662752142739604045847807204601325186976069880199514527182455718978470701957723298516915186662152251600525174782960964829784509053971213439014789387388513714061642547870313129727742454872333056536984605111659740850170078577030401769003543788908200758786148308619959104747560367042831395795813653595792995585089505664359654874492113340860020867496146623413305919301076329209681811755640865604458874172995681338601945080947022653868134793279203452184316234629030837611067574072332166204873210576864434769134090438513301975604533353481762372217929752637339565380619018446693170567979293667261044813121327558495394283959411430734091156736584426673285058033080678284862016295959073228214855290049698727627528217745187901079383232489583508313527448994263133285227410993667620154260565371172122925374644061840239300959943817586373921485855265128463834970603953742351944452174200878727419488875346795029252686178109349024968848737927662835320879187375804822714791625485163572157466125301750616463198874538665033050215821577497432368248225246471519522736274594087403653733594188990306663534479229356680224190992422008600482999068910122325024449378507671275729499442677056953410130295679074447420289070021229198616735513888878196384578527773294878414870789029653859767408090533284070638987834190736047655261352035520113727662073008234415469391664515852511207249024989870278655465994832106284901793590574176000483243248525006494683828694599028581677722736395918750399795589314076001313782210817737732772154559901112038069566272167032057764650660009062448458901055089041270580605728258327785046780964394452009988477101781516021994162098772812611505602220622426919055746507608367396841948527971730798638183469388733872191792394059100007307920010808130144632669229876948025257521872134200949027448376351638124628621972884094210610177412748565225420489439701219523703293518676829808046248024060064070110851012646114226417032868869108984795769158433264851641742645501070122787084609027183026566544170632651142197068745263333003229571249737073190973901572802432901921964230625996908147344843121818787345586818851894639441244750763952398226683967024679058375903515272683265145621957581990112566872631571815027346162834100844145607595215424227321069431605127192702831492797776672355930673955009696165160136949763042728505943298427888434241907110905449584175847973103251095758255853224132933079315008470472758517075310711736436454841093990353126605799881757267223629601480359826059950426261659836586691993476388124880917797414504368404582645498666662187753935067306992976616620876634568550759540664358712323602644067375003456520521951101437902502120007669631221849273952220533978944619099054864426242591221566684898989343015625347722371061831735354185148913685672667542662062948565720852801797353447162825804420225823225343694058885082131458670098322878850725104957625224876376744248272737954101244430075302869394548778437918888381630626311626094528142183953025562009656771845675134800756891088838645545028116070820185784648918317751033209130294230588733521125707847863275572081303505384530671659754940392536512803566418887050145812337937871733506068781302740566892734135657895950918951077333480451315842898071673809557557667279650809988943139648087420604695180750917301338405842260674948582732031654458464799132671934013402688141037857678068003764191924737194163399980940261445638502344530861230984758452578168685555507281789502699604396479674800737495696198750420374639275432266624815354863085309288910070750051426733133379327317645489190314547357410971823403299880654192292162691990633084218326439073975339639471890890006707922980129111134733507447573657585184040045558644699428897824849104001293373604177542439916842461184782192698483585662751840998317045478988413174607815161046296279388074930341479676551149074718972764629003713704722254531572442161951220175643984340926661173175157697515229126423219914412485522927448991560259798500967276577015178382889057094497668036676362544328494094272126811330040619873435130355543436858002105515235145061905782228646773967919725270185972134244875368190544293324277971628289489365970024777015466495128988928724279634717502286587670310073081427124422458969241727654885781435062011111056168212219312200761149212875860957201055295422973575441105945396439834885385276772976166867662506919428787769627641175404847263887642814740039207198701433925078013924352746564027493334025573703856755569426340113275823137220744710636262452798646353459751044400571084063733816070375426712396891973514448702884807063526354663545450135494788221832115459404051747309839846415476598648245022784658670742125476310116119057482717176659937478905963342951866783552923047659456179312030458890821972230883020898155921101155938302485408981843061726966682298891205086571715299331515432250888193934134227504092865899613878889079641445382080454511650116415416633853449481586931206733003158800702496871404234717982449073224998514140930894267393548259531061305875897988800437522093255777967411056093420688562030842121105970857908555060411791177523874321306725639388673076316964449911162766971372119219106108578240088995393892277715954699883506118125848223600953870799837340549132520141939941370524713895598544633750393276756049785464470184233736813014702768756726300844679700929524088144669434601964145357220209129246087455172221956373367953021902193371293021345621655180035800689185628380222400733788129107064136920896426294863456338751674221384774963954958697109048033800098169070755185210235427244790960721879632807420882340297860006842973347848602182660855884924879695501272832548462673653174561258823885407900006338377283123138010308609142725860180524739369851678247414424140822473770338164724342572367685691979634944870482285005848028920516044066034494487495685273619018676552830089369036869207565652936548341428039042767899224286534843845881130449175407329558265243438075252642720800101889275482910697482300965928980366190777254425316105596254940357311045096291876149955328178897527777827663515985877764826117291757606388475317439904888290745671435850325357151416397544832077134998096409243650354332778705438925062999157609741296532713633126560620934332714868993161383683336541089373445739658376498112319226170460104542730168654432807642997324092724306742561782380581954497801597184731204966369048906498704564924493918750884249333989952460480200820465460197393498706871101114176108885177647604502384902245223517409730292247012256342046778075664913978858106100332801644811062807447658134606388381884042919193474358543636038461680927708565470201708132776686079772580027553524755979231120871782878579149795430434693021680290058154849891948196668835717567889939999596514977211638188864669894818305759370180322567349580561530585373299287698816020775863480057440506320622852314346508643997637384931211603190776349802747963709281373092634026197840624352320416157849772701298483236771485830678858028529604113758453619582089820028757605914854483565777492137596360950181261569519485022218911524138315290109142699357200299698089727441484917595964617690429935229463247937858844538200194418346096936070898414447185480503992374663438979906116722914192656589674480664896411861407606980415540625315887716161468028886060839639774750618599796153442224744541751910942160171010611951173789774924676355225604046526634933616659457912814314377230104621771548137884672880883923447896140499719293817100931753311895431171042131918449533436086077989825354071090702668978529946768960933981910519973131176757331003084906453030855587175086273472964141643849578213481609205689160388930466363708687390172906046539625901767753493902920930529567811252530195732198843265555948610197512788506619060703968397634069802256387197389351720481118094442893140655152814453490272722556464511614446587369368997580513612004098464990896348457951257318428635498123524653936338911005369630651185938155029584251821365650420715441731360929332374788498920883282065661294678124750124566225831042890148970840731630951959126127093419979601812924414005378896994023342401095502728079311478825470366317060411693654751576147107283743770520492824870687994467314636907702453339842216868516304719292389156144111080447841793404208889804039104253487356095367418806714660001861037656405000059487759380772425509780583079772261299302344198669646641573837741332928421942186188758660934883303865539471620751368497585415455574093181434902429791136544518929825408943661853169339762692454546932836386805785819517690913775046251495338656829526831024938052328217798895113269348311625773062636801485564790016622399535539444730858398687547996081819123289892767094218506628477017399001187062169307089113901320929798961155765853975613974864197265261351682049461731954578943193909630591456646525306837398235559739840973624479429179835974785946273415125065090968885912353916543370790150202107586447725757309789232235873570253711464918339513187992028564117104128695574985206958097980091173168210521844306698364324731658362143211835381403912431126546376508104402564214705565216659903388754980601535215865118797506286240408219113139823742376277457813853594639085131499271856273641691153832078052889097039123886493893778172734158049842084747627712762235867925793342321421074981357156429031812284359139825055656749415882180888747939098030972745229700077527735682462518723426749978762948481486833979279433498707150269350782417511692602434359284569123531947142128816190631867482314013089242171730626621312380259856755669839676370988265540771353091434513929207288867313404263049868347133295354888058985996020134124291597371921915388305350695141142790571045344355632878648994602475670922318377955024345649645774468843179199688814295269112124627636774024050608594116189248845703529119224751571949725375885992756216394876694096904552324312891566407649729075678812401553001407426502595197314419786181593007721318227102393162832172761275037996664180423339935552844327606642894119756975056355490827392561069662333446780382592960277460253870754079186950774871973806085881915256556047003213643236098888257568159495506327297475623810199496082236534776402156186554118402243468854051440916310193987248251749187514418804407809646408425367627858569714344776397991516915271686197742128504371561869132317641409089249065035233564079543312458496442269254903186567876886451491442614992470426328646834950690160199659283701914734557161699897742995877712087289755361837584998616011823765781991616536276245968977671438016978754865587002139605719920329614611314809258588363401874464276917251907151484209201268096830402786522584800391399774770570831158218397279752927586725333956061599050667275296959536533580111026148487203024275437655336542147012425250553737598124932256562745663184936506421422513139786211281976313655890003955748822258310249798752222558741131513702962754426609486485622347658110271194810127041226829241512524663446371967874928022920905645915485091589337062023535281300464533079795893084803043484923540018453234765812523124980416777331933633391895945696566805628219829017641808995816289820275534757935085598134467960482631956446359936325133210897394048052237604621584577365817969692882736121051050170869708776636781277582618219935649727993913522994717355281391819640001027437938264717607774091980718752771742041945498498901681889394904094259308572033662254227236720065728078468000901001175706511596049012236680955131764582563997857624881684931390291198321537294183480414480407518058725528240085860788829686876961309899525783248021143592913599659731457191049140781815769262458166655150675677913666692939770539475143862256890032798823932036256946203217612581001610769731533946833673885291491119172481890241104355686242511616010943323885521447501301112009079581191116674851729191942075601162079606765238580943925236553004718574303909089058666591109095244819734798192968971812765791981751328111096609556193195314038405868201021767113328990266345262125795530348157142004407851957454851452563690221835422498657046540430979987891230351126380081054491254246188088784915468129276195536378985903304866419350221892054221170126277815053173100253969819139868565637020844865729735117268988250302085787881154050826617559184676887893612983802398733448929994002510273431923454555960774251365807779109072953267620685202500400269805223873357179425598021915253635419680514977125293088853032266596913825180885124998543771554332683928142645153238282713823490973025368877971151070550475605681812060772880944989008787040238244068457176331766068893919875943941711160580157506765768858036499357120195138475654181193931440681256889810468573936191490295780624707558184431473110317589400947549007926538053349608464948293876948979331259541076726375288930428703271064672775585373768841045050512527998225359453881266227358875069288815562886461541955468091225147771634507897993045601159775152093068583457385201897438626642860076600990797962785104894757595752626780465652571471124343386889684126641605574238270374506799658206203753616466758953927655917583893543399319572176609299265498978821259919477926695612352431024832861330172969327404894517026429980554252322529316762298966651254856125659393324117949204080548235549513407066784335154397835990072936791040778442463988162124101479228109310629823337519649407048898275750529549855573722657481269838596912203584111067344342773550376158043340688171764163413643567144860959656769777208543965990808814346762360580263064479328930769331764193258548928816131631224225675933357832967718622917217761984001207516146900937095644024862550295002580800071756996511494842796553873253644219218179869357868472872998704795827989022972026453210095728024386283887267729864187237960102760904794509336755930072001978794256589312943744524902444875200709384854544466180841625692715997840093271001144507390031399151137632054425606104186941176911858418914043820197066421061921616453097919326190577639497982089396064845029000742437495191175904465796803699259841758232107375159321875904822295958644221292489783725806049070430576260917208843051120762566687547895655199957628621867898925367163626274861646171365843868876661315819513256202743898701480117584248161448206564898148431805284834721433945769019554804275080194072447626879201274268841754118586954414848989918420816301016523528247727208320708770614953681748470181443846708499951584977600643462995469036892628326131442005752169616237290043272295767127242479760207726578497257744243082249059757768479988385196461865669206540026407400550289957218909977398087496453616648163062052527383670928768699841404049642866556513275185640361139188971319233843954336734962204603404669248403512799470756992449499712324273639113503751136658488102843742454757142503124821062225592528921682067745300146753614072269466363111347061012725028188002877619025975052665357149679285952415885259101767712980802746712466447313962835823342508204863817695921684226833093104608247055653664311279252411386672224437324434559191970333019341459429210200941275640080331538878231952641098081888886257329907970847734054693441065675089594010660404370553838809546565022681985266328232481249533340112371073793153593540165693440727706029786575245402423405733790810416689220864989004038141943418189509670111266034528189236475662970821307166301890288093212170413101943066176068849057743178469165527240480757450384461222576946464523834707358104214540592007306208103462680057254505948553884313930273813734975090653498997198610513972641342621895859470658894991474151540544519388320510290927070622965353443301729106599716380463142104445433643952432238551357970263251623781567075490939625340402960877924122317321297383037581642074907898372114518567538271648641636553076712435601953858802083250583183333172441640402391459349977858994329285582384956642650549698260047564415416227532991777436768845158608059299345752058290368655434318929305735462192091375056608077202722755549493959060316203556034417002998154532717828861140881515510211449310536118863082040331347679355883750901058069265709045887923260863723526864323947119877366545671000303780745038076704568116387949331489299682966553036553035052372683302735934559893286921659357427122883020267773885532536959943625008438341343344781420906910930331793391540079342295923096455074817766344824740287532072455192481727690061601588855995267267653132302815067914037251378459523333532635827079476825857151679674393223150752739740243831851647693280733079643161442654284099602921025245649972569147515939177462260002434710170075906306276746113901827681407220597599379887923317559038290692338884022529922607945746420718781820843436097381804881304048892265641994935244905679380183250781666726133292513249050829023459032130397748158087463199259849675486429470244591655081210319428031211373204369149383282324519222331705806212198846803787029588601427029010086502611555201670906986567900188777039635864380077533903218973964639694118193699258630729472896682125857993973245181739414086166529977696556359492688095902698669306030843393119382958569042749840269637727089664830751171768359684735220583662792856454331697049367639976379839478373149994584429160496936516735427221087283839635536374062161777626396504439504801974090881831431203175972441258704569371709019365353524407977925966007501845528990494806141245111646704423694221769720242639448685471118938926354554570190027479826648054952471183590662753186627165194096870183049027724515332824428465393729507045212997728501181088388212948921133954183180175386977894088857823171115752708642075148917470848507661232206742950393465667728001256081148339325108553464654704010769414700728565485211754752714442485425056782645980214332812552974117431486850487830567589430321592532465200851429015596833953941944379989602660249140244787194397131733406301291350907010251940118933873712003032999136565357736414126750230008014212454233465544455350072843796796719981148964075508777273512234809036672841965738027456513234159587725644379539252545250843640593611579483136895962448380550717379125313857207366108186247003844564230229215199454548598373939645516882116724515160982149415674884978249650578996717755055650735291562152779387706303203928834379238689477444535051806359785672874296342311845992179305587165299932172380042838799297493050700437307919840214813202771395217514269738850341475167860793801495644966352587494275641949996479667096405406388100335485126505338706160309133471693604988459004440474872803807186947515342344671707483504186824580827782871299280127198866115501096493515520267139629367649954628877042706616193901226032300239394093112073435491760980611769306147583311385600104021626037470290574947403850838388599844963140891929122066440700021214982609568162574708010784436433641226646739327306243771241724566881754376312133686698658809939490800621779616000771427811367131945198271147603021154587658316588896877448168987846464385523194453890277217248104119207005185449488803042560769932330299090083627381614116741679222278135465741453282919438101876260299334118247098479508471724670540618985292252900378191174513241944747829457483980735422186506705062040635437291358190858064406096042670556373048721912460820466053194786196274786191383081183864803133091736823080237684757313786006575111322869197214975010125567925533636605846595382824092265163260056554948024945937062481901075075564968389603846066233856835257074350423531191427717299265612585643366548944298125046297191746846823055441847798513443499276328415432768423966865872407827873564413574048778634037467177605901002803113772811653808710321009717274340278189192163732148968250955229469214891895430594823818052671213271290528473568711194390779513613014640818511393257340716549887347391909536549436392291434541069530937135478475580127824767887043783903180184742787188492910461975689221075571310228546309560828030494260081340647142047243785034331905918540072256980300055362670687130217973891129159905690691951640797394426578475678853367635486041055302989880433412826591863952245661515698409393061606064080955258388132344042289221287219440937320619970078255857512718510563423848954840539247249060203899358529223613842951598737105783967729312112737266294587959598562751765581202552208072924505295300173839828457702705265150985803416097628507569173362590119901131025196833679814283000405437836858173227775065691446866839839552495686775408987843426380753298842997740544660777435608996134173205823184363655021737457118192919305667241613490942212499403490991503658701437790776242450079708123503298989743451703760585084501036654708588108062686645730967100769700514734215981402765178812420734712115118436897636169762283990293932539414718154584787075516312016860182628986217814493106292269810628878731649887887319886442292300203716973380746131747719019856607201186178312343179304107368880685737901675202859095283870809411953146274333480706930037619517676569513901877418303365894975541440892728183193195211304633682039207349797034545937295109648790289744252222598962953030077707588041161735336102664172438299671427515370371788059465969228013565145761724628582235641771360314815424519402155222928254767248503077397846090256204497698252465751214487566313473650082386741978241573155145772841384309699407708376120546934213288644702346685917696512503018167492922186188940799199126306833947077367506048010542929128111429373809285303554179786814489782650729072894981730185844322191963006450554796348228455555307321772915568304054770442232590891001270763566848275490983096427158326317149571566404341605783879848491159796393907273950982952969952792709162527871799137807020791131417763428266343614330944933359002069565527242558721697253127802779748737164819432555975673559424721702248252126448191961548176665476392259436327518212392112270783525312165584383073431168823209815635618006382753967376551957907520433538243145696570564777970248388331189824296239026349915063349645996202423322613631745581021054653668830224018457384069636128975116240891860390662828458278244018298564915054394456924785526904909839785929350293143554306626281084185807564211595582151828900646833481958674570175101666779966332557646338177300399926040979266099984130365270950225567852695553730394700942014458378332338426316475248214327707332653002658971487577379434778399144798893456687817375397514328203243000211775814694630189584688592607334112164223668191871739545135227657559586325544163213127103676768249031616507106317872733429147539339958267848315194576959276668598648177952723352037004925327702539426344190692192489377396397016936702319412377078652509653016713532113806103854027617562123125832659768922267490540725447389770612696848751059030281121403139822953245430995953890108091336053828515564499034599747749508583346185813834179481372227541181279950469375049147283589801820767266567071461818464860727677989435105184625528465297938393779136664889619532165834826796470096782376323417793981357883552549821262162561770751318733919868603328035940731698199369154165644905817441390047512965686557394685487648893253161839389414260551011736362997557843121599408900483864824580217697068026768451517252607765935017178455603599822334012896294394134039988565606341139077848507040842853238123206364517279757762046636193033538933199294615856078206675361687291103836006766853847305621096355152624473153201967796538024719459012828270451719450700637775048850570673504249744098622307870115590437390360777260442820147482756184612354935214648352284726394968009417997934931643037840833465374833840309021855889865316670207362825219403307233952523522192730024180186951866610662538202165550314676360677898133756727345127739492189186596990725091316482538411747560652159327519007156133217657727418566157740662158904419702169094851069059517842094811263218473440405013333254809828744449252758551457759895702568233989496911494998819742477632173326102971059852387457196717900551044838101007828773817268264208807561942761766235523036787176378153017425710823048640323935138273707804778458814866863417398399066672689692811553605242871584069515435394090393624805291134195895238644757056380545384863975716816825863685577176900494891199574895319495520458444146204361941462812348569850945952918158902804259514271272017073114595761253042102141714369597288420606705883211078826129266018028424346584308573089412008278150474977283065808168221924659197435412373950819291940886073174380365848575022606350211771699319214500184851385163162018274819924143759182807364578400859580809488000458995327059272817901182080586941123325821125633061247862811584707378393312958297566486542254450253449075066455460978370720099308179555923366958393268516558976871868052769756189679127238040882773734212631029892749559024270635934275465684029810608167980291903643891823926103436318216038421603769518357321737970345534451377480153381343288108634064907250236385632187452313198545541505205603696226544817394990456115656763030261962024913862990791108056291930904404365609803848035591647627583283483546019187128851517283754699048358658235850346481891978482324957188702876309907381735701944135080940911052794281106752313297264356459642239130585527075696055421505515859128475529258435452815186613043517966617342277431229753152594629810375413735931507285639900796704481691901857963054221335535657409027150061689948816158975302074102904294046159470808658912640195386745000135569239148108802057608945868802279334500026535265983869548801924490929387812819685342074172540413122205016844683506226640785555227890293155182993690389997745285630155443787629225794535895088578234642029919677598677227061824487247506315763222718298048572178363242295298224855109922123971151954713065590713543899851774305643386796345829274858001048408090459626665801212295486454886801851263731608776948759177021536582799331568359958424591219503782092840705153957235884560857793741688725977794565732061540308593172446124770280586273667373838280403552157518321378874788996395690551414806232325185348108557455062484435879572993880865213878907215461656289204473350857259019408775234969186524609569125579054790201612712806827589624783935334287609919637718465226497292815244945668500708725332443503129720776281880030080226554881036313070255476390393645187623296697144849797640368502226499766516181687611725562870685603413354000753067635833243316128323061726564166442715221352473469884437502275500341756787054878653621636971682709176922366031957306001197295737311789210517630374321571972613605041974709974922396611037884297291346335024389820009963442244274969404907386797340404356328661294148198841156238167489579102830613292089354381229222609819302372839579112569256250815874943534757970280738435281141441289462182522025451874205656452165444270766849808225723507954359246994724645308243006657506756244581785258077568717582552337379664724068965386390878802538588459351501372466580044776690060439884951305807810926628831917929125359993809823390254014861734976133219586526195922898369641082735512633046276131900736538727732946720105132164216820424994413640813893076682097992087255599315380853349470306269916641016387539942348514512474173360376456631354268936397602086329191440329973836579507599404256804221262149225086053007642542547165822037864033261912375631897777069716708809919405724052368750709457333102900265403757571941361669230721135624912569429983260040626607948061196388592207852218376687330543164108999519768874247373343956884104445073360450527911197900522357581136288469651393659379826236983507711684792967233696013872860797829277121183042885168227810769910941155403455689296438075581750355125499639986212775348680148894855902185719122888890000461039304336050177075778660162734742799401287996665813582878560913482527050784468628513036933997729828441796662810267367173365733547349099744738814745366699086772674003972001283125858126786083793036213201746218442234033621245173874300694621435917800875423453298804115278469415583668617063098674717920887753017101058027880860314060955245454136368853876901687641065262053874169265211061546174899116715727804250785105776942965391684436771902498368638538810698565476002513040420519924716833088447656077015607075972088288159861385373994589601063554108523651031810543966794689903314569371208968706429579942279269091288426285895203582935012426457018351942612905719415058932265773344175834010354612314594418620103701659429374101197511080400005186421620589090483388549554193445091532052425195396612946139288044764615994555786869654404852206949294060723600953063489613388243936557091988565404443573578097046456041462805060986166128523168294011338970079791201828431349262403362388866067008996986315362275582155747794668276319442397544858223903735369586375888900374741515583079596691558136787268366736028054889799265171486443491396109892528941763291243764903711515154210457978959358351621458195993790085260974971829104356530777256295187830169218745073465320355610259120416516189463268231139758557977912702581697217741814762598399003399669496094566647804733320627109733725953049878963817847519784395059497884520582928125621433164837324457153226371383458483355130761085552551292474863228829406680432679669008547929507518412443617700511187367496299686901635282814386734767991811731456934769365970947264400243212234937288662488093719358154182806510136421858018821953824225401317082654538146297864927124814479911734731881626141820560966159329890413229403756778764362022897457714489365670439942509515541140886312663850425312153340077173522505139495972536616464656417828569223504621557114085575828976569820353484050012631465013164371339848080990832718033827511612965635198263363147789834681310083391381345112695168716362736380859372295678863585720025358040888157309819876152194288503411812722890032389442349420035859852506427857172471099492832020171466806343391162693832990532075500245805018442741297613056479502759965740505885784099970981962114446439992264330786626654142065626422899803087842837689360738482280412524383278838779200210799359708004604717875182693058008801214779525163002528876250644794330057487638919887168045989988416337082776748336927071372141201980044414010313195935358937925673963679697123166060734162808180322091531617636320990717267241563281490470284087123271108254409359286230591608571202070041375031963943670299524843316308568414042609931509534457952063768584899509150765654427601867943834132866904943227066736802678440063139988698541100354004644842685005160686686808253920419243559359900331101319750358900733853679304489354089047004522328598476863556267952156077259807766581818368454295329839483292008848406611282578039665618687863792771897683622283026633641177327186370251734327152336795932610653584888191244513968646869430521586851943055705750094279367675299216696836234938859860380323523601884193066139435155337364081783497888202777025596654966427356545353904136637019837199581106422709114547933640034121009311825391389610251421842214855003087087842327144652456661504306058223038532875958337910674030493608296176903749509741400330663516408057835449362169038484983367562234843657591997803478473766796206641500145092390656690968657776625291426883832400245413379676337819468928910183944942403725176413462366042088712582347608871028469776691646402673799992299073828323655919734018975677034804894455970873748685149536882632939921859284428639913994367140910532843989507548148237383542720649319871588176995328317380246488666372898441697973004600191417376451212710789273052961546351064015700711686574172831409325775825216914312330938814935823729356284897026042402752259927000043335568771082657076231353996087660350894098213059342757179426869968054330158664644164775773526884781402845156449944610104310452542046206362533189993422861096601999774267965985293059016169962058492761808882323548584959619396910187885033037086072639770107835079399761421553856348657926313817367543431490320636458861824995027178147097041142551844244190298861706277484897222170394557237803481655424640669370493552652517355818220603610022792865785990527804821453894464299555438409705594360826835982810425915304053715310972820556771263996266993534541050722715225874611766081143465213864873153727077757875552854883957541753350098806898452516849450813119881216380139138794805960601282206513842540558328313866408487673067591864951091218040408633206097012984312031481498487230043978931920917192292115070436117987840309176239066854719708404894678708511018692089210660487710995018563606722440781060766390517738483991399689057335348160170627038540221701759369380050324142253031380744074036098711465469939365652863798481786147446532184440787150381227008079833211632105118013714787798968220158578420814389189841911501916450293182666824953145450855155969603902381701716208008846978300029034763641330289411737582640913424289684258416501599754965587794289855169384665103078428764513611481944176964526063442231396009048336408619239417488131215033464111546818337620931524003396128698078681165771899080869246798122744549166058087458357383674108161801019259456129954852058217679741694776672213454144628839913834728034159926408966664186814663853231753487734981245707646354778282910054882805716285327539116621193119098590390747446748631862027477755093074442115329503614003073781421942087389608134928046975034169422744345388754127574776656930347087608282665416310386663144584245045248432708666651262895479199812203252644092271905703946620481120317584021189212319478455878340173422552024427504321866299338669330562165771070468040809198151514899711231639532738252927357555302001669978745066495703793975903951783342830860188975401387148701124842181722063171018518595258934030530929242948329795951844544583235592142913541436947524590247324320295866828720043610479783037801660563028766865811545013790309302600593125474157732851336891277243664726441045135852209740092059944419140573418275461476527451635000101715195693964365844093546605758998749460375034521391818490474677880268867661404848530762681493314472664083538803668591194293020800657174995534648659426977102644161279555509002436464250152723117547458163392293538647555006386728225281414082620055080992234925993817815570572969660257657513747142423331796227057106116382171325221505848788656454310120933202266340433905560833685911774427422030918688730234102055880078254928150718637793436674925819403405733311742038536724512381900778594719726933329030324630559620799179522639748231631724544191332885806061621163212276420621966433670969386733355418830763357719383387156035612270624365322004786550942819065622422575593819963370503422885543579962356256939743480874491288892462050892116255606250855713867211101351219895386822384123444587090253387572791160834073397947614078877651709552264289606017578753614745949736399898053640334382026190342390012242220673488281020530340424939753717535462338189120952484033904408221355357930742083108139291031615811563504429017432285844608586225148475522434414959842620799960005483407482078634274964368112952780916756930976359448773187942642083370453106342990091297012143504882390399572020784729401001143237347165448300289774247355102655090520663225349884632805837011231995944331423966697985527513319075295309381828737228995261269716303418629781074418867573074627970515699471716170121425699097842935027222789536744276200578689034245544222870526176240270464408050518892848884611649996371531021662540161915699495656080838347728365933392872054314190351803791105635492805299808969252347281034864743967545952073574763565678651957971796136107925649807950218283333952758723730475105268245914009646459021799343435663364843164602991901480048323410504683382654888951895070468246881408878131458946486776762508575857378144603500168148382788436157568504532596325750827410779701206843788265594678773247128928386737624239597856929534022901378378338498645431733631855322943306808449785614386666124090535096079180799705693717971356909707089829670967824833408494500231324007996408151558832638056370760707412939503460447995920782233400385433566937488588844818083206394787576954519303402922847720763404368091171222815743778505448734136885439322140118009272113594022128607113076087083631212457618743015122945409840898484673514471368393551678574144135244842934179574933638648956943901999651939021048399439521168054818180099916275663858277085644529215049856058766389306687731110739182318540146307796937300789141779129908956372073422863291159646136724313063432768546574293624325272898748201514437775524361386207743964927038453842301023697674131181075503211350776444282627624092002163973751156347684696043861677356911581840434641933763695024212606724112479325906667179674558000680758436278736307891060191613126240367669289931148810680557727976767760035071646234153221878949341136615446598706932435540602526938257742523305423635788094998974968379801696372181551194602279656644427645168424982534099319976308279018370857956605308568867785193656161731922605368830600437380099363470824782908513312695723383581517096646241345648709034341817558045378492646517805058735113833339510730547322888165270902857025666243880234491390361885084394772303190753181178024485608645792141805488162945255263985448605836405871645981443419020214340643169640790379391191481058788045074116371230883304081344750042954475154180935267706651264792575983473526821224632020353108628719673888544092521244063525708110804713008414435427681768976143127608400903584926745042074473452306993302659435571832369444402103192038474475148829322128456736907358866541823795923376060719427744867162312152142845442718685829273982198906545071505937305379177825284970895564109321354712610520397047865750777103408576608294503985616820127746374108079328097471350462674440915448639226691480395557626372788204974855872549655837217869054036976834245139109412546362793918204617958130883717887809888461574796502389476954582799097211043102000510696038461946002109958345312321493902138907441450103494434497192969264053009624352469248582632304674122156943629391814569327596021367528690280283097822180804482009450672330798260803202435125962875166873290316481146622338086363379528547842938728982444931680536541735406949068416184192038715593911701033188135344831128078718095394448390527946301811987260732924434275311247236632339917839443353624144099664902373038911717971075537976962406429101561201532915276810248297918283871326482768102797896743889432672238751229411207022666428573613380804758349832437283725431979926144952350853357518262607575152320328779718720766281876182598729450395560150322152650443641603990100093806003133908785055923433749507073110887468942210239831572785627085644584778331583382265191040020243415461319079658010412916694007615302323462330783889613452038947856043588274025327886644796397015641198454278586565416914456137640091175056894049707625479598910295826682020273406647140508037905732173546220423964108061733682091624996067833164082490884832073262288881680980246880573961419409262946794601533546618420578137485255468109587301845335632162414693857975248830164555463040622859122075102596433373510459683565563317568337908748996575551320603957722056196723639017273884128860642217318416207621000699489238616122723926607185923388863325253422791403582378421239436079757909061427625804126410468387275768180767361843647586387606298746289656939938739403907593729307334889269253620572373122125204411503594693461408244010372082063210777418028343755045094406395545142522584207354002806429258073343210188124127302632068172529674151523735152209402761099571481559361389940012396879292502374461817508446896370244980311928541558590388038554126897050613387572155636953205532174966183551686359622343612765745683858183762286090950244553343123972324810437140547076437308114552279466291244649729636854262674332843784404258175170546048653652708549205992982295401499653219198679230491486822188068282809464483721474132647689958267701207307817883853039092003833506770644235654349374834228288979815000659513740630574403380083227442259861832915319972939751333278899144328598617348858216357083459903785015217172870108018538643038583979668066779349464506111894061584874932691195314042204551987353168409113124945985109350300585662827183311033919366696262070691100391012176103545390479156425547263737317189214168417751016739217824246800303821379194831732281878910739353178451789618146049766558173330909599899443189791755432978507396726651165033398306174854991363305070406342467065150477979902986553498307002784909828879268044316709936302601790281887800347128208268463105907359699000629232526821682972321500199933693167991266346420277413085203981854026329723822886348671101316892430497360641095632712466969734849274233761510402205968908532775294044464219788879289523682821138102230404721960396985359428524074682782098451233798399561831341696389233608444272100531909149158475724940466594229038045026394683819547630552566653983462293282306308709584694163208870024886503349279828414443282459737914626380352592686009692139552925452396375988257979699339083710590680313227941021571634579885772000615985474726886312692084246553234088132271560718731149618956580701083785256106083961322723264905917219893872444363075639400681613690999746882389311785758180070330961799961653348722913184305510733830792997459356830274884691105606943925754999382040454883576003213116949951360279912958736484669172179064234242373391535674851821432567320355223006360947557835313743095696990349025692651034878894351839578381961730364959053057643126484654511202559001613055969690219826614848245007921738726771697753727092036652428346819846189394415564035671696972284321569914390604306083939789711451933798962816974688556130883724177886080464276090129620550681813370833928545978642961292256947204371121854084155398649545319155187421060187655065927912152791008283249954424441889694892025815784734410741121662452755995384024731211154973086999251143846160156275028839631774185201903005035931529223735697759592133430327916647398511430937124899149729358051926511045802262102546651777242247235618269128014392605206131595614361060347690529105309241291134289735878491406273778796855154555263507157985450996679902261876548223023187789879423245048896177110224057958024287542036899118872610462515903945626675207696019233283634964754559387508909825651746535361439927433135731623798796841076041823848080669469763283683876098809734707317757709553786079874294705137915366530863723656400076989531276403672093507744574959807956566269857969370684660479281676066882032029829996938527664969870546264646870703092064110404177027312247894989277060548019516813186915845920675193558105976293455675368284949272205948337786936950248431769795513379457462872829537492747581993848598268582627552102357695218894653536759053243633418097760060538366348296568351584899234123130232427109856977583732701585042242793943761605510994183380963662304206543571302600212434636825210823706743628247569042590160015704759640552340617069888573616745874888740492372187443977591195995300559197952512848568878647881661802361153210833449411474565265027507359767505582606701476248034024512070436791451562899575507116161143947057657591003150154212647645801832507307921133924489918476628411842332181868121621634758521646124755669841945193189988915817264179891112352746291298679292229488749426284216566253697686394267318225718392969949580075362475454489871137467573194165070012988787738607601411952294095543518692195343384187979854017562152407267943662447049896507481835169030990417780164030186207071724571682538895647373263405016700630025336238636019348440082185809055220388267779541354630659095149112261274045966950870014399128935017742222953400300344335281216488682033371303120900333249824538083866404292561679215085855674948338331936299205115170586478027903546595951149594300071036702070753283085603338458536569055636199111038170053467931345044170327337783686747465637151720181488225922254603650369398698171007877720417984500854802030589080844455927229407698176628746142107097030764003791655879892472526144145879862632588041990986498611336354169477973337564987829414814375949743357652848467460918625593179463378453929470968545599483035728225115315441011220881296450401223614997511593236605910364986658221965005071247947253290863388643576257922368960833061948116742902971196694420720846377963515453443547986323791518132708438905034558843335867135828220467733525627353972615496904002513412442830966961412210997589329799999436052691732412933631423908794775340642552224282135501311666072675034447930514108880851803096816072931363628418267415859550530165890432238574644418875738148111568588702854014589335348800569202017681155053629736632262148690167190681607267701397181556455315521110102805331247949173423505115313991438359729414679098430309402236405761383862826822359675948485454375453087446323316338569743335349742166522812897781569485153537420440250804310657045749097887990587005174293203634269815471617071619929373770594725779997469529918627509479714745642059595683026017431679961119813858866831236524101475578460973785704129757488659169817601022517039802599437011031130100157548714272822420970335730237160902397187045802939297418619340774979540575886427549789585222533424627980426996342253038872210830884758727481153836318271422319287936150318580582670470680540719568995106716088040941813105332518315219989212004844392140583353811488245358858930011481988829484566131815779887117313824176743832764681042180209427808284118585207501752544036958773347491368946154838785824452154290537049421510844626764529573885048581965834290090191229802969167565968079465832288027232369211350339543619663530548422133584220717836748220819547429429180580392135684691544300086548099950365161326291297977171361889598138888167033879349425487431467755504415191453699138071057124997497727589024238051647217901694519189899237918738296547539379990948861616385142322764810344938794112247272945094008082084703401141525331369647514109187654044047732352752773665317646584229282917609333286266436571078239155981438782795543393171304725611817902693299384369688092273232410421088782116742087592804006012718805969229059467748345311912418346655413609257088581420367691892485913510473509005786086487157851091682232479817494669290634387123799476035016759285761206651013732950154704564196334104645836278446275089875138909726057448834657252896263221107995343936481796006382611375448661459051773441666066133095506655860942773814330841989924033397359798144374981894742582746435763680763578880131097096556067983023009101488341737632064179661434483419737544178538512125524947348110480782622453477841503117232541252821515112439274994811799354214749175027149023022069066933373042740821601801752437124839142207684643861021973624688532615186945955794814480863125488718852997486006786129404015649076901395050779509593302442153133249538718786974549267355051910021335152970532128917805300865897521692488770392865745483192319652915128315188925529431052108731158189340776035084821989277363012730666970288713196229875678753493209109751382930165127383184206197765484322863517187755508150143108668594957765038435730758381863104860241718778871126528196676559836179667062456912357414558755604846902349765914146240271987922386426575161340267135470985566195317540473516607110329015204936961701842570270075187489183231929562719517850641230168000231821393058626723253151911607818536556009992597338940300763873491644271159944825506051496593190725144534515957482682321415742254787866881038389788259212757792957505914103382955686513061023125892377275901290185845650022835770193817868991599466889519543027708036358596097277156199479921712005508258257917480170698228528212341743873185326124866252462349588782743270707895539358345720614603535194587566740193800302107364133439179217781691680066936331737590534284489151523540532694134756167806397029758438612973403469908403417618741353780696347750472826136240890627550858632257149507551933186789039266607575871718991088467222373236718219469732770854594335346336581484719500015813528143616036130921953702484347577795221343342880422286559740243176862504041549072174324231913683758827124519418743727181748579385687340598669505753324423112204489730509828418934354979772525406621314601833778221084262037480770091560719902275585794612869038140076642415486953919004375959970160078798138195055663156422765642120178555996143774593087210105839687763988567835198622280560971107938790759086803236765994611078259790712713474652599494581713230530723291896961023118724905850990917528442542730984489461068364455562776297562754329005292396786783923414086654310787685425561723524268815388753928335857110931821047046195042813671783889555717397498466709860896202149806082271339386339360806972909787307944369862989048458227772171021333803968787300502631581337676828184631358505707959635429298649498900577304746665049848008900898850722137543357674154943821348490259123155807321944593624328156561029544790749832785726458980326241667409679111575950200013839560703128021866380398223510549098535520742169446179600265113301323804457815811652426891264031802324609153825827114828741288797422080796785606389844206999409400301739710637484287229135206168266426375744522770347403817523216539339000034826429890654126538686209000775343851565293031108075225280353888908374180220403400505489369759338249538160981049641068339701624134333362360289519738597198955204666419885012765218519320859044068591169508055619313158643934326608154047547931911816100033920118185664919533822125167413169338553506033186124265483024887830729264719141800553847959572099320402016851836123020357584662848384967359487219783766094651721261544916311232887368995555302728197659459580951937058445869269929212228544111490506981906544273322174016316343224659131977503915269035512021418042881177559074148446089873110292045872810253743438453641793451070883881331786932797661018733704520390011512916583932681404695530788941894108589035653040645507134916467991360900081422077816249741832789627886345607630835433924182646190034117574032188243985519662548152872552623417748792379080812378531050227956757949944445032222597151059818489463370006194955571261244637652957182947658645977063150074474618916164142913770588173563633728043051775179033781032694677660929505037364692112518171998382864045302860566354887588047444090878991242314049786419053972349809445749094121352266473449542449551527088722838968814604933339520844952537573024072587120391709532285098855394282334471247552723385034791306480656412481528663323249612840605401801903200218461107064397582293458394583441328288427128089764584690078404649551244771106900523680750364226283655104189824293538134888103496924566622758551326806629546320236114884297333148853802368261473933349725910915446955510361774621967300128063480074657311267586447280457056529648707988672263323658395710153912105208828971466926781308241910652397386556069528675854314314177500175729208956216517902524925617715209342111718205748766733603544297259016690386314555301464050135230242075486807190323846463957491139262960475677854012607031546422755646062087261207823939995899796229724928200008186077595019456048349583988824169081992872717967879606551437818168184170191486251512952999930987215168616950218645957284470108039960015442091379675328924614453337597855954871364467994088198190939275139451764931371076909086728290656792005093224209069532857491257709551135519756121243678250278284862433903342041312653955467148858512294988304775422620358202087754096174330244537669989140890960419481970549201265943971997964769683774242712631876898538521739445476138110025874834522835226857731856111202016748660002209087743820274126362905668355897313203274435913695583518374825764295933395342735359400347197672147425304238831138036399006491111269103216168261731124181290050720225034547890505911450335613378074080771054969501738979171530994929143621482572988376453681218131410843635878516496726958568920627452300512648862352522597837088511805228215144968995180422155153788782388011506074117269249364383058599412565768857834347719799224657338247705821771687492549913715824797934044846642209678516822428502503665706196939747492067864024624326768959357668682263249698020416250253270189053908882564496815165451296502748098709146230861902966265907682094236727745945872283934162267823713185970647417928523973010709067785918924115753648385909066838230513356321462475101130874451300547237488161992562982911317497286057999884581066157510869095422350818987896573156957626180730696889234133885402449092937658650524045629156417990332381352006356664108507796602908348995929227485664996334152085033672441023854743285148619028635156252376576397189536909724471374506208987677471826427564973207967575609213043690368963134327267635677471641672734962120700785439353170125107044473086317764957795432813145622292369371410721918604154854155791215959819655922587862827689112075871747453648050516411803319310486521825893094531849488225566107715899142584600682169974427711659307902606697978611940274847478492382198738323312418528389499576962337155289067808000569931067003723764182096693316276331312246782139382374290849483160896612980637813109521219189516856937830956786709920123423440166852201817946157108502708606180663107058324665303568697173242844894037586973796945554080720596185348191932163902484167570295716177057546318798029521703643570724205765066300008585027154828950120167297604700982468981111558622123611328306991566656848910691581230370810823933301232791248294446606683829202728702001658208897346261996909925064757952264836207050249581553307545053252294626624433864688117343828154046352803178288404304639748077917044224189706187498026601590943892662324146165854053000634675023148761289374108599403444783207147654267782038378108543153282061366142053322219649960181073510438600328446301727036057429812657277700262584474191831687758051999249320610986324381845264520767622709631705147774064643987971141754977135037025949652961622535572803357447406315634911706156887942278959854608689233589144809064341063497931490805321376900743012078661656942593394833428272834779341546758797760579104789659682674442836771726245608542874314959067455656293644361583186075191882981372835601339102817353969518145351688358492810127566184448925016423952164245900404639257933023969309604069824292881202875113221550946764944962651127851017547731550799664749923876123589989681034015942100439850080061724607205995484889173330333189095251430321078555323552239103509884240637052282004022341705064269472236911304437263719301927679537014373385716330984915448209013885096987262167156042422694002099790917396589581560267722606492514008155684141900245681359583621573022179025435171101935651003190017541573790451247659428968824817927726969248821241794005335409178736484990862142760588452102711740292281518505374381308387582082663924791991146423840454096909477301737234213370037475398570316395838659653976155472935725662777771478658501647547896318082466165912975891495873154924312341472852043365695638924579303526975749068911894618976049136862461976497529757226929872863723303977068382943112029136710365492681957509865166681170156132838236329809384572022350094839646442856618657537631837797889260565297707061069869330140245507457619135987629784130388512326720720947060840722100129054299731900946994461566290013082763214319252161347853021967488840856654341184185897999780134553017187562694939602729167027120091924203593882054812279025603989624578975240180428010448858929568345196104612902121047859209134505176398711031608230068393132887695953663245612697398943251355893718663264498457606507126472863656060124507311223049838911869360870851629722594371319325492860147970614455683291647954960256212885514105318340834442116543082915119876462619808273666612462581638743596013932154592951410039590126737342589916290169680200115949907061213590691664698520977397819623193180348176612342130785825805938069195218330779769356574738860151618810895412449694054575126284484165323334639583433227860619062995868449073801278093318864849787061563578132798727932954084435782161207350786366992738789972728720729751980426929287020580244296072886806740396692106018157075892491159784915295966060128689563952266014734000430754782153430226318257563246405666794070671582419037580303301811318598987823379229270486816936986052463198228066190342664123963772944698357873991593092347493008938980566213689173110729322136296860889948663608181624950058966307828750761872989949941950968036088853690468470902199146160833835470180798224991388404776549154290615877507218143632469017714974587477462455045215058860608856285623503586641792828050156960300073214176790660082410477704854270410977580142823291081833179889598401516819208332389818902805345514069103815247032270129123826536276429270408511047712057219383335363073566413901263827806875383431086794236774102470386821683762459635529334506236366784375869208145273822645617690912864521662523990156350977770743665221039304148790680001498049001033467467919079938752505206994626479948413229013508298603461479073383793118173286143883643568485009834964696198780180310202872420292598296311120306234542458365151623217340265246372206721476686043689489711028155219999006235057527435256891814191803090155469916676605526067585268873874715006743768070479238503565124057579011795953198525275080866306344778738224453391843259820855047154551654156221134773200694628239975106128598071675218234083611383251850710283658112741686907867796231705796851752829661129629917815399266706348077959925795701972372708318139290900743273206272251191333500409206592990578999531543731267707872122225078240729014831329203952228678655819335690490825072936656828689227832120019455174623427963889708009287474543082192681930976661001335302696364510848379560107432740001057195504123133007708833764140847967532982955927865402231912234304144166641821801900710241114717392656667267943532554718665564272619451369334251091796634559181387849387134884963797378451534153070680534114900162674367568971342455004376514476278181589955508155483051399838964809068144968783570671952625742461058859797872461777699895248981002786612669492549260517737477604957869846904804032927832092863795215231056365864871136546128294892968778155993338438682269232793939852275510235594610607583792646500326677883666021008563956025068643359406884127763914279426033402160255610911894174743190745387809228070869679731116723502123731650224758686854613467745844114899609229404861284987006896587966403847926027544146577288455979940206893722657679036954680033127061536026352661256397312514592904361163983406485140574630310440795397726410769699715650147625489207789277230869019662443120789790619355246362760940741939585477448494417190156796116481501301922222143483517847331785322509653205503796250829290253941678466193491045156657680589651505490410137791752081520354641127394004142443533860901822645285105172406744783116194130765262296965318599243281045160190029135085818031783695572597052792133697109697690785721311231590609301379593652367989152366112736596265957792089957442737951817035682122231727249092890642771852875873179843866761282373046222303674657548725770235313888213683318409947236200954875497776464456008853697235320671241925538134807110511770093807025050281395956871106230203747815720805032213723198930913564215619602872569906205198176081253475822682933246660723479806928720690382864086332284649079720596319058955375952251826483274066341383011462827535879940507474190126320136765093815793127256104989546784117819413694024395026051568547130692497875754310716581036937980931752429897567719994023691536803892205886656956109284108610811018131662876466477734663007790406579298486279560647583611249467861031516533633693219804928078506223483516316169592669673490119690007967527614069909773039065261143038462508629148724176888533421382272270184808587816521458117377741556369890295058264973794665506712876924328547206343226576064447392935814879108093129668356569849559306887796222379334578061631099937945837273146177577240897620283128699090557928460594039937956638477676238260984035278382148971415480113280547831222433596160592106611250441782561962625095445575749066294974912636055413331449163816062401920401581981092142417668384990335143275300105031792151947226463464643461704974020153462538905181031136721283853965273615362167200026594980302054665904163797379275962225111148525620806614820112657017135629955699234042675496913593844036275344569560781927146567093750278582730967915454811154799072264867104033237219156916344860155099681647127879894818162313409101624687127664982463696387126336011818563618766734298192914942005378472384723743212365868481029100587961788656911523515612132869229240308594406643753428254543525828497966169685999473945757633391494634942817882109707816675376781449949559351277692496274037306753681702645421232629018006226714886726030698094777737223796714841475238684906920486477004110083211051859028059549503146217857171834989874547272712144974343561303689751882647532572381662699072348411089025355207341704499619225437154915356321005365744713211526689052676959805952938561691859717948767911248001741901356710239948759171868278159804879518924246170162074717517066627063687999204124615648377323456444012294340519714480742947681789720755411430917791921956384817215296268286238887387603263014469181585997981880012923654949479370178943377859904732288445779079426455881407357280525861472410024143544814590318432122021704344279538873041808423773886230326059119412498723374454783863056573720655209079291479815763014010930232855233202988533271543515113075727569208401397823009058401742686118641432692493199387069781151357979612918181780178592973812199215071735810442500931201403622673464351788385963095368771425628469912569632650026453358747396264084118979318259235730855791528766414765380895130455194697855748206674458391628754200757216150281071620702892616776909629584906049963988930298673471118591613460747759246098440597803757682627780648542508561292051239514678751744685984193766635902668755736190609818975212869004766759610531271663445246407965376404240808812745551655649861951831861169919405182521195142871032741173059291355451972842323109597095795312629631526580770471531131787681014259882202365748086296387653651557048346141695261623750662454652227146624402444645290788705233616256468661243069243516444277798491180483624208597721267674082866268531051116968215065534640193324754952609264076288852030222474311012300382104694860544956716171969611500540610649823474952176937215521481561973662455808211482668312203126818069099568608972641388329323519728629636602192753960120263334340974881455187270448930072580137738521693360081433606942493033998654364905479266482619708908621177784545912991265847247940144522174728036659967967047596773403465630135111226318154380304818599480606569574486271756510224117236450993809248405142642512933797066706088177195493997828480639392394904180730723211475901220213854885174970516808672333351940938341001990241211891434249172732028813690375391585374381450982934711336591787756374547986643612022105310406784592849800956233670441491655762665562457002415910859459918253339750424481472997355262447028566868093438377833704294652824106738883680911993935753466958352029220897498718950473259442066547282540183932296117162023597271965354378128187693622698309801262260976911910723631852548111086841971211537964932674248731495338063376972392622226512536866621297259170531433817952822311606333156622355343255135035989282044786697577156338449367175598214657979039302067226804587717078515731151036236263061744509055273155284300980478954725956273240769372418986551592437114094871488146099138073530889719810117841602623131579340336207664964176949397962682010266531656712564871409463983491993625777041558008099682536908846075627995769503151861381876463601461525250509420686454976855529664493445051292537968957532616699636545492120005596272549101614460195332397806139677604552683768033757159360422235729336607598688723703320209112338123781976166632533420814291052811911835727255797832283168282130731786120388232759938628589912697965621021238268150969650288948603514551660795860846349774218896649524028676349581329612172365419256067103076749520297444590167716500106192223475160461135337232659470345195822678310984295459226082114984968311312631912092482298881738725482008014207788273691269140293560495643514565077743567543437507370317508472948907131001877693779065340807306665854247954201083482258151809466361929718414455585683828419465748860935196595601372618387169589088461407441870019427327357520444764787175016196223772195264054135865714252613214892530251762298513854588420245499095091350476957594969717742501916448031520027166281212658104191571404596604376308756388075991051003850021054318421696097666732139636282139346593445129111447077014661203779084567739349936239185035287347256016186302754923894024884097111118075868943814662776790034285157092924123413852962738705997572070652393251205449147281368403288460818104152506355697616219447046874924808415124037548579428146113810496144389531257053910790873395387069903835408963491334230413020500975185817729210074065886285125857442100867171390671974955306033759807411140685402859226588431368687095675368930384142568713209839993880456450837322328196940373431983052890497632899976673990326738991029443465790565273006916855133292648421028932797341360254706358339927578775093250847595161986038343598666362395957956275463192807264810369850631631318293961029504006309976891180627764914140269684243701633848628977228610978277821353468299490456683645495884105335933966575587110644419613417405271058420590957857838220333360379583611940714233317307451035410698415863030670975090801929801829391784899127484185978014777575027876312689174724028572172094444990759303503856556284983122217133404269039889565706305319116780051571865253897270543686084777916830245888441917140112360351210475003501172377145920633012927561504809262552780468453947179112092780127600896192998374801738784136168169024591428963207239126042055713882972804259088332530029304612328375916025723271781291042464807508147917164076646092269843130427311932473489967835227125987345057291665387406884912810668755878931126302721042979699213852134865279021591983422966756319572415774139470215010153046723627494404919667223068859838116079717665371906314624505642058849782891557628405716415442843838082605841231325486603780419695689342946344660018511728951045307731215354052284833727328456316126222544494351589149222571912719339442781744731627147736886436490272043650752080456173273153078044357632250686405535819820224434990093967833200385713107963565347592958410945451931580358070489412676151949273744663772473190044033590864053564145659432482758344023612863920040670783873310037159642303406810052556452030524149767734980592628009060364726623112752529152587698528903172244152091460860972939480376191078309486437255172877375298729721005932136627350363553130099162881015979092668788833639350735798078232210340548111760125155437806876899789067584047178273601977891443610844848424390543188417849648703881822411871093806605057715412398261944999583545783330705890059079336974686581846337741501159988209305887417981459958184324175712720665089978414850706361084511285788428451671725335616945613129615571964024345825304897531713699531101670789228863991067715466358420910186704667914227329780498771880360091264702067841275400602881175386074279295435972583847298129011767901201900346614904363325559825503713692966194816705220008518992910720409110925016399373771645565973329933413911906680672599852610575702380366258715115712576793447347745004243656954408187170755226472631701863258765614516673122064203700135536705118312568972446464193876354010353406507395217363718808664656698458493978908810820944346584431870739388762606701285456415192437564670453895862158007750660534237603536538292560011483290095960277683318801583961194337392948563523953022855925132134922140713289325342475207930288619419542802178410755844072582961560926401987678171043668741839267665048693736123187109508684631758995764968519133264103325270771046843418856380776972968430243474992303103470239721488174002766811979093576265229339207472555725217877686416621098783263330592022998118062530397800600437014416979136879514308615074244375390211429281245864977582478026534174914796369455480286738433635118318668114140316677505607980711261613391043971507689652145333902778020862342394976788176662409057447822909922088232032183262111587829807388710444384963567450657142354259018138440693907721149931130333905018054912576663420516110585931447867567695308795840451132291040457801917715004995095822184840579520813786305230724775552545381792923079421330736070506626682211070705209611377861136859164589988698504532170890221040970422752025036791041493119181419475885912177367558729600648171344079809145718811816930604911415916444111650028558821824037296657274517856550257460980967529744576152530479097478368926299467319884748746101076812292708929498038953550037759375068725353495974360811090420036859125207676767792414488131723768015860578590817883294879162589299400579250644348482887111669895472485321874248379162217876976076874064532278808984201859880161938591039558333194011060345970046739812849552756936641720298324235062287902250594892175671153676553929887671029452891129949690936440951640849574594318382360765014774197045963925712368046531908057500807372458431549850502802104310357543195837530834807297478157556285219916846730437276214232951664507435149220809161850188233248837097069383079282134507482389275243237583335754408224148837391679950022989174921722023231519318153223337301253355120149841043313585537564983063585573996253540732397990944612452016146741288239699014504801135040598133212244220155530108146337738660281392743210194017423176101024453295329115607467495591745940493123259873735574034641768869884490356959037144270200491805749999404940552950609439632518327390365970155351747269659586397340768508295648712948745616623377520382114261596296920212369268162625870117531397785925972240488017944851518158697243832336460580146185104382712344867625065438360971389088797033409281543182181625115064217097199779324082772554831928520936798859272075752195663694305965613790566667240882807296776770304021285196671174094078956579430174156110622396075963419078283676131596627622666306315430022703587008728920825256776835524022650366903110372862892690659554975487344173291161144435059389430881094628318888013948372376726063429117601494342132883952785987982799133178777901277934823638471305959086336869952870086974776163437214114376072895442252897118542834799779998683703490214188718547916331296624753117561721015157893457900818512634820416778916956787463043266383715367190382588849850136028126036678129098151979061092683427559179541930431776674479031925204693002193718519878828450582144969384105445622955005944542808351830161814760830465582514971806214482580623430105689940757559486760535841740076039878292001684497961216913328912406312256888570083766909423994520586800518755216286789291953214768950751880171587016772797790710671164337296740274603128533458812450105672901782560389735779055743861853146130804230993276879081156780771755138202455774877543775539263645759791518754671751742096552571143632251276131643686097435089752274598387956566142044784862898184360569234753397744864571117615412840209158492727717733667929509651021779801527322814654717598212706306250220605118941987274856044157335623993151333493279797331723918812822167965102351512390266635069960701463638652066086580118346265186998998378928639711012907580858281631134720098589859576150004416777622557770253123408524461408300182104479879372408976871495180227292352524375946605176773629536043163787085412930827484167387870251724408424279784033763789858253529344858237542759251015821696712012004083694528238494888368274662020701944845649937258583667887210172368044820086038244441891078756438853080108132837927214210647860920074396762583059798049833897099106567959456638525970697657621222832706369938579288875565746340487950193809830649974124336615561123414490418959885122286017477352935058630924820063660964335658803945466738942186019698724939091193775259591943789131166009928135261934641012033358722994162299018004133204931553713597828852130629592644380533353711042511590798573439550506958350464844913229298516649905242270321129319971325662394107528336966447018360083272950018015327774778716293146669066987064818967207749439889641466402746971883967525797946393630432912583627421099935296988276787419295277321379251861039410374081799041530994453108596408270432162272574744542742682285313921613025294003228335104057221758894244632597646500540044289197809875738783851826081174573604906851044539588721533591003156747615238745412286546325125328894359042586702506496610465856307926561153813800590787438019209943977546622236817962949385421104120765898066806785282786018819253387368270850650573016437273541007608637575039523154097352162417840266773836998526727849168902214241118373947547190754088969412561748835860242736930753045318445546449439061300705602252778306190616616126461426139541706639440680673671983264894321101927871124155930899351129051651691182384393557818385611113585637144602805367892346247438033080066356902188672704867927008694312301842313268818680736453444855365108433755724089651833620860575237899268305951390970738588416505805139261842452428388000946887732688206532551937170516844970700287414778246180752360591901239666782834846633794769272016463644933379828455506447091819100286389543145872445628178012590130118583102500280287743550085085334325985051271207552131370788104264006503422650780868109667558381591963864582446325304971151461382448358889975427576138050194332674734274965563649830976489716726756943584081466513969396762514672391878269654449044242823773327253640969734910934361392626357205710876925709058330539176108982454145855788833347838217450056134445552057260232556762726808960375696035215717760548712104177535702065836543401790421294193283265437436543820094381051518125985674410290759823474144234950218357104708468276287349943865413397582416384630208554527064501371817605101678972974633844923823115979623841865763634406927225795491720459939409223494628273005829540241195223061939314787156424785309891530514963125835541513451407992650872292758343606507622126439437328567973802673534132277738349242709532547464073037716672414745306532991857239803847570122099202247962693635429578241094022570714046323101349544510091280877481461124902630629842532784761232426660382019572692473911013551493593690354586082303662352291802025138714584049963724126117905632615686077889469056647795672591167938512944288347527791642769266003003940794376189957111092086211974305092707981814152242238241595825627413503407202341607247079004494950927399440232239959985362245919754363504219428403539734686517672207160469672184402731630341026300285628510963233150068865072684302121124036724931618788865960567865235569111796528072799365640288116719197152973282570681605031596522792577739692941372579613289588513884348915013751271982261395506475696325636329867082262453270192508657416426159882005244100132468643752234877237109833440905596660999431552730518065526315302438826945602308795630166584155478691835035380216851354256593570610490429335168924096749585950482873024781685885172262096635072734010661762004627934953713743934647976272998476524011017708321829782732756421938601754229690775174628322466318955877543979691522099922604900252058379364140553752012931170717870229964442600363670669513477074367945046676685452776500052978655181954589872628476089884208682560811642869939621482247060132843919274238500690538185914924196782659857341409620982893248112860741277143288075664577675857981188178547808959540613187452076951746215534890389472804968034651881121294184536350800004800189812456030785770931582476941276638294916454202387001782929473080607378807418876963467112019912845930961678527620323103773139009598562573029894511100228569371402011233758452331700842561042978861598568266334371165459281956836154199656325852192497353786044373397069371775323852440570056443082701860178861000100311471217390610313296404272143488284837415306961660262321674404715097365709576027814067037972824025025267646721175657959106923981520361425772957964049568923864232619461121063428643527694393451744167531203425408731532649348215864248883833391321871969849755918014482386783165086436996799581954374712670383821381012311914178245563787354721451132035311166313723209153173006941901219367041133516012553505931819675494421161277128035103731674516426926913458611928047518272461057165956499392564158945568383601667836383529979314302551589429858514713452250177250267031569844676117541586056029163562559558168936794428435114129666683724220730593836671651467508226356263637434485315006532739864103919226569021691138085103568618114821208941454824437938722300868981864713735642541345718237811427477174922773244707086269890161195561481928296227593571688616163813756039343998407375016039412728385930831288759596420166476555706392699440702890925049049064336124029271984670840165170660899645628328642040488532185880110198652251964314995744995380105862759417508285988345217494938444038057159622438448510684070581494459170709794287740882847575207970511326596756425764997134727050391071358262361020459844785289372744291972000949320276748981226023640893025306627995358956289247050437243659856252271716442903423917445023642217104290173518065643760660821889163471920475916220294474240434930026368519108987440567771819364437676414436690712973417729581845292971436381460150699634884487100434899121437909634684088590324623449739037899700878362741440993661542381587545782177623584210581801794336603947781228753360062604360051131298034882209501458360793818157461362532956498074782549352159474043086308844682709422635060548670048180696403962464147146633990371367493234273586173346627703714654030828151588754847334707232340566329812874759729505192230824805013405978051794984621052580029904864494114568420434523006924338184388469896557303023432850970231473688670332481822049804307517570887710649973861096702715914210270182331409700766937059737823426066111302101659871670283690029319140008949893967272129479427735609832156051973165927752861908744850243768191414306459568527696886335264804919841219236875692118109659517607228293843860507702023787552593449312564182719862912559613908087053533726432780780749534676038358939431350636244190365039972107723594887674498541920665396646205830450110880002314998997436103118931210375528561488950377462117573005790683877204550819332531423058608709357962667643973996845295760068871571924698523720616668110305944309721859042950278166403030623100495233674108526908701121903440267314554636245369481846323988687662515686638221015869862843083219953377154609360622652109041334940138215724809573594915410459232041202205847806897499966162940682338609229991266550593709399804367016840418040325303089887606610346454155044808483777817963341126504281853454847210982452539625650119669326892264885707272770507286061535957063036662218956976943803669684053242111881430925843714002822750296553954663253285505839579806612734120476044079191585317810490168842030335074583244703287077287106148121759242697158592097602398669321170589276388307843949007861791292687719004672014546553143497819454174756377442823735564950150783414858522201314307612854396289564917474843079108946337216430239232456702666545048068162785883303782276292610949107440708896406817545162592958466535745087511536170462126748053029719837901785735923300060301168049952889997959134537437632953159950156293243487690643399082611070775351354428700015292744729335731510204187121547072891684813291134355716204994646142118548846152211933258235853288394148818494701388711090752209158354933031603926891226200496115630294474136020886350082300345974502489581321728774385844114717809657320236500223115776880246364686048897718596060156795621667807430370421168671301559907965185436363467219010394883707483375972965724185125691015486718565358662365725882373413180428983713177959355479818493234517463770892198205159165505970650805543248155021138016549021356561464254990058558865672486955220605608234890005880492715908206634112341642670954236901959097558972412947435957543468012089633488913498617925335501293475256392592514472214566092962285011037579867729923519606184291232247828695730961282363631431948504488805207893091332332003210790923305135038049714416453408118315560073400052294427189916657382141302163389173705313010683327004321755340365486405466409479128696303066353072484537293283628570486589592818952187159295402186969136075081294544226209354583410682155756512629633991498483950776220406625641754943750885982821095415322884526600375133623494431831241587945271861893735155872250202696206108987720886075063585509190413405407036713390997601293824654276159354488685031408244484194160300205654845238068343988457409504199953835095204105602534232152141922167025272289213781678147674289945139554054784191692160142833294349602834821178704620448205367389844008309103984452672083243400799166874305648507265025437858764269959820309670886559583979483951382116552652537387340489979948149188461098838073371717091839756300993095153109256173342942008731420042001296649666083870747186895512707029049632047141758356398131725895116517800550808606447775518091502413468518764091489877253980521876940943700658882198675794005336048317664530529834158149060069700450387305264472293323642093092720212781139324272421881771806658772797449575908753088389730159981662899070403720935825100722099072151151523318223579178436644184160913943601004200104668307581159027335244739774903772575442911810265393240616611256999991217249052178334912174593784702848261259184879409051292087797100175460054997142595596026794111938927374539700269388834944831037923600676997095484437149893835012932963340088836184479589144295126365876715446713881811764007175333293438867706067268622118013810736362368220532442900484133888922063285616264287618465288981603368836316491325059499529971352366867106297184651188520155339596022015941405842265640963138622783732986547132889421518751305858536489124268014125657994864362067105408077868275655029650744190142525390842992041315835561035676326059182814492326395305744505061398171818820732796310455191904631400692577398422029958574302360542013921704831725196313672030687132903468687814932814594086706551702401214550624714845231156417923231733766026968284096240447784780789226176950814075386685060729105612522389468533477748708932728201464105224481128265290806138728839258801342261849860806859981244858262000946057645846931991553463630601671429303248626746156340039639793264286582829905239410090161563400584319147911281528582966921743803255195502349225035323128577822522917541019188002981565954611262031147484291045237118918178509593957561299748431274200474490381065766624015153832052495783530324997103137734936126879543239338532609572639195117661240045506858265907692806166455847426836170041553626517172273345877812255398955011542077898362866892636570383787990351002181159201175927804193896153098758533089229612949665775880743922820974589569292618048481353347794943424526154880852830940985968615298237171659391610112963189435898076241264204773455809922747024349006945839066047137647981995820581928088695833096752581408823954537515884737541266903506640223304666867559848677839769018715727994237202654597770805383065365233095062308874600680831097860575735205459790197524986240535894513379575606624940583548350947630890367371360364390927109103646304019911721034526262256936836108668447122956222650704800390156062714879445325490975690730987189908974092522624463676670510260916724475295217736155079212806504058016094675986070274965148405231544117384320571340711464417573201688165511341118014586250998196285878819143042628540251265207435305218531287578922806429450617427897073843066506034198493246269402861923223528475032887138287884429479428898671204950627676097009634553546630676072673765870402431465856618175520626305617132856382836212479519931883520981044702525951930710561024720607289118342861560398421430736281303343589055234713256012157056027487909335515035227393050716686383398196729330452423545546426583245027445397864300286192969559919848196704782536431873791924313507363928562045791793490489106413814128409131233041113387951792642215561589267000240828149717025583817033444858887613261894009322276302974261345940357771880949223323755740410391109270347962426410942963596114097695209858037449644096850037352929634370942365667096389814042157802089241331807828800052571908034167366899239929490148213177678838437770726839838910798959075044523667628110019174923390630738064711907252415231523638498859183990946706035876481560933288979015060675036771824073282404712649154096759391110751741461683591934014965507454800027650836305257246388341052115415134234182258010193644168755938400120555625239295507778131563605650046998736608426145957959672233557626653061825244778750655257692323922327026309187986252207031489701107111036939994052777529737497425395199691202787677451356411805073338605609400251653542809869272208146060377534526363437528940215394054944075009572723136791091282317602778323730635654417565574867988363927130933603517549869454876972177875069132663403146658149101084489017940620718196067782931878427639977433122485406891345824495340246477304652718268422278280769363628895779717740087501592771734855360640020200760034326357389628149708681932832996461799657198766242982398797169552392439787891909451881678315620074505145266455548141686094025676955460434537428086149837101631716591301091150943249407164117082649550710448139344614442918420369703052204346158174472762523342540220887268206798743910226259616100523774882416029737643882218208851041385359799789307260955806625273939521605925130701558068366463902869241518435382229764327772302486372259736761815052332972805196626913490415110610568764489532990656128467018494630042117907801530432219712097454101633908915026839909867741110628673321280456559438137786999779143887902457034566768231057363424375005774409999905892912119652150771523551198066789952762661374520164379272552153172823815150568286087293094726911365425723370773925028904368923376808301775460013173651995316186180224899621358335204231940485346449764169641334944866748449759938034807364055185743619277009742125354643323678634903453245678452435691598656079632532468678590437736007518739980440423828802128753837119347007377799776652915892795532774047628843257825813368406057478076840199878910744712999429442173267690247559900329801398061793737883006441507990648630481616946793191915618685735207772657094116476178015047408885746163766682631021493063493297089305581912892335129790148969124778033072834443438551254893834426752679108471773409768072694552697642985631039993074264530416225888186087852497544417696063000296773956716700113164263957117970597849505548228962741595387284099873966628618572689209422164784262347545467401377282547482477139822275111132145565458505079898649118747758475926279712609837098461500428329545181071772467458642525137609823872212203930342140007137341989555489025290368026515318846758503889190699575172991290207338801068922021578167218830278115422607524072984792756439710060851424713218693412392203253717738960252067022098733797247132609794403888965231800628589687453027348220773220226666124437368889594555210562510605448397524805026651548564611471591887603900447199802334453415414039401494220095233024554335429768085312269715355434582620630959096229087503503627732810885478594033266627095698318248685518659431040415985779102015037575721856129262645855662890212515022339174178644807126795650583947960040269576867393222505216060841907963868277482193654400443845985301953270351478047077496714578453778279238092070353416585957911422920986934469270943552527954377837444559039886323192991920768649682080359732897043386170593925296209242443737545785876702754484656896169071625226273123501458319202401915113594069689130052304928375018694954340256266390392947384621679078806845224073375693919267255440396512796224748189017588903799620115067496226486657932056693759314212203660724138324937990758499526237862076291888665017107118338961637900848003252185622185218812929282795646839202960030109526920519860963708362681654727444336351779835995516340507098097015858642289368160387873462549163160572769762053471058436360422688623225023280029061913207623856376961611805850886825402025791679685895992167843734802780909826530462738823893747045816057025623705577304090721798935044360740955865754861199766017247183800536897975106722596389694010295392535299458417337803087539681988702989114413869482064488191484189801291205089042789352615469566075423208795850604857335400201366467444531992761538359654026518900217937065008936413046552520168494357697210415857401769215521419496570706627274528200372308041214339698943562786741010741419369526652393991275528480016172036701301185620584298718236786561209561427031168614618123474516873919264123559426977709816829107451001208010129981386516562784936203048336729422841314071733241724229295307406614544505911506706625261474881121259218904781885777469854073402837519588381480198598754656256950814934493125064668827831167421014875819089554845972921383506251965192784741663604540766367552596291998223131170282688841197747652916394728643993654998946751065219963987216974211805949568748575901827304051026336704798741860839082330127513021351916440276757100945697713178373210604604719187754295371557074275212351549326276527663621604460708178528517205629212477738566396323866128581933969736135147798541594769722690572129145021898798909368154829569135734658892230363987637529520268344105569393163825934427423426984349087272894587482975028108833148138766698504351646868841047591205668598336083361970435267764355846548150731903184109554141925950290859344528554295530108355254964376102311874068574689512000948779544244046137933345093976940860941482279602265814629590981049379554725311698783884747208323551431430473570099504907654123594840695376978664094428842092038563648655878835412751261276355666968596780265740838185031864754108465012088236810541364379616230531452526237112893878475626216927613408385013567370629222465152321454224965738497062342649683179938632283952193757114081498030505387962383519289250369039340963091356123054906989603338865367553131196140276711515718534959054220095554988655875119022160969613576102988408995071521545032897477811378339587864522302073975529811468260294822005378048709704352525312786300583348510840017411750043472750724418769299358596404639004850585111290384658402677567612376709248053301488801435278821094196298122544978876712509063629968180496313091841704534173368096410000511635978904536639654762545974268913538188849279836626350147233437339096398833712412942459260828918124137187736150103881222674659881719258717777487371501808477599147528311785080581367781659787713055029021344370523755412140267072987733445677030973082552918950325787657022733579904309305001441554196257194988883747618712789383309778875979112872818907043193386961726804215643144996767747502315940526246681354462684848230075928257876729043698670546436099328055423501286409179591453432973463981986580227149652167593967012989652224863421631180821061927833153798739269261298108755193752688467179099765481434676930324831760974099726767315830093723144569078290858478268582409085583464153228768453988617126143175140537838611411099326211758478922807959382681262999849835218652576589125719555082510095710211205592120345053714366014874688088321122751957342548088825783827719848189880865572203056647075562360832620222211762906327229931255422415259086854621392852155042240831248512732750223247248374067943722808602293731553165868880431837668242450149254842984124050372400294005260205855471817972306578416058703832435277399274115085568289515176495525886316162451700581448795948406751297736988320347677481725929039664656471824661751915769576325901671335057176128960236634272101660331399103768946391730458352236999622429391753551684375083245388862756456410352521692551371066224756973126692663118359255847962227782497350683565825685469003752111078047864034935206497099936057358751230190837263457705412210548108609301671846928376295526696451658938849146419530391066641157346869470728532549349226465670159890836835499539475803867541438429449383073813600214014019564003201623934557307261390485823001850727246091877373704684821092558539225790831583002936001376588173757233552607183511283312161183079654189839854788162258910384140578759382772567234887962345601465904238290878566469927718025819276212918393237651931776035603957476859393806278549435081626312420960835253699018878094605270684725803036482472405581436674945444339971806531049834490682195886305604831556345564196868580672596460828279987972962851486206693509495207334578720621859284707299615429241028346357210501933238990617368669322656903920709502765466465099785150121669276717923502080922168737078031648367423473032142963984035857591765112394417804693895672623609749666774875404428385706642248523472844310444631600438605235463702665629019358670622243593033731652944926762305302667427118320633458773566113529123359930709292813651896066387024893263637768569664653621919102564634224313846860882401151064378304555638897819155912198678030862282666824807000490073741835568238822998101969997382341786721896523982696053296155506484277920575657953957061597617142309233817959189235581104391421704519169897121178005859016044578109139740497722382728915663234860814997819022483199908413649311997385487255795651289691428916877922610596472173133061597982929190776763116382099629126353543102428936578083942724926477202976730020136700831712543088223033094820774059357035431215726292297641532218395299173346957715276474704150904947279712637251553930984877093159813995928114286878355329358838014448298580264755667021441937802142635281395018345413455292482162421845164607257899790825585968086338775029694900239614371304068568718927211812249616210346805829201039619411954504208712783323425105022349713603712133912560218429354931749311781675326045960517644316263051784638600140227026980863368358780804777787360501215302465864878474566359357476634034134277941112932514789060613094146094482528689450203469076384878721720561056500551384956342884040776627558925160655831714172582575657536908143587051324336542057407391930169843866149519621061361080727197251555011189627596546691128193281849545295333388743701071499559307849842198864577801293483664650997069744832916922903525932931010840712161092785594334505209609223568151551699025352371243742631898100002301205883712497877868585302441768110981337725141083992908679060620750038409609999778805293637338475726089800336171813464308212309792759306162676567603315214721270695918789188124160019309271543347796941956927540516307838213213430724867453312424470393390676533683686864548949680453869815215072297568573225985311120011180467036987982575141348224456935889815780120515183695529829789372269531407374174387162659377074305653232562521290610454931805146493267699986177005200368598865165421984100237665189099525933253028254719023795294544142568432711338579283435713391929573146330620442077843126619154259656946816593446662474695015413300361651574812509425836602767385963518920347198039492906165215776635987566994242592913934840774178190306272626257251731097806053503122786570977634552889511961429683147723164567322710080913481520855142126532377661994913667023929798088721994127035405206471541775143094657789636803009327625916092923007985976557140876355477605297687740839220258863605131643003521532795506567253481367228875342398572864258387564812097778824335887634058048680651965659421172625605407789921096655769607298355478437301929954612147109608123263623370153191856195260089369578393247477153523978165128522555242912390931063564591369739167502168755191467164048120952449376647849855393188485151420490590250606513064322513821839415517682396621143293697261402089652241428804683149711058534865093202883330934090829041112762326272273404470567935240254280309140425626786153545419676487221080328009971329863338280740390682382594706437486855800782457871640560089730497020069488506056257476281456129408363752655657838425648127837806681485814518616783559641937428111565796225628643607096084748088938296057506263677830911281049723161743444770373197154538394466149094600532575024884611178466456187221842265996376450565566890602583932355266662936648454190387084997621758325890141195979628118819517718768928807238253160673146021446801609057505716477617139217235129591177543438007146684135949721022190152035979209914917473281587324826924860112421480674979149435672783105416428716157892242221635968140474734588478718595059301016276477408636685229020007624591020255793864705492431231483349989682805065853876061410259585055001407736971831496744056569254547145077673915748763500280416771749964825677938015831694618231952367674418318303802216863422835443334253369592013248120799298143313150866746345028994735425380347341718582743333930458113631679662291307608021708030235339921557956005724325573511996016401040601512898041916489038555300887422141203477443859497597170535730032170222850358560526291929803314610023957890123050824006457928109215571264224624387907541485143421489439456604762213836669206461582137721957100051871684907628417740290320974967355323440702136791744323005390158963216069847291062528420327111499148382678620080455313646559625589703683116122081906258985304369476942666653758543795986710058571448010942810165286264633125704835348719106661014325407948528402737920622049135508878158284016672074831655501169512221175196719939037880698961386622203832730780880371018945053653273973837962094352048381077189640203297476229414320097508146192241638690943935375494729247436891562714593990328025543184590991809699778193663569704051880553819394712714854068555155701078933086725727930938879013210544924866133918428874566168883163090732110034985113498991232839288358346470676531419224806080219566989815748462454153204080647599706554330864356977963222861638820707683706044277663068975974496057528281219440815037367585208693242466271251161754144935971412118079991044148990413020395192882929326073801701039251727425477351868544370168652111155344991575020336127828795546008298912609659767057778513831500890399099099130976997348409460303251658357071894345667710231735048086455237807592913703442587630051813404058373714151777202939397978474581524223321412828990014253852577372715556779988308702764051951855792539909787838728673509926223038574263998411433243652249963994609950388406526436757623666885898490595733106179679045462900979965163590051399139739386307034077935240625245138503186560830843606344620089134710625376568593774330066465749429102286631706061154645718769391009730202954899565834447562473769988401976939374486027891430477108858699086989608892257502873809437746797800574849239641068779267542017949392640772796145142157637982557352100782463107042866011709886848049057470225670776231077701509304479916920227469610095843660417318595889294987613066375837149096168569497784318651031934047608973592380758033465712506679797548078654295836320012573268086629389164823553664612622399506505743002319072202652447397316690913319373952520074338155611932134021793430501632481303875371600257716121415603375437226048283917519882191255981179981123440772754510266500408954457385808550694963954959463891639995980887462339183269633955239788822422375614416843313681260435417999141238703936575868366362927037741233532595491704020170818172645559852990897724506133016152323235698630156613062806924750066915788859167085535367408896906288997916138522842258956932089668548325653335178630312060160872863529791500874812073811187739254754007061805059477435534239155899920479056144683071539255296476313672681535852288255215984068540160617032546160239293700415882510173230771435840040228306655099195605891409614116072014174735604718508252098693336611378744654843153625229372204362381195115024651734256588295492860280586838543924371927303245800685602211188217190411185138717942812947235834255457393794600294977946459231393061636405836372901928480434697043936716625545501369649089169495815288009333805412222480700899365149619766746279233726478508991597242233571696245520802924937375848515778542163342006393563229559077926724974887301383670247170683836143523153506204004245346856412037502285152651924013102290169723831855252726711007388743061696361075233818900327288438620280207370591530582836768372740160539734148081836121890414364297824226307853394866439785429300181677248881513422681608006677139502981910869481234309249639161132962996153372889600299449129549992271252139960126125289419968655099885977566242204744466822120117872545452432184651043644563693504849841570387103100284662770913624453909118727051623490591647896864857629840154540155650939988692342376416839451064670958970144636842041892777322324472945309059819899097672129138422375857125281688691692698917504015498774291605461372236525885644102499635700583105492628241735203221586452025115889627312572029823630571487480908339508706269457350969495692342135575959045655182592254520624709427174487814413798762816642534406059575785562748634253969356498497473815971330256259428339027583234453355823103152525226018772032200027470124147283472581163011964729325314148301495716343528381413903043318579407849413369917351132536381311415452453898011886433490074782909268391682614312556406948186787705482928046782653371267097526380551737289453475911574254524245654810530383951896716378102418208582367912910752866490066650106698449836693488392806652258098044502762087012085075321347331603322972507780846115992426066496599403581088926628992933293450662836664036309082909310829011304939737838835584124864513000099640963321759791020399193409878147080615857221723395914817668837415865816491344710083777281640411200161989111267326742028965638212824784808652121598560588744176612716179999079612686111556650589197339079742489699556585348060993867345774509762036572601944253940826502994004411478859885216456285377527129217510697839992599506319984322858753498800843042984881292905565145969637029768549355803375149534914401729099825186074638819608354346887568975140316714999460785178192955834603447919372770873745333364609870546218249386240014588463926816783286736986170117663541245256814456345314307045615187584134538867713471957583065995718912313334421839927995730888931926701333995571517725783210399648438640850328812985112496368865213920634623007754596775196965792968264602526498709978761812204631342985860889004996425009955033016132189521526693004055711972858240571747589580655014655978397253156009252202392729589516067468357144352029414841634217937130386117227845481439223762777978553143592314330817837372735851423775573397847325766485821445072470637142591833363072458590962490300049176301398230193699191675962760575091243837074286176113117347352725930766971081700232714792164609753428938510904811591091780464725930715220037872456673544838730789639690507590689237870386927018973276534497691663519733058927122586382434457647908702590586031971257763105292551484407404330288696116550008720108457047687465536721968152574508500460871332681288597472951440744631022876408098339743990951329268588865368756412006817617360474725361692252605160428818082432991411430742568601584786816427071658385654259912434980554926248461673120221289087607087401354102935703340039873201786093186483783533795064195704974872002354003192117808779674852918083535105216186229546624646586923512469579343914468908626785369301166448880981610067502823501554003938631699577458210651024732152737599104598211310917433109333537606843806419313171293452334409573486597116794928214987852457631747874724122145080260946338868586067919306686335177063889441188238463148827798099200745579945973605550017875068304961008022793150731270089809637518257084414735118924311074946531660359589641705747712288373865976054665828359597019803357213891135468067281470005341963020359224582295348143831106730010468355557607829027386888289328903298236922507853932665037719262664059119869933287023181120949196418924820207031127534291922748585321794082806834405864071068505881335169737342838972378629361529680207839034976778693297799937649253865215909774205640088946650637219277125151992269016109518172792403526383760249869797541031181718831115656984376429006589600421972504911323836942535208912580385817948617797020368588914004205336382678212009319727353861090871695764050340782804602439401889125734328085466901201882834019417397767907489857746904446289966289031395597856111403095578189550045198386384009014559670503129353254271825051034906580915248535447341726910164687045094264931737224437713379968129871204450208521521667453056224350104785189347071276215591335896507985586753490928915383535707492975606735747898753705898642457067276659831838019072014314374270537952426933590326597405650042945033853072780969167039710686595528334256521168625461571133137034625574854170885595505762771434169051872299254262045123111532610027171021417551215825872710284205256373157920294899483674683843303331562724154207704576030039420116087039776840938561586823547657963119778917590285963444515079841608554799892110829089739945757337437451916836397835335388526078380337752377829787685538061091791013284187502397185861368105539794721515007968672082416954357606768640149322721839887711377610198024148837095302028184481830703297902741135664977882403862884591657598895120495637908907208321648706174738784438132897345480843755669791178378266366404248827862189147479140289106386192167860423427033566920687452467927264714861059597535824486938860904824350850859854553266605222949231079190797127122094152371161946442527451860594999107766804489155312817338268696757278863762941301620151502267507777590072433016450770484161758950244827907938387193368487596926149699321472384754012548550028231819733516127304681944738680259294743900710259303276577996746405517622485587162025388137559401870502122147071610062174620863939166614366648565094425880397062003192858678707501807649684731413327172702474075525753326072055499737294614306880702023253510223286972600539149985176813242566572244146422877523632409534239377239742320020824640731967604976256194634351608337843138779629043813296860920836333994182535106083399573273245519605383561304178434695294741838231572665305817300632088582730592682502129776200835803737324546921679793988610991805556538690586751635559267861693284134277082061715708401804996134709839260774421136844560268722043591805576948273106761923088563553774415250179826426138074626795371633427891677396134691463144434305796402207862913386336944143019773541649775397887399487288371078947840677988094181709742702552586480802166906509108425857248299741031400071426415486706571855669184957905563962942995512742550487759847422896699665665973249077425489091987298875556861353886962689465152297370393360288341925901629910253109513244335978886282898218527728726176450457992394982235471161453132168369658961241471062290390913553324582024909716054286574507127958970990063331149206277789914997366472970189525850676032987528290504139439185859575028766012764646410556619967624583714293975330950267680105179576453589259733909395441254897360448435910277437620896811759198839165339914395622188050008782325167467443637279219763777106041933648658595986288028522665202647676326952405849553589828534756359061068595222774815370169367245739626708487588321753642653762040893562629564745095967144741104791537872962261405304133824569708919398996565235950304424027370194846593233158082873665199669767765975275276287283703048959380738731519541799851073658789393020807123419639027056942546843174829921385608928246577958326236246079805264569136856778556560967905992382785490498482591164458068071080755688589636772607604443913147572179884973387899519283274300615638725416708119910646945705725836971195192631374962809341014190662968505519075207447818746617577961074952409598903921138266325878792252275997552144131899597798556102829409391911124832863442206513574962989987105179382000470769333873056999485849919056345686425322162346232591494982552252134865922604970855543918266530082108548322216793063641801971238175840030475565365366994609342139395880576984391123893706533329775020183008448963534708250780658334156637440923619123156497497032783264039494973958563850193732862124194851667183736311744215726156462724144287997964931914656017003404650366153091684446848972398900134809645716556354314961520344593746952967230343109945952237458618148003450484212565715398813582388703939218626535307020442461210310892941612219352014784053919358035367113273930962200348226030401200591930665834944042084386988356469869896352286980874077069224186158355823324650835824004594862909218579984564807961989140053375882950175892697384972221772636621245158246127430383520560017649303063903427756966635072634431581440729588270816015232607663804514938618986803660633421416226973261056335263810278405774479549640944289820852075283128839292642751285463561403610924186771257144325253945356848508715419456603051598104705571467488744347959427080016488427641852360776402018971462490880068039953506901673694572475652327857452190286416986036618140701070628898705512497500366540936514974238714761735722208397974828551895876999829377033350176587347952655053669785541299638676765347262575071124129046722817732475020936710695824798408950655890899873846734278827912231551353904628692994160924935400099663187463489951821810357506150855452572256278745213302056870121136453862808207726449313107054026728091978225006379640581165371347495758902891719545024220617531678891207292756329455742171430267540428921762927215233672378082801920291635011560405038113935754713560474656981973829290993463348453807320419836561697558889303605712763367330263929364379426520720148878317016952827841416997954152910940487616148695098243111442227874783394354594682397136576465864967134230015956154123177428413673621307103462132850666253084758133745438009307786963822420755195168028965874313071145605605180808868543792048648257971760075592903231075401463226587596198320419323014858452518350692487865022264168486376221924839152154377551908240566702971334635598007970842036803292972808870264139313784212809632021071923987973286600423323633985703687487579535556879548247456183111622977610812719824811982166444354013914482326893869437515996764045356665706446407177763541482439653515020729021841294499475699390249005070939845256633962138291571772384088795152182214108675597109712263806604332586783906369649703238092188929738464142433428050587709553558381904556439583845518742415449382173215340117913864374542284269325794228638340674311420037321702723850290974867470800037436183526111901598590122524067744707240811290181892912595948700403958952063859061271010143322968373725263692072084871415797699854920923880684566455041448986128854407317242412859158258206388509058553808620586874569702975785504814873607227467401846851598261275304472843219854751101970502958715325543991172186553136726430620493244594560788622647456273937862140019491205069570423963970967710067757485829784120111225534613644300588151306138337483878068861501509699086678824077600532126922672167177728896732185717543774796649202094978990897078849853196385786286598433844067961590959078211872090840254960164794871295770355827644571385889212216368661406857850870778049438989890904075335851762828904604121087896347058705232994695816832901178451647591033423947058067032033592822233641639992772654624056536351038911393708727886910279042513448608588159659600385282498258043529108728777541071132766728552723972576324878255198127239292774244113150258150964794793980882357778720441040006466139327649468136944814500719767388430252725657243309045743636035056666755983587067829852322926035124848535188515218427716394503895019265447023299905904926131510688327800965865538919825443267108185676414002190803589588931206838842838112625906585701732301588023177491029250779927738945941712078940870765260987704636101968324604623559366885230992194019199193151847386177975431754943420032335186043406560857246568247664296642003334377045401353129065619212799392412402937889927869699502071301299720807359981041026935867037038009710654578487897493936852806520668775675327308632715773238238702142288495167161594540964075700760094703114985254278231039433080673209158588080031476614326105194039541836756402548274883554729150438102027325378713928574065843952202901235968782311725344168530866684506754610093286482554488669998546349057407660841275583718930935945693072841273258611167829819930908519194046905015879135931244552181071628455056273573218612891485271397219149053193492210319310829358923811238973694406408044836251751872934881481371248510901832661032259088684767849928262256906974823949344770771311324874766978891835470230280669584054635376554023349039015578104685658557924878835304670374006146458890097378205564579683415704000821413035994246331749736588782646076819352725347446633796400661742161360863870826402104283141415469195072819564019185582428608159718375677338529048873565966895848003272224237348969383341427918680619888158009959282990122025322720565175670097201620736652024983768171956757647660799168101154508428143332451571345973928453807701408029543429689450857118982673849370442362657802553563414012938267941135193139276322255870636526531839024514187333797327834405476372053423754825495912487459198001771999149326734182787740409674360087036410532394376369585116933518161530405677979431178448353062139232606579681973817011374726344211632411680369334399368629460688103303110412826454462156768822946148149217995760769495952378251714114708295556895848071034047460706007478023060402870209466586565888427091513609727648483004311438485893914900256557416138121568809359684646434142013813820115516264277281817757546676548039780428927392304224892648756732013999166401528608955149774299807056601792922577317366396490265453459419928827479277940130097823504693299990729330600424341305846086248434678994351162156018666467955095404980286511846872707510673815223315598775531541258461502900046199837578790302241970614797568016559198179746196113951909084504372458860851359890392937227191303641371880948982469399612557067804644740532978588180728258520051243247635179115496975674263177909971476263148983723408555569436727213532454507411278737556953980229634541560776176044208033363942354563582525445361540433661115465182771096527897795244880329986828821323752204276532757857874814858603644528764256108960708471029950449856222056630397393276144330577027483816564322421857278001717927828047602186529854077608963819272901897368632004394336517955371671574551942622343734128925279837201839971360398549206027076370243579094244893679887968798346893800677948418180926494058389498034855296348232627268663606018838147663512266283761752984513277056602864582207131205026327289083466874865436712358114030680717191930929798490369799164186305045083004102602297416174059572085392292548389774685859409535655073784454730208569245957529411699443637310059363019985996325892431880269052297458719874226717449131471864250978552198189431439811967368122366561751378301320291068310615406081155449384579210665504303929919399582118168112264668115265224315344367000307322434209126525840708678026855720347839437623103476715469969979776602531963260832217625163117838648598491460964748228991101690707075490676282242561088935610641416148254021749749168898972817721415652734912207934626900884353546057784534880585153173551655832774433002783574466110121368985144955538752992946614494256332783304925613285956192892283819899565473077946814847290079237980552698806018576504439799686954224545611566212666235340191781966081820500652088432666601686519369231904399415538212573232406140277844662375249647546074088779930861763834345238748102737671487733136167739268786497793558191877765525919129465881870265452045756122269212228561869388243787531954926603238174806862395359124571326268935037245289030484519781516138609915946468370458975907079622943852318490636577784105029012387872788366311051303658132031935323574180091561118584665180425029484688735592818628927907397996748483886013936086485560255494708487748480708344798220277008575042856908294404178166587032267985344443798501795311454123821319819517562662712404804294269336681501418975659883405174026013182281800226888211262635138040683476576815018290257367323756946185009877866375519119036161535293700460693036210155056589642477976415241437817639211708486695498017990400090301428269508243774204214676013114183351879745800844560377021380335957701272185820398648383870977847843503711217372193320754705042732595345170497397369592450828604949505218641150223980712089470744060292594071224278110742012559860286476206748437421618245401569466696637600759067565847291502567034325077793991593294242300944811305068485013060923688942458451161867782594363405252062886380587241266625976534234477462765472117259502494162371332265741417898570302741255171453400761807113712951578176533162897418596646964454504371036958782701754032023145002234927863741902024442153191189635846848693114185325018179574265936605954856115179576427809933925931847516779262899155968025126542113877486567387443303814954174360095731615738069529110714926337031594906385846015844570302213121414716601716917927670350583892772105357354311589633500653405947925655006318166193773334182020820941145258705454365128673692958662339377152601150023983649203716989637450121867422582733867608791633411555814123587475490344233293439950148554283620202464494158137844590689455169506017668484831243613531065172731768983056527953392734851144438175075490086308201992689386265711993661140733863578726534076074479947812594642774173608717775834050527381811523058610263811263417756851479709391792699336256796090267350265968554078641164606238395459233270732455941739743099121468018581298549424757394492865726192964999710875997725627275682249336801904157940391711559089233971735681693396814342986202705628449403063503612069230136165618530859038924986343500432099567804302910825781518693672498849085799586409720304231483576306135312648643029850346879646782704931923244592786631354195431986959918044904053017519130042176390173491846828947278012713374223194201315568742673394405587267397515356234605043855450063483912947009319233914148893291743580844529237454728180987235589244841062032220770820404265812721473003428727764358042354531377568373110841966931098132069602673455743364907417199901781698768863937100457959184632215435850404233062290932610917633236190314065853315451634210400134181313723968819348563913255307969483881858570742472563158082639912114670038521631666130623064557212986356962528464381659515648169286028579629823240166865309702762543647689461380477223260510767654656474160218505793726564073906939857462754854462424540747287911667858439768777856183303912292391754111750232528637415636769326721274770639811839053862647769622233710391653112894981276359313616661563815686224735731498912508992845673215895937300794977294049339616965819043475640262522199949351963212933528366390965649140601833003334920527834813817853862922028312065806288744823558999834489802114965277191263163149174170110290868360240516173698277288630090438624422817350768248120946389176509109932116742946532972097591432832275462395795942709820328885899474075323413667879520556211444674210890826487396943786785370073924755679698604205354822110126761195812576198481958394170041816099191187590335933619496468121614055796841214405480478994823621765389338472900368968379648953331567652060194568149300826332444441707728713519661815911238476517554155000814797239540651026720721674529721726238838203734804121228455567805321027462480793445538703831077612531074273061432422752375231086173445228812336062617034951963679795135366651390888855773764429558977647180436537912856584020446956104782551850076142591816511361681155085489018766109584426099823884833927552617299510570422199308247484934897765735767349283948389716954154150607026492617875668819908799575312309117968297458109588383085656662700817378240163869390204536407559191779403624374152597542232430366960968444350627711398442279540803145518627545840937888880400787854656825271132446843405795642882079614202927636166311851872287397389824445499439391588648819549191501474953781749933843263027559431229880155756469368851630263831778439355347465815624025121633548406963110835648103977141611692999698993329670116807817149825294791463862207384182922291324195432569341456019302270977663562009032913154490699992147697262634325093627677083295227623307815886356652710613987673591101465342721879674674317631703389507152669740942415098303241752640880506996272865781639676709934321058835848552659663747747439694906379191263975808328976807148042655759064560045748876396555770265254561137856443730312903120385452615361854600005670042742553579054685308683524066245341532450546682205168000151917574076535008204779461450309452347817773263558282472596966488913968387685872528966538770430769418269807466667003559913725612750126032405366776510253326287685378705146842364360645583966473130794094107560852599400327842637720440154575858526704070766385357795766524607933570542828968353260472286566396719786257576902186223747673645501305769456837421068413190682590931656954727548336873769265339908257734632389529624377973601132390976411780925044210545797643747894673551391865197988065012823906627271101030829270496513520820766886225079642541529915123621028992801617664849672985423483167148660609028081501090611752178064303276700334362385705304072752973904334972599761360696004186250845306764420151888392050302043040369702858089974991815494538417540057053984440540158524713784261325469671136804932319724006585189444406775922827961517558099293135086734388173469910973037509968440823774885554497263172542333177684356134226125145388257202289913694349067944800264432304346082253139933920556253781867874404260506560072133915122993171324907634110357952711689614445427520089537695041629461076966762628944671379227961887893982346328392898989698991132719073970970010409606479650150884432988911243331492181147995746545987188208656453163310035997520395924523832778743858028604371443639730319226114361081502657777574540381588231515261662988428786461027070389745579298390947098047296309445901987665674155095431699320296826248796056245422268807248393717908251904072503520217988322410451049967194197903781430480365520403647055518671001645730533430568821387148026439032530359014376828260607055591718285026253704279912889336893319719462418001430329386504192669653898444628014872416950882747386423943383175374287194986932842214388699682698174241107992592666247101200175904424223564465898261095551621161227137471146669773625384889040096166720298321150368592244460947974245432608789673428407876416056637042602523529886568753504415409566809086237759716555012988180815915925022685934871332225656957623953125260683716264359813500776221462278252591263237392228189427495324210538419970360696081536471903824489968866969042048466449995170415830870208739580446052597131006130421996027785591963035673546203054719278048560280915661623836415646129762004673358242737502707372253726742720873577193563304955051131061157247955516554278549552462276047896427322820253694026619884745127941303751165697881445074957608905881323822427361894286056992157981446470233281993821625865592747754112958616123300453462354153548422301604031792368956415050681878213875493955173813940873261628730255252199469772569603634527171031599128002699423478155759789949100521347953823706108056341048790305588695384313683535318508446283382995544000158868571185726921519515732712210485034673345184239960152574847726725647391174433638068513828575141172145623482846907957120561558286954672526087836311741397403571783135137095015878301449760941803855404064946743844762584343261184543284716406603349336110360914179515621062147720371450863570182250508418858884516620791950394103756368077575024296288105411294391640416285834537209281004167066037013969123085630176701182790840851934243059068597597651249272947129788491854334754334564031422489800093633662703312144254442989600915665556082942742990725267618957695553900307618912676881533933670969399202383265318861442307960947763873653913823884958275780704204309042436734515195867813899602061906454534561740069224593991921284893971893552603280393197398619413880202000637842671681554377283150726787089421431899781435305080304794451888513188085730571428873167450416743224421604880619642177566155625380997432978415510071334158505790818110207135638866433760558289125203239034325913642806557205109311913481819135688638170292543682821545253179343318388393067602831212434219737917217167667524740541443530850221586951714378903854755536520030175796268624592083488834319979851502476501327707213654674300856861212436946662580209150192106692069691191626506596492167060451594109766306390157322990645011153124286969441125003573379017220654794884417492437518558472096476074886824594683519915029505105684096515816943224645131801809290165931857920792585905417279783620912326787931649434514977979650657389663446187884896016190433232628903058865814498939122089907927856950392843720241695469786002387203169698635800152194504294897900542769333424031985834438277665645934693449141910033341713082535243267757864453989198067604475826202087992161629969843512207650993846206530849366985740078036595617352990472406369104003227209873861415664071309265323195096476495838917704364628244645881940030418838817561455161767786351495414175483120830919453513280360058819425592752543099484975190964903838738630407624140814157041472561638211978796248779479871186191638977279701203364301178856497205451818382681276738765623707168439877448007700405806175642742540137326622663270021278201731950181443679852760294762997323117279654366782499954751594101917821353700032588097102819193810120405846628383844236918858815208128748239960743405455095532249412385275025633282189432941707873339508525490904413262102775751284980163922577736120328274204993741940248004444509060340441226388163169063862188451678364802655670432126419279557721324154727325682993929757496912517594299405032853201382780945445946868280212403012331463268228606390255205658155156931827858120943767205302106070511171500300619405056218075277795609508914572733005758009738143214011144585626646376296605607239813501451404608975888348492214014584241402419516087146368343021306050614276889971494115864350529393462104341079094317022036304698915220545114815561239970988946356274291598619266083912068921296810686375177955930267221864048885568974381970100604036416893730544639963346634318030265524383975604601146404834811780842032618529937272948214108779477834578596028578256997915161865156980290563611934682081087771315024393311020966523065321272429388897869980308347098376902970368014086195677491821528906682299089085799950821800679953680406151622914508133939916222167383048633750727800867539519188513253846009534010231857243377951682633371950062332650946531403770515945437838887826787775825890526188302390088810972934830306178114673640866705790506164431119925197063447439399556532981573213221386227867591919150103112147135251119873513831745818125633724307754598399533206372683060946242746982299385746338984586429651833465589433203076008823386277825969434026446563197917028683621438388483667013962719806476332419917288371365584606825707751173446483297621559459494097440176836245404121869578818763584217586653608270514640329907109332138478966401997021964152413984053717066172372051741799527492094971917190287133854323283611843080747195512080153813710173657220637057188816584585550448908454259655238798084355563754942185089362804670594513544572094411286190705917846647215963175628196536422754461704361553972745813673954046496884740426911988231959646357536211265425999010043709887666447969846140880461660017070504447495754239189986578429385517770968230802969747192424774847306253050711851805515522218700445591693711721722507474550465820260708201962377304267080932581260241352017922735633366120518772485062180549977661194435559972300662476372251982501381402629734804073959579950446211106093936062108597077381412009501335887364240092951032715570650987944286210302405972681297411733033964300582528520411699087096220608751128599919244775161616246564663050218664463061194365370629644322382052761686572617041186675205485027995219064311763891258374550305929167244674782796639168790210563766518521300020681708294607402534665789867108583770226200440049895236114936294790043233737050633992006059534532975899980336490256165514627691531655185661496668853691561056877905006089137813133041772798910225593548930013559049794476755292208967209664916958246519456177462690383095175908480639105645942063169983671420571251396388083009319485493644195466225765600878323645995990905522731800893079707395415292840248433837673307998490569821886865541235382121021110324051478409468873272634365886975140149799980571638958392351842896178491385261883594517186219698121693411573218091069255200323825541063402261115592780705308694144460290048986248764254576491643594520535607441991231669390355068717783544911246317630441571811111640477918069783006798722539558968997222917963439517816427979471083994161393918564384328729962665526241375337565447760872064133920144809161484742755029509056649418995610011187365610712596857273031612858121698457821797216836995720870166079837196061074620661569458009493385361180469303183440846383094477722862705992137152910474334869998620197892226600086929664416643336401158703262674725762397846904993719079104723478471253467252625260564922951753188242049624387373837072148676238562508910877579529451450619383993144630997600649751874688243485965788159317092212861332447368890809025547445562278647990072847452534083409723033433125213755611764876393169348781216099496124670860403911883435699950800155065401724573904627235074334876990223019032623010417636587067967373594858030291925098460947629952285193859331351246862655190991790501345052272246904620743471504341175572979249887496713820698640075155934977191326039789547493856911379152568758160457404492966859113917669955229726881180897228580081107684264090235970570331213514185729228256204732898919546203560824791289043003518791524150830328609397032256877031316819545003773618851322859804184053286284589914910965739492021874163733429573981306915182269535835825822133415766431381727497386066413544844369464432306240074085867029152139019094010935218515895744501581499055173059383495437342203935157371245767412276835754160005465393123423104592741087757501212861922570406444925060628770858317584792392661973221618075071761615384365737975086443228644529270163224664261762937504226728089949398087473752043008918872193038644508623614137465978309124020424426189070049137279404636761608063993921580767486121516480021187351948719577030055291788146416331399021837756203040811880604058542728731103483311260362122758323453237349807635558816917160052778825418453524883051140288879480236168731438478366527570984103315183633300566151607763870306183724682998640659950832131348849419324616438759348366668653702016369341292235241069817613861398261479731956595726217120761281562549240819491229575302152668684477940761959215190784359591091398309379778640197214989047508078892029315608230010890841879903575568443530579414317955357287427350183444508524413935003088533426969807489057617451126015677801779171947621982894343813418057545116369351463090706735758930759697300523430812245043383275256263004053197513101820349723030985601884727002828140577978382632760947055556746100418544649729273556651187474371813792701545465812060407698878614411830908361625323714475283253384275441222136042709341553220320574901085730672061982452398153340479136190016770193687165924033662914213767728041082284015710086730060993778698284855135868202194912449713670925740230306319695490941379935903127044974369609120729886961023326283889972292372861386646034624553908191112995668756830217697520469917070836477195478191782036327617811742917035072725369543407637934395008495937560021253731683008617071780958875502297570537914419287530115678305268939125985552696411039364688267315167360452512342091245867795472510057661101067983278238615111042972478483420349839428806446063338247619725623165132105300778655576655986534655646399551832824851784558631052082981971599978194129474677384410662450545545062377329334538833576855853321768591554944322993353216722786570810399546315673759684516483118603493198861644054956129717392066307677690983453132553796265316708403441440396092826645859952606051043146396648164543925523914676260583896965794279755325369449403638086933496847323774984699268204408992226688833308483714643159210853112519737515904400430436947161627536063978927988340039038430289616345009746913136767322722312823889214681426969028483892288741867221352187508212798482232217509524859907175644380765945383812770672459776103154868521375429196027906449977874482192766906574041116032440246084711993392209474574402952825112749357998337784039677790101140429102157877662850316344772930226048897839643606786197040891265815593344903703479082079860838628618809433025937892776267151527066199361333345436985439202204746638291193998118185717220528352019651287617863646101888107734028133075695935600890603174421163181585306563285003541856849586518572482589451565034686399779457098363711678920939922335852432280396437880566637435975988355807938213125111270336268893392365685935588070908832883286790174558740467622560579735455015309969746505888124726321363710135711233195108888911316362195550729521341856202458787931258900624714105964118013383190172075943280627511937247595638763422427890898526134545935139854402601024435614426808327130808790453281553974850640039182100066345441364793962731422135849610673062856042391966858782231511590128531874049585051097713236860894340072487312775567044256933226347409945845237297406183556449829263923025542275949285188588330025648617118330802039656127777946650457685108007783646354644169684583281916474572165894513579597944481716688661487569120908868031488946674107701819160131004379237428651095295327797527622627545153680619400353347749462854168615997162052314934826058560643269488662514852025723409964005284590617630313295389929088086317012605382959277866022808194544521723649810949098546624686134808339902171990242774047979252519373486671354902980085678676634486410435571314407358700823900151536173873852444584275224662267329383134295576467420186021591799453839376958333301435903427724329384566614097535538180663491034486186616277550787034092187423540139687629285035222250845795240481433675801178577965098481687086834370752645205670985038001752466920233326405421057472758794973762284948032598351103453822882359263163972474847584305962246091106822796257001775823615660363922662874193604852747420898582445567529296144448785956951037004906301814389722861841324432664166929395240735875924292350402587844061435556263571300976477703667090892499136983519407681004444826264022975307546131801119812552323910258247409304641789990153448612002221857533177835959860254695256530162064028357724156218392009698239811598394659027796029850902301851451072020316721535275386903932139639244133247632549656565055362622353063933259339055500585066602970541941293712180944429018547158037181364245750447778577691702236826512925462066523584990864490176298365261677980296877525580256617682055618207221572180314253529740133697802864454603461492446942207810835258257308381172323948306875456395329185204547871417069149567208150430366940342220465997679646131089231339926479971651072395915159067220029571839229973927912741135642285663651472183607518124163705693530510592160883348267824089492735241480612913151762022295713434971999169028815182815219965661377092439499160572365658488955268683767520687459265389907317903391159505044813753390407156223271892640136726615992455891998159730773146681157917521185233919764629924915298598730785107070654144019739542004318579855170766366577687676942479307418258491385431647340660533563939495150611323636939538155951480521054706015008090933007931474314124291459257271581753630687251266360960758714782883027641073919011427418836165898019522040610379207830614480515650122840529656112830278974353934866925435312497378274806070744563454201039179592835014541741129049575201738872114651828383820519147680973168866788847651565836083282563396618918170924595860913472671548199913717363929003861531813000707874384916674565463740597733286054482288091089456542290619147390140123194119474149865759189630989304058778335677859190734991538632364247771602139203472865432692467075673989743304589194891797008284306242052922977679995578165598854190516696997657463565959654720347188981274775919467440365136568025689984560894986086154231377249897594284807946033020966941506765522066386745469442767830734798832752016682515392539106498283243888262085821442422214665618894221084047781141625302090679702374555575874679274550498773543541510402598313452902588796463954880638572729776753775637238750921913414082419486547463962016155787135538529374804242925516361634443055310459038734904385063934440354523991200983369442082375477827290717412193077948707338160224127946192680797351037632475639562248917652482256611922844493432396428039442889250815274050440001021194255869955159504282199976072212354664732017197742877694895932220173323142391702755301200373846019778545584173859810685141264927894401490400271376137314155327437331221191141759283348468054067806693887444196847532830152099196757522762760172537757701416273996441801064120650561392966534225458953515773981833205056119676239943627969208894127554571670116749275401908563003247517402519220254169693628216665398419209543865712665965378355049895862268257794742602160203267360695205607974852071995985019547979937470030000992167252262493183771721597525743792382721217939869996548874906655042931550715153968826708357108927701349743983371240965974571899264771823964957572941689958501284226002165526912777036868555923152627097839278945280777506748606438801342606622163741791583006012369377770282654107510367807752836130999260279559945377026016368135639551592754383713644712732898195374405500620762888606587461302383420391797366897502486286130799198799306767519118101992007740739481314142390162684850210256846782697336353474841962472716812275211465826706880846863288169003257796161792254374527972317092628233291442633164688395648713887097612572205713634222648098669851507500133380165256568609925653691930653104188553067900492762781609424881448847940621262442998346432330518913341946316014201542475105245293838632793332965635708443114066637098914828049081171906183822677587836585752609605508642042699201109339398931956176080727492273152686527633998139779790404712194557129644062770037945629546694723130887430152865567615970196484090735341273762021899029080147705235782870540168789285805170143164165523734452046706154340584647923937391035355603461235425489145256181565146477863264581293270590657730009014056707604036059793692914847324869307557368989353340099343009244516116710715730485747344755236536282528839707279019502820134274621606015060086190126121141593222637702804126085168302075375824813201544581354872964892327250139008029570373186844831555131027864014901645536333430088821685836021608511036283093316811814184088476630910551186703638644534917821346560672216938840750295773743046529865256218574977580013656461953395709790905048210289678413405413423160358981488060460770299128585690771241449567931634558139904398149385001973359906611258650177372385329729348646306884740779287167608525581134277615355500881035923967663607439971549758467902953200369269813438296018657777062965270979263026510253057069383007595308695229424567681526443298012018343417227890109129053389053687130927734281749687549505024739462064781015797608101159679245729481020544789612101240170595779635017822746550354795120416004724718563130616981686033005854845314403194757368436918964895649813294671021575353258242348469415073390322295882820616639687858422357333322452501527287029753690609126341532107024239912191523219728130333891188144103064406506830880543912414262236490378997449624268565736544001676270836682366120465274205167719058623544543867856730780924573215360024779241081324586601719753644402164194357217898616991767986835748880588662991908398426071404882146661900702537168627298874893774002759219988053670125409765393847423940085039894115475176880309979211436349275338868687007441937124588638949476635474258047443960445951281595811055733059427492520305378177337414991936562222178552838268296595685732670656278079757341270780987744740256921568869225158254008891418778048482749446149090094973274585895763797516246687922797212274617008772659689441613327305996938923730909192197160538048486016189626620137738372723466312626196934035111490058891141772053576122135053046035877112081070280970868427246200697424980846542083520541173432027289350912419260828300481547014990776809635252991463923275369826548404060476162768476389807828501361145230353576491194018074498563497126019079016562450149088942933649110307086019885738767311833993361555909860537242178335279175734159517149207889517449550978685444024732338066277544188885135376530184922501067438674598512903683921503680611866927554194732013581170442479380565725280221887895685130743420681708564576150112802775951101583574091200102530442481609514807380617240569247424643027798864450056066246826375727805859477951203614811387306089810739335787870164750162302034224678851300379660013379546440122731587203353401971463136751524855928085880546192653986828382778070235458185447322501578865300375113885028085320056290203793631716965819456568935738931428552631939434275855325623634993105352176690228051074845216113259780381810374137349722066846236927198174546939042579674114580270928233135552854959051237725548055441277487631406736153147683826140375737209646413288269704991834315825214998236387990256222300149464160512288662818599314139598990752604513993142290559677858115302366168312677943513589186944407627116106702168155155708925437787400633148858406027149081548828525001918158131779913587904300092893715203826763727699631781962089711053708893610491850970618103184848698335425432574538277079352205492947027681553836582535968336394681743769012399113503771240707874090426724629900761286539107771294696204531176382061272307772890320151464951982354144229247603002614891656456678143945321208204732883979964496773205942818110191129491331477716834120714916035066460688977252063059547620096496537227613371663109887319838383484141472579507036137154158814161395421776179840630482515351617959834421709451530240325664456719084530231924176444117329214985762630097169037060637994502944489596621026405446570109228412533924599813128743274873026134150120465996749700076992423374438278344336569061586554053636187522481454753916917561523803966646591372800395504520771296031389808716252187978483272000348275347309965763092603842290677084660800711447641932402269334469880091460960316823226247917225371990767116397853665792970945654224460367831888883577736834633239212100809917559718741992966985560071644172393576042748225097759728641396849238131970926984871825297828459678562623687106084883680952427911625909655422980661854195488041574924101659997476009974998473077639869451593430170964281447995508634559804380504509464127617292843680403862544781686747224580477894025410108337442807072216205123445302096984489696063677752462080211637833656581070283234084772131538566075636441601990263876312452861281266906842978976053421184203757371006804117078916127807087757092570741759808520917626365360241439296782206612987606204590778928512986497545100397075721331821393341550538353187891913430879160283567761003529085429501880242134558967598027994241620851189409715132090426117932110667098471040195110196430925944921602602936976956587810117274274403655635858874122911198886299542858327074782801880860419548437927584053176572333994292845391108656408112331705577538434861463831871197751016095302782944399876592013223492932163210577597955079844505369613788584101184656243695593101564105530795792480645658659332786703796757683168472210055173624005313923317667398700603631776197537298213603884910313654704209968532176245304053413889759453333341019174773680438006262263437515936657753187272123770895269544267077046055383212646147357095445730843939868516609065303863442273896972544041530521192805606084102013383344957493184912992734784352329219414723045550385971808017430110356201496311456208077629363482302523794288235711525878043048725932170623561354549191761512370936250982909234763524442507680933739458888325019680126468068862396770102449807089380779759937403080052742621987770302111762606878079327557900289057126740069989172149027107151290632189565990050348655856782501530607936456277139908270074663855967626851699177933509551878403098419187622240058729015007609001716141374603899698541587785806353849034897746461810794596300220784785513134898841699268604022633518010060560916070958711825516152595155725710397940622740587741724836254467320110981579665194498227328957399591446529591331731811844034527283758215152254203495903390551300080528266660114236750477162024126097542476899379090573809064128647482005440104441699243046608000062376023523837170539092981728590272874299899934659632462263650932092509400144980471703516970257411877623814429253106314875603245274125409525924442168333669041193140365615488874596585997620044066538249880424663517747472441262850590218921901076073927994663766824505845734568458981676548701487760664284934997155179240991848692773489243528399467226552839578121113409486578831514506162038741938210231220653719379732124788854743712532309700863720930964593427020060081801974080288427035144457917789248848991166046253595765218203729095783642630438433056801482795046096128302393335081163958510352569717421547267469656935973535721466192516322446808020992338200482806134201982021304723352576954172761725099930118369523390929137734440953980901894490132844678687002766353791378878006485033553059408341903751751216479962455641446690344419328089043695497882865166650444370638922145494053976432496407324847155287385754957748125473666990294902985564421407646137701679013870553087690494501501288075735303933878205542347190461251897781161642455692892580901559950021090976295121793816295895908020649916615259337653396186671336746003364110672282276576026995254930613968300418697174935449197412183335403488058267755277217171014890677860744354401038113899807684759336034585441859999795688670446525477962909324723710002419913999807975666104764882559602038637614423889103531111271713430520061332619416726335360217784549315788107619036230740492648219749799272814385083521185434113088175444561904987626864363366460816914881465001006322850636420082646651054371282067281702944271000667064077488944029206010495797261252448330815035804103085177231731102093618951472747439237399329685626826881073649538444631154420179221977147053318506554046220920895487582544539187718999205134998701789333992330496666244855962456464556888683777857853534084347410826381994499744242011383241109068356755861462376793895242942885886856975190433032250209878507992183168243410759477892230461050359313149955859330407721487632697847808140513169919483158094707190727041048545933544771221276746628613467205082056297700663697648047453749057676567139340288727303109858261925699842068586291504823642528360838196117304761707441749692815056951309634238277460283252510250921859722485408729166053637561197714783689162083878173213402453684373723851122278935741667259816768623564041069257298214545376757442104348258898904460133821236148296486798581634018718008274772819995342857584343798371000351468873015656204397225316414894151720879354390830596948442689136308483691171147977658727435417990698161326437228996427714657533549696214991710731133089854292592857580329580049118862133176961443262771519640531731328141164659879654698919753234706723007963560108151921677518124041991635970150487622416639637231303015224322795021203685684778712469487196769510790956150106662027894011911246639800359486688150966796505341250294815393816703980539310756772044017047545327767851773059731885198204605568651659248677592839266067957101966804845882435795123349567192682593712317850834278374414818589260771307693959711974865763656976680506015791680242923487248319864792743576576097089464829676465189710305618370198416021154891092180450135128672420621655428918013522673851759799352536224519595055106485406828290022346178532595775796160906755949472668882133196259427561819216790825080074360015503230112996146001034708602138218782265602350563678623170592486998397594252901351060076646357232751886628405292517648622530696534381714295957217885426432004444240344791192980211248216720696079184789536672096915387689793300184045118868863317027396157079120233063084510687765181531861985975174398522204446312511998021688552330175634661112557754304361500388014952498609438904565433566232979671006248877568345086336908327757218229480711621466063881889978885584642681603466012608349853121849463830651552861138649020961126245680535723547036036488360328199595327792422431117915099456966296287512170563246246649338852137136468041967446589552620764023111518945068775101642323540694404976643830654056260143026845867371928079341447363311326145761679492230556552554346076762390494987941134442596526320501178298471240092492963748717984498253818034844189065224962466273910121417628372943030368883895463466031636242211750549265548419634820758568401687769430499751984875829100068393330397538561217451487968093546222195086344314105934198463453859841452256043726952328594533286675896223266699033729930937989856382090132280091743207669359501415481574540505198540639888528461010977589763168966967897432174311065607025528232257952517324503330063569099587126032888340019656606249509843872173373703172002404425012244884246459488084051811245825369107878520479544983117766488432061570336649240610000680117033038944936342067152076235713237043120787469778980857829219406851767373346801567676663507067552596086885765299546132357353821419674697961535762309467635838699711453058980396230549084933372333288657590005131446259087151305473256556826739797735532951750170840791805206357836047739471400712790799843371542941117339151363914513643015562050841782271021148850984241205959133537587920857014540836927161743450668056541451210654547276355010115231582387352342047323115831310769816490995439524070159618879814618252016533933667603766707952000345997812938992461275987404477496711333303338452097739405210308868266245319554089159724963790522779906283983769286940998311945819717257869349999502575790627358538236690061385621891467812788711896691860930532136175061216994580724630903474413385320428645555656330977447674716226847308455888290249093379449857984657218314784662321184127730451471744362588124749158253518909021675295288354326722521542392390477374529436897821630227288641828950904877427822991966411684144973318479998328891152146325498992582233077791581820449660365560343052737097682291894583415829399163338108738245779957692949044750737314600645739906449543946542183708791198750706922515568082946909068198518223707915777341539615334387696893867112715468292482011018405847868090426405047202485434062802463967802768104113423924696624429780475913569125123694275309966966122249935559984023338320998876917221034628306313937098701879527113193564829080195579367196657266356056842391569490966368571964614646584923157540420482115806814019179154429177357254175334952399802799087188894239934344539202216109449987399624269499966089869878149208715723377503911676525965304661894527790610383077631718119289898265440498080364648966298312545586220192258805385745868672339867303492369482437990810640041323707856836624404838982892318054236028892851274913078042462308571851535256258416323097839875046877695456880287801395884643879243574791154425233365533489237237427791481040296909705820943018489380281321622739351632485725124758885677125873252576970928796465034375282112974018283776173476653055507564518176866771935471171004273188844852865561819281022439815423863484901998007307470051223863175806401011566187486423678490375025286170964693183971018977667517661159660103944698024201277759936714804387735469838679930684354872396025282987219546429435520944916877867252689029275841854021387711723890682749990034544441874981327976721478177886760323462143388909652615918409652945701671485581005787602625759037082627582876704627947649986117578468715071649748975225722364349459148055327142325233282153685127042770409422679694790396961903786511326214747750768901972988988454485532078871961236210091491208244033615513717374322940243494522648658849263236645845552175067219360267892281179547418760538284607114846985487168839514451811976878179596064368969964722120124858160835357843423382224324267486169089423745250739367451189685361993013810338835441756179598254658563265152542786988026669737359641051398225111045511845479090218126379122419405880630102234879207607580404111771861131138869060056935532034491734024838964994606741614478315215006632966406301457866433745665331337810756006239236635486966533451959449552969601185235544444194324151940463044650200324254895212096590866196229264867503567271728814137193234613019565018224617476619967650372218879183553513190635631509912025135041457923094714977666381991578393109302524517555093500913679216905664079589332258619866199701612343171528726899880914424020635174549250402900236399827860932142303078074465664053122836321801276601280759034545712908542430360645659603195299606657039723411133021862469338664862856478509854068433224508547319025976674754118719206047716951270435135756065160625313044230489127633631821617823218243857508643458964361474145131522044162751519092658049997865075116663661775768540159960571602267321779934699989750505716868884417440888896492146327403591705668233410220514297153112407680474670691981214023477564976345984762668199349177525780933797816420127062454217652967582731161199366921525671581785986283777136959310340935448459052030730879428981991146459969322303187401757346560351416275874058701073839421068317608081358175360252732631409670290317765347975911052902783060011260177331626232366769047741797952926383979853385724498346555256443761131912543169237252907831466969613915496245001535257243865879423214151058073172069719613352360821264604433316540110650632131828976085479530037086732951778108067551673954282709154953082553892726774757401930512093045787880212278399998235584550867290609298216740493975904949334170061182375661082123089353639323269611086368731612841128862953359096603691634992406446005472953473427338574498305366156053790621959777762724569874197097766561714820644562105302133309888340812463015002952801789238443953174269023499938729814119709750984792262169213116142548431056440662841403567890485323531050854287854741437058746496302920191057284178182391788173875940279501816936658460313456499574630872157372140662110641185356539281927640062237733739346525185339388083957265652509677842826042254997267350872534112545801726413504208592660935255816696596496131848802370620236854435782560980931955601016169120667668994332874521135616059731864658750046053413353950826385984894528829532130949913095270873900141349708818455324709853226714796273970037219250268108228088196691594229890760699492663958813571956731084094140256986197202609017432408758642567965475908032461892047851663871100332729643933750483745372713524344378882577569396572565973060393764223547346527969710168098618734693596016556539614553138760746251343981487324633247178155775742866164091062261867475953769939898349505442971002336708634560559695986186312870975288551358447320303777449220200680971277507418053335288442454114878235251440921522617996604689147864681715414271831687230049144651254802852940443441938945991227509471086192027171342873521369926006632159215010551277686990518783697575881579639619383376003939331186359031465649632980062852273247713869065575413281713829969296983763353560261801153648135882980004871052700087277283964011768963459803928102883090821120179751945487799917896471609853154358717340235992933093830377238724421271427381114777724628961885411772006908175016803585195456405062474700259374169232231885287222080351143040573459241400297699251578854030685505432510636065610376320540390179148152888666384183641507692548814919276134809991929340679677587637221822395777607349187219579529401684196480393700772805320174015747060461420094605746356875862359620493118662908892016351315011868209355197251942882502818004481544505103746524351381380582948875455067673866550140377485174054602722003190448124332996177669150583628380288602774815068075281780980649512228447821496257671549785842010372192880239843366349795238717629017112938334826345650745504066721425082495101357654127501358642603680960303424244111037278169241188050828023453673985966332479045354219270264094487723197398405606758610233066972634685730917593389070246458031894214044607852348782244584602821182043999743046564036756535936585623696637404171598938009554095486803200143620445178001346222653565174119764505338248362997135928774919540381864746036367272652111439312909983531564349587875748065778038667751858472764619539646590773447789300812668450462608115229011132798978321739014508747132800459191502471980358835648659468756920442144379308729810477558177473470556410104999982211819741114700717492408880293049824692183965468277515470973925725750799704909336057569524305150302167284055028242553784242329058431943979630946181080531084292106753649900917405665480872818533362334700111484925060676166157913415943587245170815687954295046824538596690772693236274814170936324365223932325969041342133175472256355452063612234999780795532712717587576345261634461219158444278191285082051490405760443894987779194092774916394680896107501733651742384592753266853641610075300213994554344154715503820102127939867134214070724008905125344893652292865021615304813345000619545331168331084206022658285612454960725607781248511993376769700025581511982870193558710536018669925999327404652642085349583588122665038966914115665783576160342548781833450908740712202813551292267321896779688489382655393306948035456943417317098043950402080273912990825860268268623092423803151004875164889294869735735003335832571524464007702395439193405767920062660729771634077570015854019852054216653151478501835759028006055788886217226977275704940071411005975483915964395722786535225756344594911021223903619586944342703873912720313158017419206616372594468611558120020581180449871469817640955674360932528181717323922755653975180345077412890555352198029620423193321830474502330888129959914606264330991356533962990131723972658673132861293285904280134236698158266593417405910559549496022699459327400538083574799628706294811046046100609620154845936015484357563497488244090606476626213116735401997570998242645535780673277656546914801398061654820453942008518246811287848456591620014020467247396010310742190833313116385456599666637426138114812007120580208401575766420863531378390393910020384646838184150876294086190125590018115849133894619866959016782267557510736469774345113284306693708624805282546367779071856730350388128610536530819171438070252571976303564225202633555724904544658894813987777755944750150359898373466998850553548231308618598279020926513422827383406276081522990387307583959664456988038167025264345380962005234703768021581582918163476487954832521550330307250885223503710893136114133040666757092755291713980780533938306789872634822854499767132717259668307127060392705604625395774650132671667152635655571133730073214832533801199965897857129480237342644370287965777159148023711870902345305344032716629954534083839826565764895837409598059624980143862322554636430285302233258292184024163406386526254395016844208818428600016170026240020331902812982811513251336497630033206710561013208493753469610778871653465581831195559690927547931228988978692715477537247683912778325296078266496817315847054430540171970488704592768462909220912417492848980680302713997356531143280515719196900731844914002164226192587453408812437711491899620772028140428905233429391888024882788207446553354537311733198374189768571034040420344194773899288649354095320616479368085789133259671956995384853632428174161359675828042845378307208381707044323206089301352978078437103581182849341727770136756136989792020350250746309072679649810785925228202737516267980833079211468687367116238311878242590065956984696871920066160112811798326099833939229164601725325573678485351304496275238001484581016285203221437532543092975592350604697883471106006821516524225117602889586601782036104566713657875733271837349726764675370963480569368784215073513056903186110027051794991585772504165054001580255875956129978307646552382285865487375061525985840799626099565949100943375761383979005382911269447937506038964624704027205404863510290827022012071782970906610915100276163759591781492041375083277520813097528030765534682011832087415721619259553098469504239202784726847676501064959103746345521388644176105658663373314467723288406170064261260426842880388200612818001107973774321685099814008456977339385326062461518929783980080422668729727477120605294892437800264488557216018120073425431074241974127357689709030290399834835950204533475107189501716654120531084967084385001405589010972912004352748444353225217656949908561779087832198279013868371801681962253186239266183239269786452641349431846135421317447435003394406314333836472864869177343973243565076528665350560199858202378696100328472937465531533572163836412078964767950901496679518808534474860512761989213934137305868103221383523416212710920629460206377308015887406845731562233951162887348668868439878228004061928859540776226507156393399510056007491173464167846856697784273659158045588958440480881421238708280335097031584482267948568855614017398465972046510850864713554502159670413788975276033042816860277541155757183947087296990911052590635029822297055438840949194213865122120687392706810389728921474752286830899690519230705061869848511525552468100956306368571964124817430583265628406116871817843699537757432949916212408193330361114216846517055742252920570570579583664287177204006933453139665326203133322331709313181407900631827085324685419992978181079899936377661159802330061215340412316072945927657680846881849070241579548709254628537700681168732246266929237979253017554222607062788055724418536505519445041806349310490752659560046950565071219316250974960869202534160682232744196605734878605976811793302543605563897024829475149636089839503186069521868309875998999972562020253395810190809826256496224587555109493918265432046820845990621990615331570900500050831512708643463026418970537395348277031996787947876940915881565789995555062842874906922409543642689808015072582609419107791956296481087649384533612437438831623941628041538307969910683955705819801714903797691940073141461027240438940035263561189777027531150367967775998865623698034970175000142939451348433273169050960362702273658491369271312597354479161946238992356212810946123181173804827347144109348127553274931566161806203352774257995208162829735306435408500895747813111556065085487322578445132298502375454674862444153952809209650639064535616360229571548659872875049908253814486099827108740136262766498923172935174360361115493915383943979714688591258278442699729933775970046350068959434852018648063501688898255697560043571160643305661985066958470003146235162658042768317437657950384626043124478814191681566323558318230141982451052095864629951039027754472792493143737048891912199094796381794393557388047159267022183229172193048936376069659526433669126534428964521835741650368153828428680465171697506901030348575510896698605325152523469038406059412029245779565225930397374163328856669732072050500497398097685666076785875706526992414782968024968419589824964935225847063463292909256545171428503732625954472292622268486869908812329406509038946432590706255525504209604705312901106754211524936201704252220136974968840724706530747889204992770078687183688232568069532658790851426786419291000964091604175070327310341913480169491396709673371515507792408403275142233785187682499046485679023305987794227894175484347247469580013911250077896716453153355627261298699772588327112569438328862492367874526448056648584879649720449941473370788544259650113248083609217550628416252282185009882388041566666186744299987860142910945747980424267419734859552589464507599243502644459679160435567308268598644662402735497288454136458647748676233357922340253523183807956183416760425553952267883941937004807474550786476929839328401908074395674810755194566272473375935885465098751596807455233920352832075805656207092370943926297486466883611158944642156605192512357526160470137747994614237563735354395477055528266115117014714447295051045974436086347507300357420030986493988271287544104261767910892194586041730097045330118144401310981117866218016376407654858445140820259348336455794110797401302748120905750764760849164793428876673180353438505728965443094500585464955926696422531423955014541635585492557294590838225234857338797137921396302886004958053764905790594125865490995093331788048352574452668048175289156505891042801522357363642146053018220354142195455277764488117693575234404803928180968918969588561742700443077443732118505812183403516085548995706519298730600819943311996775578523703659344123841875372352093752518415871597314158704426950334830616334906021302734502917710469404733420720929968479402963693429010153437472157578510324152236387663785444268126654780022433864548854090529417085905425131508947937162934184776405489384434794026848750745057633946107159636595948953302278490443518677821421999618008319242939026606258007805852770711831198112674756166180124942384640777016805958641694376267619624031402994474365051222495637842482839308688755992409144661805380673385705811254408004655941659400991564247949804723469187606141424277578963270015496910417752164707350031530470487373469737726689305128512395055041622156212131780030480156184348211759029292099418266949423290045355809538619281225888772337371113452032393605805723917913785893232617757700876786444650369677993536985651862548386691769000818230022648845981893798880786497953159841196247578834973918601285996736004250690991655010459398971648289922966623934090413313013852083506915633886710645852293349066283692009710449216137004405325090298859568502137053109677757383469005516677189457039674159695798764151184446263058022195134175662359646607629913645035770022206909547373567814885309507762712079112930635636817952172597675348114892494084604611048330090167739205696689572050560687580861224420494447775072275250817511657121886016752331043553628644034967241047651182101966096725867888654267113680700937229737842423543262964810985521377429927563951949306943621324942992804770502868654691544284575606565056037374490248066537845244421082203000577601059406969882368228754624654066587266733578587607656825498350332842871752815997326744540757653891894460500102380982503283455715209861107985244126359035561583721303157468515823431839982397094713951692973606450890532015771299463516563671633903178602611909580166883808572638711710642832385967705790693471948407242390914740663152379154303282988110103108747036653364166212691437531742104809584306332661417075397067762647732753247198539567079153706547684657676288853555312326608536614679367788649003940506648223437261036343534668149959284876623642667625332937869365705140470920393172054255429515582297898257719273396069464284423663391503688298379194280730134168248986729489386413527188573237388645944612601995878407617060804823018397085918215677397872267868694920267504973444157522179753023648549694241151331975339819006666403039169622839260939328467048506716739590201666271306051130370129875780750706799437057128268443557524549963051930806708242500961377357782432819516481772639066696903581203520779985629325684255652646020151179315235795160731832077917119588145619047119854825711854712231030360868407869232732888711126029650204487629216210109012183195545045524071732019434480814945885065575728171119607059832195897769423833833349224787646162718453933467104986841785232736111957585463848664140354684243662696343679024081371343639511322323903677646794611722888787163739042923091850150081618078357745245201264885419787178459487032559833808111625823807466199688335214189716010102040178713834189669018089091078767611295814235221480147421429303340068381001865339438283469308583909539355724868690328969533746964182133550519809926341794625414965566956064863487307865479880391173242853350140435392513870392801175620096170597171115373805875980613006575921373711742037701203345260913735325450249002753665052340197081980718058281349133874344311634667367087416255438314006218119433456588111392423297061691002621479561987339561530981645035055320267774425589527038051440711871892420370272335559835466714573999196412029810333170532620765064062539171548931879045321635856816968176077726147989270417666915111552971835526421854614099960162464672982821884033552041107300448362248415928965473158799772323325605270852747635642416948789314234895331589791551944263859771248031900550752332594015673939367831994626076411477245588649164726562780880500783158110082179448469296274055396861142484301897940145881878232314623033171311927959491043047636910310015311864014735058703613771711995600183799068477293815509930521888519098096423002023127018886550735080600627071582402498540954162772733788738627428478654011936965611853395256678820199852436687880515863662630523377952475193870268596439249244320883163935897110657629775707424837220862241008834385747014123826189399935419083953123824776464574059115782776154646486616491576902086401472017957331057232025681534581092211646837322325706918174279477114989790340729555828794640253699461695532460512276205896935664985113302611340992616219104752034769329352922712350120590894817711468582720227412037649974826803862081989115949326987181322785710080874464486387658703602896903177446312643731701786602277426853457230702662590683092470933153966144709806441991061416165757024524392163857544293574296327646260486441909327704569578178551742210111884571097492124268991014780178295675497415208386484754247506103746079769160930256956594905875389568482501783988697170122250672809346065679231624426180734397390354069399737877096222013064909696270338994039609102475903874521901240091763108513271231906384342057318229160518949207668807589317773673429367781393128034437556010829965284777905799119866145200133342276503451416542178314439323886038059296751173123424587182322757765502689868930869385919343736982042556412857363990204912933924639782835354021786080588173184596291115766228099685189634151337660932857924199380616121116837274102515603192994433081565780362748053338871282516014317798108538814404877352998256191434058069809440992879312441805122537235545263340526943143677662992560987385088256071813205261251501824075295681381527716613887666361492298015172972626520525150135046899810577024516257491409142272832384575659468426350505999213013416339980174558536216359537938068373507990174305584831223179137932290371935913997899089798012658927312476494554550933930241594326139812010604746591893980795370463196299247061639207121920451811005888541742870769382430000999849106945422528852294082216178729546838461779554731405608399891665589178367766813781129273696570658771852658861626477518582946852777027838862054580096536744176057656064659625962375511252517121377444383679022012045261108176687648246836294758398553865066526655665349721997512197113498041695032972299971742745078584493938171654233695905322237719144837068729293333937192043836664727902920150613349859049365835287014436372802699334556004886446607273583555547438996347870225088719536250325853060141792936449148698504349007676783841021151934745784750057171893013146189009972696823625981844192450824581319921102932375699790738510517515511441855533823766290210493960192103942635669590798280077940033904540226215766949812800529236282743527190625476900385501492570295865549986151558410237507715406655251643176188708877641629558014903533611081699729434596929890850109688761706117326576814931897020373383691802809523619883869386598124888730946309369069777593248642571751222564315832421768673054676093892346090367114462177684027803749780434445524707298391621828372210336011293267357480186993020413210194117150042580047826889593548060767974909896415232456889965480107498770660372774968860328855307944512198568043695747044057493439135619139931215703332347840267436965380422270140372547693861116735314292186830799942043982677082344761680648849750045554783481818443053734033568290714665342794524351521614725419034574355608589930267809946124638852539215705903599365722659657605798665863264017459526715897253139471534216700559266253813606854799401783426164016965817005334244945576419879972862216936601413296227439914977019641914963886760670712967797210546030590497402360810178427164160751211622110509339439588575048079244744354278885025392185157963481055715272177363963472675239969050857779376541070258891551876137461055809744522192662866800262063290443786517233900483592871123763231891879654356936060113761956043544056342010521415249868518110479703537690700891627076199368181250088026162368753763645231288307394563619272888716562739339703045452137037263635572835818474778666111318785378226300252159951325043624521527093113457986573546772567283543640138081533828136437729015860637576635498989974366591857215034393909281011225402957504678099002627065061347601827257840708683107486047430824220451291695841447686870592113509797084184803178422592807589713182007217225895168139118505579917263821072955203609873459294006837662267238295564268955690083800712478758298686449463553609423007947745521837474821688518669959836016705255393898823732871294871283234901431997786425209598174666990418316906978515296778880966636156587036838270594220290852293812941591980119952570776795316837673473140425518785991296757001119714103618073587335923516563262026479612952643638970779732614921797246565124480294503339497142795481223938139791510325240516664594166831813781049358219330833901608178205044724366218303162336638049122128228764788997586516582954574746102365477158367250357515431609010045416622852230961306793198009158193796113737628829504853235410930568753355249320281335996107202441994401342414385527801699364652679476526828227418959598981414093442034214261825846549647717033553964923286326483127418998073358713940694075042683945751387413656514162546720966354210812906094304985828828158028758106803362359500887921320095215845082142860614603727101204470400089181576975810582250971095751071665206010722249657243946075365008477258014243918970219315216199882181006398734038033051490450311992892380528619986421164101933907332540532296410584802862886794430635124885049349853823241161085263609420395433317242065556427993614419123995109592485228267828065514972050708811759271286584180489131109855815657233049819022400106609827962322316880682536000945257726122542170700334022768843269430572068644721310379473930354457232983814242369347219070139655219957548038180933972060276875275653569978722950946498371844335149470252147473525302166128883445805674983166774733139627149279887056379370493401933921022447467471033039518296772695550019853549730808167354236811639001764048623828529038847618396381976074697905261633139621519726593116595192261352022336463542184504705689354751787206515641978198522865663350015670195024009171400184347849404771780006323768957015574464215224045540819615290745180242888813133818609243822442156417230750616067525107462081559616588989912324050089859396140610789523930043947181886615680262715557176857387842397215413055783146221038253266946239624398968563326534062410597174007349189459658180439937939347295958368475657075470158466332613485792907952507743274143212217275187142463250919598330039117080681975421962537342889986417966778376576536996342351265529826748773750996068927030380910709397290653365320838989356044223589298652785924595416786831412051330708025695501397374023016725189353018942256765843397842533789526742231833130308210602879338962465813040918633042591220988899638718189369524738367062651971745448438963454842979398073952346065299121774778038071129142041198525514584742926453505430405136271755328646376803997339330055621666913742540461670917889925265097136726741355230307133139557052356699710831358725720981873195131374035179321645639506347789486280693329750992472605150723807160817214667604068886971572453438172679101298058794043714076029553575758015750446636218993630321848965303310733337380784568815576216266351118089117807479955333506975363127347840977445616750053322754719648471765700587172693492557004081386787939327177452904715247264200223179353766869701073587816745550940810458990657241012974049485626373355212082515117813395077467368474111950266036050076088857031634745583241965613310637138360411869364447645153480240716268797325216131077828484643554138160398092411655199816382070154783022572535963023459190108016764040312377237752801609495543980290209356529260612718182347478411714093825082068799706527715000066612218665874380298176193308521251931732878499352075056170308273436313145681190095297856021850512561246582144578908420113164239556901943864119794079457362383374706965018516313404258677976037716022073583532234053789972042050274405330638071185397065666727642674468564613444341412968634747490773051762406239182169136198599775790456159572888156650917601476956986422333852518450136232276133410820379548407046216144923822175832526866483348233760123048247293433222174076564537410764322178049227856788740520372715717107319245948899988704771191535742573860061788359550610287648599157206752310601909640895055603306505365757738063063180793940973369251104823969031977794951606455409359024182420427725916689937845316309485049438415660864221007480915391415212911784605940592612387888071829587096884655501300220379702610323210523381916463209614490072671634286827511799475950386352663814321228132647011271334891848436289788177491649928600890216666434567750308623716467149119681255318033402872223434212809240111947086493661603961897440414337985557483475491726740359284344906091986153483309399192549290533552735960200799051616949863925941321073859430214305523366476075065138388380769744847382415180086153866427223235813037771574988245581461864033696289406434529825665190623492328173253730930563523013246619895965674644220353994385990607259132421855071376365476243634931446798955609814357085675439370966697753090702429548360463922353888006156640353005086301211514491334662810482063518251946614038153968177494632763988468163207628248602219966518973489283831511867423174865468162862669637615677026898662149132534752927874380852637700043593205359429396703309882212904221908064460245850805395462446749386386387307915597476143491262270352155879455761310145399838064775363956721545004949983404776439039640600863702808411525670138422384893593423169135004176662399485134489790411504688387695507906487854322876091338976110698240694924457427212932877118072768029872947480544355800863929481176176300638887333558280706756646948799853702145065872288807278468310291271853215093882498077165726263171700803462333665182867394402060548319498790831740817982464333822082372357760385699708856446840291885326865316692126225693723232956585641189067732903998694867799145516657894690794356298698277267322619872828747903757528754107263964729636875637558966107225839324951428953792279508511648333100959312369153009504046139401310391098976272306408508086374565068368883958244990907088568192431551090908272628832042217281823050242023138316974879103434586965172043066969352173082962248866310598734649011018674156951979874218562332654909404417574114092716025991012902096186540911857761479337370118879796294396143138301968546967725426207972821794579115370433342686393198731475292641899981686337227326888815465698071950958830066805722632634346287412171148763925556005017505489081783342222198961069842826519937926604866256981015685647615772811422579282558574227206802684992627134098680988024302908433278806544660583825524164690730271565755840123444081579942547188030914925382745377578144712285052325843052885148636594266492111190965380242495338997088350284593103460253988322934025970760252037541969232780474425576738975185148642896263360316326276958999201012273019654177093456341354762929941483244408814936124786351184829488794873829612980083518956014781466610633833925305629220404081636439624040607284512154608833322118689328388713836546169529749594963907457138568686259150460029706246323594934564127851451674836240451094058664038127118082208395144206382202174737371038486814367676254174007458096611882293267953264059720662084329525537573348215501888826228262657307261258974925953109210620317049102520336524146988463405804756570242937359994134870709040453483119469118391643560103920817334350928321175137586063700035570820549050938258833112435554311482466686208713792076068008239009461248624250331540576713114846574467036237170607506834989437210614333544067213770926955054357696576513444156225975921230521478940106530420275483839224568391398952730296471623462653624504703691110235050007052615762518846046358968906787027552504766759043894347608049669832063344645260124395742426566736399909836384147969940766115100447381332833054251051691485812161704208963497167968627125148372998554029492227448610058366062250805325586367743606667203660914278889462217518959070095218185365777395714261113293436880035560387636644540829221662146284586906665764286415801080192426913810818510734747363112007829590957477804922917097260324902797665345508970120989164833701736949562614075842713678547331493692398287898628514661429280608562295128010503540363296490002477712249560560562787228577853455920549074616427550436280789511463784607617817102318129492981646774182903151770069360498596353838120953793989992616783954018218638261547804108021044390805110314774846499072719352747439419499837307925456278653985169377333089595374723084394093231207466921722542146099662417351282204541956442243920119326229504480397780212501174585564542578533030801141401353866202111022060473797343990539762973184209221781925017178891182726587217536974025192419532012213112905837089318739748020004210231066918927841266703166173550290100763520351083936254363711854526954619809246983508033740803401076490369343961699909810220236888976354045710372746637685753420966253458771451644820170378359242658810306939661632968693732820346822834642016902638934216120512449413550230387008239458047700220512477676376782090611291595015654754685469800527085603365004518437883646525775288346445705398835190460000504859009216944559729517220719714472425472353195270165599609288647130048147895469480526022834481054441350707438182766047326922691628501437239213212135061823009338054154572411666587194292169786446214119667565433216892568886713246802931974449380433838188078660522529719404254293261700532957670860333683883255167378145541130261319743136112648676388676220274500967892857513668990546313452562653162984989803415604832136501067398487563838838400358011172196365363011407543548189758940559249319951015077038341378940883310008014666491439445408388806380869506299066656258285863639233391029920615220518946892803600578566642699525371889354189725033313136096591284601173391685646323872980155105466936334933209429524382608971527379594962291912549287396507845441029468023816660743574117136861448871938818017735378194286747319677917412159659827332748615762801847791072010813778068055269765145006541241518849383086451075005136834161161052671847870441648249731903261291918520492387609954074717386390482268222262620238212629023250838579598784987312723479966269251513335998780524355097221643578903890639423801795555214196995689823296007469538875123873734352226635578622873130740650180057398674956780685620657005466638413855258978482659169470876211814202786996559240784167144596243213623832714545565596077723478338965636812785690021613560797153790628128415731637570164552459854439930669007809051027673416333334645755099310594079258545544937704088462610549484100504471233084372548803296665499745435279300247998279149338490978957764949246217523991224149428481934144128857856730904842515839661850205623589064196908802861442393660097373160432042049378301836886925614628844274175438146734767148834983048313141958493307070554091336576246132056335039792174403892982266173714958779691277819115817436969430506949800144183652771784228797191626358837397669760870363566317893681728851940103609045313847114800660216312522515146627307083924810687513330079484911973337482012235915118593226203599565200510028258457200249000619226432972558647867386345377893779825348735835805175117779965790901635483614581556861195439150770148300811573169057663096048049227432722667315350663304038789479124594645861146736556670511707418630416737377932790075608600490767025245253876948375359821426872513208213144885236558591255969542574783244099864598647643010023443829133230756143994650777342125998534509332017015543504851835643410482706029284571295049832628076860477451725334487766681898621632957639482220170843796461274023027312628659662033881196297544093731672276132227252541693973351104584789714328927522631928761144282325972234431808686789601591071335395741286445638614115767438090009057754680175015141621397549503216241886125446208646949531356517763114705628671447345697690615781967372594471788116145784006383081768271891964022638298508041693314378210715526085674229191993773839265474126501730607283699996040008313694428637550520156655328794486160242495764438561180853834458695872011620718641056202860601751530975778873874201683415851174754823644971742786136654513013643061451650999707505702576021652478329187816261087350805772987641827052033364665992744780666182363008275719266893872105266936079675165712219405608068925666653783781619829345138166567924517749478593347324398271027091398009368158800278787455682404336813068847846553695679229795834165916382424687839549039680886090861654101805208297896683838817845023064794604462699498774819561600267811738796804865143365709601774848935304393102083987142182737321209346687894689224912761120706285928932602186515639070800565452596634412354063569970857383140575064639142043960010615205999424311432470409437647096070723044651655142545675786913530286354636477115133959209205249846202127117292666007214714668729254409104075769379951243878635243898212252961034392492873420726655725519583236033262245395155209143474630058234654749531343762445164881305298632970235176579255191759258157174912494956146456555012991333344796535144294541446244108197444371071903144561818562663606169841898171385630603896443143817799443227473238303145404501358819092130002107768941585272695341948803432229195761415500750624318266685348637091188154087794236686708043660927617419889975881239783619533926337317540819807967126025329971215787316336064776912478311921663858336438749523564818459348778279629724292849786158411364264116799813338126661108487373286728264628903485372731296190354618560851505023794903527792809756412772113927731451145391315990746972918967756256839870620715251843977033257772352362435073945387660704665234698979713341670981745180819135487646901228874952528986172868456658566716993968060676101006864561189437747129136342775974057843590290796152443102433899628825259990661796960746732980968890551099853284072810869772795702130438661523215148785491217081924903545755868401751486106332256075560386865205518923788213248310589422367141909780310684693525564975788396176810263138363204708885831457082597859022707065446846927709482376791571690712483928080043946861212308333386758151290301074480363508414806051422558612864824970937481870225226068828086247622656964064592806476399101073545332197073393983764041691220857658234782049962863742886453187113705772644184137563048077417528186853375832108706515251848397984705249306571651261312358948026850998230412882539789632027704339696383004235338832331477054770647621956878793733050929526541171650052221645644195341074493673224583216395148259239877647084728274148177796713621916428210379693015084347482080343655995158840857005996172783936803623907724662710227471069642652790770442330693489105732731995401611112619532171775006478912928165894652853471229976445903359281527546915304984931129673003412842025026588506688265740679830011245092695516289716488454480833422478037126283230819506585164197254103733520831689734681162773192529050577518073658433042460260693739756699883486017008254388579049625835397387566764553596599409982607009777971040361759365883023183261296533230048083488613219847292057574809158791981985912115137469782532610174274066921962816022626975080218274817299347040379309614445611537894027282530030051004457479868165572495231964619510435257615173948469340705598397264851550288631018332635484241841784050228161972961841433949957326403425597706425301694104882335315692488113008624539131005565192394736957124267060194462055809094450699467051359842469164514249306060568813298306584506854142939606588971364161273166096465484651192105371513454274499417631990430123786193641758161968205985558273929960750289078413767724191116841278580482885753364648587776407689260093373739610864697986551167751723061403725071859666394181157550217545129969718119528055470143778548688047432858959183465013523119091233621099224180073639623979327190837673726466737828849112018105240312528354763428075691710324700811681691175427056090450699108352234797484246765677535220689107936641102975166868857817341355632926868500216194410143822452196691328593007931302624756716086780618544636645566566621944132362953660914902590731678019316303484893404837515354652633933008803746238800046794107624675163698798847183724165098366612330898415379988712582231363666133061560180589152567395909589715867215441743387317622546222090134740675459940914857095482927271366653571294641995722420701198763567569014117329377500564563493884795336165111564117438232859055259492152981020783199754484435862703102213953911046295008355260013179412669337033693074865805722689185717665509826548540237396417713791193519131087430899091135964154960923581043574755081854029563231274737066014852178735136803262911834785669647156107218224680871590036648086867675173425223336926590904687596270892328738541139587211151781067344903006636760475202612393084443713379819395096782545487702036570654532286715687536706166427006691897815751691185115660044113998005837833718603623678473325712494589318738642876221603622397678726738438130896413692417516528706999497103026513112504619958614784443078462643869329482967642190789702789135313124498020008843435884082229423670578729821739086357533137706024550099095013519670835450632121708221180294806270081294508765643969578528066362497297728420846628921786926626053136722920862497268077400254079907392410188939554512636192437630763670972499938299957892297432653956192903740573605651037228786848473832192099535480461050277089457420753289899153808049722166130252774991701841947631476785461958367225017794913527317914613104060208153247075685638812030732245592444065130327431755569611234089613748395080601475061902852243403253842984279935566240130954295163804123522778843776262942094876416311889550168789120410677368023656317317118148232249321771223700449389099094897714528742871445710236882941266520531332086900299467095712874261456974269009451076777581816971729617117890531467563491178553369835303986348545334232823580592905241343569120945975673230527079522225743633341595038022712809268127115768991883837399600141319465757483356673358544965518142325035496471020393924529448917840736430185244362764908459571503056789700873170353898719035857292679525227315901024215665789547685962668965920167797499696351986755035181532420763066288246416601864492122981726072937825982568613116061487564530960720334988152196181092425316679639086808309021172985444001468036656628254956130670880346666185605837074128319015905457730671314506457785842553875201763477115576110565863258429223836601789470912859464378308092941919721034079411058363086237021211107848810875769295086829469352312464258954666245149813425440457137192237674214158980759756776390884625198130085499310260167988350986613876708123477968773187770920114728787759597396336763084937267818395667200838396242375479084324383120744651499994122655085629054382173063460834838083997707547023592106538656944627603679069717177330088428224996379860664179404471472450691019469054956580873453273949760835567194598836224028204760736941123896090214246020718554564153547598667950690798818487659162499241098827127659720529897204130797220202564787741055180013434908542392172775630846411139432865905221791628210700246396756992624270166209282517775132582778707311376443410012618294762540687608995430862275380921898640592974902024848856685852800244472670543810932838031514906745992316353083644807473607304078818705673906209264479915585794974068579913295294440203101078666499438310511026226552505726907436558632589008368630416634430339347813783055018029073694551005332048532376493946869223936389143396374796402765661406006850384743690507614424970709195626636674763143735502183823333766199421227709009131266583718556857593424094511701547146649417909129456220151753528348087948958944754265369848756936287198014006516864940345526035044765545085500754797964446114230145973022560060201000406340697594434516942437096548756838420767384085052058362913703932688958522289958803595087832285578730768629354090504240196950293208488129265252357411311895476201514908881690455822224069277326443424627586236944152651374879470805294184118167216804607832213102786446771172862207069654841778210686322052477067236514973313722923672042545875236427618315383725938771010647732776650777417372522237132003610045969006846025341119721897694727919663449149927175457162266978046613824961033477785953811786813546047687053366993761619557451681116160947598562836252318544176506446003382008656025165402378298874075345780998624546807902308707926784476242079248331072575409010135815750538234320319835666862143483024312891079937264513886647009889564541469109929189607310041384936765811571260151806241169164749541241445869004244545503656717289437484461542244889426104131452680733693092821663518320214148485331035186953281602006564474798454301896733178664541403090984223210848088671612803015337287007273969899810583723705701429384547667010981859767368335706882204426074490649424502435814350468387939027569870333189673326457915616828802487157677989022968367731639365081583150756642677524055622564956356038569120382704060346929017321976712923159819637049880080331432031751461154716119531521652211077283255085877789365858678489521236226741681639452660788261792869742846379150864776561099974839097506868857321580360382203884003014740256081932937121364513042946197426988987657521898302519283473843599185509661172513518429021051880605898508074916863456935565821686328594431562728626387005143310260763802456015503174248377339649702739605521843237577660818047269436025981948676715398837437797736996862132489964839278982652891226604899853276313036363480370954164516550331652758504248455586108992507552801495571340705805171620367160362869471496161389671408893772949129561009083343441857807699551717080039361335636754057107850037057549413465093467107512318416141842931519823959056938035783857684700649660103122100345756796262355041101942874286628217324043935374809320386239529740346078436902620436813317817698854271347071919949202316569140471209725443191757001023919009575231314923193004455654988256402591434406974465575625641958663157323850667871726503235383143768665225122309708502471730660775315233903354100934966016375471490861402963220469775645733745174415136614652917392407284583951146849768539310283924352683908495271847304083358165233483516458198629519833161338825530862844136131713431036053936713670982222470827568815174853380903735683083400200655549880871208638096958997222577984449769974171147644113487779883376095078203849292154768725684418082294602901049302754456609194565693088243375113052997084568774103102557513449361772359291524713753849716052507443688248550806835026778214136938545302912943484283551335470354927309204241456389656950440449837689527306893889418178274554885192956187822565630498178025508437821215356137239139919000901768651599454419335693748585656120772294543139301786980027804068123924658172736406496344587354393025391238005752534881437674604652332908879590668161386739750809405658839570993412872993124532068656729336489992553470887726547657045609651129722406195219902248424057762845264229473315410469277967553779609942943147440328387558964911486629801359274500347981496869690312062479547342022304950106071389826294482970500251572437025177236822586699914127284194171176534451226392978128570461745273423006055446442016281542863271200126736574437975784023142531015875042105707475195935310731301179364958138127277829531727288997483907841601932914495066061231203292709327661650142646828098618332857115354667612056474679639675275783263617862282085190480223500165050897757338111893516351691366743827665059592742847986217833846328551080594629072310140813325981998746682101942384928266756119366774963835664051190272525359315002138063234931618813466938875557980812945598907730004189220030677445302485420414578989130908102532390284578694367462303174080384030776520048934613259627546056801007579156586815549658512564293744825320122402641642690756178816171698399521858491883200738420220680372920237346943434838408071254151912844033056310888684842771475022158390236954865259262173154393591779531889254848415681953857824372136643388424481395457615528636820117945296661927344159563078026612423005655823465456455323485597681192626778949458845013249045317411220899858026050769849224281498606540467194867014301941828670318182158074359031363568620365453493563061823057418006987307679394095360909020074630891600844243509911001704815235207796775237540365544740399137070092031402149424595092368684765373673301751864950063066286222329385433154587962116163163248719156957116677814643126695555852669597169031979202325755921524311177640448376112887580941347546528962682036045674690878702842213409349796049853668554816314186720709673864180317542821466959248803596877221289103673169938966895401892615731729255749609889727168511704383804528166742341123256140621335112732656651379981958024490920730329264563364250766361181430723395982341101110954252204612871045806315992788065526318760299028728673218977361455829790919828019694609673560495354959434337718724320139133101036291875467497278135046196893231202668817148019718520806571442089652823354237764406534672399745898198414892272472205198593477674687852077853563982778551373812374873979248835188063003121241556582825706380041222301071138685580287161502741520003425415426875373328013946923820303323962886865233760762472283110306377872435646559446466439467187676283897992556557331625653936241278829541342292094058107422787363930001473953704695424681221389065736749859806153016069117721418310440504582711971369219389996396494485166060981366014548925450213242724327817788166974247967568583115228326318199092328642225904314617477203720631124077148126719867578273173873381185627895277895534548829574622908914275003599417931487310536057840563935600054820117630272500093093585279077854677203629166110709549188048651133765368898901856802537575114910665759549003619791956291840088257051142813606771605663353721560238436158237600134566700178699865906448816171914454882904564111678136106158761836580700634875179404938181855271784351741221175639860248884219870227353705036208787986841073621193884133930209906758466268297990845553435411239545772970571554728515675991100997805731270976482711721463784619886784657809262220541870937413725224771900786946242022140781953101229516015135637852065834826725567940308045416451478265701117321651201997914854435258566718658839777327696841601976346847489942909779503881395263946779239177770406756432579570711427231717680151656509686195316699458892191905608993822647943248147073037672123144789071657793842921755170407992943461947860506471232089002681072880821673139986600678785921377804339787154581617198140607648096707837903747462337017531145414171851809236906980779009736646324758604422452616916768278063146917606942528327243696884013180804852361365408713049794844400220241816764709886440894142619964411647177102904659088297954156535628274062667874452395255085613580600445770587579573175106840435023108125553998351449396362373898352093471950280476691504972047034409994619875092053211190513117152785954749517993002713249266250552064800398112016124907458497975759338896887164888466211911727291868651460785257453813266084657359378007738966218562910045022089996515636167827829938194027811057524480186217419266630800621468891275724479666361877142398919541826288176584634066844546943813518980886672759217386684976208079558178740645895062748033195965339454269732169396463301914921974042452927453049008122858684648962968452836118514904394144007351972220850727494750338881168852420674789033579048917816435991874671811790337744795405413450269467903415142730844785131231595065162942307590440873772141912065713776124196417513445627259122710281930667221102712450866622064076703542730864736752718042880200509434711090326677642825533924378437271826789024126910866863130464527063203749490139915048744883023812076291776761170067006767789656855959329101593732146011460426444258759091613874313709334291254646662009289398435815716850688312401009313296532282871994466284560330808886441658968686765983391250075565604664789420444279723068387254746210759126379013238355423956174206322176819571383372500913053918393688370171933532080859847509455186926131788102684115123399668131234714164628172320389225971798440396677707887981680245582371603584355081013152721360954263771443325562048936813430459839617525132825523780529615707779042687903176888094912842647439836891833265649125940422668990907354450053048081737699442805261799126538693218939543768640076339170377147602144709184932353108795864677118822679888937018214570087811382433015389426709704585932252610314850516725472883008870467875150841682859508607762172687981598599455485366710271964415701590886571177604554542881951974998008437837173291776906155101394392729827402809649693029593705847567936276079948942323643353364697582295380188117786256784642815148685609682368021426773237424646702921523402911917492211815270307285914430479341222012271065336260029109291398366313949879347775042857734434371762077662331639550173021451585297435648384680524862102782409606943712492540507652526329775849626776568802060282119992921984322332090569306344500653079511016999110015663319488495512693775012703385068033853364806295459581814957364932137700159245413556295372060050163764442613009287727965142474262287758725529537603014921700843606327097297434837685301018946690435932109316612563655438801108335435293102141948254070921570950176030859315515552619991596757138175152089393942681175848577403611146637347338369675297542802890586882831351134921251164696251598246888546493503162154679963967401052046527913827302638071841533040145580788110602647727302679943241754184286042890702370259694378136785030831846891852709612204064346724942490678754494730671665911612268417638212225592863436252435236113837850098361477742261153723114198614259447701566422182956319934466759600721748095292198271439676050286843426733518326077042215728785576647197965325610393039025795826359130411533069160678287787000898030025938186152090621211682094431045197307773588311535824041450180154154639574533137732688004021629898438009187325680987885038958134404811722422226994834782477339798255270970751312100260829838279299644969218290016633518480531479354122307664866902165402879661441130407938553554060129266099727588285744013450782653103542912429911208061431647797271530715101496144615600583173801848587531576486755932594775865020376688365011497839277613824619241129874153383193612615292530069046417198642223835553710972945581242671595550662225695883397373301980386765490058615456202618280289610369692181370993706671889072278434847189299678829459724287159891043966384478569203175626108613095713909537721227500581645445594466171411358254090194459323424716231316312244079392491326521417434032659643421336416274449694277776754434800867534208375456954427457747297376429937663566380104961519829794584130392842786970754325021024945830137015480020763998883594613073442590732832712104927511375146035819108775303273075842274835096139651419023894375784948240872039907180922125776470852957180071120009317553810099527375719294069384812782243825777201119321759849239511803857409151422588653822092964609394267459527239660630107313386623100187104823991732878233236863562217646085515475801278124890000464129453713742618301052624560915486362636146664067730366134949526372024195924233057430140949053000172364690183850472673871199878872291985395590829404923391399282287009930001381158715988590290946415877100469802706572315456452917161517044704821829085695555942103281181540620621985421274839032299000231543587054323936514910673082643920149086125664870053682078327484272185712795015999434137016618378403150643960088321177423084585331702213740631374688900844802890458130323861009190737943487925248336310341011948885617765173289724279034702131109103552613208908152178961723175570286365379417607178659667405658614856313231401695324274719194126046491513625994949607138744231583250799474058704844155702634501200427232051160577364271148667574290014431061639324429481456978280082243347264114666999694000789544606560589662095592145107637442550592986827590943306902963146422420915021259005941128703774608328923259693625509479222284766486058848276081735814343126313231964566181103222788256595647932505289146153185486076843695136400266290651507907771275509818125609010376927408888852520278766284850688967035022874576974165039405604049062746871542996858384701903743553029234596070968259509602098098908686089305654564352275283675383392833957494813582027373917320651898010079866836874754481960769725976766373791246620101485476299157148336888017547119698098296883827806690120928555643479073726243378262187733077523587736972045512231276831317933893298520982208806112203394972994891924542578903944412926135731375467349217416873657820879512802841570645240245885850751997077002001993701312934457985720490328224252698377978659384749436206630207750161231529385476262012343139921510248348658307724431107986971116451069556224845178740038189530892635079205790114669959862552227093451125088801186923931034623277262450765362827230506888176917029863523361396978939260580240734403678813847926393804697243579533276893953321156065396062071606663954063564835581612283584470036906882083216648992210883175412691201932892952123573335983702483432433610073091823802705167308070425424109639458061516390816225522732072212500444709795561652897018659218937664613065208400475108497228629340953911232642194195619120143257572562469959923975284317673097837959179605401811939618474788053847667720403646344185005289890330872998263678870793399793529693293242531194809757653159325705151497130105991762243985591576809329535241486014548126716822234698435426428051306228507167860232554027367588222724454772867681872864486473812890966141409441698181883972664143940786797241063488098156513022136839952604888547202746866204252511570910711238774146815739308338095608171010107905795476860522717587768080547133633365369331700831611363925034212756726572396416902133161547636569466302016709326631183289571634291526586375927753233922194603919659399959246376726096270667540527591885850391718290843601699798541569316490183937380551153751367315237011209194725744864424620712190698678586402581213833394076245712752574700535215708447986690542386599943513419990851510520230118782612040581666721693333092931512902306738950920100913024023527298403571165026882827839112066468759061243728221544178049652717861352668041328432849088688150540676639699744646992430237472816068035822245624570007500946756710729030653574893517110353921883331557302620180019209558623619037568749813701251420668662014017052178875192611787268271096093846443102579852952452622118781937357498196911136713020328178511063608373168255455287627566510525584969341934595339606230241256123086921966266733148217493831536294733177566354467058739466581316112765577312657780607443856658948664505840685631616903264650941724089712691598954370071530852125740493157052804955038721051817389699050314627244642693935554049133779969940127862003366136391045389987515220515600315786922585236093170102144299094555638720356449313184994133384100434660361591734835608324274077222029282555727543612728998794012347393216966625400746818090586600585675034742456656510917667857344221472238099195961424648954793191561867298410099150228989872399164028419640957296518474624542288333140236957725081713578927568528967538983020307310617383462638097726006058119028382311606635791689145537334512115926872437239907708018832099003115845233025479282259889806099127210418722228525766901722037863850272886402892746489960925332186387023433889261499552316154117024663087605606124379835936257623683103958813446224173748435135370723961877447561384722318613371468119672670541997283275267565560359233579553906146930927831664726466215425177791469920290605836061259747514983276557768850102075895215528017280616461385440896162581099331403738734536636037351741164601711706266860687310556387239053891563767555495834696798396343078616710123014180487072704253109119804297066868146752880143617792276447935256093854307727825560479077484185569688774550768800927961692484558928769674917567465587240248446730225955339762872422586869790490871547744454481129020918808983382244661918666690111454071462349873469970311323847277344825497367711664057992723250503640108094816720993975025657102723974504979099042011361243106201314194262075904610978146908426776354211226831084857053450150912975338194453266212100472390394195963664478330663995103693794884214753646151805560003810169364579348086304004438993324887301444334084274975885301565643731379534249872370121446743364793456893810225684867409331966063381837397065573992599632716067930059046221225791600412024069270063423452048629819520027995024777761812344867847837746042454895640047387252886703955740914307789011101388751497931943259132641887563960726987322627481745517264172155758592945246546422115845493129528602143336110513217404701805966709344625496539091151034696146561642897194425791258552101783478077558841854741558153027370786555113243205950818580857090862139467254626040964104444954724735331949475708135550184502315881309785864151205541886834388228429893190305065715655762633796212564986746724971609777647744538398283857955977258189655774398842893667918590288102565011608322421496588671302476920012920352548656458127171134135824673488734156918837279741960694705812364676883947462692491147649394678126692701581165516760987938626168210376492516049911809597426828093196852336314086154065967158305083793906157814755566829397002163928020213481433588400017940105342722901789263253808796537672645053883394146842812675247153970617386388877304909571782189846404049879686686356207448591121673320886796767292488912559692939578220682049265034024201795356957444272886898474938519042914225322447003226526463702938786617657743371262362522009930439704032521414370946352171410648709452845413833727591510208405786424426692920366571031832308263519844646438126689445239317186568159680756619045611538983458437855878962288160034569804165382262070155599802242997730873060778758235295926752375161026490248988932516102015782670744520188015741623696892255267751161957070409843385305865678410700018102223654563237588791255462116973476509087373422517561719278403727519580137720588909128302511433591346741074770015127095167105708631100738157651970236621628169315613589566107430966505133003370374420552770436394089862527176122995228318799014321529280904381252727408658760981498454876693763982571606879050456835258791021572550258208106725890549503016748529645227159477257306787228682896691542750311963243848771993060257860414180382262877273760965442015404081102405268209650239138604985164857658233996291901069388246169040266967325162915781234049753024165454525517311041000967974857164294757082615191327548196664326694276499708500349265910889063323460278286860238379715161855294170523947767132612462988764587527567689552034338733510845735114702796151922236799457680003181926237831563569334862227358237391005066750954931636059134952265834826816980738631662840898192857993965728561199534005850092909890573187166961725062480695153562739017442466678938638421783801688635438850993270771770413564658599797609755968638942705847431708783533822542185977040009719733675422956613469006465690149429634373995338594457405057319548941871216436273615787788361349648019461649762263427668406844735529434790106760133230477295962555056434125134399358731925312187996804645521318185766564660976325430484649615094217913917120643690976341324228276755275956537602262877554963774958315604320132773579647877883552865125132456675160382259955068190316330679206817488122042572851086775318742825403511501280401918190345414107249442714189775395954885989895405750108279681084223898704123895351719705877998310589875568905196698347008776903177153079758471469082376704144195204394158335443172843348090740279884314865517265882870408489323396228839059184956509080931582261332491425648811379654468025793805506999328446708109922355359524538040588658181315263521203723419225305501392824953009769239235299974436111105811475947770520525290543429955458198686055574463851372856162927407066655660582716190753295910983008404456775798379582244309019886723983780416174743158091456384103287370790478722996096336630799366941737724071033861281458464492696786642928936027898685537031366056751919673413126264337479647445118784497201882359282811485784020919534625712950526991162769926432512011334747096632565470137360071745121708123171561817511436830542280445657631268432536156331115266025889077981032640855679622724624883029423056232625797513613215614920241381491183206410004089315752439369262736198073556950662800340797774415921225750163231499038233946384963364730419314388351597785500596935507606350719198808961354554519302408352758515248057463258280785287379326926244053134111957444920076389407955626480145794725178621510864161888615145358810107641492861027574799771937689011594301425303944150427074352491671307734810153901942717942053641934860285793065162929710938154491011750056677021854973403626001372106852700869782958116659154162887940169605806081513808251682311637080194455681799851997282163152514240929397874444934259146664951243657067138252170410912285084111558055665106365058117293398021989724361640277220981689257052775153132774908286734565529429726663129993380740653929023497953702106676665214206043700923750513010764091449743668910554096912813094098882386206577902292761633119723438934309091624528145126392908202848694472039791141944972511394258390325185403044595674052380511565768919873718614473849959743980765336431478764833406288826193009728606337274011250659358201985828355547864391317698017409571115129493703424205063762893071105194643063773366197603939024359759758443407164691177107603905224154024601788048217217565210614227336513484588196613073048040319139962943901804807930816604963100882302206101363847569605168817047653634950667042791577835106737604905774077712359151514289045056433972727133094657374339666533499288258821359354046720500763175356775086288481698534409228759052270095621440761235822021371914144530029402289729665995658872691725702524705578926075775533533252322861245047354478837703204998857792609079527981029756863914695738020646862157340978539520122664346314533113438617106982900210524061490302610517429368059634914911151617434394895381031346195265511821334013247251541491524379498067133545808919157663946287714133527108571700847927673135281831207341713672462605576561745630862621252810023196798898540484148315387635428722238429471988039291108624116518219982992850533009929138943731734238007068188542624380996184529658296632670912919298741448991019831999610559139627781963882570202785852572606183357439549175562213020952426001807591770267578627322774745822656622792279165617757879946618885545608384284119034141058711661863670923439924780404598176020417568150283544822982011707303186486617617025233996831200198520103027346951941477495882145816584302932564332041522699402330022946720044448259938230887304021611659932011283452854113310653246676321289183745543369865908882243719710202109861359811860354775069748233194635863133036889846857678053781275571304053682540769523751692103844442099939220455886475872020147223273083140288575283257424338565460305284099806235848940304622091799583281031087052465740691725317824331842977572917794936712820016244407996638130227129631002351527707229811621271183455558293789490868309576484511005474304038959202668458908148691914436095061400406563705284254659292716236860686920565814810256501900298635049233985787438250451399242797277356012523613335087461123382852249667682423177675437698668006540308362713693271175136529839965243167959062050200744356765021950057789941332656684865293558972731574002880860480672325086065941243683870717130514146046420796918686547698844801381926771725922896994813726683987941967914286330255941601391595529152906489108165240255081652395387907585792184950642504947601734700138212135738749120159121477403293799805676666369195670844412420977694827099072843447894346717511832102639373564083591040580505378424564663861783284121087923821297595635895566739143696089546565653320175156225518958966524882425057464583743961978409758368372567181493756806626037777656505788870340321240062558746224738143944181504249557590588525116983907239051394703924351121658585694503447318142870136686891696929772424946547231730987421008103609890942158277651086067093995387040593761177395287376680326797468976124512228918636501395699745112629189531082622112872521004729671447200074712475700374616731197643446768344682738270842666290822872648758265229662170444112101121223394581378859011730249628967584610524671295785922861214685891873832194429254355979107529931064406824315194223667735578392841415683056490797373254545336995175778045167482415299538921870217233776934438223345527439260417551398929756256835898572996873971899434004207245855521313209820140764298504237238015387343049922998065171174111477498434714345335880507281887801622852521185372321092031990914256630821065489611610285658869666682021753857049321865109520728991392615648569171452275078814631465821722929047834174802899826678124883104280768638814601090185779595654729753216240650934483955850082837115548214830286088825155479843366468511783830675123613273446323243538192482516071100182858603593186608567982646806014174189179779986633558635821020033980269526052953412312618865614268129623392117629222219295451721669784030578348109822455033154004069026741993181381173749971459921731148192995786759391303981868879024047388346493942295945401090018641311208843327638374345845454773340111800327741786729398311274801100675924460692180536882693101069471637719974886258933792774503537214914701828030673839793647841289723361348119969666176990263388094348694389101181681526795069048096487290629458952400569950936936692054434557489775835220596811568526854712509928687600738147532016695338885189478723704013676241227907151282541138620551787271814837095024974443380283546749432461366117936187717757991196047116170987405906212210953218529228038707466618134602259957178866169972765803284643887665426605123182950254928384257578072458315780268403394881155016748685072580782920068821203526202229234280065091947402719244916307163854828983197177521044365054394821050384463522575190339464767791866184666333846107192974490328990737092994924056657554999036643607362656236040206438436752036056636487603319609700829739079603564262546180345117847148249806280024515846947904936143299837129649091152354273674657476327633100737199101920833955616989604243550181625677332349237918657440772902254439776456231554894134864724139428522924401559292901879070574238206818141803703866738682445312649384397906254714549133350686920551435278272666073991243042148643692373108782736814078453605395512009517000312927207322502861248449044016923899289611196610496456925274249921653578974327571036543468545987323564547989420662401541860891471202118003494137626996860912938478568299987543345321154255799545620837983997442671849852522660247513134628440452673440289070698291212333087411964981422389103939151944842724634468808572701204278222532250369868301952641426839172254701673349909211748979067074509188477982580391797602026479475663110071565301865234320811463589692708192713622325855693148671841650136054005289421679126574908963374348938126825726204661118922169980306250466399205126942412129510839566144895803556786602787272920806773107597491188469253018928014646169813467740159055522508145391886823241470251687950108547817290007238639084083617691328003873881208394409648176310119641304982257966086867046291266505040416164437207751726304923594532641152663728736596441450826382582156626943668370696023754671385843518210445040616576174640694347412750693038595589776433983633928137191784767294754300958030480256245035940802070857228716872958054032348731740858921051599200892836447222285098932099302899387088768349233961746961959513653650006202050221388698665281303543349754094391394650301802507484894053200625757871768600407865880049433970455871176192428226592804392215888799954703087111663835236848485979938847207677568084711818511697653856148047470180795750343151974357390546452658037122005387604199099981437188981701439409938809362576405122801931969087006582660343181843906164212443638721780662997846520286303268275089542080982852460868264671717320966928508264287643025959313383857023635407546840101724227042424435126816520301686560463717959701694925404552406194967429369728591227530278887956820234783599104092769391417467384286359481416407703710864628670061266979342464319502201248697888672985990194359394671527408535684785592050721999631575032299177694624580332399307210503281595223973376842887960703654548740881760619128273041050889875971105034581119878875227411890469450273558308989938969821988958329024112923314114360419833051997027824632416439388473003147818192410916442416859529193744436603883921040891169140997767489285631710951588256972229243615601503306647233649817380233487576351592487201483387504356882988788888381642515255952763164498978663147488457749883116824793353621706210055329066586744307684185993743960795514837844619694563780999366455742199017576794909517896582523402238511339763488272870267099603573561737464168586300021523955400267512480726254850663637049081040634175689933977237532788786913149267515450689858836589200218289224569640313871402210339927475260712944112193313463272824802389098313311691094653234090137481627173719373113825961620726094157968952489748362617613912982460354914287390636792110377350229953975969147701303944193597558853451019800065563013491136189467152985410819955843322305373024952034966278423536926118151368588419327354633906567560691239865672664879564179699862973762346647127892589356195886919926480580898502010767930985807058224896254727780097374903378834335334171154723467755696721178969059635863199287136755258787453145579283419417232087306209620417953465750412454437192202210753161444242689255613355924570291306771232062646417940249923903199968622058308235096055010042767714976871160966473006007448836015349397423171558276501320164659480203267809558598906716488657209750950312402582529479948715432701189602132558702101849479066539194589482749089683441630951543699224974268249129720946739998957284937483414026132055266502244437149594288391849279830727977616728974124333568695245287413295778172179418786631862897095414626926246368717774944188611058839870008955431345855825153264413163699981872457407509063486116965518840392970155293999121486053481692962829251994240828496288767127781645516266708456404636355865330940759640046459763983450158564472585883364914450676744783280055367437054024061703890595477290364590479949493042508555689513941099189100587314909042163682138565030412585483470510910840748467575242160998728279844184646191391167841195429798467594146977077884201408387913100185117088388584929031697224685114475122011032349881043908907395229526543568835974175815135960000124521639382622146640580165805560019558463970053423855325876525521753257160515354004761546581747361949476969218619869933803212769171480334877147746147460697306224653312774056416516255518800260628928854199466660309410710830531145098462014305415762497342002324620931047021794955505483682897310508777355359411778108388643274800937545287639781512433531409843962751211300954352891525948104943452933120039772379547741850227781026171088609547464251958024679701899521804104092092764404178564945633008506182364057524160882569974566534973372235062558568295554587086365549198941189490348808965095531676540167338671862590331215977761031017220181880810081011252213797720434377693141843600371814359693577155942234380072884058225528225901596842251638019873819622231037586203635831183819526281810021511612055579338060514400698056263278956735390086328567494279645859388807832875545052132550900739339578489712181314683612733173234916792188235796436136940959201491148460399625399214752701492530869377832787640656423484064228226810956982773123369953322100410384686165849320235350947434834636134220256056629611412732822346483476805753604742410092048371429221376688601734592047590817880217104905426329772345022070706689704155602510999298962892966803209722354297180869185830123614452959279320307934252032677361208063007147590382190108168870340865467527831131669811859767823841778421550967357326766041929160865402292685527538200999588819007029473615533790556056682271667098740244206859449708515228535106888007069016079132036642817173696193279206892404553590783746508135522032138226089293857456627947900822098323525902843076993143423911220596575526360330926899003013675272845277257246138517604202191671949854143272259980734879039299185841780632861382181121351967745523680631196073366442865050244840844150500254780716767770135082527215143578174595562425410236798897718046270825724733857171131382295700538527282443630068653320748581074508141822469919133956232856086606451249480060916790288139658712309026329622106392974280942583838828054544415147135550886390458900917476074636836096801381674002876392796564725790146163404865177670898312570545241281227686882766401024249744820025531327250089354194531895093458619441212870868303758547421401382559089098601644172613117409134506074998251216434978119038418441811370926058727238678147536353352020438545880604151278718693931517548434774936467752214146688297212451135156213194643830615424765914957714806462328618916418790712243362885459395017721223730936976142488387705460114630437000600081069242547298991629160066407068983982439078804513411767428315814865640086559246158282642261629857613759394376642294779513893274767814431385026801878913139405674483116500085429494927585100048349150114671207510547508351557582608146465471785868214776686063030617138949845772763042959428705572536181776764313218044949266039481796032379174604341980280679019118657076066752592650515362281809445877958429684885861330005105032792533528656242677754206550903951724895934064692105899607698061894940041674999003327425893816635139157685722723921283925042779284937792036961639347166130165236065357695918574873228389740872887790884749499375221588591120274698012828187462297827588575660168776289816078453898843952686343543009566185318919514838613199315219500669773238988460972244381529409433677418065287132287709327291097691380362378264454269388105859039323512077504351890570183706110275366748883649084190951795197091085206103794992992674662637015538829778799236242148477053288171778228795418680328049461262807235119621345395158699737401865542490793817654075511123230994074647507908970796236943294851763009872485562527347104752164531264831790459220378277757116408164003118273781300156825461657840665975226815970569122930013648170654009205779274292407315602683074332987857014284317936747352772206174055921510105638647839263268121811282491662844223121245211255494790428413447882141090087901423834257800476271807699699290285550314306037128403642941362810494912345297420101444010117637148071986841099341087063467770529830271941034459462217985650925885078653692671085421890605531404160547801069270518070356506711954765358446228220264827725072103911973183573189049268972978773168884705882433926123192508545937917577861698901188917960438695621926156895446196956990580464174319115815547037217384713721824769033508755862809966360862123640313574704319185253217183810961691540077183008422734245394743264738544878826773225141008984474256558992094276428608769487650550127865710383272270186598528670997011848141798477622888615956005017606169412483079413395169016513516438444319087696279997297859120966967676143745588168149266374266143376624873285934476589082878156851471130466052299113827410573258183541299390207203884237012067928674199717601163956130875282686883568975958921036292362990712761720166146927820686997661432837020927166140876672998019551717257949367653927881511904307037670997072113229416130858917887108121022068933272976215489235925388768661389480309217510737980276385616470259483345768690934304619254107408613650944430975708828948201717464396450486952457951816645566185860042404703436414186200286756587606003557617013405862156758444360188606666657145258917717506477174869294982970963573533992365777288556129372966290403079206527301247759386525480727022564538211649093713023138486062073056373316646059275808742196051037219447173566548581116629613126279256393322350524752007299102986016266263664567463542880761030207938983018656409485656988400144382564477255048231395332481151329544113304079884760268773405220174155986698775315211127019765188996088467501392640625678133702789094639457442083091443604220088868636567635206303523858696063073605445049639777184969200834975531018928715357332678666473223274049298680884156881887542579002729289879606383697873152266964925805175169277235464696977533307475260227924667432326218984607792486849200821027448958362236444701527027780830553745304303601455851294216009936327031680989195588184636857067148319518982939975289913880142393436759207260562880502777134720940555122101580689013078431465141071867963109541646643146709361240941442350505033524209205994688051601482412526998876830286399966856117602576623191915892627404661873967281631920729685459804887027464130554240289608184768287995432163681232420723412619230877456545293549063266552298988054956137279769358082852982579029510911118653835961640124382189745205195762392670582715558397189224223479556670502206183679918036928857397248119196230007534955672396771332694867872767325210016591126791361988910024265440074114647930268681617179706322029878094767082026917527183382770139855597860512976910987984655207428525221649791389478533273920868879046234470604755521073653009129429656005368537486823419260033924885507249168875265118114619903845337224165555265594236455286131604080435263564992954037696767263938812372521390850386027914720264710229458290427678450459446015118561054991018553712037144705319941825474114118999304605732473811054717133938673491267551024646478014654214709094876881483518357329079990193519678014033350087168629837523939125299984452465846291455992250845931779207099070755217463022259123889237223766806281312696049187277955425784760113654249146668242089076376761187966596997652775020311389684742273857459400294814821687760659240086190075838891020301955048974488361998876287218605094064379983715466611278470681158534345770972745566633896912877501533675129565683139155783172466560418735129335750162524614524255796301542484435152340338676651197285763203700654601053394352094239661239320183346722668384507108492360237630302187189296392212842380933313788818631175059941810493803317214478075128172241616045492052974866274261983788171898008757946058832061886776987752773671424818146348891222479738649992606266572099713016494795314544351229651854663361685614817719091349231984265777549807943833332704426408490863131427641960889909398191898164503255345013795257298237789024899947116560086392957896724396749912574217391317613953044831480505347795895272962862459070969535358732372199792278866842322775493368399188095598163127079225449732156780952028857346039640725348946077209094790283651906161272778331794165547443918703078540138957917158880994882262106154083646703160938878198184820031334286907673883246288523172188530082629651328032829583103488269051463271188513869584547287779029796922738403875062352949555493804046799635976139366411835495107475292223183596878252560322204118831253477939322412251505244611772643993457126050429660956153081267834524181237563961996132160486653590597321862454784187869685987378829352249033493214251878893287005661727162880178145025977605230286358630182436983141411018592220460388554861792874161356613960835127658970283133403267692126346550011214152350606928480757274831494059659078487737233939814578304436915109934613910597159081455776481151537668494018471835059101717200136429586367677786339827677451278910830618138170473843793102830804817636965174114084993534231490840818763065559418882552146270833101351076905729652877979347978897117035859820897284172029661404703406357703204795158043112698575665145643353356785181799457328220920912860518295700691989676251557803715329816772347259820984403363425555789687496639332835946223944899909760839113466265993286439233691753582125304484278747115724824276883246410897864516731001780035927104150282873559672831248358920864749954590105999050488258539873290058448581348694623262254338198603011036251922449489083727839569193000717884287216957249835259689223253632572684084419882418755767884946734390766970889264970497496491175121705066864993913798307117778503462124509189929271790443597029625195049239239697590521698846535858833518848286470831985605374806271857120512091409985135852514998437987668553662178092999792423005151934505985432611305406376231671242343553878838795877051858559534342930639473563446197957155540321330924091522568679609934058085908354915677787251523923946402445931570392955262429758455621530236033397827964652544234994334704480290815089100538443144816540819641513204094130729708307756435507541486876986472484530720948634307256482237318593399610067371142777547660389670237439135165001851380469009678307092146204691554932481675330851731999163568630701218075385783849239564554393013740275193821362007204442133744089922071944367612584481298221381777296762822496214264475091405332653699721810994395092969724209848967262695863331348549890795036186545924478000519197987622904202911004345781073856134638479464874213032481358053371000850675734255166243504304132330483471356490087345977403218680831069846538828754586753502424338800815062844838857857750386458605519271967321756333696923141108544967671719049410858546631318331444031432777348522587493665933218581779112657796796181655740227730026947664760001860720047774946079028379878888718366583413932258317268483801031071460343571397022205897036913861958752706986427464841746601762390580532656297393498271548001687281498244736552194318264601770039483013521077455890966521254151605287985206767547577344357780497099522256331075909604591678082767350734575407722171524297098701754236250950227051215762753085309957594771397695979546876577070185517235149451805148926269246330409216731643788719273350563915787395437294192582322146945740542122420414789326735656910861425287633401404058103964978515772387758624261216414258822574650882584906533762654950456245958611687013633191730766199626106327594198767212342048483935442302607928671715284859428974960581142634167393663911985698235500953308156892686682829613206855993107161286811536857172818441982676527234021686775841530837590192564794574082498850923848283719451684521703738257431551505292242556675400678987381182910489256027383546626669872787868707170034508140643389901931286321354824504797987738364048212909244974854203073488626789406685730820882759243678858371788199742919329191732970246252008151931371594239135693139098831530186744515154322049199947104722171013627410354707600721763603915523693343403574623738555881002344895936839561167205938066073339039822550342746106178806175665402950308317197197636853403431872860927042545066115931601486124657259731550979431472685230374535274070095269331296205997820957945567096382154619272176064981777883527388631037072948967927118747958844074728571536632114077756556529365456859577225978885311487560559142500124434115746033392907077303518942168544301695566483171204006682432069571707795665019589094128179994905450434521134263153109053669304106904091637796345023309314869904056756498192055450222938742614357613179473509165188766464864880620009044483494824481586309179211288219456716164902838958027442389905989849202651525477481543384823755037092316077637618779376555638402065872526249057165587360123927192849270976556611943358995868837591377910945316133826170692966048722332441882662144182375744793530036691993845305213501588775924520465558276746605611409238719107642922366439851719627023808990749208810248778649418462137560835638984047767105282656868309493288296796646150733646959009042313420203443441303838856600403658176474204841070825678921534940896583644963572872647085964343515979220114748471975934456138950258010279772041749262304775011138407082750336850361691406589199574927567969636286183451613136345662665373511630226133119622166576312641882698967410657036123218780280056741112981495936757767085785998067844996593934470015330412450533550360172524750552597572450027914006281894144445998329303334974001587507306512159201812984875483703691938035758564535065832989300086663435551547275326382759570489564688740264039454824937495208033099276023605272692176827301803672830178900057545696835543434504894949141715519623358768168108836934250215223690530412984389261756250195020705788448711820601474717032425590244449929982005514836008172371068724095334106733605897670626879876880007949505786601837139360370345507739084229285265255210601209555995382191330640966578523109146601788332342341917835455892910696048341612227380345501971670031370162146402170747399541596686984345300555408124492249802785152865086991711192997181366844060327781055726915236122241007804772609624328387425561076152196379434546415472810930074284027957728022645062432388271969177231892323991346185933278868954002290266080784789795658711013329160010487397043891312702917243180918028397658904211083341198137550378856363281763556839482568596432640462302925827299883309678448941287400634441411963664955003763456429257393188801121163992291326627866225791112606728073943606814178739522215712040210928741289744693168140323613444574555616625600600681364204814560480428761013466031292235986441304581130509633238647787889537709515978345155800436061564742506286039306419883842700254749666039365229034630200694748277835335488789266279648682131287305229527669024207209716108037273809474867890260536830696246481812274314666700788674886701688389009468757946835253932635282855433485311453699315182441035389177057866583997246093975005947144979166313409180483784687377001215783117368346582711229839819526162946411527859140415043878338112504696401273780924748331359107193293780426429269639102358351515050466376126040341417114335177836225687997212599755006194078646919932727571684235582346402664429033693276774537455303136662939780245579879993395018826393425262840268308502396817005069792706415056081160664875734994141989357094718662717073986034228019170609845783606306893538157066765553470726353179403293789760301328930525433321680775565919149995326582388321591316215246689041638866773337624019327361325413113521467954668327651911537746753559615472949291099356802374146531115724589744722902475749020214771525151828638226581662770365121409829519744256970499428163335874940156257803177244143635638224542454269254589634093510068670597637397074082949237294702010844943582028166294632373698984808556352216944339337954222512268935899201713705479163486003386477053595151730517004490959070403558258119037403201163634607758736634502703059810939898534836190911934826465319599347173589580190599326804282613354487935238271011947002368708247505976840730709962865111113589579280941458989241762767005867327722554000802270773289672273546506409017807090851983316716608462544556565725560705046584286836263592991353274863136901350660135482616844140729831441538564848358458379800263957560304445722498212567193459788612584493914166024582844267418233344087215737203791728454149146829782048213852213019353553601972860547484826218164930831344186913521976921043205915247456652781146484607525801438667209619088213928531555332762297471048817334128104335645595303311057066974620070317610281061903362015037498294534964404284344633318718958948942230050881521499449868821578509445104923614457777139559586304108761921051626757521456716654031404091287069883306687720041420437146195006828880002399929475245331295356397274172483863499675028608085460194908670090934440316298839985638036325433449866345535908764479919156338485260011326876500689561113043314932534951256848918829701342056988910926507234489936914259643507357944413212070059934075691233845737905254636766268604309334663788595315018163517125818975284180522289733754868234949439572718015550316760228704500579949435649694015831750894800273963524065762723325013388619017186185245591226310399867517526595708203442771642911197139459928448443089305275146061431010763602164803869042123277990390484593324405980130733079516563615390736044995183694823034271833518441389325885204502134762160068829783721474772243712702191461258708467552175401006949068824148498829206412788957264257950529669512620761319618606951322283029113438873163852776050328968963159561640888983945239700144888583391363711696413333542662992996082175672589233776605701648726040300142970754024725875384063525250812461023396649269921541081092680756358890470732837948270984037935429629915551973021331588395447703721761980902081047274254385687549684415950505811517712121171701381387246393540169062352880253482154958548406651090311970651378278210236770110097551058317100272043621694210019148049465157676066435583025684945438164958882173816178891164869141133862345711020912573809290358327656496487527251842554251830243155630144772274066650659396469085868452078929244112798846148062257750282488126918975470332829930230768816344988787534943593457772828307078354151575613399060506802075069291046466799899751995954270245669426545220338728120365493441408668899727345720365912672400275944291333352401283839017185487219316484093519360522625694995274670340294860127706024902926219830159023062621809012772344021434299369994416348096229018479791326583703721387301403472381486923000122018789661955082301610800609095302035453631110491459536730776177743686345313497959693165686574915485734452510840144502193962742876741498091499321777003251858330223415949581301389158736596656046769626102648149833797250728713914915009636439181017216674230604410554729001962636313697235023632683274726658850160082767724095916811897192712295091875602501993358596371840635882394988568821975292560411000545332502131989318089087699667736211852968421401221808375843546720627182346375809452625200437680908772119662054343295761662476029795503378739322058891619999708648845800717654809248789527529382912876726514498488275021404379418650089802049197622353826102691671448337930323101794085933198763198212530141638312187107008820693760670425019032310741082600905395444328585477067107899513995442390042798319754347053191463534907728724853853045039173409134233810762333920008577913704614812290685188997338723654139270489820829508868021598359914706153840292256090565641121932833248403598040691841246321005587644826203839078290989998182793661808681568538409523862742913812300685095086139093170612983063286245491874518152849149045545957731224489584560759853226099376704241210172111667081657273605272256400565250604758399056522058419810842887666841153893127257021187786166077207227130311865510191902296423165858883186958357080969793791441576016743559180246590843230606095212225321249907162369198495954986266090857794307937820459688842892400320318011470488250015986502211736437289671264509086336189340733020790580552420542066104617931656492592804232917090390957637858667656069504312207622276746549527278651725020223708861578452944590169240168186477617814673373930255977160283441606674893193247480165669232022399203731844402745303417101084342239417215239057761586300457521260531116992751638114892663841204024967697905383408326629379922424111580450714184583032667698977101172059162392971930094570553059652230954436277219311000314373143982547454445720698200112309054816342000463575582756325103891537543047089670998841270209350249320769212020418077856172823122689739859663522986819956806267391919248811145426768642552081512466148005834316642262588729839865634485735210178117383014704573547557475386587377689274500120605504604933183557053293032371997223651103385685670859159884277514814456306521650227688173518662410629833171379885514679206144652300518826320284260481250910024877331021878839839643828533268382098731051616426169475781490756352200903972882777006220964248936107086666817970166864662564792218470081222245253571332620931527492027430643447116950030641385744939138333711205336441887311452962893369951961557001459898658418397755115138869038537236240369623938580135051139982434968287223321851628786004706658900451872027669835079646184797680090974600607189287289277100417711982786294450588962654375726646541383799098720026153572320639911524940721538069047465751687400254515592239059576982629195011927977496572401276333051620001291993854547188891474861825476075048224015430185695515019766854756708152614416845128460866099007053093559245383608343925827456386737614004257697609671642879491618961979225157464922770491746069034296021451195714802390737197799832687442931114861528440347515180711263860370175755491043394224015479334462624894937042402125105036742820078617555455690278619145511477329960883488925521154838232345934109947378321037225741386096424299390271807585190542825847931587134436263039160903566500182331994408238180885158315193940124267933892183732457349898358010338949875196862854971881434681099300192008545767049260765044435573554989198212068888814491468986918246951074118080952107133063280728808877418974775752338310543141734269041436246544379000883201217714741072567064538444508740455849281014507846396619506569568943800986100706923342050725104794619256632774484841216942977149661789247907238971652747144180670752265287698904199535806998642954036405481187113462780034850144323605090767890879642042095842658579655565704878152469658291959303830991389637822085734245506449949718998398090750686789966225540146253652207713230395776663321264511265895750952882093261059417238172398522418257223346537236094320700522021002717392502535893000541103573442944389363054988224597477295678009356784798485326214996127834911350632265759735222904976092933715474560707283486176487509909587806336378251787762223393196140159995004988745218087169152026542790825560770625339303528946257062958754100708278710650626852733667848218957562601378452495735291363777984864667797423307254609891272868973052343503602381103100254274514365931112800082993865151376419474870998622382123904238896783253795053275408550292055783564661876031957066867594547967639601989117492167381486700376897248309506205734112378098207075724314586737860413791714614668433445617124345994336960832031653839089172757912877839302953854977625578977380648492594115150696252927240976402396306148504040560005762487028631387366144115078930271210221111054543265790600418970178432927925398680054756648139509714677353560441314297754939139162237088069163441233520585196807951939417505739862404023428495944441995874912701644321316097025162090127441775003686863869293872802976324715969767444482891910372083332433312182107720860100335057062048611530373870685145261915007808519200184903949293909825927193330237267835332162790566144283536366024668410519709351253557192057370489481671910138753878526532463661733294192743577199676385698281893225146148027491736307157791994912712446040263692840600001770009656290824156967587652437826293961686078993056970294742151137587749693465560216520109067079030910749638059079230832461730968946157889414182992944937972105462971809863790139787092152540836498003061163770618389699153125124633657863603604812624865781663361890743773122271828368173439803329124404029640680133808706444305005356579448372387689494993704941643828427440102556339432286033374511481610284223967682775298380744106992258777772540518712260565860929506393379771602163070448437296889265235337275498137602135555196847556966901896152824739463164132759712490750382379928127331558074615554983261372613986868704553975875330980109189462535982156459708366629389512423793424010304291497015107013958504854473250648224027653842086414741742185405692183121354237359623259493067322034379009421437967013076458772362577461881717903033037560070165791707537267757571624007125784269634029097693867149680204885724958343046640358092486624003805897297969432419397042932872598653677063367905635101624248856681356169085754738743600005876716771940235261107355461462169884154644621072702792240116778763880747383645832450359859845211956680707561250471006681112302745153982497554901233815795126894944497509876687013649223940316436949967558344917832872183899358999913055387693139720285943888651560968595569295437800107323139092957621422610023729553609997946898914307259726072293314664209113161019215858269954781861153549120348805169670934690057648163898204738517900500417530313828060905763884224246467512101789298669790705077501854537659835921614894504447481915034136670224534303694089432173824237227529686368033785805271257229478672852916820719200360462091195752613192707100044948243793695575469906809967461933127038257336617104000484502812146125696233838611679945967939158649048208530162657722266991679892045121167548595208619564249644916821374365855100744081438678341010917949571812159670315789163800182399553754657100426897838547688334783165273688511851851229971020748251967003143358516369449634131012856912843426321469897918435758273168842459885793048620701512298087932382597412803454377827099179234502115514841509285774764241128476879803254991403995284755438022228753441167291426888964173459925778925507937133680474464563808767821519478556338635364281631548833273329298718001174744188186441401152110754115080023364985428776309782191303661747434227476612921369745357683290656352430511389408802357592830446086466167558719166857136586663554132437445878183109238279671233486245115496433683104359453895467882371376301636110008278774956104017309819217030127117056826283739059552733507493722618856318096207863954111086057105431010445193870713616013202074240635730483097205534383196049688609214787055381918784287936993853733932677985758163713160909737194839433172574031793596058601405300273968381463169248825445460423450307103563360332700254039174598130663281831267575367415407673854855529151120887010710070399535221375270533942882212495210082774318883660348712520211755767344363924014581234556411443147273361320333232681524496853586333604448345629851804729051939859849468435156728937540425783736728003483826758360452504262688631067354383254777983074248577423430896139193359697975372230131741159485770925717182160694451400612345497071576045495658992848876502108753715232909244463868331833149378680059822266863120410918440805867407536051985287170641871444991884955166676284153786040514305148375061954003074792765341243863350662585594209737376459445798280991630385383219710273118934404340459935646622772840110753203052156894985337666102687104001818292938738667981116513052575164711393322474938063833484819587028687708464595800170837015304372384668065189630990553744249856504774506057770681524844941567804977927992991617910517186787506467853950414421294354352249963501179721247696991230646419600031696689275442542129989043138536254174381516645281510472926762130214016878273137170884098227188367932376655181344821729070384552031426799652268426256068220230962318570848165523512245305919669810133359112158267939365856474383498675145860630543872899072498822708325252261941867448488489875632512713330966487595130975952678280624846674744384350237437161660901871806416683142876898505760055601241372980885698469495002778123590531119945072703917665786951015039512956901042256219086933711526731578956455863472114602616692997150621436509210426383632356289184241160748882409428842484714014689819429862985406965474220385213452197397908240092661105249118831097153554282007956028660061952495247168316018830647778657431496684037982856016731149155843957400855667471738952540639688940980599915650003760184030314475626052324139421259111933392753287104764962903652559558961030809216131643488989141658945766137863369561210404708292030658733336213292876987033871443783774870077081991074668191157576707959976583893793559993069228161782138858646136923473220663902579458758898512301716432406838069492915322182421068755127358522561975931986857517113549782904892118593350307090089899945034698532627782852147989987538291145442048285045748708624863625493013062965346809607996869204702533269484092286821200376291785327191989493667586016358617601724133399467665470230316051013970729960186352927306938495291691980495412938560576701301931941666083942712798835204846054874687402051549415089627540172556629062825866639746565581272640513206189968997054081811606116307644092268068368449479591221171639264201849225467316413220691451723069783646515483399083378193870360952277924650258411626951745271200934547657274403020502627015546624583328390750091791437296951125889423716257553834566577721499120263467405486857807892313302859718343341136123968049036832274924357415711902274330458111404737729630965212971044257007614615232373887053674355910235197792320463390958218775160179806541028572030681485242875146202139036356830508076755605733548879979547715439688777570289339111939378450834455891338314972224599291260841019401126279233351450384861496431840348094204971109138123035185992142422098400243396409080656690797927641731533234801315553391858227704643964128815373479210831092192786929009183169975179534551899259273504414344311987784188273011878042375012798923426437338092034166083258377254585123441299746300542264505555533456040971679390292770995870043992716815662784974293794478474083277667531935242839766097886717278928449855550453137601934280193604901502183408909592793210685700693391901749504306411573179250734161619121919592537368297004770095395592289407730277775189495747760958166280817492330039628144211197462309457597069324036641250592195651556997372195343010476417843807146088939516519533558899363934426090568430157046306719497788509243710303018054548307463264673903817118931878835455517025330891972500494810000778197512804982430460760926380491376382702172358449973962702064373491763166494770332682135428009492904913725073580766939685038938769199599246148714499952395196988517613148023517257972125838514032032937433029423743784892317657505152449076272080043545906588247378324771441046237117162106668278289712150815763233360536273811769019820983278901065982569359552469637499564944190406204730389618035174256533164192097447404983580262105204756183958433276321199600886930146038406089455828165831772357603896963899752353298449281840908902714504515789849098134785296510975198766913270049850338670550427849859042426424437257181312499082228460141140417455594210499069811425000212411566016819440327309095711229891740303571696322645296333930944047136813462158740186930773080567329525712370764379819212245196588268601965881402439533233934774220956649904472545125843486574689878195305958992701528855054608153922087983557560278004917510784179219709190099306773383352790123325967977050759749267119660896786506590613114567912694943960729763887418015985349550724129351760196952558644923139036307997839021217764165981777310229414586810135425524940586517609196910344861160224763920762670581754778695688843267151300539328509183258850937406636051991656115628799418136073959826476590359017961102519129259174672440002050527028431838733322321482851498498339841767809162814577458789368338937157579417732764685738854013381271087936974293425258385015544471755569075925355810591281193545448659972065735775501520995273506832814294826979753751498935185129268791695273815975631889494691138654907754305697157681551795018921612259464684306802105349806826094758862374179171939430089513192195352492805194143575529622737371228345232207265185821952247513664022603999812497482992053877113072976687825955734707067780520021243210576020184843989669570207009399290269062060955048315033070431622719463440871874599568781698139592823106605027589164203554981665316780660891581351095627591500967149545574729310604727524180584590947106014477972243031551967286980369612534954745854009313010902875948608748840051198261841134735037000736413814491690665372871270412839702690897697088256361332962963930111397790595955187313884971459315144329409059441863866413117744271908959240782911778704581343677797959729449004910819100026012083214369960741638513515967329577916174219642900871441782667483002013213059204563804580343559676701860764894345786256270297921379175494743136711682530998112065435983608152426470035375500540716408044175246668497005544520770116875990481219481624065823816755801164219574820509986782685740404847982584399680580140863774828147204150157410670898312603036664958176439258160871612665317555075345328736604893056740169608268197050680101779325088845678626768682357694756847706530160831234759235869068996587270464875355781113312610489368359111454932144790594029923445453006759644169385921971970163280424982064974122638624072907722282256070116858305742827025529443370977905879044452237942967999384001159929483960041063784510292922114929202032947753822963185267865005967765501293430898464093376641523365487303252437291055002108894824594140224033567478908667814475060078962920009593500981323219458054266915168259923583173714823874434130546329446251702506351225459697825784811998040474866267878225588965470318790046830159091688022675007430469671179618174298129186016717061074371632550405498083286935838030323977340993062309809745619308173993623370453971582339807615626842569236676152019894165753021443709714657603815141635162327694719016506395489014936392098729493121541808603625574389255099021406679188913019399577383752747398505866314820778345768704416116615288591888446471425472290831744264137709695295358704384698146020176177969551063398516884456901083126687173144661007360634363948122045200587232080617117160852323305865584026266334621208223261482009408862548576653416603736690518627524885038700288656516326362818384661018180269256929256815408043968314946568814853600209166379160670879501218016430715628538853883093792838121228887951059049752641235440544136592345840608170533577467993857834423524689375963117421215198965596399437654240239440061334705161292230373037842623046588448025072987967198012791623315319141433720651767746945286481852787154606734672234522127949068359577493883160235910347926422719781977992137048639041247184972770106115344100427021828642656276635033121040996608053903486602746056215467860038613147785446094642954022093843027219956550524463406571172219174879682596562902377136803197633998914357911314678394717460558744849259183676949132824095134582289935744905905774686178012477105220722726697094569040742426924539633592631934654051910089437422952584059468264101730586413837493421388635854267620433784874129730504591663487709580782177910636748712883738088628583237557414173797133088779567463664866157463416823918029903184555971806411611187098402797886635739206846920924260382317337804712860433502761478965384177005351367515501639794971925301493469408922071525470733839172972516071625023293685426837415995972539969127330376786806943129543317642442206456558390277813454443501124621740407554297798256010838519275993486453692104042354115790537619726422350048880958141200560833285902822484838368762499107112905993900246389465394195318485917588928870867149031948374093023964362008717416009142983298422688870107919554489087038069682770083695295035776065062721524556470294063125989939549681618738133532097595319444945524908587570724161087249150404897322941836030928990745779213797327875978512531589120161812346916447090777872421885484870065387201829097345996196623030726051446119982782348312915279483117723322110643689227495173866265155582475585401912231860391100351569901080894834608589765608253170261950646411935338332855650869178822881885714943006104524024642573138726995942371274082422260369882869567113959276350025925308911256452711199635113318199326098721633845187077229123029695189918859240721811070605106941234479272020145333673558802429167587037324420405629018430587462518321170916675753377926412395872715606857194252794206163003546731114704967851637182441705788430028273394045445030739299265761987761639213759259719122358556578756106901924359365108909892953251227896548906644459863199599437924006422354200080583742241331712513948297473268959976682843565822812686663612058210538896806609181384200758776437098813292148598639049280973561511893362908172677487546011477511797587528247979077754462657648449885006695065037830672486245013069063039498550417350119394664408111345752427575293626529201242302736716218475970839156919928823632623501684340044978058762188447564588604492042703252356094054345915545355786906070796671329673916133959197124963963849233927764815638134658540563635230722945900776012760806271802801054374329504450258507010265756264260012652444785574133158607359534043536237991824835913159044589625162294836802669442664181356400299308540425481205990706254714364302591169381337483150042021594607366407302357425732387953698772120450733878571764898639902696862488654785530347133104891290152128476685214136364350145525430407089047569953619578325673614269157591805944057659561722467821855264489791826025816052581638756503715108641873350840768936401486771008829948815823547243052026698533056805360563312069690205025097393317454162605587762931394471519847077096347758116974760880038230593623459828110842359995225422580207057291719508337096466963595083725226230524612260721686819312129387304611648791570173245601179255807444216703230727267016887641053200838743331841226907555341169489164628405175876129389066574839983642685822127533638419385905209373642340321995552963635764110120338287457908486630289627324047131372075718922682475194076433057969885992373049433165015174988870908099438503703740157846205393850566618930883220072776483116912628212528506402808768540470674047774092722498229014372083502702461919511191651945321386385533401805346237570743956755739824523478618472516524564517792448186094479858542741973929656495087201874626849911761789383499617144114973094478112467122906913460847124742579280242006279115758260125392187976976194301177581932808408145307253902134929788215498062641928862018049188911257956235262076942152604747413956116671093135083574403937274240108245107202437350714531183497252696584423446927878500281010001999423223004810971223033888302676692367110015548692263144630274647683067052583272581641235543518303909476707591945857669243890366948802814879915327720748764235032442180153824379769306082198167965775202274305969789825790946839008680639863798246076489813420141452816172913231646528253104218085774422153414323209900286059428757045498815531686560503297275977769431667449474385074210308027662408709940371820320277856711203576584588725266622743227232211197054355603687282897147634252494195098942837729101254518002700564316648679967647985411330631411941236586102715013672352934372985377769882316965659845779666542267436305358789001025900406492623158569614680492225896847403168924551139024795476313352274910010425291139831294585613573981514797148328224731917737387701552324362426723379377105049888312683691721180245469435798079386309880779999932116934504097373619847693746196340430627861480202327488540670732843572915321495645494358147360976413225425860089029832928193781636162750863349875056196168125002205606546764440690775663830928292657576379572442590998250398192000820204612115386686671024816106826655994588530927415635757533672795627801920742731711111107706655656177314549097759117439315045356327400241977354731908993143721783171248474871186142211377213362592962377640404123726148138402374866565098010294226727780756474979707503458940471477095518895648427019812341166952229800276435825145436536394409243080800176620617929574915956728777721619816044823070615023907015642317337694580881669462883713837616637659923711090662996311550714226639131581006474187815183644859366473327122798654071055342576542158800157628516667563496779540717116597563138775013189320840363344807898349526783145694508473006715869273616111413496350750435855066359477147496138315732744180517890970497521954525146260140313627263524315899048483662920374628940288029599492887428822863197063468449807744136499965572183050576158963010030567616459915467937701044492979475110334750578951875193613322298685157772815389596323402175735738936292725007689228949550934480898450457399421267963058573601811715644307983351594692852819740389223734860070565209099252514262019966625249085380422292484753229431836948281774439686860568040696006524772024181348383790946743650660779074091410764078533165800666191184550705085594876964939356053494916553193172061133926594411405577416339860171240571979881088757847543848335149327709313975519598351693016989319959151512419548296231570444484816997613055312471431890135286389916155753885527945024909006266751141090603405841841652524688125945714936033433850549513945945707858172843173355587513823303316585442155460073885532046620682262544857944965954254869457003498290068432110010925134129083329591696158220357468804033854935358531304309961294607865430871067313295088173816143572116353439858394750675033699497574254303529532832563650622139718903716174638135583580732878709891436930828872579335935671113917775235061992882595791345666348521151431016042078783024518125191109692674395583038603633386585530243358474139419430452234605132775839912945488696390879957872163149559763314065339125486860053864586581007008739194662526487209947277407128419123462164954870931859622412896873452044235143969077034489940722584798411321355334394757404251502901813802166661526612741009109034679733187869897732706995954848816788460654671528519690746521410651562148965306883357443329809804873009568758579490051795364625700603922600643114448299708955982134111169043710697342507094340189937564493298974586365134318917982165677954843216020361820065477265020304606121675091205382431745547317339906970319661656527545857317628070813875233546230072599673431393691578285342837336238033020108830712838658015673403983566491548279646018349523701462780826117545872667774799928002021308480567006599053947158690399128996639987597545254408043630287941346957198860061983048561934892840002803102654546128467822222638778563260166169889172030684425120411370713665500757988746126010920650952530403602052427085151859111233060205061240575487522253110729144801465366703276770809575414043222051514845168686075548141360877650125469942550104453945703425303370241239665349238317283824610293960561627186085939943442366178271034193248738752288823767244999326292810462953034784182340321634392610230072167283248109994813654256760533459147348312487778169189013271607858105707485926583579853719651647005257672367189069571967828157499745524007123453137985409450862456635124661053188886982476950887546655482844328447904130383316710989094187297482367333223689672135492399510675646192800454183067381661490030123304816093816746575878814391180918855249623688230268047444266410722689663109524687533151959281843053132370531773758503758896639420477536649559750903942748439048012993607465412513392394536621703665955789887312453488261894300987296217921897047089025550614952056456348484292693123267513433733951044742219655184217359343853247488915801891511183600680502894936378821747007020222381109279675170395850967069297322974084128218763054867064069137754298959369975986736090328062970944554945807736010156330546427848744431728561774243198028490758626051420546636653081757908618157029759807648578351692664870034753189154299500243408197344601857634481590414747611229514477787749170046967482093667120008934130500078314498518183474173397729741787531146149697910549122868344180531172748024855051640569823486916979871019589760369374317199075063270347194814271882454630929578426345193238990096981703218660086388613877237866737140623849152458655960830873038531441964379646997339468330820490889243318458741014628373584095755194063878511847637165026444847891143591156946980058727451075826136175562275387430649709536726311697238724685124715047562962759853757982464995493707200451330560034498951207785220083904851425003803798125330936026707071529854087244546517362344602149965417844684769307803813456029379418727500161600356369344922996139245542051753734627397707900392432909918344025884792392341898035231260666205524335188994641048227594882902570225162455462325225439324139602689773641939780470102511293391606753523504079541383724010268011996513913014127395297577527450563600186558540523058249578242528987232493277590966627431808499656401331845077167661965350178910764380259284193642134570540609815914820797534056621572893799416942314506523111031719024016646348697227800135909011272710157360489135442189502240488857882488401331060504811468018843089962567470283835158808581350799940481208710525026757247493387925867850428980609980129657893464038781914526147961847120106125911031396879107810412301165777109702504747739039898932564697704156379837252777896619620937240244626806273883783018810659246123267871219763455089290496418856542040272384927871878180943892802675571752587429675320222976646895695958868298225415023637246721261714842575479053630469049994558625048652226272634049713429269816359207419221437045404175020855629318021812328824303245103078265170552561127964563498280349557966210599597155601946744473255779562702417715468826822355047996682071825639692642977679795423414652702049408490863986626505085023944995463672111865780863954637800084607333287452961246216945262044172162257694214803977684620114176014615959533109014263715351492913000632234530107139062328650382288000758441478366003990872696050420677226473207808750822604865565384148198714022633142009233255108473451383251575618629493354066428883386525210008519560430144748688939175716390127062584145868260771104577055200302374219416664668385141096326790344476863331701182638705861836216532263519851226236159729201872782308457172470011185991512135625970275289358276114215012466010403400686304403411059564281557384275141114606107220139950389726667661737046150605201579279465540182180847579215914066537784899859849515920350516589535436144686343234574716509232462148043918835657274948293382213407357636579647090180342967624359469340292799974417263183620680996037428974133327785500630288967805786742336750967415959904373098113183141155725430546329211345391384477174880529657142079408106530745430322661465709653751866305718035817692846200928147498550918880818596320011979295551468313479103795982804363687063207024448797110842293319678471630525937466660073504397973501148790718894742742204829460773863240590563236508881302742677411282013047219660673469047381279613902181933399316598941287835946571758987526662545404926966007614168429049635505931578724072642756102966797690711848274617192423825070033902059507789540187604468791662680587978725132338824820472654057271217561049873893711817614237395614400434205377061392570838441156395912735314473211014964420055314617717289798496870126306921638047635195456784895946912517711458052609725922180055647870421059000025447437776124679946200372779650620045235541873798785568007043226897106527516090739665498123591414542964597148914110043092570468017558252370557785767002691137285909587437712552875867024013483854637635749401855965179837916592153556729672745186321188017197376667656134164539290247179924821441391144333483032477851523572115834964108529018571502318298348610801039610457774334860424829666502377877779229992650901015520735463572978385578534785498019557332036319331621456925178095482874029494596555256197600742152718726438202140059551533278144335393831798367619837103710577570333834627179517128942215593237591088571015517782055569646306272306735069517825236961709646753651393252479888658456284657346494041012528725625931047318558179491065170203641109701713289721581150866735797309279688093156697438061207640450116020396791237012991402048343180089061866793904182950317287114296331844621762553078595052654149347806665670041002851024272275076885378295775770749364285571224632589735172595585457694969843551769227130310625168617969765738202151578570596288513313808725217440660138680593872533247008862060344366597310197266741726785252524213649671518945342900750237035616075295937124637511881573442080681621485625856735347474321029591064772105591289579803518000674283640969199584556742429989831797570384133376816569083908926994130862181231176897516133332917183682858667575736834940934132622763475333693997745081618283736529842605974694577357120434875812418039336228460358318207572596882828259455406223794012832387971297709819538194678116909485667062073785074913757838118729411226046171548996606384479830482038226998559591786223072264415102760535779338909256069088028738720019942099371147074751557352246118752106251770868383051555827846927088070448388047575719740726726930265151485566237464285538115513768399029585860655931574684899791460824106760972934025853073828144512870081565978017757795089143135312408096886255957954150740653122192131478735747214648890853018462631247273074983646212139109445330507053069338389038012552042314013758657886268457289183516328396534079251370334575465847945192320215881562987738600888303656752342205832485359773002656616425618149298660641322662186780856385081601453222419325609971885389951452089960924454124956557671276125222707235325318365076615024576225532931458250624411586429927020439477365316426344642428607212065080741342298609778082569290497324278153197947705677963823815109873061877109081283507531935186443146033335799201111077056673681668884125255659233159035385649085550775808104452317560151168624855965575023393885164396935261462064330142490872453062828986287798036891101319311294789214637232257444612531868339112568797999575911350733429288469199883584670770512411137275015071913498747380365663037058430739447280085116197759659936014534163953209074263001782403453426028586822247504999864026072167771824811516399517353759765083808612441238251039006667995096100707809290486710620178389903961617927331008344520067576433163750345652121544878445659520712726247769873870992805214660645546273342541323997159193020293013119103304147083161025885123854915454994549645979082452888374052186571866922965754864019248071149208580936211197866168337302599778133577903496815917367191186887981934584359158078666503954176652453274430976213219689139435164836470491590330635544523662837565999764530164121011522106036184907791913812800914795866701686729632241846153650005602926721009944022531527915767221687925774841614708067287806501693068958150615562900413161449722510754408012582618572917861264038669594612821083204966442499084250812221105803929896038722368019364129511223881967454644667433157897500489545559872324992778331600997696708529597518110750165015611496632838960159476593964129529042163224658964955723991646528447332226231756411993719848503047902834674342754414759875526779074102652204651248581978663986549036407652009397640760600513324291340679981688853056630149667792233071893722249550085656507215815072769775023386358183234972851485452701446194915784224096349389056078898239748978094751605066539728073664499568486190129013279532236003321919851539845501427507084654205674886434952546946462947208738063136015360677435053848552063882188083792382806324488030897965429366175583037379858735945967614950528569224137036627737731837277454246962540781841841739354940007535367971102144381114564253633296892883060156167898071523323814979264859268290302640206661086712109122700451023464336733638150130850802380320751394792034775353686301992913562160197866355650339215210727539721275236387305833505591621915459395955481429696190257772572548538100063882127188551372941816998212305234416951716598211424883156535681686546638225692824918151328985945419673123295647158540878261578376339218588712520688916339672417200631459693028659811978714452668875270084404213216603527888577844424037194190352790771112609958888185235369694536305807113969332947112006542428574740754303504591433610547294869352148416231627344764822900664762324460540841959189339434382051735881860040113991656570369738550370389441140746150706702442635567450236399480030013504685911360097893598060258869047711136391907482135695045087675704939257849884159630785127415953934775103435903266591562865845738114986520466221666033863313840060787140619878498937731104101657604936162970701775445027619747818357593891248982945009685940723104510635590122453780039132579599778325508948844432687692608986400314399098464305055489297980960808881739406821008549183058900546142422163437096409137489660732445704204152437597808023432849634118961248022759422371640883086418973822027803914531470004476138882244847631468693643064267797407158493485251808398691004838593366662308198673157772069301900503373313965222369320952615733595497378096145472663484837248662057730289053979208174585429123858620600651776789384953168045691281662617287144699612318507046482294570199584182786802443227239682562719589992585145186960564337937174892698470443939366031922796814248193881207941779528743840055124573090277348700539312902413068652306931508771555403179674503118430646651832581258818672667316635468958627456318960412025221836874234068374670720121289229397843286927227941115031494400646278529599569177982384707148825105855680844855378089314032618809541372706897823036283078364133204255925650053523111243113726464106914630988610170224057241052297336713898735378151776686804460242123272360737995643412738790532661177925769090564618954672182246010171867859413683362546419917362615708641801522315015163049456132352514426922526254101706765476823371534534369848624221192030222395537881218065618175533243060032770499373439222197127988177647248856041040846631193182652272214529390598626365429221463716188214702578896149937307391698666889233625472660756160946269697289746344168483105023115557997108436813717468383976029402624714715720129169873539431937901512191775345364788869824498552862397809257781393081762841056942097930229121584737857401272760903436860306227735676688985203691641403123173158651642764737789168919126017634176449583586007928701173173768277077160615713680894987144073975871314185801606007472479721766148436722570012363242457141117775183709787924064424457892631500228385489139391363555795509269084643465103658220193697270167848553338343383913228447159560419400625917976886038522830123578666068116295662113159715005585410593112222188543582828412502842468889370721944274187808956667279944932965697713576564501321957254386216749925190990506945939659235200539176325770247201261554830655530751570325213966332523572774275779831758776090579614370394817697542949336178558210898050252234647812480873121790821727796735857534942021547837134210600285294071289603692712965962560489375407965137857856367311752249049410236117284988912645076598528405784883387769338534063106962198333513797062536754698010940563010606505549918080410164661871959543196304160460235790406196775088842899522201550259983201298375113357518061715047937770164402499192852023726671579490735562551261476594966610466336485255587084509528743050186269944592540970780540636469548158066853030135323770406247940654828297347637279919050827922379277849914460645689036860142285873844145707851957169711549501159314973921247992520810596579438814609986566376702809569056305499763347141120550837213531758537617944696644515192059345774834516591385162024190986439938113275587034677448684019920439582204728617839479054377067370261673769176987466963503796926102465812854836456103017429937292621307270783901297221399591444391848294187344442413153291746812212535569062672241806760343638121875961377338829067631185764271021755090715696449956647914689968960936607785324326846094456074256615388316432838066354735866574658782532807993840468476283739781679336706498073183699904003569632716289801274964413081505211290732433271687433966449930344009029591749547998914158350328758776279454530142670782595981389801423480338221862022610928149911081948405278540929832338865321552898704801362160328945080127137802343302612635710452793013750003705704949111453664990026608776708853746344293329159269986432733775294475943901681929355442367618113373180517102645069596025872335223242060085114924706977615045105713567698882477981599650484317502514749705851952954026399755670025598549708958172725530374293045404611517177784762631453902845240323808276259198830552631970071991683536666329744119620036415312941870162948350510475234711333045039351399983258081468185428619720690421298742776713023995200771561446240709321814545820130716282072894028067973476713977516136022541416189889017277449111428483125417925594835224422473665472437568630714469072902496384463527359222971428962142484322880670501141871842715287004449816528263920014599023996507045857100803175083607962943114295117602373249047484309164342065374972750508281314091954136613880883738353707413025476108970661496893919797659421959181142330842218263270428157821704990002336740066726616442487909110472559832641687770329874640346016207196932757439146424381285845360541784815954410213074866746273828770573638140844314758011554353073088437591920011158897760517583266080193870005799772110325239446424823885691467561380239156909690014529794363131402743850210675838324546950849244758039326687506976655405676766597312032009120366477266889352236764920957495190314168314695483626072405558455334998509884075613779916154667643516183224231369233103420614667232582210939434637991269837351693148104761208252144079318302076170292948199673825482452214792439258416794820654027294333590045827216734399866879895352833594709772946130628438365184958740117675525838762168023935515685041874865550363249377170911837586992298602462853098654869470305528774219800029172835162587923135132743773884746601125307102249859333268477308797746820170272348928431888251054162719855836317279596210629648775372196589989649398621824451481300671518882891870184495779874157129700369032257785230118398082602605115227303162601460776377586736838919340180807516710575969263283940202513277166684389388922937436818158771525279771232637284061373530335160181387142760471016170804249018496473029597728839312806284254743425464399414669108155133109654948064976311615142214835641711364434548835040044256912138178769809489009945188553915006128778615160370177676242344761316732264439621282715063147812730071278435245372572476541699631939472811491511747594107700925400374481740421299420927991030376008308529609230428853956330518528088893883729764408134792528276345686303272956512854698968356625439417636998296735937746327669686780291291828817328526346372514201095347339755964686566853202600473651444779789067740723494061664071358857753597303231910660076067040943673699704780964595630401659092161323462379142064587483126482179645281932025010676276720329881709302090824776547258025027254247776368051253422994050663157199503370419329986145316472742109444005473639915644410386613701355923167701587106053960513601652573086929820846341013933146773523804322125791172167905693250884677696127608005822127839443826044786569681954977217306358086552735806501608292545796300710979214517194847928193306442464761406797874910439202347754661314020259690734598460821677968967743974465749479174194744882084333830225595486745995523088115080325203977567851294758911248600286341732860368774377507888796841801044127155874108827889060715869245234685025056554699465221442910438559486164512535051460832302985874734171695163231020725237021042941911934366039706554249117055215947213427583833882473092641328426150108875852312145147966782266360888523841302659306900073300102226528454500692315629125063965966850643774029772202231724707048789607753277028176438347015361783141274969239659000362794723945807357839205868637858381530691417437311475560159585617478717814113839159465143901657113359432796132244678151947467240404446170899930712094044282791698667980948296740374234727481318762328031404002494721912137443892572676878604533505985637725525590612213946475003056423035440091363105770731673165515207058728439225357303369694314343854982094448399431470430473615105180266562023247923714427332191289635465287537874627675159658569348198902272256860903843430020756447547272996692102560902991817668071652037636075487907316539605015146422587532098009413161729158325180095195067684800718434656614108331792872641281883885269020456450990392330725874390765129108717239676669800345487649915343550553352878359668359374559504970499146360471267700096415113818892912968917551001830176593841613746257263945779532467617810159840981732531287890193855224517461679053562487031445197602237705423762668354234955991788878938538650889274345405870546920012445741432042883171497910354393410528317088186325093340667487744003309329975992297891031098667350145515014300787072260013678572804680422613805974349702208229114938703917749081709250659267584741558292513943468939130265334086290440230638354198630882607043400195016052545001501766147071980495691000045108778131281831134801202543052483630352024946259753542294988271587522542985480074791421015721107539175346995130713578179173256261842293060789569743756318148684301996880681458767743095898379905873486325311928403127337148563145189443726782166839380752570281663249678210600965773099761466504196617993980791840708243468342789869681572547072464457505457672221025614854074553543094954238101292255055910637865642169150932742055811548205050086224636914298989664846720952902134932496571673044789013485900015702237805179984907649916228159317480648655224411751783253671392569823969858674364706221821870805850026723336198616347228273643722465083844603273265268122887349893789476660941098292800186639321394094382642567285436535392076181936738560227602781282585191950649105042210470843636648683862200602994523652612690391219646494263990265159727345262450098576085640002081014972696897039802723904740518294305848311567625416232001166548729713512765584710201068182290973406394620387766051156248052452945746412035902345216087693159369170795915921766930472033119855647910412347989272548750852559535344212380237758915722583393830417313426999467422067341892766251281961755019767290584861471269100539895370388735721944309739190885249625592547853014629540320539976126037994254440060910455967504745181481675047627998353803043136885332038414030942300957301584207573613546971873515935759552659149794815485298281537472290022283576545270629499071600283992213638804568679287416849138241088219096691329489530919354427190757647988241124639472442904623442166867357183283644036526165855039399527996680191975443532603029534021208703447338752612651966088952294836266499287193437952866694903426981617837213496243140593789252757539100035105865301466267714761497272011804520942066314439949010743254882629094991985912787721729929919343138231330181595334073533184042362293145359659290667357088024894484429148396693697267437500569030873054830487498924143191677300343293216507148340126242242150485140602892638116567846190933967893549868639288298541101722847745740840223288245521626218910263421221461831168085111267799253007643402295497501832835633442206008917762788485471111078361558082249190522600035057215374501619049811188110762587262875220713600865343391153142054972091472607871942048983007055994444796932091405994541421503587270408616787863814538967938063169078805351246016915822488455599867908214604073620411001792689791972986217874473869812348099171879367157938846044684525731301456508263506318597377575764513243429200080271277393723314476144905485563833744062578651371530166576583231733215368078713677789594724230480136008937654911713012594855418370012394344978463932858690827484690769748891474664281310536677026036141318563936436089351873251240404586933983313860229880582399539927037564958945295400857272291500430773980997338429819186907427195736953592628489612563876067165978729253495551755416729815984192086584768586727917988729212032135105426837198927887802788034385384085550672086074995521874279756372174388176637134622646740980358939281288612483899027145410562206667667075820682425963523440717925623352337832848782426193811476862145879661402422362273144565970057394053507815799833594630676992789316683806500625422782216839156548526754539341581634605758014665185503644685435840708116943971264318246940544925475750532539364636726099369912537209013290577346666778173261358999177013059206032208131195427299273727158347155089712606078097031813680210885695136462829217451488936736931137846487688168293206680040056040058034934962918938373838450613506003750717178376799039527997481061332191264656768332673860634288983333171527547845830945750694016345890352080404649018957173965918833038341453004203762254668459463474852685929094330752164534633534629878772003002782053155233968591708672977335162365215732800238239113259578897448832315707126779687684835071055898115275186848753921896249315292601859168268028879998804201271303926037424913409908379536602998176938994342147484451131714953968589681318836517111285277195198302700724411682005215187041457362922510650597155491289708978879913413932534887805480169278521543762546695303635739915593748119420672619837474411375999638426945974588311435277048232005416933145063449263965183703349656144551572092393115776521756442558966774814290582210298682910394642560904425942530818252851669430216561653641578247691500429914563132930744760075280553169320980977852424795210055083818568753809192877962259532030638866399349044478665383681728968461723048098660103125271059679580759142610493094097894023682870988283369570374568333900286833731794297333858514471146366863798320806889325948914015035337184312472790744632425227635837306137976807513936301091594371163175119400498776485483620547017500823478434842354692690046407429442961380505028938584528142890701631726427157769225502795085380304552302993904328899865962035834751253458271196391301641537188373258899021136848737838479207237270524751454684665391915442148787578359522303785431483686017727939024186797585224701309999879136458521776916541154318921029441973226541093301322809719738104925606597387234201396150601460118498894447511914090481794371631744509640280432891205977204013939832558308482152315790850276946493660096264836722704632241353259728220389171482214903431008503699563775474973973179356335325703589538782182454575426195761019483148978567275995393620499021922563589025532354897575511313474288554332669690787954183832782152669734189504021617508055799798893534102593681257644168202191848935981336038018840479022212401873567001811795916641877140133902624059605449971877510744995103439414162421280258793542022243203511067427815290524674394917591564823579398066224987416804952764288475143993071500404654467750419957591133336436255052817448408023653087763763244649429318623603260428266126679783615712432124862709589382393577974746096152776546921575164257785863613571026133958484008875711627625044830275645498644367028105237331512032166625425385392482912218738121930230849922996936169103456187079680878779424581236841706425285030673837085491895315718294766018918408079301139761258306349433988016564195791369947281620368268514151870330226042258114971316927136977403321492137059958914983884887305131077453132833235027155233368853882359265593384101986259774118525338046136108888544891897752584449557327094553088629814145572695385737970355855610732373419422980930457969846936027079663621055869390125551369992178778965795731106232251256698202799977806731625849457138320751256855629872279139322432904173234405774341530529917510115768171940383818761834749021500911086990200367590188051380648214000917303227668562514402940731273057070408172188760574180776810185241013707754067331520995798294718723375258160386401616724851892020938712407814614627458271595520928464080290237059659501875736457786049457457891090518339122065835218604170274835559167467488412214622248102708697200366303852318371475980075099895665401911822173908286924071840171128709557862663439388827970899043082143267764426160966563799283574292352971208639500026468531468439735751394910746455716347343669010349368907092143059357624265935096717204960595171854930604967003473380120097889487603869553942293125760647486022111832692579457382841222612023159032723389164419505959563499798179062691132754661356869590950254932790669424191308890044662341167543124287224201280015785952172009664417118464086232314379668087981555703498556049353899545317008676916009874137822513147823843910202626871497690267069768276005741479728058467436419504983234732631737981093998200184911356966137122715084310945700638825326899583996271902935684861660652950220319399909803874995651782754656973238700509169627355926724245009818567535832054654410038927426098722044136154817226256558096640283428192890634787911569701867297358558254313603820409112868896273909227660841657364538381935698471242950050045724849755492246384545592969491067894779238987982248116921840023543976560032857009155520838321361887987836625975364447283937607196710381024360515526747986120409895449845671824299074751579565808226779816819598565384741150375448930293307388246479678629926543363258867195851252936174034775307097776435390582956501130227847948270695572153622870552984970948317361501910204543062879523225623470783457949819573056357670585780634567505437796356295677874789912030843889310746936530147661641400056592954956477786379488922893562141775109462760948049135084008288899512507770228683850205675888004312091209360814009800874837708816909727828795384604284859799830706162159986868244180531365487895092657268807681697213166083323640636453693956737632453402506651540663637218517203499082652134871948512023706891139649218149164275836817504081940144082003837436927415184085485303275980656727261425679762641671659784736526381886736223160347814867933988325314456962915427281732775209787924318764492817304540102360437563552137717623680201457833955541518417530190802365915569992356916914547903727410094848457490059575588830161980120477436918267087672879358324880795251539793347208061050378905701799502011993063088344658361807340858698724114479502474986620941897741262742924633977421626842888920486543641312825214058655280964954990391788368604712425241350176574622762471918022771060497571564560594256060781458815195831366304606369215259722525063909020693806165941427055694714878272278436764103705813716756243590020315327318965207953756119805519706154476093132177313463952242869092535831183165152899755583628042408337653675854909081687011117838718982953479495538199723046991952039736409081086822841028060397187302646544339703957879638198687204066783059855903361253931258906789427006037315524767187309991436410230931374721855348167481989760324284816297833911483529449853483328967941230545938730164688275127849185965276940949632834077733119815800582202430626299740263957905065219086247278141064793248346486189076579550375516042936004821727791436139594526567812948464124017569843044366213368695584720334481470434588228608176613293879678228051616766664169421603544971891852850631956958309488603118012124510940047882778482714396546581965430589007357482583248591320207226498679186470529032717047110565403135509116791388772441567537767930875084986411482776916703247249827921739909781939751286954630376741045378493384582009519065263014679904839317844475127600495080106550536944500001165771580960351864790506884595390780785710159006297443351981683118302254362269375418242368656557594581697252428990650372641333660862749686774684245894738998546238549042845284756704891518538357682272176729722520741281334144868656060577338149952541259856625155952564566506296523677134932769770703528851265547075074220395208799842299413192329682107106909380869037588826933037108139547399905834617375485876440239196096358122160021022460521040174525129461630194539244797888599774776141982539037718340112244742837855731581453062364813546182145791934643025878139195070490039726746801422390154940799296491866042967318872511218027173960584180872527909315143159881630533531212353024748965720325449457495279940224107882953754971878272513916451014019799966052546030510827650940984681748029492732383284059601165561095476143025028738418496896797061470541361597242315541136559361541736926431568412288936896464582165330002292582183039489791819636562087344667086497612346059414059767466018705645257566183262078203473119998770814148895042146524729768340280180543844018424727598504649139654712160308961262467865233837343024978288446287234681324940816892418450823739458600277498945737229247945928610973692291822322267309242559941319948239698185706112442089339163696337053333498705903909857854321149143762350807915435397785532378639675985882610328318927581434995453481736188305516323967955341026053411080210284080342748154070378206120022899425756182157686548738611267005220260144157049893148228053922163875982387246235173977285999548708874494867628665918094290813449416014133566416828060854453085075776206690582856118334515562137067416205813147770611553611057512584893042824275656264423725878336320081902223934975113065070529924046881202811520338250041578826529140754403522369410556380593018865780240890724011869587716606202669126948101996335912465600440274253196519945853464303453045233420755225044017671085769222374844581180969711206408116108930766634106787322124246018468403084605263377313766414774862219011980245337802084943627444818402417862579242537538579158217585924817723257454263266472408229889360974915122750859294147089795017971242935488788018637730097552280518067194160340327205588712336675428905955869542574285871675838222686617942865688097254991900363417292126194614840886623039793445702158069708990313266151163001812876361736439345267612815624530361518958477160438075791719230384992201188731325354651829480384794040627768287061946272246711214101430964181492174699427968850684613197639077303123109472291587307866218029673967136007758488292414074473165066817037760430600084826206874765558687749049985013576256243700397950293896462149813056160091801325567842696114531646328996494899812061281946677040690379141442196710139247693037072043735027537479050848108527371629896169491173109138041359190736005854077311800330641693142975472988401185338716030266127345345062769829344297038462176912728978533129515945921198732582088439491573156026620070295561423832215814049226565501603949357745526140794669864609070904085036308799039834713203783293143496761523026653967665959116440100862148281163012103936073059016447369124943068190782504064732699848438173714930128292215851751599754559564850805745561707639202584999232977506162410038796810537198655973437960018923429235288606688797932577157045800038397520489275104123112444686071926165399388386524593180553932338218980164435725710352229368412537689877061092604944843456630026409272741988949723948309797415433191777755199729288693284571467391820240089709071151970241746967130678423649160734413509465936463127765870030620446894331214670707872882704443910266597789853140516261742180456464966439621207078823013953451012951395216256150897859052134164842497236804219523779637758576768585564547584558096743945691473435339433678905927374598474530547282606661373719717535431294821402093783199212159744810484910176658575704581447427608964531757774498002338350539780332141917005311289125522281702071434158725872866707290030084590112068055645232868638297459624881987405940692876762591709217788669615762367294766699189815219274271823068696117910247673542144772426482294138270719940328972584324479827042576610478154624011027400019057849717398115608226306053537008056808624295577455645833923202113591101609731353075943754405565921195655893430876967261001598043509143028686890346325360578584822312660527635191273793416370825925269026150702870318918910255329560310458538830821830899013977192860206139290558446570478523604283894559528458086738214884642973080768708804380475503849242361541624438415810813200921580336047135600783640242035189218451854388082015181601220003894598733475501901296261174847231627621653273564349615730672401446084180251620757628983032007693721962932998527471350799147303464451092680945370239546294746437971187492349863888232585436022348677870930860509462608639839622607401931214616594506447352632410020940602011100439969955000630567875890430645824781270679824986830586174148804757521088243119546209999167006937966840035132854557824144898574506427494061140654527086753359169875104268013344269915237210552541628651884508993930297233106029490479882975472362289765599088877487502131027475494976175339058085648288423688878949900267152372865405934600382555202492010984722608629231115349874887583774840044750866083461125244938094656061890098367022997968869693352784136821505005576370849232757281601795710806069407448722692342810926390215969170546009165328557930119860170895860755903278839906682025643536927288878443383702094788632419095420170782859868663007600488648220418258081272850407279711984705339153211469321037212527849978819101526177849781194784812574419884974431773069531501351883434649599200967416459337447166327187422264919878264299602113763817902165520938088893919383189005107406810641263765399328134283202475517213926690355122903983388502295681304322880666465775622257414439303495970577748520336509036708156715813754598204791890813840092043069425232375991580632383294897057569685143691663804490810496343758548521253987409632169858927050237766677802258373819960590523063424252903725289146413966426849111440449463398344914408163542830274724193213546444451809049646768490158713947558940066775132889930347864001112486854309835140069024257272577755834423860151674088776051090842563054177900231901164276791030181001243418246149269833150186086923307879028161279183164827529172935480733941187712408332056342891001754741422321898787363724416848053891709576432831125759784237358153360438110111786860251496330986541030190023208698518268991174873018431689802769114441510023024161472588969862797455209620440037303502619634629090634651258908154584197374826028166173531833032832980737596892501191032986888435831516299446011636336522188007370441233420827933329363244266864469897599121867070579868810125328141001780572659175281176953261230773784833091200983002380394016664641591808480472450009781943306864533578115455877743227764678109779733747430784616961087472108469415401226703450829427054477429941347057885217705710420652540098384606954052313714758626489373819492492937646135827372170099720391919034606719132129586310385188271915166357817951528474609817480012641245837132991442861358038853314074554335185185955032626527784798763090016547323207442449113798035945854437863451545636854493754521785615480244600337990859667182606187691598366547907681234773043438365929473731369138090763190936200701440014132598574536275454203958497148185207934885102164796630293487771442727309046501004531598261749193251766106029098303835708948107565610726840934601930198265654836498084066546720399615814834377594732832287554998948479313920300390216045563653862107404128832869889969285303219884355261972867031796066014926118318909046776078264626130217135006535567167742239623506674454124800510139015922832436375477222905865786105707695519029830700859256571059983238194473959525721296694921466483890584615007584128492006753406560641416366484955092958450582246363036046211572825229133957683912357032525935453621408207269043424974775239812701848206755953340050763272073812644011482076064754093399652178953919127773899456717187824057208477400425839353939134634153734717273580239341463775734864533202281752943247305030698291267904353346054702013181914396278918384240353857886724526814863285943025322771942144018583933342323016309288817574637853855396163623177614579360349426225734889422338840251440238689655792564386726829060788423011464015048193308174712918981143097308262419321029803006105218530564010793043568140980982073894510635172739874355741959977568027187441978016015835470956114007761426836970510100201346859492101127451204988606452635538908266965778192855855849449931453653028854384657813364142700601609717657917207043275478399803591554943686435655128167056178805189078519274767591115918573714111449282614515583533897756382275546656913451604710055371634571444311629143158662505742688375132668352082287167576509455080390779282798654504429205536173836764663151805703315027209887551886028374060364119072687839405270969645157876241249259400271482221190944748336675734380765468530894895759864595535288162380944223210624258835729479851111110666886025937429726861949049919704093169678144098051058151630942376812652081324615972571617074686424711682428360860960573197615434690049291608593659519255810511845363134947804644035409763269836789524694054670866903837672284149870831833956462206932694259393554267728606200579549405427127697228835964397406571093545048677130790411432120702777203622589581795360235011056854867354639617224404062951453919396351171644469504548220876746114460209879549329915774482137364018321937616746209124035110670150768349428404972920594472941160563113730967079670988590433654726080298594303653658835728346777352225435884870357318476649500897381859639574366863791939101558098691192714189222801266706790794748310858896366667105148016603707296208206111557979916348463102928533507559857804247863820755991802807047186978473898483307654527440520536595212427090801734798662341059107437503229660255995896718781239213934357115194557787073612316807203316488368477704217771596842630611951600981913191971256800790687340383985215090617615362254220013694717701892371415638624114812429123427893133935745977840272608706894766525187965615044666178143025982918494397959359278000919357714069913225355954986292310090535439097094332331055646313017039378260416891548951351501998249153164712440155613988675207600610690816049839255683675888294411877063090993315784962905718609652250170434810810712755816740830805259302451985383292342217942131090863367496735642194696689337176940191478703911761753404962561084725028278884564315288808222243789768391577415579847325078555281894775666134675512642626993565759994035481133457104506624552323923322691153251040973924035147975301265304593767509466377652566198028370769191129873910989107348044111439110022154877358035132574291890136429285834366219941045821620969207161033384943823694405905489858765995217261959253342905406120831955529031889532318905510409226734782670698552298043345302963178346586207718167304501852942963782935248802071368027998421556304324614058517467388314360706362858307681137442868844629238097056032890780603641613870287584923083171624863306910068088617923845215431928633497769878007979458321857491313015417167794792053342085683263148450884320951452085705218234450067440025826801490632228195188186573138879615700660661960496083838613080037208455993885512561733922639274380098895221230208446757827158231154956599681354514880238052617759863474546386923073999953260710925763653946185131055163555544888720185483706912948238230750904620923264161676495779193991849164882985889741903766798375742881829132257754113515120737201163477459800053571134399270748743389408757774396284669409885013401350676852026856233437667967085660600913498437258125857777749514009561111611771757008318467922477220702161260517526793539279092207158704172178220900854189770676867442712565623240629859870644692348155709998667426344701896052018198337778555942615602684402178566713026859441083241305319236983508025085153603532985060853327934558074095379732767187889059706440535458181843456518581282529690753672334127678481970238047515699274897615646583560068243528049662284035504491782968344360987376594618265180970104366836345948226272547761633887693954722353377726951336820300162473225555271506273356373844058883521688341906853908942697256449783054956607786057638027382903956248241953213066203957284786351745275522663782504236383796774169549977459773336984510274045263591288273893601076890785917163185379752938765838812442116826454776960981910339653814805817793425454210198734711763593260288130594762797921870343073820829901869978235527905399342095542520151464270538073669987846621371226132157707096952126835814718055325714014500245974949833445643832293525059892568256375888568962699964438063621859989711247197479902912670164313639463895940260997531880596601533712653314694683088854620979218212282190661629690737736748865795761306265655988323499127065073401382531631490350001321492464952200049578598868284918714983880123147197842251679424026079426600295302724149562706463992064836485870278736399960760267870013962137042114719704539105839898298383819165625376125739234306995801157238908720178673607773758325936957856363612763464590957255389119527195237818214339503253459919818593124574153910741585601482828184234565794520150367594651754906102876856234000937094546128905669927486574072789618914037551384631769332442600195922867646210628981686434970517232874501338692860295497751385917240162317740079679011765669874846533749457474782166719999140612334882748584856577832854205238639150197833913097638812683913039421583410827015010773126303195792685087925078897297890731886068262374254979525003843193694714277530261041322637901906348434926815465207918012848698778890151048593301532653441040269428033643878911365778337551591066745522932315241030218658714345884255463793760832815991406255599521329963034539534956152612621963724369016195479410896143273890008946380853404050779553276339795062588568876000173416645666059961586624799208624383564951479079415564740012473884124432247685831008976610267904288677957004331537874923973657032429707863721069941060988212900779449991009081848677268306194874744904955719610457397649822367153655981283086931451276219988143133978483434116028621563396486163579970487649044270498400100579789423394193071507065895717448606949415723382554731078526634270364808416461007436013076239296265769398983558157755794750011184965199532238521386127708560524719424978535095680269704530777331958281194343913561995916813663371786025682430321018403409397949699959330061473076701304592606840988326267968546640408650807891242233796601957522234562524999695049378795375227374657488983674200899835569885210178439225840973089489948807710986203705929696649609727534354884289364666340472008615861189965051517378584735755225921655540164938373821567078022545389357734851176389505617050483653986893168142543287318722335562170970523985730196414629954568996405034786167691774673918114986794602444048301820822283362529368452109761370860319453478593494016058363584212229026668886304176747244270756987382422319879226652612206632802409974187864382285116174643995237270816963159574858667402783893641247146977382587398749251463932365241394554552493064861348113147778974152164659838829216567158307163493336943503852545579596274877292593443363360376123466181379722055272733025047928288888397015984147751986953926493605961953013337341329092777425495349600881553719619277478902805225858294525639976430555971931722348819264177792892923812191137072505563100728592055888129113899483506817268124244962181000522601774867952259561209603348356691829013436027539526361394314748448343950917709419007083627426739381608472951848278921385236801993065390757330327517100497452281835923720019526543922618206623037787054811051918238798071382052021464852184440661976592075463537204289797352632254145639217882594708781475800203248999986073730613312636547021073124116775579008505644452886607321779424371859307053325085103270116927577596203476325499675998024693650991477450724243259344574787041539855720896520327350744597377277715176850789378156655531051099149294876118320796704904428404820347053582739874117036980035896960893979415010746209722396353846402706075804364997435577610438260237080263884843067286053674524403535999758016646568948173701052842019159380057467025488823086990460504605538854102336671943972729041373683076957853421441597861509668920678187804227893596263785694118639993134855139455701237420292370532004978193321673885590185773761885879093248584615217740807563782273524742995486273341786212671100164951452010799678087877360269437325849323044671690465848683098447632475327992068299402553390705289662173780828045669350849591263262176207533200974983715488192584925777353977991540499686918831291804830572637871972577801087362763456651818401622339494818980349723048549062804070832500451762737630335665715261735591787559434904844186500081231786180594500318985419254099683815616156584947337865004221234398311577414929702778214677794765839800567018689935744470691077200588912996628530925860552675948666158985137377037277387599431570907166294215695268397314354458450577712952519452388457094018546501408007024256565352030259190837758993366208459468954262083653286665433146061985000785237111989276665615573034280858925363364741987478461365127003427823841758632916843585193932047181005407866578517350504916408813369014014218920171561464288698480597334442230198595244378495514351637443031926666112785576828869214849026976467775217837554295467576813939178232487638527420005239657947683941408124620827043180297177952972360511548123730940591230892871237902148663156922403963560994822111072940050067108803447200894245322381776562868796229822637295959306374049049542311652282247561963094546592132426050404457149466287784281772047909903613440661919703450069700066108383624340871014164496065760102357729956283766894261331082361393835602585885980419299459090118846085310795221385529511792233025922141157774383403959943029664352304376272374566226191227797056216048526882726084767068351071895749122963905425560015874243318704473240883610625011184066300363470435299886267906755035672283091059315610977367029965754296888557352996558872398480756021310880267110478349045057308300955224645885706491743775375009266094094700301177838662117960428613254203051750579766688413108825030063936517121688925189226999764477120736885524178194301872937798531067976741507930353069433666145563948803593698009974924000201586949751233943466235380132536707157573308871494120976085099597992779749545830653260680664110949319748814414443764901264269659108215493324916392202498760962163223086894488924164458603762041289107526439337361444239061825121397730309975287562260462017670970199812221717190919560140175833725541164887905903005806317469090599036196365864818730410424953999645616455145723638999147779580989379353284883922798471875521175849002732120014997841551097209963798228641957950564472149258743142701775009752146294597516227953392430833718419046992079071382866814759889900473944462013047652524764601106443807666554475731156670110967543835824268502298184169508629104843565107409759714717861734310362661395948379783166643680571333960610688462195083940146353645965002779803715082893428352150711366949270805519738427372829079998658283824167415433757646361059862257708037365656170648804956155394491187174975634713426141702645899316194405307841881896474027412434110536995290290892365544157094566525399229333160022133560786412846412143673290725375397543832213754736928084972364577119180840835177516223501515491984454825418295402627909362097595394607766221479450137977659067014143101813197980489439060042136801170445927483081470452451454696542585069567238153948435352322346940638999442786828262250769486877141723142930829144849518548515372180745409129754420655900710033713119299753345668006927700725945559333892887148100670226748915109368007534158215565418508031932208726287971970672890229702782124988343681492107753375709940894429881228157745079543009160353839750412595851485879781276243627330896231541642959680063198764651349175249328311811091048232762125196161515147272222695532639445724173927619518018937549814015151677211005714766059313155881482511581770341099774035619844803771672683569572850619529662878460935336726050954618393294455045804289132894138379462287297670341430257900068266150813604641193383856913190435908479922040543205062885237208980085684511786087851050741144848693919163898616633544752667617914905367668589185527226314976648617726634334667398994673428163667538782611752512831201246834435712656365789754965918587182851171971052753122563600861126836293341857277985948673117760858031621567945890846203039090215260709759961458006161864727824194812029356331466484435047199304494118415377159576019160570008447859085485295128995862638084587617308412361400096275239063980120024965190252342947270823857062135638882758426414669830606322201783213960197290815305962445158644764443381242443850042782243990925233654313222167525246176291001540296401318351128227939698765461505344533051010586801542681629737024076609127908866378229983392816819409816629318445095909395224237199360349380880808222275821056510227519460016623790063776602009890158972060011050960410013564168697091966267559023584628733198600072484265174138809694310455344739833924010791417918755980366979553553279689543036525444056626372259611056887660250796684461224060723811418084185421653108234528532505585366514391354846399248487118835957383626598764219316589912884323518774277811742760162389700828629882425304094273543947835023458858990767732634610053858104568310417406364962556913201428008881531782772413969223466717967265631422934358311260882505451186672944118971949460122495255807776354091125172023038736224520468835626681919089094407056028365163015362224635916374360861880243796515815509222915137016177476579088279194893928704342277303297237856921367946446280900224463555260279928436968575747401557880055889004746512347187757762128736012300778474624012415055399487575397841877575352981323549387084313804098093631850337111361968522367137469313231201890672505305481556743531071501169414507231563530357187141726616584914108757129166132103767873354391068560247909150896340923637936121739684900979134210233427996056713585557916199032324247081136944223755576391202720181176665527881432088561539688486091014078835853580788985371017734038714922273904511121662283270107691370702804846260766224741443191964485816317002212380460561686923108221250306870318945645579703957798543286904314609746147158747984115432188105734792091645685763112042087545843266749440858371635465551119059533429740977770762405652076328661056412420654541374527842153176657882691302330663690142588818393757736389139251930174584755676152301075377504707993797251221140343490355850492909456102281684906174530018633774587658073904322542914930847613573612411711530296515764300256223445604301420211828618917844382992144924767526669219972045386244686296628150242108865073496741866458363214934113808336766615010054694903550368384750552135658149213150592171463274810670162893722457569683079665218759952192094272913571858961480963162376852315590761528870235759021450081204870149834755395901028027153028783029425586475174371536307206290535847151009238475037246614003882853779957270828008109732181508943950474530080272447389159712792172332614390299794085708394781721353874272988741837609133335654648606937304314147623994651530341344699894948619429407028347725989205208216668938328615642597926009650793029422701307098297418996818077226372510888752966035809147596165433309252236790981622109947682143996537227735593136256306164449505292948974295813344538139575223861960449542826809988917009120505313765709273776512667304858607637542391346695455156899504177014445092266657698561439238875227340938737798954192923092372399948386599797540166169197192285823755002180310037070692600303719038603357455653751480757414568946267134290143632659183077367035693319747438169700200781324257760909608299275827373998432417509499532271615519777961255594299325645514168908108904688998989773368456874283536953301873356544323067250711838228173258412149811051881556185526229561300489695508917752903795743464819310449907205654806222256619965765456863549330682089306584229732700564893299174472782399539694640520732193744058824824583646989015158940827161621361980068017169603006858230560064244391265206195643571677443443935139087511605191637254689458812692506547153591607911172174790099173530795630418830352855465372795912340904929913370150286444364813126541118298058647292671870294586949181559471043996994261826589216634581045859129004097406316311779412803286078223140248383068309957963547428386186364889255247426341511532194324138886201879170501688633470950391687387363044040802147716264982539157042466258184385273628368442778686475373730677024629426364135194474642797472910192314782465878207190923491272289435543012960030740793759731851830478766754054690445192345316784241876402103599214157522815511904399100241785130071637733751384705605222320002830866780355110392845586956607315284412374995090688437312671651913973542676990173349266997311435946076509401837629745323144530308218020574782866877906101858478428963851557606887430442523250525607282236144998167941032448763422268886452967668380550289466856551366311998580207709163128212018048807736217246318381361344271614989350115387347489156573918692435953791368880861817469675828112934554828615529435843500767196270154391119543700670715053082277627218598562064450304229216534188030603734757261405052062764726561791057004066419337002510699913583740833473278524266959722868262246097533765670154355260288314702165031677303400878597961663980577414953250873377527236975859828884858481899249423701422750174523908762989139713800852654631296567528747954926931551928763655472721550670019335132302546611083766626665002217584969409202065291564441296744509048189458081213564414628252787765109748277541773036859066800341359847350195554206588294504223679089661814468671575316625476090018197696282150652733694221273990677293540899212048762178659159243367215458302659969130899497570360983168895519759831957915977898006050050690583583610880896543548295341751368296069601031741930950277961648734747304336050607249940809602356648618131351308160664296477740304139030936738453385454986028649921251061612641631941985982504684730755208322197269275933435860195596362479977249516299995808661056160381264443070953434986309506017313440007926078138596387924874953898668180773502578170369311704967531455010150165820264823719690370674136823867226336801935685224612524453241501407692845031305901693959270418349830272346584744751317058674961888407151140018035499856857038204973798821007177629048246824873055671758901433720402872009857863956357171821755376684702381264279032574289765443603364036898458713182282408549894163770715134696118553033401771265352342447599855543262875351994098295797693425056840346023984028276527388718426835960129391094918619886452857298249450917848856440937340949998268496788022748172689471132335744645117508693065986961826283429604044774236105221609277056310317461881401113688862125025081280135714713975012475204780229874241144121045650362056456716033217084033943093950336476966987855902647945332688067526048598212828133013042114469250393270994414375037035921152658666769289873990322624769546960233969302692885357315472241240812460572347202137738934890950919693819155996034698339295220450020678013575734994317771656938956428222503538201340305930777368733434450023862836074831143731603301570188899355131684316274635800544290187535431362186563986765842928827546556605409974896771384280693758787153480536647725800430673227666175310416735856400724034037779034786698076536731428770691596185244857658783705248930800041995507628753807290156545258286665628352860294767920979469621036976414581150091702507424719298039586311224840814191736580063206757575476552103178378489182330328481837900994968296363855138529826203471264994600177379199431090917542201635903264035581169752797351533684515292617535494618620992184811737613557790316076090155918016303008501868413945468605929968152191249964013460596081838584651795443455764580683283199335040977149229024316703663287010863257724506277976631022721040845248323252817517442384806159338130302754309636418821696609549865438391254478118221235422247948618054368200540555175151795370390715100493319480457795516750506239679530657498214574932792256808220144327976931083015478271237579767084067074270902588338820833290057476802243514891227123714862201610629261628498373036306471888606962253302974508062116942582334337824164230069826535574965405350753602089884140756663284508314615029735199994432897300998810018854693293591457561284529430270482902151188787112163448897032484659183528409283950287590798124034040159033166416058276807116564965184409910613542028045167054010583965393191739875570621809376977284676322220743927879007111975888265729286222546389218010866277818815433461260010209497335160968869433735611196698367748528983784614134401248850070025203590280412399647295443289470490453330548677488630065111845842879011154688642752492328658982141649863681244732412601951265637391773680027637638861030546667210761531786573138761671215302389512354201691621682924897202171545343098042072785443198464729360473292783222689392284716464614221611965424093169946779425906049621155307382129935343510411439896863878322075663687977858154305648395209598147307056217500086286430951528661514080201274350749074813425721939587470892315090228651793835477404356806338422976495012354140862307444911795365573606485909057569041957182512372481543206733780407715871411530756518066544052021729371575919171080105285057111512956022857073150483507921573131371707315646651684766223369552593848017444732038645197979208550577269524021079037993590719622317199074989390444258091288601001588947745845544907545783153709838319872567097325831850954620876559444293866844227493671391603161166516927389552344808759276991894562221101312588295501809042589338114640009898554110144927237019132014660428690880554524066078080375452121006320563422041543539767432622403113740805585279168290074723222756045518506948152137270179646486031150991689559959928087066232889624665684180217276595858490606359812464925823411029249241403214339404421572258825164006280956727961343811751897737883487133325762819302307865625962668938450148973236644344647595320549772026070001274395808571791238093279738630995861256650684462326851719561449783038255450244425517355556300660499657122266232251146404450531953191874961329387428476591450163249380194383823321403969493655415580035353941333616898519819986102368370242642244204380649709518950512170664052425238965046716652946205216562221815676496295790643463997754488041102353181843636877108073160522028093766259462358177204882521159702753600512109767026965215065897660308300929518530788929622655418537906786428133807437318320358951584494007677245561337307608041873502486674298886534948613319114772428190170938811046200744309980016805242447740483052391528630329697246637614182289238145996890699522667614360709672084324419574968829432959066328826300520133732718327112660262010108160130209084833596475949056359700923917385276004267251275717041886323058338920503223151833553146522955078628540619036598195245164210826145061777685159311245231935678109796266908952190714633382381140773208047515963880022824625990402993929513586431584377929218522028466310022794166845231784965713188557012121529763589031470791983127404880304262202859175577371069866357950854360531956097861267669116809342591472201719787311398545814324274778118088060181435867894358911719028373175747460807194228587412897555781662679633652421025805423239826114659660948555279317873306551759466543413667034331965331451190763754583845451633590675179693330213102781755829115932434490267941963332258477144823601903279174903368371228938175043947801289565895599924632502403867177444049482320602836879833171518515710460159715680181727605687054659995982347494302041391547489366254390713286978036841980334667176111514241080010744315092278507246607411578464096424652748432372349412175707242219405850191476357980417263796867563732095553410937628076285684135812887993077784269611406430502539280747447230220134133569635433722594051990397797802565004766655751200661548156777482417084724557153805291700396552560760625032483079775903907164711690772639818951482484633324784377235775107060050389492028099495927189402974393934689108648426480986628925732406627556276216099858611093980365884917597264741456414959653987837068170878210043768306997507041064354883647082955105472906045771302393634521128835068464357826709065323034168674107686645064520673899009374517277842557519494575242255415159469347397980621202184257263873816247322271028516343537271634494665519867825608582722910766798422122039108174780665033295985859727563644849826588437891460068765447239656855945241726886035368139237622628508582296587431088080394475348501856082803492056494622488351235720081202216699232709382338600136216451952406369869885424031594238123092447129397956493138094582298417616812051595816559304825654790285532451510702969350743078210542907621313378923742868264906381565401624096339257014082590280000682771864061046064314224044964971619536603217238880301770359168967590882758984527235350120655506059025557276843118911126400946805998290713138972619165294676543399283180870653502589874277143963886793735336448175266785079374382588785984318395468967919160937613361817288365345218167287468915046788109780763118480085377099140304702683117997870457509337207584646915568197895407164053971810231667085008726733313381041037113354798883990634469519514018945240690761286729006376401314167711163453150035038102375815001132671082250410610957188262290984311607551879157868922648721768433752460906740659762642223183388100610487394979823903307725545576972587241225411509996961074225523214170347061049368150466070598464033556649884366546347349504890455170460484405982734122206691672261525082197874747429767008569567453681132343891906126647580289388701438040038141685704721600727643383982275580675654077702629601790026747475656980763833163609671032770312863678311995234253055498885707614778873126919312097970588813181006443274710599936176911623176690215535905911207281048354258231666362009218770015475958715112138810207266862952442256805422427965466734826355209520870122376001380933459860044576446332246578334944533764069348007056584440633568309328430971032249279267864946786885317387269262486788423327438127479627723018236865100633718407640756082187876085554341205128419189589136363343059835424146175294740495124174990570634539173828491496410677578279375308013815802601915807618358584261728547135101117207683949216256352114359536810254673035734498014409486684082948859588008553543632960836188030325029701083041481054171132435350909851831411400021089968749467275496534713270763263878661607920605159114535695425529294106821220873975224404479746939862495217806650108616617018236014050415280787809430193440094762577550706089443294920683438217651583818863239041092822742414846780731740235873413342791102074022407128413360004568718842845551143882999607104278838780227922204834069341106166436408025306565730746773629674149387519274195875676979383098977095789284025945284637536114865692523017347802609969692588357167970455642245699402866450298611729940195465831959381652583002490325428418465008516733560978838000367486834359154372761582252221328115564314493573052396696216022425836204879464941448192495994270966563665127405354748228716414270064752866858266763957291308712723005767434887361576802364483964704200974805394287493554399410093451887969860981176495777696946598455682916520301994711776295245986958884524228965381512614846022436968814071099326645620905878530630412473325288303471011487853666904804713346954272035267064947773606701800760263146836327975139591790928663855220976827033161941993734539141491395057338241640957070979476636901572966473879704450217933063696484289639180343653449408682674056426242014189592923088807790164861618839996469699281079325950459083414634650918915750713750856366258557595887736570641810594847190480444316656346648103590907578196144412084777130918259306289501128526972448998837112607740856783046251067499250475584343874841421345368207115880454061717808738771258546121739544989054527798579157206681186853180288643395176056831134845381402249866296712943080702807304786677645874273888899851883009353731564282883025692492076372586338532044092472441110138287553689633000411630972135719031080842461224113785598519664663722514009085026900940279356867131163327746472377914257911635006343803762952955416397310700274437555980724840866260961532571994184751184738370054653342098378021954286253466563241266552647464112240180688715634652875458901885055637202362469403428750606716399139510294936774931382950560650192422881565897386608151987386958004476318878890392851300985699614786338235053162894336919273928464240424343500897420866987428831659601846751490176858967364047994920884401035481389230886560529963245631073383314625104366656086394718204817508585894846068656914347847036034669166265364538320897673324336722931929379250877858906625578769647954966990085388280535684632377425976233646032255736661230012557467111151592566295616116380701028694338070599854045120206065365147651067066968626170988701783055159324074659384804442493796326607513400231884810853169749086016466250539252521018221109295266282939451024314131321754555953768719312212848207001257413347667572641067195020266723519782360309420411738429925009764399985162477297448582217074401136671233184823100209373741151050358340279182601574230674110715621261288217360159823009583156735751050023703620741189261860297713949671462521187093721892343401142009907509652852677755288371015177812990624331489651055981070699707176913938268942881279950475574028699574554518279876389931182127299369153049713062914376621525093334374793746719748439232667411208667823835320203868247002959794002313153888368946660292413873774343574604904155774890703026650142322723361957336555337302730448127732847506901027376115500139637022027425199636572570834330999437637897345599129233141329991885335756951030631994281186303099032351088876543147680435168519612233374358065842283536721927421852466995327882763826299878962101550826816423529332858851156088605919003063194489464124649793881593106186665213065560780705620005231796787135209563511644426368785648022443075506692423318678875602930017751978130439869914814246772666540702939319596737117639861179458227334620813454616988095502090739817983954754670532513516545288905689199638848831711242527281370876719434933329008279560233770238040069040345338767797303904040545040518675700145332368068234395922931683988516450145976889764210119823109306344531092648500048853612447196886090585777660105261494633248436071023251159376269021832627976665856438720109014097098670528794777470467257981567176772288806746640272831969952625153005574574856541847781170788279720179651316762166962230844796073498003814312059739988851609028762127046738889140187563685598408066992222292370868397476950221118018969372792944298239738905733114784356989191959157481699713992499689869382340860887022753473282338789928088928577045359131169085402120537787023438133823390260712866226756435853955494319571864291175061817264763836112871106116016693909659255340257827596992152744498617113767965627334615785572391836391982586071241078561349104447283524670343179297745403601536049295283241861457279897512343055139931860833490773937965015119869580529379079447316663415246482570172757337826151618404475988905149881942615214363723667074368581573926877582148657847639022648672935977944590451249936608936619776372239762977022204491121409887727553974205689041031463844975343506048282959118864888668472871971253928136115881293489360320942626112229018329692302682492715454229209460625857065594373192933388513327637931388482849651843129149608901154330170963573022726738482484331835694234364640309520621594619965553744695124851025197508037804713897743560501130467702628191692167769752538336722353750468858894185835745460963846832142090439277644565098109135130488583188269916314991036227326660802288435809959878498992240992805077588837550584435377037060879788858648135701236388589990707952999586982677632322011940136503814633160008120150972701794810497273148876621298636573674544288242634658344234636718739862878644990997110147975601405535885967100020887127343414493901851103660978222245397879965971657302961295609692971719860895048543286819896744902140272642706728879600386791677942000824803324904084996861472234855391149534471465626050118634443929622924325494678852042350871711067564932502306176727565333409202300433221800578332746120508162957139755374466078619036891150869947125332240876968453075359596858786877927615769733766605878045399313098250353202155031913115778482153679916152296267389022540359299888712173626149443335041468878862132887682624529115897526652550190591531910057387991405302700714371256798330342116901844958049353349791921869078845393421228236359846487542586775866949393590757237350993423904154987429275521306142995807298621729088268695390568367822471390197282476517109436874451253323482947552441239515898552127487654115041066383529461137963294354525652081934251426411083890321942133431333313102272405812751792742721126193175933727374532429783960421943687000777137420613065012106661812293160352885589714855236547258378585402104845721456270811856625659681666376314502923087063510424965688359392645214147645583594926151897617527114606403326109099691821038684625561248204572153891587458370947064967842190418942768207385167139695945187893847160766701284901024007013720612386042846338726596389121961418298970120686381162728756911629088928678707693416530907902761971294678032680597906008300817392117406740097377398016135906558496362622596015321296738783817813774919438462016989645586565944119534534803907692321421137651596370842642912149825415764224891278391329646097578922988876524334850021869765640891783910062886184025152730882937074926396147463946867748120169937760424330201304720082448915531955844414605295810345356925567872811890097795473183305723743518729463200679662127731142450571716259065623140026279761695220856272704170001969113618090949528959619870621241111110121673796503071081554433089982925386846233288197634324769114874827126857970903700729764424642417740576889070739550542900913928872499138891157534127693247794297065516836705175151173107322671794524964876687272860433235039848343055742254937524353911003439842461867348889012701225778005543060397880705127505953914871570334471320164733504191982921760591865077413554263920387039271967754930151801219661570083527211153075411925015013062327228928438189230627992827684545833940745580282371556612395838877153746763545979657250594219406372621018331901556449903630995852223672512135187739550671380405042713868081080856691612996295256074308695018102756929554202546034121173422950728646552375732276856536754828105577611643205939823548328527586570693391909300072505543927699802295879028551831995002896063711573308473913216169396095790503782773331943228946746688674267833585775373370845678573832968883368740331163488433576111803016927362979573760536295203881634516341268531017221061150813730353954030002583133687335518293247249184970575897122790707874482872448470512654454678365516646141932455881384637759606246067276019771194379069843682137226714474537128987567066857617458964035638169305157267193221977868110472353246215102556094833420642224876882562309145864820449826544551216080740507776249917542301037247076039823070852966514098548053069258807900336254523160737527165910570336371204917974836673217914170932788366008289919349240027206763683387191859432263903243871494289653732469168161932514245036598569540359705164795003588961295971637707907491467761791901177643640384275280570546087551311224389694270265854778920375854257533499591726645368534148120966620618564457495248673148929361003568052776119002581453431144400544781079265943499752046877284181362146645456592842041061992879848048633083328107858642930521744256962471866340842094639005652804423740373596058242872490769193562281822452369039989793293710204730843149604171740421840624679528156669564329331290635783329605802046001149302986796189165975738595753735095184620792053231926225037000216329763752496690728147204917181255571940239844446411169006375108232283556851016593961962769557293700047113764642338230724277970708148332952813107250115217106363722797969009030923697934402463115990394365616983527854699628077195506461933721921151854773559223211907265141989933972361052900533504486785277638597111309531656990102157984544643401238247859776031680429466492283080734924753815196471543364062256782113629868331656420701728226772427326496550756126617047467238097796134944395622230969284386029505585129485098583227606239321147897132765389350427971358406387266742292458092989142181671431775700214632614562638526774398883203413106259269140820477234809330435326868852490467301728102253498625126625194752237387177737927529371615893348080909393292783504708225236366033186892232073693933540100502539844817087356209324770139599183510299118202193289486609205021287135929483581798723730096961509884567560540447087526220259378050899075119710907908572357038759772229173265645900975562551614521236745278820904113505847655875542983707750985176980168464174870695769412417707979013488352438082273120747702266205388486227086018776101332991896570789317825989949046210684076851075798647452397563090175536851655724450362397211846071484643477439101052434386618685105791615480692339114492980296379284114930321329972252692650750991817150283773788730200283535497261283179474581513439982025520213968756165202095983818355772471141417517958653739855711713212716521885296716994918762576354746414752995525302474171312393050318361298198468777097507738852923142175473128671814950485673281640016485487971648806849592069044270232321047193532910068824993415669433893796549229059488008329561062646479591319101438467766814655735031557912384880489246626493793965554125356165794443577058977744666270307174226369921880427449186902288737101734983760875211920118949610752631036179918862878462457238034603068857935809485238828833969294796606584599386992107598066842544673651770068211028321940384833669266630330899143999294254331704245345063033820131311787429232889443680660834118267258227723902723238177431990719488851214066548662185200632723697455090540589468253432368487980518171212878795870265744858677131205474259465555421958419480447222477005030094312093121720575993182065553355464406823679735905530715684210496923552284304003311925941014628559698902119032004577640977786842944314001215356991007480608787984154731967376514039449455653668382046776849069605091205545054106549869672410494700417687374231788013200936910054539833063664317029108018222446116126306412998264522581075455949038937508693284439719710054249458815287469250084494844130291142329570802011248655306892004919746046037725620638055187637406057619984237260530991511019613469993367882496465119243861565573480356004978966240154015721197458712323914844272002211279099297761487760782501053347357873354147678313049380939310601719943878275196396954567471223817374288155936035170569384478795050427893629205182431285272174809867491715192558660713193544599423649053236382878912045412707173040209096672605333775998590685319405760881125359293158940354998944015050964553031674361905536710587101802201931976604555782692389561240111580473881006755853749590360849894251346935448571334917525167130766083461396977294669606077997881774187587898792032226306090834577876420430117057705219711359769934547145257419222995860236291534251014538542516113244852672462449240458246709802911046474399051179391734954405258598338525154976876592230671731165922378511970599691264999600572740070932528717565094178765599439878023175222929942810016361601082261648402935212110213133155719481985220050243454836001353042943429650098489166816312084516680945242662043196838645718947385559545250017292102754115490757351505935058416604367224165920641618507844345877081331528468417962174796619131195644732594922510581616821225781774489285708028177865553965696981502367736272375030654376931109030513795140764803866566991666739605135607416506985691294094861056766249063398060956437073864991426798898798775771984042499172121216006893425079197641283333641430256830952007933305862187001642572357642644207109594432443764037383771610513726606845964660441437125049025485193273653363071133838970668106970414664602732584690853053815558185768930364096752168626338331924904431930961453133963536218725937993972924122614690046039966210252905857806083317497779612866286242829039101843469386953026802904038146157069979181386825036321569888793027944299139736373364322363021170133882679015116397747422237755531365662928149681514905499604856554915654966412660120358317857007024254389211108780808397481476359512610109286241048873964025962651016399344971491705727896869288518109299646687159176072946866659456235181140649748565917148616578700762547938511585748544215870665768177761333698743824015956583434284480405641649301074603563243869213417705961025423355713507173704477575751416303839534614784997061076091732801608997261846319626909204935057816703113885817710632195562737153406871330300896280579673146348077834255447001506796798588515387954449388583848055650645801335398633264456269468502124133093084686445602588536014229635242248580664295194705500379462742723465829727224029875144693746853612761977940215569707366256159829727219274513234999495443640118126673887786785676893499797300860466691250517627356786214786336389318121692205517367181703771273522873165916229085509538946716690452425171233018487391520983075619630094652445167213889542761529908327122067129398134484858648603865820159451321262869147085436002611575366036491878198601545792969220007004661534914573315554974615950618222390103205822980218975018962779186420712590714482389469066589854975700971368877565514884404683414285911619518264228169404730573451051954515759402790222546463818334669851118278696429893623436411388254644295009219488903647924789268374356202189393682847039882312083503486447724107146652004559877607307552531932770090577254370592314514229682295248672712935201167858975216401329045035522906462540232634433300922862248139085880847679994632741073144428610372524485466655963314371211601586504638050448737025554475609058860167203917663618741468095579771204790307169587258368563849667883599321847618356794843098936598007174793037502792243072018113735002437180843133904988210511668557213894995514451076577323756849330245650914971666186647035983625128059552929390628761195972237056066342672158504363498406998149582164597805554269640398844546906768682196829206764228498492489193115538235149793170402889391888181005915288794153584422560401866643782342779375992797077127804019789566794456005225003182951826307995452896006616229575343419350955631843944920363556915653288008559068038994093354018607782146075803210293079162764933135440795301839868889031265415645417598479729182453471043058141838806466708762060329455032717377884913715202649318556067492574237419768204344837602549364439464820453416348550577492928041709845448520724309882525619342593402213158526046824577750325911777612567391158436778710871994260953772533283416904493761116413031651261700226467583294756694961113016305791867205554375343175566594294447603639223470758615566360357052747916956164366336803790391334742657475543136394235660484917021526165727258733981909094579925788767994544140190463711479831870738658619615458491909168261406182670113169665218719563835763809073064251985229401180103734821563806695440337626395258174868524038017818172377328724888114511700914838562065688765509670590876169207025713605487984241129167046634933170284688957851756894752115198575841861152915903968710576651384674622415044209227243534885069087270023999888513290498553323925379085248658333480673798908283505700835626758866249127439791547535792062563287346002798607399179661091161827624411039655797073303401225247312304395666180432519199866040589218143230591981191706713130146155580577879013842737067569951642168894482034664927330182483684429287707280399846115679353030284701938066391151225761715302511540513149002897657607430523577127263758640930478984847199194775546585772152494121958981023889090163707331585133757341182263768577119938564453760437632648698897411566617152321567809428179655737050497317002817904594839619797643634800609151220263870455679922082462526616209683701052494382707234323572673169518684527825298033085478264584514925622907955851725529946023030449107275101720106408117136976914055234282183565913467661444533052426778060346631134546861745405765471478701521054204582134435925170709046983408032490339434546209335142254401466151984067200017570613905234107044019234721352928088652924035094946681890945403944456259559694127826430828756886043131251968397104147564990581336806411597755199201567061465252149983772278567410149729363315611182585310604754464022075472534113969235520315784007777157268199650879752605396271292317390017500713123487537702395755344409943721994207401996067800507525144185175796674222328571556834850026163859229875437937956181002063733650322604303144654746919809423522670182756357217869443403527838123750655222159030101310119060280596920738878141826296612862279973569307175462981152350992938735396440615804706566505526807310744191084869718781634188062901871256570383037142073133352892187329042368244728816245557801019486460127855688767953422926026595082112234516546406498252196605544265781595761642569498310302972399152876453730669863533338758341276152186381599820804331010375814403984486444918775832239924691249415411891899728746246215678421292483333507937147604231727818915687900493504264389221227821217551359597861366175103730714501680058123462039525427862054870710238005931232121106911000635890330592669983853906226123895832190485599641285643497487984227817457522643662147924451940939013471084087944256802765103866284423734948753961100891510088707286451405316231185036712326783326652573717465056782392108099690308026292758348340496717388040077740630895504264533781956469089778870683272134392798667744046245372141610343148671600853844115152082577747070321623054899889787875212345619664957164623786727549373103625005999285434544271164945939390932057689138373155582162717132045483637899793739284690287047191511221130187254118912967529922647735342632373144926597110816180355413210106887048920253435879327801719502456055477744009341311234342748781338767684795003415367086484209775977251147181668947322518023023552367930289039292610006025900917951195459538799240976981287835091702107218576631993707869881733517767040466744104334294279324640489107785149089999694985249913461331150384691942083164719425029782167490620743623736502694309461607069414471061696745042233778493038801608459062171329585404642017632106366836864930024832878415435701322002190047479477007655763284452949124126146315943455473013331368086429654375661776697819526174763199990208021428675494509768494512037738172400116779446315504077451470895559209964145193374055977750255259974869348102072363156848312738770777447172041976395916441035259207079078185545622158481506064710061354384693276985818845767488496647477431689118471907720681788235559167138120647813147756437533360093668814052627357190370697549211403900787764284242898284168866861954330206613769070640325254299731502928011369915596960549014130440519283393145261068135535795061867084930160210037088130862403862515800950770852789238642361776217600209645513262279347249832166216429278882839636550825212568359326438333720526582598835787363444930705474290648116847275945316335340699875050656209343552170858322641434392047822932863969760408881116173816487695672765396223579131968531837160104830265255477698390436655556213111945442832534248838729479048362543285442230322561188008338470864635993998782437404070567575616885885452438298001360125593850731856349123011811671328903356029649664559256488084372311559756720873769312624913430590406321493382293928549045666284820646195584313573706846147370946141366268973821214590853442390714996068497219193070890612394304933110863648412809939120145225090054916205080668479055086238806085995891213379282762855349443296698608031739864394781889485908320898899622812358989376082065805037243117195058965400086048396114288665870544563328905851081660886538288046122474806507258887744473655764534600981580991417703970359150428733289710206081061067835678711499236523357223816666518840620311049550987726449097940245735401238248575924644466206847643794079405371031153096958202193924467108570887164058988580743387103100870380526706882975899362579318773870485766021624219236757571719605727036685286335574538993733565837916520588397641691526811614073510270430855397302706467388163893373239415965419964996207581719284573550415931060838546541854060111646967736354305918218540871689650341254639368413133327528852219592424963569467340285111938805520578654652185744267192646664421816792870318378206220471572527779458383241314683868491991760999169074212979388637138200566985916832370082498992964817305762527619789086790301451969839011409870698344526992737730799921343938701069020923340569076027797734434135431525478892615575760889703985056258923065023223354816045361278885969677863990769601803476969888373294441206347946983681577370080181705760079753685269289965098331353317671877595710207273549916551888575436141136537246664064832078702697526976582953014540732614307692488975932673428259085574383561255774989638941937429523227531312176690645129055871354670897538497270099898602932404255855193917542971914371900728879287573345841634619344069531872239371688527903838126730015003025475187242639634649825217949099940833332155615183147351879516201296842002698751387187610529700435800381985337879115041523972331347032683779150217481145408749283936992544162413381888651888121004503396265851932548269547964501182693045183600933743557729285482576127887513309590808858156670462802617714109823212032257430481919634320142309519494906583885712539476745363513273596030650418453667003529882667574100132747861574471628426863058377081867674307904020288905991079087322657251643626406415998828084759950820455316901154317451845293498040623393408673698636427689670924406788661103165535169982606939595096842543074157587069263679303822553149573086936714002005152823791713414223817500603026472065696472051616099723105531490345244740698777759450825120414411742719802107679414936823405402523972359624446933902109681460026035301992844774872918251370840951104094368488712119248564071489595552037263957538459953915015644579149308626015934928225349419360966688065906816709725021024074277760730212153544422427435783365502581072172510570487664397170724349844376268879134468083663758813124485419410890840216600927914444407859422954202214469876954718217421418366842443588139838536147350980372483966068757136994987286938328082908103499508917008948384714271536557817820864344692681224790615796025176949145550363158319956593774470464695525743200792429657432118068443321657333378716565881572188197051688657774717981213197794595179474551141665821508944646933731817783065752962524352665740751413737043664506672379219805278772953122754079745800388210737371409774808058687057176754632409707189996132684107688165340210198734394963766802754063476734966078977130276246258243701504494889428346880653391904458600609377853201264889975949822423408942477655716649549452448084966405257207213355717439848205043073205836850273947722991852166512020162858469202715653672695110410467578353563968283041726818237304969711198209715322715996089686042592954418446593246885716556812462142459991400661806537122591252049405483863839152858584194072926975881503824063855656740346356606048271726249707967534843419404523397472537261179081120026711394377566569998359797276522338864116125605919751335949491237949122231899157019099433326571914618774667872450897629479781278224896888305868643498375624830790827771281557457738264862237507954112920280625225324047449488208974355904508121880015413462892310796776936558361942907520263341227824040425452777193176607933380584367690330957519707721051864828289815989371257423416760438208309265130715462143915310869471044194442218191192957616538717235108734032467078638323194692534690429329832437731595826978228873549284302255084506328016956915388892497964436217627531650565953657602878987379754046359797852966477604104803904248547817097829844244408575857425040092058236990189842648684811930123805068391479888349195004375772654549807770691532114094342580223720634379410253528391889295418277771448058654616163302829139436353575315894425302856961363537685941812530580360223797045472187865965356165672051028410232754381030914995040634485527171422198456964780719580465332248299667019045713242540485611792437342505009824221346930184154259415227155867918137976938288151215994646756394478460567125417874685759142173436591989614247220695146158513743245833185713811191780702143426428404909661903561293341849970134494425371759319919506520241183249513850266579867323980709406586201883245452946382531482055112159723086760662788574737172912588071180300982376180896527944195712764626847622494725575300658590634321836172422519889769725923073736487080665528661299563580680558484420873327632600274954223033334507497554595314682432729407746661200629959459340771897088187266858347911707797790665308152032763383360373940496933301823207043207765909268390413257306166748548079118851294727455174772106131210738237032006465012642319593459422012266389365101981433586772520114996311483837481218570876551250728346987964827729273250311168002582292687995254623551296446271179116867869216459593646880043425954852663271493256829728910240280984525825227935499777072453722235343008523099228592523231262633663359083546558677158717353804892611698380712835213785293527038322187056667850149605605768184216139938690391728030492505043838083422648859100976357771606945599211334222841578733379967175096685263896633599356874494791591713194483173794737696639344480978900436644153852969825962688482039677953883986542045169884642847650446044610913452792923536851035270762698959109377984103441836689990400792381547724942595829460109453045475551813462812697717285044099142304729369257887851628878536178779937686504099238965127824594801589114351954968292373439338197004124367675638570116174970700001671302065767487695508190886324344921112720288595107531094703707069539848385675529230441305182580695811068977336182052059237186913438115135350768688236170149442952241852508787383705682296781412657206383866708582221967468864334366492773666698694384118072319809480173243558452740606936470111055517575979824485269323168733693919289474526704791716612026806388107653883248072140340362036122739408738983345568048898784637910467889611327665575567630053970317832888357438994681364077417348617805398386356640596266369173642895186294586270369841177229441062790952528575024234170561999209837644353161771715564053831321652496775999391889971997244384421115603468951721418992410580795219564900024857585893928414606146170160769489652958014194987139823695479763055791576136087803374861772926067178564978771607168135291409979253080727290318617463263442347703308724187368739234743243711260637639253936153084562971005140504658800098163849767659462265509525082631200762140729190814955336903687054709465182864143777186412975214275600986974659151826701450216894776618039479910606544048523066952089683296931733239966575869558798217134039591598954441530184166927688678403638931205718591385832257097512174684562415854151714120038971946776431126385394444413909874746153718548627272667769985699191438276887959930788856445734250422089093792007761907572012572240489633874977937277006514264172908271478069700898236319344162299367547673170201044636477281256019889052079442657316740624847800325393055653506471557238317221419484536971818185649353278426011105754191893553850263460509676890437240354218215592513910349051710504903855209681032189419286970814056921513764105760800285036012145970984513151188289318831154835637159148391763791692065123677918881622277248893316278821782695517134822677895645074528756250814669945019544201040047786601543159346137455630295041698436127374516047471374473155524568385567538533051165573787786974865027765434824046407589406407859637809407087324248378063469047967766009632578280419771948251311597858656753553858035121038777570169204514303682371687924164330329653940567097791131250585962652168996439996673930917786592582978643007043630016396860591196562558276762179598430881005561068329283760463342965202863176125255499480128368893129162551053861295381079398677366436386496448622836524811358036251074399780995776197363274070432401577120946684683405126941533942777138112479106593437713559143083407804261896032447626430048697557471207717688026821517178409939758001520449470099785778316867853538934686712895756458788869877559981680783192711823360802301395724896255241807898378299883122846159641682240541324326240710446895854080582466409454888690298603556846051403774907659053460422621231148055121114311702956699710532947349299391574438237966706582909143622275828348588638793391561656496826374225227178593687603654080322788218743271742770727512126416264258885978400586813269428912406551889131267135237556837890200533911824214947326629362003546133566493290627666055981936072210578107259000341604127847675231631904802399891623584014046319385992978116419423276504484668459256614796619799435093075688711650580795959708727148590303867036324790275964887529750573067769067291759818564447485940026007227283717002024371293644543571230851581072569656243928479538868782463332165433838084620018864212128958930835492196800342869814290896542233010017883103694736832189365847499371338313008945212702357937475139242411435217696676456287968114016309045012399002645001706143462668100832198370555611401597344364251513370887980051950334628961411951899590972743834281334274094669997308685250325072679531071353035619613107265616518510140430676291398159797474861771627207939431097678879465103431728750647925702528960534746622588017456164276582341990869492483891950650008282674308990924334115062062547202875584477999517102816857377006620095710970356989736484573988612885766695987334086253035980895786825507447466307853246920441321499515432030911893001961916309982058961625665728292646477212738683630184578611079986133443118497949044078006522358880752559953497525545552298565887466178258088967975021075802363647375456785863213263321785671030429052364264087399358164971289728027133338309860348535129118151751614385667286598878265954533233781139708474141705884744757589096758464142326202065973104683991463418533193173155604010274329259004611089094751743666728920959320911627654040001387103313199995108303671235038254091118938071304559547382580879027887860894418899067444764961792452444650844002224444966835166309403459377079399511030613889391678225563910102664734826246099609345761669139088371282113287746986421245713730741298308005606747678381463532584415565901508314847461793206955344665070571358701902158021036486919796873232472982602708789544723069880165708726453119749527888401710813570494712408959251040939140612133901624294696669936420224819164114608579096238801456352506673600296979728119364825576826299475427461912150413010893741804747128220818177811171789659770474331154289657884349386576545127415501112192639049511439192795613786088723367949641826866862069644784118573202663718921309113733982955231273219576477940566293417114959710011808122648443005053769182573587270979706949333687143016497383253667756735482179545933031680337451947862654512606085807727927502392782011711463072285653167167523326580814180998704198730360906124128579805520874033356846908697781089721910585874850712467074637542687749760290034991043889937645526036300765669736819467136741478348841732077786293198019133014037947805605984036256823004802491918598948992212631810298406510078676727465031720580399232034771357550825242054403623234387769095677268408194143881227012698178836827040533507046570005862471285224819787182576222767308643508134089731525076046334143206709423514762255719828158203953212927055436423075341739057894106822063346094759263544308235131465714880719096835273399524722200384650109986464107116929979144436471394282280873504498461205471995842066873052550219175636788115071535261908577807618287360671445348273370530790423726385251067084571086025519780212256476606614246656029432708606913934526159842233116029060101357947337450056541202820841035002243776590978898693250573426327681493361768263769490432332260397940088612998685564875928049122178083293540709820507142537186324953863174947980836950103444552612209815713071017419148310565265008175256716491270021634085752729280555430517993517539237892085117232702561131711127116594383777008861963645500691925337555264624302212305425922831724016940889806478433280928546152048468822045014600080587406367542105498212758793114113665927158668251731920271181462141397270745596547365920437299708232914388212422516558687390450202779054363286308713851563226718846621135164654148462835400529327757170527004813834702323324126521230754994914508582813654487252586611062921655580081127878182597135918837212889913511632108026399330895745934469795715129022775189896436808741256632159763494990545690781739305476671726316143372930727258236673847907037853820426333052944764615506975108604135427568235012819480124937667177981039918298982667191283630576940426023259478255327439009553748602812651899466219369872124455887940357238918348383724881460963343998703697686680975538574288198928513196495551015498282997857999094421924114913328302549309135354604471453279950252353646193427524837893469275636998626506389689779389475594007246959010853224410051005011866509994198920583753998247324663255790189230901215766619414098836899970539289727525729576432509661961029335026471306481164729374559279865187568843255467724973331038010668104414434702313123886167589872791312125547080417763550194497113579320924468930697611010031428759710451922118189610545382181413210329847911606083116385530893228585243842308809778014404095219058467540506371120801183728054400091354876726632434522705466497686375475660344194233187673584137652761223683715404347754487092456525733826165871478868080815860459332748389891988609969624079066701458457693039948111239548063417178440786297711360049076212818266465448566419485726109297777974145384196183147166604572279994003756199471464866649175910720491630288232461869540307263836274642311148915588891185955978105809309506627587294506993971701982571315073758577665965250050851436568855749022087303104309069092463956036195561703031858478105313944015796839590430867963826229365984774795537057876669708276274546479520697056029265967643160807285168246855765107654521839845736307620775489640946206093832026244552354674765967623355637977858682349747257160443183398311602858460219538017097784570734951184386049194420246549947234739650373765834439567453148092047990092987296231727739384668893065905778591713157920417557069457328897963867778800853456992327917823758096819033841300675318917633611671246029189418397681829586634700240511660211223491100286730687787157973586738453503100073802759600677776890741887145669229634462110166838996739758270360608708021386431560204708710145593276077422941930012712481281377807984372195518106699614185993218282893010341462040547596134999008440708959219358817359915046364837047234933602596950615741345697835176871680706520587937827459717979349453165076024429856924541724829313233202228884563722453018300992385548308458181934368908190814351767808909202749261772829997609212163997804104748464565208658702803118521113495749915954769328527669448787442629722571008186103575076886704406494469195183552885895352555161743756298789341292587869420426479999098079415339771100950325658402817460267574404774150167261702643685796853808810890907029198281515176453343445158828609690602545128099285563287114060675966198599350622462081461265851860933732676558731210228851085552753566598718839384641687347739115894898535322636213805693063561055017403643509879964038761632326567475383339443078582270397748974826874462316040512301627243759225245022402036291577955668440198746277206949688276984641945875041692327737984476984445578703907895331772338933019065568124098656611313807780866698336255010684588989491220802046048057209580717372468072409354938156225918593945597262040866079208111925440592739975731240795355772262087160626985623399478322956182823898510133888407056180488766696361403085523603286099956391296897091706423112340025925794771383514299174763539725339908984818325419150069922057177487800116024036865403936612097499496319606086818228217338280136944283532880097222995074793935253251513708025414598124144886280753864653499973740568250544521469184601600378068129504255709840370918059996026967664098246138473580754358016692429472894099745310783300601337639830150842005235990371490752169152782255468548224669316959381132405465641049068347933997331247766015538731573857157820369229970624267011827096181343216804991751896489693665256650647907842418190649116807366217195514287546546640462509925938485958693644796041992454678322566092558092301541109128621878602001104373540209504911265726995284098569887428109036334425925387995597218998293273739360751426296405635023550487808508922264736777508957826569685042630877309285196024295317095360351458756408520618528534033133328085310397569329372709641322976796054533539490627022785327951296766811916968530276709399770439673745836225331104273411076593904407520037531706054212669127873990367264154731049274174416344157053864650947895750505302618064470251538632747220197630632472873778525077363889265389259898136416439798831838432846848041568117909085593050424584217770375266746667702680747032656920085414590138626215830228150995770535977583582372903076866163370110145248562944854560704274309280512876147171120089735640055269229139677926104558898078990285714279353952263228660871283605273109716817905588306043311351273232253708753496670296023778361286874053022575936947856331513278119112287902142047451661371555287667302735872121204066525553916302491865171195068098874716930020832740450424454822376289087616269636406558018574123397695857502953191715996396488537597688104693786164003095790554489702749460392485089018699253211689055737938398095095180328953660419069795930921896024017643169002926695014847759357909587609585400832077698453123020646389211116736856884489665130836612981994133110434602204449816664433193027530864782657190498101955443183009870826214665380125563235887576779075270325928586364058863121020232903600509141311067714111413314196142469084908331827565983606000160244777772954892741325567406586216202718199448778447143095665069860697934145212193418057506579005777470520485429601202713296182549194658197733446726349049064373232834473465260091497675433655076317210767483682781018938817818401162165548366772513806514446852798813482062650299476406334429169961045411369819395366560391417315533288355590225735643771768339268929751710409252786234281800639558452424165814786492140795716016492472188940313293584228009031190129077293265998280079273241735615838895722908960453277899033415470437632927637591237828148346789847882666490658802356953416270098263094652169947579914946735372175171846088349963864619207125110833189179192515280468152651110364526897337017859866222715733628146991021815343572997435529473979558041109777671397877236320532864833711251025539490510966990930866917029058083944650587111011023531006258821551065672550089362806359464140727331911740509221923974278995914176358422663475899800459151252926323287774302066938342999082630146555829741282204948233846868162735419546782333035706120201501551326966300742455836080172198280904615305602588504012490893374369897952791939723408704548697585008007695421680392145407037809970708576151957950684499127910132658368091544216126611685241731837188658721986731363696061220239136017819420522823964262313230536912617695292796988348754610862821268192467045553255247477568022969367349592725477609903891895484157216781659457865061388216656574373246435180578719759244792193254457437065293450126019379830121041540859789642900138291588363658745318999762349653052489794365918252474296659167360856949377808047601238192911523063183005211589240263367582308265578891201807711548711347911440682788475636687655728889473614335632315111057921124159910888265124489167982505719133063218207879073007246376279263278198173688413084536643430325489340968392365491222645735850021989058142702023976903720531462645865661183072904506961955210710431646300656838075035024974742153154993693775325131100045863312770311289298315431569974374112967906188775030700494087240876155978305354822720532129055068185044808757643889262482468860994660049344438915711061029750017845322700471140749512865769306442170520270982484288725138583150391126626260316975681352638855822390206717945615128826697388738931836278784046145785166089017381558927463926110218905281386277919522396544555817591381754640785098099239268415497095326667780541903624729611672246984230647933661291953171282928222111663777927565393487851848881067712024924800979611699584446049534592234938100552746325280264837145255548145591280012147637991356884102564401345638819502041460774572639892854105088856895436820794961161664709929755512187190923363301717202416857906057866627510914209164246336380741684827958358579189898247129246483040523039382293498948119265616621648958508269392669323977696607954836690492782238240094766231374490401359024191730410724501118154154907631445154163848036707435425319164517009418071439483667347260245494912284415888101604850629008035767666621565257736881334153638914280852484882715105804150669071956953748133342661262304100757806779623573920028697520204136843294624398800667321041782025994527235837987391057611495776146749738713796561053069564541526880725910280369156038855635134216540897815640073894425075900003151113522155037986390241937287393117057422162824504633192855618666332999031671843132379657574802303412756005936120395152043318033270759544719623144572877946763457629265898355620930414087892792094065659049320962128383312283911099316694418791280753554073053805525355591693492602483876708000400963422571928311607444128137529306420232053762193336446536536845968987258719772926573862041129630530829400308801365299159725164848547486444369967914119044649613709217737216963483160397026254762648335947038537964113504101647613365044673622786706224165145710556059276262010957577885746130581011525459174187227337179203007123230347117491579431676373150664655528177891960160918485321656390151142412458515694213910945766521358022274607384771182319935908484750887472847109436021814170652789912018421422488377091704507492471613929557779627607573387232465552153185962617458499953318427948330619071980335444671906390310125350439911957841941651934913581248761800442640008919805179672609786785692937902684998469402744772708550298163560622441976689667708459165126175552561122025694818688989945475302681883229609688979207610668801348418272547357099848106531172461584252369796310967338262965090550431898272289800742639775937915019144809056491097869827722408097067426164140940142441442705125965491582611437213916529114674339474952288774577242511882633624455313715287803352284631638159043405096867964817106482933651915052609198851016465186312862612499930424208655379904704580005947999220453901651997941326495640554598886553140616891525324171888164116424453396936973005435884886069148961486402231156366409295777350432195822297679509329653621148626857390009154441939928993522547885421184302745417906953397021472299667816849756195978681859317047415805111471786655675862048908326994734630212692382149733177066635852368357836494856710733262085798841202096304549234560107530964102103115735866018845370052850119556624184658166138734478475456838687149233296327943448854076755956745940716199953718098912812036563699819441782839247025939811365661938503214057930064744454754242674063128429085321774480184892347392079909575838879751875408135349042550901391972547163968444705425052911230041551862410558334902115393942858679797191296609448141627731761767400506182083287869840192590331924502521584730608367151498908082328515680517317855595265762674818194161960094652024324105615442641078446065275299680308355775532696191637651091681168613154075968077573791543197661653238804504389497687501870972743556151907256736456970451507347738325238278575592077666486870185224271155434861649353741507001227261242689334480952650181779561819057091297779331690612896406175107540810182920587247764538657094270127424116357012719213679007402674416038971473734888706622162544777354881695493456842652872509438667070486642424525125839055706280672779394310911333907090323642152693360384948218040352755410469413315296052195654019382908975524711039616109164262579755081690492123487398472015292897745163215099013371198291787017094518446875649609003782706264219947329740359923359033684080559939846547285880534632351372858654020833034017968967260178587904502148852412564248767954265275801201174119435369871989775127177579754129709239803470383207735334045543205486443235369114063218165762834169688031205112814811307248729886862879343035351927072693011334736389506199714441636795025295805508963562411402809338201845416950799682329820358437677143723279020578063764884249671791596318419337308838594009583944672698155868812938329642226855839636764983111867353030198178257148828104750477898838458490507137805310072735109162675512706844174047924835191626991971919152628062184350341596604266162092130064199398300657458299383326487209050685642779662800273507481016847248212916415277361874440535111879471460414962203828900159441498735539754079990747571342126340014516906438423469219546803572859154963964854498764705271942335180009128787091601054963578765115200772522381027683588079677938632212861861972942911596873140828656219672898152513776726179531516625710333735303420126995016006613870961653219617815685265086009030681315309559059765506472013322432183458606099124385496120558290903437539097958547450845332195555765959532300416563945745626518446533204053099392944277948369911545868784198319121017174962291336389192129543873152726211019489169286886018819629731671785105857472572732240514677206868204953595662288357980061330875447164252056130487914677594680212816532679986627959315131306079736079176241085605179911307124395668450644348258475933049299865167589656985465325095337272357004840340267418819861078959998623459788535365002063186201981016751147094464958567313087483427687477249731956704089153750222456651796897696231841535427357606448990495439406784188089290402910240269970432146607115772971853355571520616065433015227431189768211735814490681506224090344746948094455802023284118696192831652273308487778817595699318024918182501751921931911633767918722208911628466969208850751168546424945963070731183393742280298060040341609557299736125774179240938509466654475482245010683132767498390480950693970748432357471555222445888250240964370709910661380413163600244275524329315983665185801479801738498983860671440643419624960122978634932640491605617867991352395188529580992751119711079841987592413868608022298537664968348434038876518387678571889380089672556091516193042416505477671885760478352310259476418003129547427869497882262392788222920075960549404286127242049868190041528544753168419623301158426263286163586255791519324084229910442202038334743785263100773352443894108036593649938622190286143880566473924372390439026130425580552430198644800276896895809024459355727016020425561487012470611537131870425740798942515046614855265511768780143171456737093033509559454832357288722349167637849304226295738972635989106101848627944963503701378609826499180577413740971270055176890520821591120116976318709959426890689835535017064831088715609470486140993551015195878158314303444888347339068326969766785330293242034584677292239476528792858072500198133815115040684351837865734100046669317912885762737943882471330533702114732181572151260073444158690440835334274957723416357768538203426984048877446341774313811804236194091973599895348346872007787419984986261448373357801193772280514038209299360631944114140186554009977354123038042024434909639674926556910002625417091863238493376308446435489782937747585838736538217660910151518721863669582439694290303602185451681171805542950694858371157146634029132569026450912404709692448867523928017649334659947409099263159952649159044215484919047680751520008109316965604851880372738353361390618888654169468087033718651098080661674129714698386310907412672081692000566587275787104576537293703479550817411023980797337591198524397355429125555453698894647796551666207156699519367440373040671404285436113408929249747532379244804616211493846720543087098051248407664403312848711276239780866311520478209036550381119505423334819067985440574522610485701904150137654515813978627066219648034736581963527981040309074029781598309028913137051038856155011014030898887742692808758111298251119982426249255456522767216051906574454076544960357842484413776655796557623809928670732450339332260242194709546191125887467862740529467152221629632306428548779921604935138376051618331174218495229824191605810549124086936222069962383385937675372681585059653144607294656149187627277671735938284656606611645601544640045726533626034360498397555255975693613007135099232361473692649306264851711481959134942252039277782247709209128791364427574432826566711665151114105042418804133638228851101134428136933967231263408542848370006153542881824890047220671550125568062366615137498343666029005687509639097543845556144821624819559306426160406280584176244706858058492611529239989627120344157989316198995829575008991200269364657856273945743996478114958055758677443501127357406763878158006261982079332913614628213122025923403647183947451550267645142616133293869527914247641615398903383254260228302306900151219336455155457277162569187833383222322885674431391447357636237701493792738600573979241746396719557743810253686587389776178357850435785862956775174088946761443392866984303201594050783115946552219556682869121334470731458446450844023692786819134994091964857937057221116103424486019631252225121854087582895566690545581795524467423163399644719139113862732410948767389104833177874884193456589301435904951590962815167876387013607722726387038537506276050691341935112426597618691968495468380826394038351345064070162741977252005605630934408896071899225493335766890014779194435039616230674373954268623632299534970484656945053669070460557614921570228714523225987964877340541767805986350718701662969990116056625142771272883585914549082271730797609570551624307161817497234565010860219703950395339184710457777046145688011383731075467155333598063887518728422624419062150851022007108450614982300216203334373909058451382638907058362382841974318290825242601004555856697340117148221250749729214302143246481182013872055353919805344657813316148005673935316282451221200094047976725864743198842723694283911407153710333319195993156604602505324719505972080720582374701465498254489139892131935871952034761710914748389092758170020591434941483148342625420809266984729133038467718573679281873071517136651088549025906495137368984470944188902489908994601571537918207403303891845051909937470751630472787372841216594988853494036476412859543816685803504394531152893191023861764141478528277872729385454214124418991820821346429144447992451011036925752333063078395766327237196362643787166904286811128965080162906685672926456953082452436091387015291656585027137349217407401454359000256406846841614546025396640208965607157743010241699231751465841049319964821942864848584090941965020193035770075128951852008572750037950616461637848897731125268260146447977888380987803732644732535165626503019631591356065719698928917776407388459481056755310894599628044374005141595168882430194317055277496795917384449022593979135628247246017319591066094888806473494551893761737745926832700139603831309956399749119648114644742051397745885350845614742494374874595430336506831289580067008138007539511424917490920913067665361346475944189558640243273439737597302557665508153124607783412368548164779144181053193214585441924881381191663578263188283075092882639530792150157741494830256782034182341687235471943001132451465841842689942895936536578226267257803629252754404718600374660146786526482627786339260492064380837859136654686271396986695005282883011218190453390999501549116762967610569379804905615053148837236137959608814078796096570848587873838445533769542266388923347461815823158343151905616113220031080729037746007810126669522000792725055791426224115659185706371723515781288014379078563003116582683067522455325612925477772486448918323453502411137539417954491242117391520147812854035711016759616028419625092733800300611362585540870001124950654592196350897855812368471969271550250903718212509218884511264625011287519268149158981145107201323915336897967419883531715851816955493441238500455381895236903072566323533175844723298256225639220156943637385708830523112791593876197348380475084971901444655320721910646990001529730841490616004500086758834078432909364904558463250221922365871865373906781625422417116119814985086774671442056728243960302797820035359009380936211587152534619230614972990947028681356138198053462158768912991081292245984751114035500321133974425008366870937049730284683188842561257717331783238568780643863920517790813005745894804122898990500246422674098090631963638691898112236127579142896347872213261172569472483076934485989868408568652313004074951642754617311993649769399449941572481455621754863380822110741938857148943901793520578914605043386413406173310493670537362268124882789771217399057494006242450102814353040078134880087302236238911090378306208087723758237174323458768364698596100624347137252025022965273924578478827394632958666652787820560694936704183700219361339753236233270768490845571449889780337982666717451828247556137687836255522103260750151231711958434081600210181110936874801172572470634896965947332991906807682072415928214817072336877057139687289601674888878574442256140251538995835289085561897731129818209181262366235448783310225603865974387230429605175568788362601685136160280057926902304866437304254115692524867927667484829496104585166834944706138518165403675841382227459853604102671732439490789532925538799857114603428535174321383484122053669682193863809546713381188276389269841070586019319926367945038557418652831773302095329942559102458261373315667000311657084990892181878402191082753102032237624285691117230362289160878549255667570274566394985145718955068679228272908787765610120123413549987538605360747699354773825234511917069465969355890972527757702746907986395352345696379788251214314845566556594831486026351454619502759503382734302251896807219900926146031454780004167666295293205382513107874606276319578217326455976541162181533625596130893518619255655426791956879282001921447263149119718918503486392268121027688366646743577703692105857637266386670840315350405066435840434598879412579045614016567524565950449697832319645871028724978835288385194713770011518247308395593476212320926066792709546000195749464368220023176033301709105672573251557862109655430577481753814874408973740599102034731817958030961364369882375052922682426307509772768438773245755615013053311243428477116728235131612823111921537242525571234995944872314822379641560079563846278793521358143171579077228787427583099563444726598751653088887906862871725817826550542134723247661427985746278047874823354470691361178311899561667075932493255478379957900333581343756793779130855243085898502411029360559488489220333382737695816865370064261953777813264641880495402844736127036576370403255451812469256948730052636831928437017759260359936658881849117882379510903522849942983506727923670548806912136864373489499889010909708479227667954109294682766335734995658581900018353944501270957692968227814338134580399301932745160692916462992114111366061222282741379738434743158190647618436731385259475922875191196530811486906773022428465839713179909748542556840988826482798329372710732226123472333035888421648175606733406902558685474425099944171734722862758682266094206312766251625313349595372364356718416249162520085786175027058349435377098870102441563175459215784912713216069084872852055111264216576478648093374363450650298232256404495662509381616639792307581707532909852711957889599264846071573162863497097589005708207173552161887626637011581570488003509570134898431825479175942524655179348062257390183064591054892567916510274452967384034923745757954475761306568540206753433369923580862001711209882241614400934757966247447899468159834652363548150082718101431285129264643587036845499816115405073853344189092006635306924424214538544709517010842978749091663408204592418104975481124284429371793299015906922625539787778928964863844037939923996550374619151075146972603191433196531710941818711920111129708103022670008117293009314588472766382696494544980164704355166589896920488488578382665075197196123737464569390563776681562966305030492581828844879960884466336335407404033395673636725105277462301265294649485212227835217940231724149797774731706111406539229107029017527968770097996556243900411242647003169821006149356043633625650290888387835230394246591201406369664578954132587963290994731148999744924470764936428181588868263817053845859121042163128886904798007048061358375979474507828817053406879629161379229172912523446560124607663565276740893145470887032234579468522177825023099295134147320477240088441819418440689107219357995311830114237303323893681082175771837018720042099614943396929682001130947773065562751987427380037007000823820448575415434672711904633236984633391921673094132349050811222568477851217795702256460416244249316673442628737944940656315933045285572842205936044040034956753401665761036710748685359318074588536339361169153882777629724524769811321665587342830181707451556174832164466589507345113076368968779179763286772326345446899415820564455875739121446103715349788277035189185406476535095427754875037133829170775145032093404887013635967014255472016609594819229058636449587273113776716800635527519791625573284444606588966544191817089823186562240218504626518202100655982230799037265577910839196611167849047711665960021366994230086098585069950987135032704018391467761851186727735854910572734411380378435929580966992676151206074286945471263371942804959528047942655596511620050205810482464244324880843688938228197167171837272722040935696057180019522861727670665588867984159082833829959275864929882777283159899995569862441531877909854331685497817683078938499908898386896508973501917210833404722455277048376632915920874064860294631291001499869260489511682928976607023907497780642427971346036218576613094775066646252270986451706241498397329319837001037579283899180488226266732444862504338380435023792956924892199400344693919274271466971958556562053301675134484074914636931146068769097238194631613597437030922015115829768136502738154270260119674903757227620918670332107722398961971926630980700407857350411179962920299284406459016768482614613839589804759863119371908239524355203742761445893655856852718104224556987492146670488177904692648698843569623979608129772670775400720478478178612603724675676710436247275603886392162828529254089001010150890224458223378847425359173466481673542810528271451973141756185657718258935033515920735906000858575527147172000284505769287048113468332644260767967125191916921160875532419827569497928614568327591414973474485395222192481264565949653282302583648639914110610871742403000947801613045559245582278188101696676118077025440559845961258847307296345009915906017935061568542355706411416823355949228475133269571222630884058568107402655638870955162115260550265653827858640918890349582872051135535717187445828163152577253465478181397518530176265525145621891501511852661093025534637793776566920351760435765124536285428661395641730030235884455256494986914267989168514282674019754441065389859251636589869527802126158008882874818157532974322285933996908276536573995144457290758296782661386940252414692018714123432981325965234251886336815026954836579436386275978880342425065504690893585194683293271919072788575562280240170269368355941952858481991780347603628580851147367068155038684044977577777394504664078840559684319553613923158923135218394846156636464424125740509567313323909192986592564776667321266333792099768006397685762675155010578612758174522769396855714616787035650063112606942600606397034090400735670464580063391939167978651121682577824837117670768237418314642777599803599873939276302565027894407005615486856308373421601551158099131588698743302312559356326180090487941654831946991409579377829716980786016117740536116251992602013016674098414164481896042030029811034917644936822817998804356665912209161086436826116675722593720031743350024764706315173568804446694608892107464127811696735789290816307614455261596898773544850131342536274607454213996465218282092615845448892241933462968108944252945344489695985856711316276967650328238606818443473941172670810339669939765754654947972286265159442626019743985884600501939934122455363390382721925351323999072821695531950781681145187152193012104760919234609339770804685341435740960364500823624709600067213263957598165486793357013806368601126768186553544927759834193227092816787701800981911927041473308868837248618691232623945746178818414342566419371943563524036342664972211897354110339406059987652986773297699753217412000026432351861430262178974096164884161310928796255458881684238874564818389398439500430210014874377324851109542841070476595242902894256293823252509897823246811086028699050176933974044024334017025440794199957659608008753014497124903959542723402878418350666849747680331683364536872363446458772733593363953769710523706014354780299431038071212403747063031014406981881816881180725538091210101977376312652651593534778860512168670357149694738184113525978766925746063285650937646614602775669187604370648028027196887851166309819142425201913687184070902865122138631562186017746983970269488072510438386603637080830878164474412614089036735378031634084696479341416091454313464512923323697802784174756170153103867135316463211247596274843432215467742359794624940273285299640722484221111971938726133223827161219841933018374865259240244900978439695814484662915894438974763743611564147919691020224062905942262395239201780263449327193475435657085843831522837674244663624767252702847430672898207930531264143424684342797739885704374856577306620870868751849650356038838029994830974558137604079500157066890962752889607522767012031228071053125112005769317879355894788341136385212520147218540602407557900468082510483299914912270015659061026739167802198249240712588527292938663776913998150546361521857179084846828934636235359859819902150850927050976002278928092044371467947894421178712162292132348321259271005337458829018678180992615237062751655455762524626115624067432649003020197845023088026380219638317417486227524012549513641970420483124424794414978151686669909602521482866871194766809277468862274738351302791100639416289716887208137049087050505690269333081777880347691238341657637863008133895374879371413722390820329440672224246558751876529260576714774218044115713018671793081853265369263715134801455499441482037341654308524273324372407045301052213098199104282459443246119252606183564055680371089436028784983599740751601123558789542673573516205178961911224419241673961676005161353373474040894767896958549347170059174367591596630898133299135183921335450099635044288352449700170176658675439031420145047574036539989758196519716435264040315565687474348331083289346839757855922457755625978286122397686409142305840279639698609426502923255236348105176494606685537996408904799577036373952049131305405072937090402264741827163486628764970605244515040847059502379196330269942637800021605280298666004823091196748249809870943369257302559288464762981454990823973082603667618618819859936599719535424232067492208568241344010040538155060349557054693910278685828544302061730085618180132193257481327784094231026446153895276772835825667991941489954187668187948036518026764982379783689564064711883860417560584534353243075002535905547278028138299923110947253157066307313369065562396566616174209229361481271802001599104963447082490724800254432477871631083433010354871754544312314754674101777101794472011380712748005087700761668177417076447903121806753737039490158882254063792768972254157327204554780973107592625666107629185027753131779701844885831392705206060261803955936021693858854170458281188763261905037228944351661092268907772688062058236014808520814142395311211009926215718314951518110544249952261621579404783971052788275589233130105164088621109487101893922299689592661076717312133522348484023293885853245025108227371427090698784110465794733156352290788219218372986289058713000865996967933892862278572761838181121066122279103965858671382992506653804050173566791605426974406684685147634892709972194340814947343400867639630185128801184027317788222518025809275260053234722271026455660284587111375951987667350561282556919359274970806020611178148688237982150667486650317900177487694969791027072825340168667466219940873411145808780188145038135345732064176625432954186393038274701114383913892681809312174688322068841984309317105548129506097930933880222890297528900825985880886827181687813028148702318623410706678174186902405468902892042410940989707234024393341092574885547320326679604571411285895888536135098889491690542618184510703208560134675974400757745809486184182520252191272736721369588270531140148798460406619245853970859492796903350476766068030646066509880379645269131492191893252153830975672101404888828636753784047791345610972619735736544274682431678200451372990068854366822608691585089875489802315903584504731391027269363238031074059789354394702629474199961064522812913921901577048150898811071439683633369048157369214213939957096901842646295910096860119114149216829827237561701067355300470613117011723079049087789338362161906002402764032343524041203830169079299004559137004625301395370465484449106176304047269925140685693699921570803337380951378160393954387403271940752469134732028829719743140961470433638240179237841527342146762667895062675482352322129219255724791080386463333567417894218668214307021310420690860133810432707900143521342320959299120634909286554768826042049756967343247963609664085524182766519441338966361334539884608331285149220133467380370144277279309504211080214253646118555071254958461433382400906702384308941810593981731483983433893252966175163205954793333286614052347575267089207861676067388519101051268974544510029000685991470877299905722565728585804455121013303172217847630358320226016947026445712296624587476196150121119070986154166836728735131833334478840974644444546186528530800417236231679788110768183409455397325847691211079996006737573894886720264425574094970440297591952188333164744597628135372506372709419366382411371790313780884863989387183967807734874229042734236120028269810281974316669237505289274551923845482964318164784398314015464804217450103801177286969192890497966688987845797375053224947160884078875369883480012790787517371981911375819134688132938310110085845229926017178714541406241779988441693931125973293299048076329792657261400395147021323316924562165963870426860243324430533017653144434282434936268250284186389815447228755248073675662827462264379969991260153745909193355310655387365455278314245644810521762040823941831244466523042529847434221164934708011778961040209912503335104249413707331260572655445242596398101507913755868137874012915479281944057201510232989574736930136446575922951546814950574992396790317671943585262380223099065720349960476805670466163183347878489291168764014404197803035706042802934392685029076283532349765715205369418231854491421826400919507743452408005549201588724870413982668775740945951440584685655376596292386037424417620420078154791517377786215668389624880216656657425992796399644285571058731594293351492421073480735926987503241396021671566497519233394531614689349163235866060948452223974068261074086292369994028159809164468603125730463237757601545762357611544407399457810392921954250104478493980668732380191618146369456015606582883448675158553155548544197187004836849214418073719722767683695487297728772901536699646524617163212719833696628062340483747125807849293113070957285612605488634173446047775044312721136170916600331659227415966119475602872804766166759535355987588412649942588807326093282480651633405276894268947324625086591613423364039561113998613725808102901841548741301238735003882750619990342474831729549627044518168219210095654969580244741139635836217893732750192759523620836069463236845571609149106931832060538692769501845509119007415089630638893982602145142304860074185711029070673171698593192176177304725357130665665941097692590371396105878156811781802406609551555524839029341828139720733622424119435805954754756711125594437429845300834430655858006023938971024397132900981192302847144692718325631825368092705410065597165913477303653476339840122558444700895382195654989093682726067103294811780524260900266435250427908832914288643624021431100230916167290714387615002799564316948890956739641445134986139906226627604273938863603220304080859237871640155157932977492862280323277595869371324961535749365472201645416145769010634660467183012098831385727116037371346851367963035797266383007349126349276330017936392262466366707072005134277616545922400401052279018710857131305270785397036283759048984726528528303408519585839145063185260453721096500379477924898561950495313568668490517307586640444696924895264646894033047097461195934520316343547409034628690165028503935224308115845214537974654045538228594477805464841085479652850995288064331676461447759855295855271655643764026406894882106652005779278045911177711404733040580348468521228932111359340935052391417641866929124713686186076066056219010286492854363623350550879413552502900447138402806922707542529447865867338416812589613434298719072414948544710692628998948242991880663488201737090992092345470657770950528320890030692282861000549947048732346179008903465751089587382150876748957757333066280617926762403726730160614038964367045625048809634091474632254874302507345943294510055118712838152458231271786276128187716876153496351847208241303374473119559606541682538229877701870860004346828210137523983413205748790739172328445377791886148066931566307854479041396580482260454858323698801798793476149262313103339927372646354155743651246196085554897306170365656593865485359729991516467349195446987378675348016594112609157085077510324860586060294990645110868853657398332503260845427198254755571279555554710987625913821434425156039629945119579902653969117941002372262130561110887647682892761911623831864761112287237765142464197967004853832849911964386032150589697206082379586016459863757829426791846144087955162161792398328821478813938118903607930308047377248596488863599040025833584034256602715046155194217277625168427716932635555491209923872978778047572614080379477228668190591432046156836170895489448746509245986369082189563110941251203342961171072398184188979521133709367012353755076260563377669740236185041867862621656311960153698779709142533346102193991679644292253778600509564955442878635551789681966849159125537485424554926569502427552779276471695640274568893845267804626670082916441411710761730937473631229290223593059606456739343998272377163536038335785555938101662746738954996676543867002822320667383776177194389499051014129398916927592045049372332280310305759845203705718068741818215224858242424301837340181139119800171670191991524721609120074651360830623883216622143188047035792594563839961053861235407435752344326894843495018361162922326103882594660693673774564082787927366837821080448524660295457772788451728797100814770354872135703989473957636558766149247503230763917912817532013998759601556962033246361120512438542634212155325848906527745598443114945518481003323121784421196836557151448781843707119597374883093286460100307775659248694401890561399553419436779601527489990279687227688616884183053648510771382482371952316939251958282733727353134572800479517973964340832416081902668612347575417036585492144641800505568049677407575925580914887687036365518117686901240976519068407925642558613205216052341017344791877878019344984523123716603877241367581227447642870583264285259241679876358622170408215375450521337898658258916220535820298855535305585196267412447032902173928066632879854665009861303240877020724895786596053488640274986124833282083530774404894021168348636107116507494067406204503956865250919902965509615349748928171104803068204846894097491179510233103902783889215716798476032991017760862920241209735577605974657593511828008024698535292128587985355791995110871498741180769510436211308107671867168403622432051972148423248720181973143819819688297410643296644338153794926372539286016216599170863645525821491411237114321085626891930654146790004800945824293839307687178408899499537963444018436380733368438888061162325078511412587932509368889920424553253608676304879708112144382533817637634752912226026905518806421399786525681347726823830797384492231625662107544273060515395363986353342512706697249133770922811565986044829672491695845950325272491866188306128377275717216304907394020766150028206225662012612744103961179572567521862080856220560054318852127245208233628579866973052849236672042902342311035326907722694985637546116046470599043814575753947178200986444664877968986092803198809442973102524729644154799625464287836057945053933068073199654502008256902938505955788378748731135660446414094991656862649235593477739525423996075545314505497403505991599432057225699021620436960839100236465851963104332581125494968518798862521954460017518286606186402738823000980554178630088812239512155755704398255517232268661948589331759101920262557275045333493674710264269429239534397117612141630651103585548122844538893179831221559182975536292752800197436782729444487987947773761478134521316322149371797733979440444324717624203947453198103152237626339022439424352335212959057030417491903154871069279634355512612691707860145137817599353756025936532678435122934948152769613537757311489405927987885971129045749982958406197484153093945584689414738655240322636075632808171704141320900261101775737035682216885727590284046441194443053476755525131186546484983488872174252884996358346631603757517218529773454352620560518970882593147749620327370519578223431987723304982575159040589532154332588148588704005732483653247724583743185623625406077033664403479602920818553372625194141659237963644354949659732474560122645573153135466026091597826027164802931468071984690529494392276428986247035645398821870620939829330047410811097773931168690575339777907982949368863013694424589854517197071421990348611168142719950826247190435953640977012249826527112729918060494101771281773981738998375340425750578405219927251120168385800681689120921146532860174483059432803170720055161085151395236452632034045377068681407760868746983962556587790746100075480774120210235933064738793507216893580461370560347816736526343849397715001548136248617960940719218531274053586872023487624736388946558273819859778055024432348425110448999045839558349772385408052325641089248799154723672402470883886463120452646217574599530929376262986305514913248240172142368556884401325611889403236680724243023432687958100448477018772116294819238372033065428049992814688828815290717433960173647107508918721847561612595177179936602997917810597134781399479974568670471272438066245323655998440211708494268861342182812670001995232439745373259251801630423931686664136147849198413997230125888574776111439061590200400801328928132649010907616887090205090161726408705376448273569538718628223772432578769222237091453322368351096810887704154610324512330658350010730176602686401984977542724124337041137063890434590187719283874480197949727235121324150882420971508604355867168648042210548491515479165185169370197748676480869554473661536033333661136884130197299018226966323544199831038746016363543071811806748638696485027054284329399807572976458251288724647550234847171169557018023096499676745809839724685674530853148545345290621095614823876491235975199973022547414898634816599123314255039550707663086889044430589999774588134419333646758729491720590920148525725816363913055844568774617115876824194575314674842502073279119113779678846740892747841061574762142797927038050933519790749387489991448559949596845769206831684022282120133255471523492127871994977187841910373052388530977230992304854904409464941703307931901212147959343940074570232173474332342760426167924680062043765418480679580018409538202258647937876591454721173770282020717197056938897922301396574534758608264277214407030908834977471587738130926536468933116290043050390436176778769553343451284341572055155934169194462382979140491674094369798795332221071200610961888422852968784058886326715448427377704762979701186673501549910701578255045044457470756280275229205836096130678716741184864799835998165193640307654440249834477677418249286691450865169027048544477106720155877120391285664777259081397877516176735856355255815010660542804027705924738611119946508016129179522609104732070075739899116118194219873361919344391764462109091450315483929337827194226079125350949468040269339209052626009573870396164299037797623814497328438180218009999508396195947572203928348536472547812192852160101586069802677630514187601226752988860658637395126946011603956777475340416502386365841054431199656317787984411004344959285659980604096363348059925084490482087761282404399656054640335346073758588267252376775537104009380037488531251709503317449801257195180172941267871235228349664953701318900728305094386165571677981410109571795928327453194263116796709943409143184367074717143160157380491501777031184508091391873544072974099960571686940377083130945400228857217867064836668716753133770946118697935303291180972551145147937739744710255112744589269418356219675351738770502717372395897863671478333450098656863807741603446242982245518371916429844564758069684660062517112258930520325286510937098079797845176949786412935575626140557926599064057014875391879033876462026530597628191655450739471399822742556499793395818937618661033582079214110221182722490986065423594248839435181198633860865363253220573324599651228065928345352517738048387042336222829217737407869327396602882588771907936241737562717544329940836911826467781766514820786604593308888454476946245897917834921114230840607281148138196707754050851187782056837747878193116813297135424119856377297415835202047621580302175182470071399843498905262320947245860730613729549751590838975588573006901360829493776730242468864238436348325117775178786628964302376368147695924599781679685792481772725063624305308184139606883366455451389825602879455797495061968899741329807211102591266869197591677801756440175902752958028560066090563804067792040378713124109193253060535219373371590616783232999443763954611610781397169400797866253648208595484373712350769181263911188183671184024482592153133703431032740799036623533710317151916826471166294805031351444272619036759709508989480414145855058113799530574116492092059704361732289584330139018415655973249198904774090399466788177204818133181038118053371103214355742433581122458710147979445908044217694433228023649884989540112147905374241269438270328879862251655248452331227236371835851550655394673980694687320884467620544005863334794678694204308931792610977170556766270049938919657686253660730119190455297850762377252909401578580128679740796830895553198193996592328173592827517495069928112293845951625727109495707066792350005507393882135917147414092061394921694716599503660603513885196980352794137191519888935453554487171556709492253957747268481780544293723093404868637600971559520603424819017545637166262219820817453816773273537672421411580832822647066489260944091350222459115320739575854670864784106070679238003690646180112045533214886320431197881945579288139604815438324312221036548338900671273328961490366854747453157447171073290551521955927803980864107858333130430618148711123765068740930452375415564269795693775577228069520765106803143775767749093464958209400767470884570957927724741471747519525056824965948292152870460636413021302725632219393317243661310727085756971102664347643708315961276027083563117238937291242885666838121219071992877088456418547918393655593656024762557039416888627466546771576551673477014941186267821712230732477858475585348028488601749862140094870368427936339177351374763559619625409786044169760837835900166677353826702324891400135065501001282196948687016873410560266428942051318571971583804741235013481430659475212839490662430457790792545967525008640941972349755477221810456275940961052520353383520286890698185765760776085456087024419406676510486512748451439592863270220037346112576598902245352422895252432119411405555469230809942620737748794086220528522062893061312308383912312601298272031169676374325070787722852749167519918203338832680656199193186044510565947718350885261071091635299892895329671732328892201245494849916916451075479474892345000886662423184361987190560660185048130104623692100653296599103744179191641067320405693918220626855546210760904960208710465961852800359966392827451320702663225437572962833879573851386608771033044488473630829825810290328033940681486344207141324622021503313276946345032131470506900915252979155705658800766447885192280483662731918516303304300030301439156769037781649698891025113965882381056607986618420641297717029320352823726343444314350002432240806201711470769565110844010657911647212658989775245777401819974489783057212489209351273023365855735710969547930615152490483660937098019190961479268455576933920211802099682343174485031063944446071370690258177159981803326602034282463341208831521791606005319165867681620509975085955877579751710051878021143636120223521586125599106274295281618588807820842237289887126417598268794619089466530256127193246567981618674664843381441654028774150554815679262027075492631340356199741148499163033922050609795080401399042426670775383332069046877599161629346200609547005100143119008637908147361134080034297427058884438038667360441514263541197867991045747270027191785528964771437058109632313567037176410685248270982189480208083931192280401453368948732331951417179519481205480620430562078159262624119393733624783374179610728981125038178201433178787210200451843548039010762219249471821551864779580189423104514987794317968956601491945662360563496028050750128098325522074224660889996654420603206884040133063366300954295539780298547568638664435875205263084018471262985429754868998244262108909286700233651141869388511118542234889520329670787050811559647274562688832242824044594940392125543901084956467514539283818741290460934541935278614077649093989585480345944482380903184251462460706790837829975441763926363633750116733579604879599906025591915225719429855060885847473349655790177344419119022195956356517458950572967924778219396762881829219899634672713416963735915244433596871225251809601613981304351828632522895833169141435900603448230376127593616478969025783474903367999987189332317929008589773353057932090721414299000764159737830137674872009013035365263597530080427398513590969925101601872149136076474129508387299758078093033405062745648591233135237379756185095962706917860330063375857173885474884764374650956890126156449363633742024548904364067762272212966963609279930999318568361898513017850092956692187753833401679352348271506988543838213622935782293477086435173226831008023015489585762209749275217707133140866940605110884153761640644893786250349194980252233628763679933008127990017218793604471591224695570324831740135878808463998650518027573609966596348840125186891026271169278991054639659116669109019572079676562578581195453052270522901044735333509375570898367768742285904593354748291023089160384274358214767499128866851327767918408236393462584147130551474154491846782207948065562361811735875423479889431634886704316327699551986100899084037600547942361774039918272139885084237920896289253820606749337060960278708442805691231532605912604813164255111737263528822208159969509507838054526354603469687086369890234169298299270574068378435729159350877765721368172365576783797252112735446456419868368173000508303601799000574745725265402914416462546750303559797702341920371258775760826247649891492956684442903596100947803008938012170718979732122906534803327952428832781758150704623482804180026848042202623461030343450115375310469935162121650276260875124095607372471365581414082137634047377331290934290767046935802266534665488314612541955344498530909870609980236574575553478494478524027183606353864693180278971998513808854741479283148976072990408743785640421269422478693582120655386073697114948201381042942532337577054888706622778745070353996623764615220083693578221001159876485939306645559027491909008894006385052881791034063541684674472066102553700491317392951998668080398809173924121675827407905295271160949246963930866529694785485005595245166529732692076556154583148368886255230164903422830803055153548601459147341585281501349173287242296837985927723400513616113049889312939151595835501162476033125845123819736243155203059635940886221159344188341482408042714787998577548617915035707877081105734140033944916458377071758160065030442512403715136658344298413781335029725341277964403544069842159471825519214317742805259826840469770077895438633251856895057567835516664200525760329938221557197971703082070626767911927263048231459639884460468957107295713589307313379728671575439571348192867710421505096840938325945370535860396429190811901041370659456728016622782888176743647868961736412873575440842040097504823207292362615826937754935292956564705121729626213047439621200719795171988980360726380096077002414473234288322137454333536322307891976071560051565009636315313117746953418859625760359787669922270634440687233303114943494199207237610471542514072726593100462886136699607094956151529124359913148256988252381341062294106612098947819849938962560557735200812293239806105699997411064953548457895317301016779188820630850307854778502572365561593115506343083412724685230938797587457347069914834602368831528901212161127154819825207557531560663178928847719870128305347947749712105564739254581055920020387344334470089912791155879340600707518995441533757899973252312874727710265782175703953994813437212588969199989272870665394660423062133853505270192175790585630923380568127146838613887831275593163963446418336156327444300114030806600827186104857026249669955511036329922635775580514406501510847025788515448321593638843639550940665100010606619939865213296313404297929527901862449072111204982371999778968317967079119482882348728761884347575164038238360524508001528592690864090253060285401258818427566554742683093776833572796811448624981699625026492772203045190081137830187309062923168602729011777742376070861630626190927682216545510350474347908706485533561991785450267921859915617763920761269303639730614740058348428439869026610259732675038834054065814894218791164339924162040766625307077680071703343840483634792633537762954099557138627840552989229837866025035185702737898909139609495844208080303630618192275744905130736521181709666725693825016831644327725530534015297830484148316327953467320282025108727890742846263001011565729183042962132774384591108260844392768625854732792624958209181512758727958007875097126460357754963892281943462406572020977128121063311392332299420001377209347734472147693114239268575753677525672789376725590853799957869508163444608867504453130279738384921627050279052589527972952788535390930631090964945698807154909083130315232383884101556205476407655795714044237487160672791605257659193528337262875168705788557117471635895596530115033140747888790444010067550014334606223695302597098660757239087333949658211884651494246066461021135442304658291782017093305658950739194589782400040955880708210417890716435286692071799006688235925163720480820606926061915334300276871359540407864464878928467856937887064271395649684444465672145496670858939425216307055769383096849678907578975398650483360556023158304101581976013659324409032554953529871037780017959308892858828985145919128835109613520225575076624716017838828764444206795665499137956485262928510214521389138985576999012635759102330197502392661948752981971684309276473511501042496192412455988287559393933990309896280112865451275365645346979221945322681589660527334098961301271406172440999612256303669432585839971779575267256609956342344486910043311869864504711055221461580116987020260089805776828931270011290731654961966735911078076000734481235397464087997636611006718244580617241208116609485839883896008121113611621892695383968418798954246007509559140071844533832610512429740026337152207461367223022905510338473191557327515736249677662487716498112903638891127467379465292878039286292303879047685294934172431551472557564521193206989130585586493300539318187016905719383567017295368153804044898875589263611076097147425916018285728094716891922095650611648213296081082287549766229878327547494967730747248302733498892770451382021814163048532518460610460425755292489930879442272558833729416107124535250941324936686432259155121230151906636896171480544036783606175328447211004144299644153615308194598535301224908792322144654109622102718865462416401678377796272413489542539994631572893311282813575362310364685214968430197093737812818617882488766373164165802295801790927439484879646630642001533958442859623973201415434392269838877048718001153418119854881675630883254989842140362584178418138033471888192286427688543610293402947510124303206408043262196760638070494925671414987526480281673233031254371814280266440816504734228903224541108016195892457409909359479290152577377465320292571505802578858107609432375211911163878153199325629500773277218768503237436488977369773565459983658269179832488845747597121837612852204271756784176461139730330797220749801070845216277024946946921654128301995296231710732578678391924718790626693922436694642201608069752215633343640826344560779440759222659385218109755006690391804361642980791650047766256008762145583865821290887290929204880146450313782590394514718078929081778918486357166393259546246533745420905706447426482730877907931708475486147155063979917732429234082365630601926054146103921239662514972894395317551731106601246106923586702464076067525682131877055146869677855493140099940981865572701734929835489756430354580021164468496856952565533045385980283399972083567072396743341893060768305154432614726766200416749084694366191976126079726580393341224410610516558764290570854798718506002182753280523703480379486755195217973454239866653628800994871882649620827169429475893707992533986896111977389596602123358636193890540837642547263823054684650789016665987279069133735824418743666609231489407879274451726308793154744313280461860503699909899244649068214314224896370502744404033659773667149436646242767515892322074906649441198854680833449628962775636109632955771989412597833606846044352042360275496092954465073446175308647263443130990749059930125742215806110210519177188605359616853535539841935527914398931668168943840642084677405839837502928536579243931991445990081509797209961605369068682048908497313995563412072298834536773307808110688689989053572399292033592083252704886267766566420728108582153817449155785867465791669458231166067684141532187455199781095360898945337461861472091266405815650417093754374547297366287362132246709137594951744495615562894078999453106078137127319441730363015959907736254129742876288674158049656960317470702523615760990050794448080144617377341720299176874584342009593763703898299233915860264769183429896666305541120626788404900249077177741165048403280588949354442728072895893272453528239541581011111386193988867496963637870826564691528835006364407972548983725726540404057946535032658391791747007438843071125926673715773463641545954052838854325071723050054576822498970318506245698615362718140009504685891431140813982088396041101071974374751808686178482940403058658653434136846432911309542028380232294259148580796619244532456785910410424796788032313119332422574200847344746771120638660562582590075679004263824000983920294856530753227435201132818006227976264410015155860176979766772543979203196634836666083074583803315079121359192773719099195132010124342338886321588954019374739170757058574060800699379565001792106018575422643706031830873699504449916695951865084850210409701847689904852470641336812081351496445843590291608814879339168831838722430841572556452708715681404078067088998660067101990230726583506886938199349743212033877960773883895137946779946860138721103984229306414305954579784537041050070820524289493145370468334479557311541815715545719037649001384498987747801460924145765119163717318928373208955422067521610866021029517280206126450212546403117826022821213360331809214140025608951428486334412938031473742209002977246463387597323025481311860613854031522447156677672310582347184374431068858159949834269171349811961950219965465437408937407264225753896069440476457368308373386561619574952872747067737484807006236221520917311906175796634940925939806247895784691003432549379840781529340796339097154427461522232552736231299093882343798918166447226707073413541706093125846410098220811561565753953278361430965883693718809422091690479263144608405552353983435306824116755580286917700805091055915764005395948894433755146099436272915904493531120658251621174370548596648277639999269244405827872023843108496510079043942936732387345751070923967606635412732749820264598699844029867901521007351191675792300584355438582423162954274415094206347797216001075229546157166211944596311658640889630879118615764434895098077415562605196963039607965753446406047285039982773425542720349577909161465102749313678582040862201264062614518991627449576927110229211558188891978199109456781577411336475715794441130312354980513667020463480321063658315659876659191197436974640211281410142854993398527760105430059619309588540248705268591405218822001057838867863847302181952854030104113308569494729494282302081571975186050410047880670617478068652513438036967279272850008495009826703040243853148984686256084830770407207849873808225183547785898269782617913171666272611721404082116911264174294222661117835647979854710906331797066752946195801219837318637508345339808543206203234488022969371191789154610558133031311729824752506661730293769483072246252150804398449871331242446543427844949912436713465661240689396031468027500187141531808332649004334332312028343217480990863089638557898705803590549080634089216145974299095165373965500161923602915305119598796777266281617189191131235081261001530618319928416174245042090851738155334786638298607481837137384449106001308198719887429704523637637101087686904341661400729095150579984348471484082795768398966980756830835606499283281228003381722833626924289044674835076642561739082365604950833333756140457086856507094814692600679155373878059815461556632634872041486278422006669963061756178626446342337454163158828574706800803867247390638931947655749839398401986310828805756581515103038450810490648836595153427872106021818157294435208883102843840222002205783142380212069396392733948493473808745997373572845998095078940403196886260045486455815990700608225409517459359437840546626917581390508708081192339700991100383203330850561719737628931773637593993412429036587286959554472104602169348706737429847665353844328917299253327319085083219194125506948386873602760034174250025664375396061408655918311022457227741735159972576360952647594923603211074804212761940036902513410853935618915463808645261836794060078216355428217077688494521766523978588374730061438935545016959631682884120384438241563830586823577041032307842354091743479742791700697413684164652075134461466471256708127577805759320563039985253192455721746660807579653432661718042055303476372201874766066805024147455772989705977297929217362693032319619519916709693061760924925933306145692231902529025830112560766659880671514763181507849531744590688124340535873703211423348478480087858870985473324640834984616270321493732045684265860744889829689991741169100622610812048371975433583983669030354280585177015191085258474473790636043073977223476812460825019864340873447180499010706119580188831091783086180284704886804911697092389598205557219681766043308324565490696431549047791268858910433174327260892721256952645374457845916840785827975160287807210919518952718290475003892994105790351045620105261001364232279354177782333046215060854548144765713276364039249386607587864320749477057881438906020596771101560608096800915260061553053075770832050287274566614204640123211558971990972632891619120971581042805309847300911348921569106677492884079768100489191981329693671306020086144985623928704345086458456143675132561987640557549675889532133044598798431595856703309768967057820153407360958483716162573051070721644860946197190946005323020859365775336002400363973373176892428755709673292232550011226748658793156359155239283559140936176457829120645872991603891449273694255242502779935468641354153235940408168072575348914414945109886118644772407835783451721343877463041879887036259989652802002096586278551771436192576214811616021656284625816855442380441143515995955710182505439650982085351873894135157720386695743407774250463207982122161323741664854332192262697985966580148299824734276427367643380042688610030187052850048523802781478743095090336992313576040183892887167832576522018064676379189747443747423889788799779750269655616750878399165731591443305790008460223446938215209848509824940538016883284820223985798168706292793746575852089157406103169195805828069471682567177982074111101970400604956196174613494818359168127405040893559835414783455067251108399430473272039815521940342861899390716821602936092743184000863735681751136033029747725503833694762752849738134490978571798213402190149826360364550620718908382219586821858356896952617555929351140707803628142985707899956595878523581321583686598718456314762196960486039773940743126406856977864387868409920939821876957925025097317003260093279239023128338964930937894823353159886899143614257632140612213195905708901131934903185162862367437546870698843754949643558291160338373042906037652454164195675449775064534290848346557136785289433721904800842321579864048439755063915211619401727181304666448875497004998384989886634236921872040813475474439243379639081247493851775073314864130569636796350311661626025677418427746969599250585128018878524179323095158571288114017341971027142965389563300784799600540469034064056658620412870924973491574068630285456200732471931578002843713378609052375941290500869290623039213778731580988637976135960910813875976017391561738217079958262006408099274153484345075854760950700830809395929655868105033859275721614720127143913895446196313979085032812141677252567296385554921864695563062126332427790878415188144035890330534006309302132997611570075106689630649918995974899414105311812156104915646437885906052692513211838420895088880070206582004196927585237685712386503476832293865275119719163773015580976236207876923849852210593124868357159668453526724397724465796433159304395479597082715893825488636687174377031146520752317113648552937100129766899008799948521549718706116372032185292093304196733949043834187863350294856823838124041199058790884101028699884252694399191764549413584997134362073247281861345051574402447764301203536674199094701338516976600632508983154079467552076699167770037974776107928534262546178344192665846202968546390269067076511962109712922033177076442506189823909596298352700874218136351405748479076484574146047932853338149257195159958538615293840943765772590261540922783599810335477309636839092463283858974554673656658642009998631910993910135860500191268223729728030768491817877861736866925864038660969970563092959501634617331747266686525088917109503103831922243569104341417073376701353920297621426611893463647581522544755620548639806029368419553639387166020829962377629395674857756308539649210420728563967481365427630566466810891118848807736369560154486622091223327421690675554352660034232463007340676474355697614293888206220133703718857954943159828890089289369284324107016047482844018415595456093800290010637448554429861403666877799876421272804666687119646795312186956438464296572233461554840472354694850046174343456554904928497400706233214126923342928556733745454434947386841659257833409941839252655936542097300085721500059324576202551757230368376567744560127409275043090106228939018398258813875333114781876024886008754789168304400009900693558636180049291998088985466139221047099861726250652303638331449657114642450179430683225640195914263646618862182623914819053022904929443874972366113291542322308653814819270710204572930990698653142851528324920229620626887610534046457964462456905812523660436236634359720249388822278644952390310551714780148905774495249684687578662256242439606963000978457176388678145795608984079924248617479015062545835567337827776672906173562684452860044924500174249510421970615243615908116471438758147069846930037833429245082750861207978114790481859822800257543842531918782107650133586061014255148633528977518558796789477381075182208930125874228244832358511128208896097735593758022810070465775599770140442937101652100667139947379693979941121117578437161232683295200933104779306329727191097124200832853179284318615354976965790089909016519662808217056645534914570311671476337080674194959082251904314157154845694957575047227374397682532696238189394616227789057633247657301083901844423145494205407636378476852942014006447308722211772940562564205363331945654262609564850712796600293532053359932032358847435439261200566691269060325020897852742059990845146177125402744208400042423972883986991577755341281123918742985417893567179036371126274279304604782777014415682098764898205412376828233326684884011111042473687575699966297326039132402508652338386166564045903882607824891550031011561089043507352324459551573844315219073794236810543583877851343595219252727409088441119122567055390602872952925574988919028165050789616813051729703135029493822955046740784463014539290208191115787612114691251450564694135816281914102121806528959544968209148925942603140257415184940017415395947698674946570832308311014157219488051469941547787470798950998682622073898434796349928149127381337272058917064002505396424108080818654984350875245233609027286997392890399066646402710233233879281487899104134450741465540505467462888449533334422626071913707694144908560644867610889790885728519690111388356590833107144611866994786456914747747126678949373183692592301094593448487362822736780732243404351353663942943245787798293724569712936814769229740631454658268278897632211140018492021090911605412030427640020712177766450389013054613001819881023436511181382118571744381170814416338573299196684723212693074056408534953509239991579201031971609369140762092881591314836716925706772676495931956823468009698624652733246838846406697426544836148712624923655958602028698663442407332027294077922124436722324605973776930760307402526226116409404886554220208494929750074341671249978724565106234142355481058552684934564282414376663323731778763500774182778844119374856633502441648013594748102414187887508339860195117780355423691359251218400164468274826910409360132951194751325547229516123738598585748017161589721612204175972596451180116460664853969655426229947475680751326074805545264796937579817323774258723854261211345096225231235869313002422297265910507557442169518782736700087753437983404804275701992697080114238492012393753628830755528401224489314599260725683470623363155949652266894867732036149123794392625191933707405112999554990759403664614712973733678803415483930434884443495850969545570973221256052708989723517399981910086796292955492550967368059220375481895259064337681737652688539255065202701790074952303809975113802927844162779436341554414309126095194466839821800786711940925471629214680140356940791957551109046113015924703949403569600328980890390475104539160177505821003673280456434909235323911248247117707461253074296374135288686911828230200761016998963447250484875212955498208608327464859453696706100702027911276364351852396412578124627046944089055990852924573061085423493483999247322835062862976216313528122112714134778535516710151013289296197332419871310323657266924708373129726862874034987157775692623569030947530437506634771294197481104355546333403189024185640394424161669877934009327035808871783353167168477099365344315180785931945429587224792670714916937101748158174215422265711919939011906827943909700152530251631920205338209143371927351553055240192710079523702019639214620286555684240062860152840362943372026415585910742660791447045843967676495169664957237417470130122240431069814723473502863405197349153954465124923716018805736184084520446277116905478659506055492414246977271220438219841890517640978974871171901688348328720885823664356114820522854968707249566954651238722153180605134087997684667524221803647607703411301148977294629823165138793003195623426416483552472562633236499862811366082238198985509057699831682916216992975075605701546843960942262693729043284235993371114770600104901588128325537667711978212360968599307440849167771744520714516913947514352961756484643159357599547539700300557258288434529287404498697731665955313341355257227979607151924169440152874745779698372177417696869862363315110522701668949118642632862804312310581765106278079221026063543351023983934449741939941494973168439348125445060918973126960331261178074355474978796785203766483026122819330356254850444286430941987512404028014665212700097846248601997148075070385309822171868360546206487033278001273714921382218400700196335446144262606713910486969079218980704637203473727019026634134312977161599432919578681031838791206922923959346708006941334256995887961027352077185997628381469855476544123968154840397490716403707617507717673642384069388758171325665354728779329181846737136003617698210570194921554403419282060222031764172794865660547104324384169131083305149665780750143774688497982036790134415458994194752702704204346538095082515687021330604418846027533932899337688180286027696593309821287503498336946140701487611997872668381460725585644065452938203515619274962991986503035727128959031307994184916258800827702070333462225275742296963403207575601974110385752235833095716222254086301294738105192333252855680876447159682410967310020515657898970561201592345024714251311732279213511244112233215440537757481828549066468734106866230677122031327730863685853875590003663318357043264712897323944216406990454809537734264443713554826204981703178655628168641617243629136906363027876101805748652734206435128180288314730501233481100186087963262155241365391195592271097242869965591236231216132256641790534282416356915473396075788886434301357675469296342823159642251973213909491560574583121931979654213107605329016195762219442736456186108137137535963564838964568398375537675192511724201689513597489355574694062663906703644531126499704840127355872940701484122356833689531874276934035130272075892746461560193371809472304532271475656676044648179295337005642038972962388988943268982406591130629026426500102250776765686659468996159888301482949287949113833343742928507230454891143150399763915795126514432546988549682953632160124369867251174298933007791100591298323158749398491485326781135806988352108600965858554926625797738174287676532004275137463273028330550935399103740853557953086699511319414379969120332053054200348684089468333987084104695666342268875814980658931194059066925305242783142894359286716357838982206820572449526576047927246217655895032782686426612954347364116745138215424125027394716751792516343634689795888769404252273101346634479027671428465709974990776362493557088114849656438228093663640282555093189373832148724692122643942554413083417385047340511998272928915762703465882301259234413330571330874852258555123079861471002396445216241160020965533696636393353056761883307773071051973974247024155614224911163223847112625976720121466526241756492312601594585136747584552239797994486460027933022421170336557994390688422416459144221176315743204106437241315531419633402575506413546143033618414601024137676093077700151543821321395361253449658300100108967876393465291841946420279881617208867003710441215384424467474013667491593113246335328519849101696756739297464918939586739538043437723585388105028317399276655684914677426123359857524614621840444100823474338243901298950683014233831355799534548596225245879322525473384079275454670179062376703438239621056422043038428728242124895292857385655864607004409190429215091620105813225850203667396001602574131230486755608070235520396283370255468751612098518161287881279384920725304481331002216158554364590833013775352694208652840248146771298744011774012673957065333989727520332057850533607288151508495235892545966221339370101707799873005423406175574211746237133926042454109561745572359392322295463033077619268085216950454154543972759672942383277524675127793419084100597655550635811381622448993260811345026761827542926061377438211998612863709970987007909519516241592535306849350301926974638760224042801899797607249472475101024010545692354603227907003308877705231701994906319712813808142351514070056159381961093298305155010810003004382944550705556223136201322956969845442850942225761590330945075897484575445073675864570163472375842325826488054014328297999501102749729089310254294474354552396056849435907540256259700112658154979958812444168204563836838748093673532605354667673295025436840342668835613995287672755033317487153653034597136324360813607958030004508052142672775346418054178025092475229797954264184174521282361709320164871478942489780423193418317882013070606893500901425300158573392113733413632491795532942235219685477902557199787105459281181469886553307831857633543053763153788554187673927813593738048045715782458173264690003811690855934505638162328952630954694442371601774961132785669537531880451355679323047305589810392274598154340506489839188829720980700497533475223786419191702557467526714394333232279183806526271489915308306676325657332516263977846155413563795155553898632207277231906658217958119528745690010135569172726020037603060193528124692535837472095283980506479042000262273597574379755391922930141130592558993235274002359010358036169722707833823286635713211777884882422942057352828538830068917921170780330529720184644093114486804624420912856074082975077703646402109186177567416519841860343212487169976553107165315959357843286996698980383462621560029609142453683352599409800660899410699817724876720182537796989661747447712519897520356589393972895577637687244941276297405398628902789641444629073319850070203299117162233502908953060554282753004012347734923197113792856851083850948120211736656786215263681351029899655439906407367412240077299445530834883904630871674145412856661188188286360598891861848567314644476077123426603289069908122854633903527429440277098187456103632742743241741473344595321621419466213524998932922406929009342729407587744861975286304494789617408333773917876277265607394669111340822155129025254225699128434754484526539309998350341664446074979412851062724010160701231115996642688461753708246949329651057842641649735982123238093050280906375754185347760108204010443488431658995144050704071661336954449198272609333766008439734843330159787423845337710563471641164916908107206854708885806329814773356384756067743223746403547640049349521325857670751860377362260779569209869465089758977555172855108623297424853874888182217227457898880298971346777509734206540247360400413481912623873818544196202496480036179407789978474413227303188143715920982574476599218199704251926958815102268919444466339268492876086356533350895581224062639595183505294407866127483216326415193499203898391384888730897464539200983390336711552496162016428563567502134738195285636488245037560051024894451068960296667246257068766056032126024980400764558223106144716608758798930188350874414931215071182911378587046326737319074441511989189669013467661941639275908621397165559861927366693160999949620257069297158043192806400808443786659670457691395398750704497218584574976351381711038969668609979779017288393361375144814146983199231357332866157958499652786113469827768987967371675146399868818686718874067318220721920164096932515586738531577357651350244324125501534849989829412115921133387276921154321830941990714185338448154830602578633162095620687620157045748551778560670838359683802833140538686900361817944959892249000685325086690749529530865277998771777807587754814528923349591805864582740179251826228226288526649197357353552330224086513724654925934571306780724174005976542947363678910813625350694026999050286355732135644565444916321034387002654876769636662799908903103308501158859244328751721413985196484282503533523639414172607592119049415240131221962990551941758580862118280881919029103483927023727216243012148054135452823113360898707128984810226080127022027356641624532459168211093102365854726304613407334523026375388300875987962408441669480464336568954416406032651264166822317119242901475125171106784121349612857162135177453689509182682307190508975925848582795642219744894274822388992905664926724986443801839663504650814526405889422260579139849479343853027699062873718549940160330235791157591911783976408558602917414385971816591058573462127688073277897539265319026452411379771351957691296784917887802969535117005917347505912909832188313376716014412908929548417535943590080306537462419905309886278921069919237024673229534422612557776301840505458170137936985319144837166590275170843389777126383617945382400329309460905830677960216687757692094882139298506236154135803079216981441066772993113847747279184246234682599221626500814717608744395076766063754087182098516084316059972325167759393743968555972317683339277974917629645190895298828135183089353585400499123804670048672355295570794594711824079029305232688144854924570385421653474389786034271422837913619246723812343043277177894617707611503527087363948211204277143368965199971198797522021239890131824481620160655514437038616578324432742540347123714662244240613179420417961754370737438804927114078202497399277313797813872857072374297036721345120410207361853667976001437943690077611618233686346970819530646689612872435191158295747749372429487771785687862029598846175999864743494836889895304689585746700571592277781502395553171393717774790008781370891151119117633126234040788230826703155542020825836216259170236816108727218920218706478958089060621029841830674793779107043517756430782848117033990251194856689320164475768126145304827980191613694720521256853323556411602312223305431274004930405606792241692301687998266924212885133255382805431576989750730492018045518363364853487592708287218630037387482811571474713276853110321098131946449925598112826634689302180353908109287347434393407523164023781003025216255133066265260317634368999694766816998469212335088567547004372487389871071892625234337302141198055925171378383573668555890114970513853677632987794621867263413986156593156289288404394152166038346362984373650344810669145229649366567863899881094798303348452204711509432968984699793650382088008542752347795817365788903654800238200922557178664353941067207912803814545105485656413000216321877180017004914409718358363252393988935412793706645794105188126272482578217489998855943897215572227353214536908120336015708375009770533788201008059676603948292080274967740540844205890159588193677203083711469590077099660392234275206319397625820621653717985061756929694187808532025890990181061082548382341783157717644774706238750781609448582413925936391032693046096107693398043741016360690643109372848980754937153902314714573252131569125706402298734743671599936571663253101748687395903803341206782785319790641300679878473192558116579659424529378765120771046547876451813099101396997577072484433083576876816823647928893094801100899068660177093862783075255222270463618553647262704011581245582547375501092019008368323839717546446252781006847224315147746181504716080990647297620844612836669531019134105728817239616947302455559799891492038204805887574126909984429884617133036871872170936254702285831336915407824871412663994800810304655641687150059993238900773076221821457561485204042005355039897558786801419611231391772653211166769278500916149010583127073334709551611174975709136762635106241597389527401643396764548212283781668512953250874310860139980779866164740613397161176045621028737269231174862018387825246203729167149990991471843756585286275063548684002352079209105033279296682289329956411205375237556959103358299053043422210014000468051912594920347400562571402079467285837209555703226249898197005656291776672161829364417319852768840548787121646797564341207159693086038874959140946965235820319826668126574421682953084648998411555656726600821825231659214951176154885716135915355587006455020276563738068438611607047978195962821989262602405573239743890896992693038801389199241650692472593531256742567548774012152115222782767268840899155353309845673395894739991497202488739352511222446831547205019667214064486387287398520705173769533424294201449553839138034693126683845187281188442912631863124534467488757173737545190675302844509612529448515699915747443446158108137448547768613148882301212160127274269803964476140151244695036154697260412771986014345417361292595910802495592879022786120840090882827905441436304398421911966215118917396189577504971489392815651830506951951124092923576799651533760390909182892148436319720451916497173752454272285564251523189242764498040475815552301428711975116311604039905641905374371483812603477043899277324558655824108577481614863763449996676176120124617265818723177071601798250721485373177363909990872998905169342654509831258186477521836221379234133304470956302393662644048957859754965928660069313571849361672701105561123246478448758943012150284726958746619279105282832911066596916042775568222314592697742961469442492092115346629495562055414093007714929126753592085607624409120812062881437539466867564709763222258577193794634417366812965850950492337082798418124434025550814184244461007454633028105607714169774093318378361792632443602905848793891242045357455592816451195213241064560025165894408887668941886113609127764434395982247833020378715784261443922267773863149224233270639774682469596406707328131563358201881506275627793308163217053931637261085418639923316562167370764831840549659727358281677424664627232219908268174778561967113523674086291447663242873364617547155264599767053930372169493592228667022084354314464790202656693521224431090796607803799924600232958857488963462866511585657885443501708351890238004898649026129857433662727121259473003460723933285067143439009127407467369300196861307995064240257641205080185787020041483342268430377992518592106056605775412094772318675420432973827931785924361721368438477105066921525330452250497438825249784586387824379918046998818989850838034648248094760901322868810410900546683695923764045522692582185808483574809050671638909716452556843524261742117245577406518419058107855463900453497199034170479253982930760226424160058335725433391046902239985096321391559669922071673369609092408688177951069547925512690205188829927808337893862706503808127111754500110821256848031705582568693582850110051274801682753059498590569915325153531058900299303939137538982553304031249853853082438137104583291894954028424895713945892889348176691469473738977861519318481824861369637410037674313145081023655387514124320373762777290857514512998953730580119705411410979326464247889435455819218631574019630474905804744565958968609305500029615621554161380595507671757487949746460324008598785366201059833064731433688478135877195593217393651436145669462940664868922832713552880827742570646626346003458182834355926814428794832815066723423346588672099490866995335639339779707284177044329574173785993510499714708744976455656894444914824555322950608312975482040819389550477469051844433597696527285005194438692906226019189248627681551670293448678789429877735215880742932528479757515211755885545588380162251400076813381711416415194177832055766635874910818478030086540263623151494755677482449950379019721888358934186759420701686927483156470557175679643497709852300406203793962414610983382710735779152794150277187501980242570228536848748013819421804770126066464528296960403384799876999454555417158981025765904857801926646539385282396119930679865386311710182057036890545097519425318916052586017727155776089578282679869422329551289761922940132937095024322778661507135111905648064301246199437085331732783026727862108110403795606092725865865710975028688882979043282040135759266469210921762818459254099027832127637285581662384747091292318082057434646214184911307875921346758929690453303940892850911378117098738658113866607302513003620641037753408756953131345172884316792350728250484233563734567769920694468488062224319385714506182834590596338256116876377253535688071863615580907385198130038786159063637503280321228437841255469493187240949923073519017119712777372153174815544614015875507319610651800826051073093210215193542115394038203560223813945269132382167327060752270643679019641709830743619601794258408793259186749397444104507282954969344440855765316025908787086329296115860496437914803696083520310239023190541548771396236549466855808162366559546943978426097767328696674594188340959502614498172393128614374204658489950359191087337682195099399068896845088264096722637609842045677476692279035043610718781500376370067511191249033546612429841584720682064929514924241554827248394175071131295525632914108016633898060294502610185101147383039015470649680409602815311445556272525677259658442256518807549324303373224606869499720755834733650751128014815020692408229088605162829868887557245516197431635406430674828214190902872903366851524922289064420518361273487098170460854925267149741668058730500782673930764856038161876470726413159672116306746553272472501186595858174082732137604140798008817508089562694559107779356450953829091980183953182201374880249306827789125183441240396912784979415344276505266181113965714078757505045394487301554384971732444770845133923636921173107566195258797759680635673172458139640044346280363011521274040389701569814384555422973698776308798218306735412608508985867450824534373065168277507016502358488343176224885400968256792724172778999714474081338596721984650650806626305369770561241606887407317462215429012188639804010544508918686137306648883306866345493985954467553514978358114496590995287269754372766231711869242633222146189288818763745841529049982865142526429898015958862838382085708608139718778232318024413960733935143983666024724284889212914524535786314694838446946040349191466032708264013754951869040590472801757313423393270030244582281431521928302489529400062892751802607567052701573189224036094898338925045567416136842300078324663414741769189796333014020545476901182783829294388245111611891422307911223463170297895157877378268314251185698229330694233751727551471603201550299869519970005437397847415246180911767039523012799943486874539813671414609514474443547862271422517050865813270410480129286213476226178055797089155581325634025325563600866004164537099685764074343085077369436941825169966008732474349754919409089022555583790343194965466971444406636583940728498058172563683256161592413539525238491646990070955129745082377993068398766375180096196369153474510480718424166197778933747443940423006299375190511634246091716657239381595933586656810726865380933536303701892282041797678980636025591655343255048833993187450259351604941825307155710659894750931726618257716662665471684842938505883286082093346421478908998663606067256725482860636234094069773404267879257089256548017515358283324559844814136330352339528997172633456482703857029575974183473930788152604239987464985024256540406226262398194874928068666565658590422444775003234015482894869238308048121487892888085496369805880085647746728491620292090870576406302016306833941627827350253970597602404951809339665837726619328495060383348314355401474130498901951082192898721453442936705384480257017400680607301324993855923663745614144318660196034411679858998666788802742531307513315427224631433385997871627393130755671210985098253496568084350478638572970334366057294727008388398025410823832950438320144096487774766279481247364520516343556983565762928738488828160976810807856930670602754257582992348080135063902503901835815935040722230106055028011929885017691877172927645208184623042441461366518493783232787405842606399970012942416188363425110289140357515570071503490104612247123292662956061256321590106348035686911099222672045958296861230275337497763621415871737796922801518399161307461129432579154553666753607574540995123963818624426932148944043032804170283533230117613354271645566568727790211801020541673848660002085975903446350831121744777882167756984670154111004245005763637714910004181984144500873938396621504285577923215439865837759369468394156795219958476851637382885219171891840361752163958711621358782936931213209031724439260232965317917383445321757326926209203901614829059701041574193085784846807968564361846072061208143492516972975243110769149807676652265815593661308355296158497871545380561173806761121559348256148030009640952051310200454394674433933442393511217693389995607890598106120848796979279726276744837663520091555079109204498967103868663847329115047718029050765659521932560201576399042225644090552536003301927325335101578426031270323711800676093350912049636495232698829355494149733742248702148390248669051932300956421604786698664070660947502910561791059937761587973744763287861666175417143658331899566427563658820822159302196372423089665317455153906401751393643796894210073714812670629958806317903723824766340745380216730459403204296115338667798334997062801359359445678164420381791189005592886154786117537747796912629522319157948273488204915921627096175301905468744802288082242824760469504809271699705512899846878855869706953423959476123675502506965268141510307316477127828940790282525357050851972833846326039933610553303608361181407845021651710517042783219037358016671221711758130500431318459953643447436187944824485780475460407754231268816224411298592453596942656349285502196003365176690235464206434438151717280527828046949012284317807477516444849116396836449675018775546870276900882512063022837073708777264381801014476229504504253023885550080145119847817646267017522976887610569711153059387734895869005613286720305120440514258107310850018431966993599671126619852714690694293408578429078626833234859435632113989098758473128847656399511882726923059356203701206519836853123028775559296305643548822834117978403817016987606479816534540045137587971937323047578338904092893716482978060546604337147921135221640483452351787542127024653498975942536413658222277760177833736103043190590206280414495897986891612986138291418355912406114547847359870130756940125185228577622251887006243040201222167765134913292073916208113978133865926103755701011020131614616923886442331080575150390260759753821063982789990611640143901840256974999140920821160110702614569559125695276739702293209192292966797115622902745568473398343733077947778504353593217990787514322490935796435176020693249989690558138754435595598787006700116584619752532503281855970260484838016493163084568532793312373866400659389573323892013153093025240168393275119917432909562413669319336151436228626409333182820856194167905369367209161641516428680638678199866738800495820637560566309907442653654317950602855327985799404576455093428134989225071205995105820161964841735822647305898191611394314180389332332877623141196797554169187985314786703372042862265235712982264107320024023636440104508370148645832687627540511719515649754343441548565893956739401592238940716995152536757983284959123283242647206785151641378263318265141813584734948018501534608199824473829959546300499460165246704078882330222131603053469429706691308943365285139437544417104423567711223836570714157195151005396591444355454738901159178584165987551203669610282504783207460741540327531051532528244629010132262717439212918307965568466561259905571298621959496136776942864578420431238230869939131816316414292318404483951561073120881463457825015418171344831873719507392881090071719478513174815426186092645872553598341044698320513357567024455876711002598330190180927545733339459192048087481769969747377742265293625043844339051809162603192170468828886570325757932916186274890958844507435199231186191537438956044075115347213723387072130271808028102968946733063522404543524802832055808366764205501738235898425101190170670541546168639189750917807579772453193519058079895391201986325042414440476872457219241381834978650138007119756399305527508980252106970421664796984913922362795670473434948351477742107057836554522463722524227436245982698982643210706064563953586122805656812232345876529189313666229534482270402402688184152254990277549782331103125079290652838103080943391159951457309531812926193168725710194896527648259089960095428243278861796701916990222662585304601951133795672285603668271287024150130383816168405493832858205849438588560880665733998741696313932281397855176221835132284200431229603483990143773721404043880207877771291960157953163488215220692390707263524332530319832577579316263652360680098079459315487269439934791929545579988884687352028082824795731078197148817143016257435742730838444141597738896101349852591736121374780298431529318960038386505159525124574660467206488415864297615804518896598753994345206021700704641032806434372299958645394976424820774991670449046425974310007492871435664805451423050281781963857299106754268000383457427651595540263362965009680294030931769823644936206170058431664790411401551589046108338679177153548967874258661406837224155448676317924218331853709551371118935981545265788599976912009352851649316344851996384370103008350392281515470906714183665595661990426940795165454790277677589960142211346567760079815832334264868850272699604547097263083319530918867637540781110823850837437401214156609415760294048615455591345984198489894192578199708545846401271245421962010568246264126008408502377991514384627848956970485244686384458801001287715752964198695333994587854083316203250447081313280231866077404692250797147254771329050537161348715160842893138494514345428878755851261606716826401311270171984416374329443792327998986275349301968712244803069418741114627949691703396246729892098176748273102815055722344537908403823440728491352502249126177100844832492907422451966274123250258780700063255546146073745971293422286573674637608248175732470567033942429936003724372345606454632796047403612908314413430405907023836493657374864523972242452209915552460570379311193711160944889818774085488217319292429771292096092993478483347084592920709081055458349691827356212188222196981336101677021200637918184243692878133774461793238571638999745610386454400975746621742852307894319007743130163256236828942409550701104357036230945274838248663408351249925151446209279413951664491452441142744211403153929988542275403606669258384470994552483687749235307395302240047440340216045889111834255188328869496601594446111312254036320840892803081290736983543313619641595880423003350719329736860646167337776575951732341897311170686357241075294644904836682812383953007161747583471143476473867850704555818743689279416577802690439001960295986436468217361467190038212276922088958018262364021343825833548128624177591054792016382788254021343885580276210187976794126405802788689629125226134604716446534459510513470102761229132899878213362552434647670692678824622709124290921696882520762037350193223506319633477685547824403763578929179710158041482557698952844464900273252085291187225439437931330375922003943768198411621945239660747906930327990795429631460698039262902582405876723920307607829197865111055990924664286979776001450990725271286825991092481670656876663257680438134157881605186063902176508821450193222437655130249965048036505016160928092705490857073473901152004986259176530227315521239581861090617559540993527750294279674659343470482109270657469777234751434639344375500667685462009054605427000562540303125025518543856316289405751157830855341573617389419999789153394051656344628128268768883931898595772658424309823317540494939883654775900635731749169556616465664444098144227671144321279607049081680496289729117237484743776629578950583652644824127587735587062085954912632659970310653136150369213541952119176358266889558628534321132050371257521725315033406522768162196989021976599589878012609544325688790009957241466708654833451605994693112294767590714080735250687908803505490018608230165615316519428878097594000807726118744951645620444572663500191755099855106354918220915989328743217828753252128612737557222925144765668761885562903718738188020985361486648926750364485297669122265762700405337791758390578077425000961597938809842492279396928748120898192270152826635289965513685520372153860092271693675032257853580337689570227623753447763126778355151958916815126838476772302246486979213953551524919060327469427536967748061167665435436701953517457511020486419421149844984347509070546080192311042051726640666724385317632842513896969457273923711928045463909430456461230936042171600866476400656407122959159235693222879170131647574327901574251003889328978578184486854805738899915347616610952874547998432127257411930236395108321713577809913211650507560697475898454351651433127187303186808645301701696065420607746243062384712055132779400037632786305383769370495103658151592733454072990053054658945322082943669562067214267249693569057701633539582177695859269754334387342019165536133104727119023439832585965454182635634766157658257112028436369213058048974778045808838674817865584230439283142479818522731478991573423797398783081509577872276311446771831635074330082304713164307441699335638583207070685056231817157941710193082409707380336815191043385444679433109182383297389980564738427564653277006753724207966362296496477482210893607297917787466610704576995147554627631369221984660241674577727323258029521162559569188061094490836947482915523837862494252732639179243164098617050526066336245274530619228229576434932984734019298770612576197838325632444471322371655702675596320421641549126690534649396834139609411985411784348316747273535948205632833275843846546116976817216984556472908302141932723636672003166637630539722209650197572159715508680821171145131020675495129784267113934447408943022563444498311078499088391922623484180051874396611681492278884096794933779028252585805896534653482037326582625557988068175812946309299873313360967972284684602032305755320137200850797205743223159607917815715129570799539216270205872078925982018965508527320709388920651760203572312849054317878991929674950843413726661989569542075784099026417613940382287169429783000450844773894029373736280319533928805222933320849313723013509512897305916826786647673419439539836149408271625184205135175995314653069858617653623422108502212718195290861375251021203978755231924130193686440225924924632053588871620201941515512842842441462945617075331653253272273337361544811618476922591179331462600831220263539937118646664554727117139796264821411172657243462891743550687109211819696967088699819466849718353683582512898630799667083758565462573894921458816829985432451265918009851078862227069288272672534425637765982095792039438506358268010700276220429762307232675571418496636699010053465373786357854542256166373664683853131776309461639398351503008467776267747597946125345026889428472785317158696599680478815517986045003412167578193197788461102901880260451138226267754932625018271151549268069384087380291674200841766594585834382464379592341570694379782892382608987974590385571633931631878077502452134273263413156246044030914887151586098753702350488047807187393826001859562384312457825087577180787315773820963840733265457396623001002968390254820959046646718097446850180103890578275247128246360962085609017534104594414138790651625213419422442612783998340406597235521680426218165083593887692449632948994934725115865129062608125474729052890781628631655616073736956379340218721802070118893693272875828375166736737761869362785856108391205108282025365644093651310841389632585548713117458980327356211187054553553304290277766433464862244440683589572440007496578234323755209582014847256615081483640423164658472897013876627373649096097660123619154498951887349682628076932255814746878199882116972661572711833773253894363836174460660186072462830514127469467537490610364930785415506667131928662067752561202162250537596409139962123390001475740488448106707426110314498661648406725150388349042335810222315414476472216734569000502906879868689114151697097028954207594700129647221656055391919689115556496046679299905100113471718674327510616659302691992130101322534575880786347853514058516570360556427334649545925994180725289280972318431360267410649754116485023151309201996461118530942691742359301216467205065245974231714663085060824903200845200215147963628915037227857996841134221458169088559833118071550693509173430509889795326752539689393009285837292220472603638676498978628684143564716801740970336779156634892056768374792052691634833832967594838762219172651675321024032275606208413901856731116776664128477130134604696374073593633845932784633000552002373675609395058995611590336938618227173346039150982393148380834036967864555507001015057835632732299231760030930661570511274914570200074858342779588764477550432046871380062175686785448878981070219374337748364783585915951197217314015286479291432129566247656575333238779176746730540911805358059186939296470701763539073512316375749213850797983810467531126006474701272812089531496192504416272118625791194195498072699086423500615027645949122443099401213917921678052847153549002270815186890967936300851523947891032543408949006976702483101873687278732638038559594163960479635351623498075557556554556515873575721646988269107908086934284106327876214903464987783478484950851236593092605224515896529446997611745650122693153003072656338921953220556608048751356434350328929030660066953172866636452650773440555253581225458037798295010067468927979358486590799323776289483988021373973633740661002401108324277374375945034131573467689223382341528905416398172446644189053056067315481698013668739884624173464222602917007635669360621336135621517265022716962819239640758672496620974205852254405864011955052148278618754758204376531880703611943941324440202431189138480840341741588517401186573984907725858766624762386922690941604253777171034194075059610186440355323407846847288130435474389755476056747569829527082674171792812128762552901641611734377367851536153263659315891152551131903825247576231415391674796400922873244564464120130861961202695341528973838105310788205714277138981830458089509906368197246445118847405473209102126256416087319618298307837052260216013849373897820354596158972766624623132809240960780708377396436372058861788057472126746431123448221309430334715669917828040823376718465663102311614626628255264736610846819706273074741091835236747980500682840082307535942482593788230654284290969892238607858669149124415649422179465370280293805766878023173220924436340889198826217166971084845639338927551933178968779959436992062071399503468151634813839644418579466498671909708545675528063739284988455466602564087225143720259063264491875091608174552135460271386726369639822137897681834738807043003519506019000618289527519232011194192357288904207586651772258297782805794722882050709153893122035730043484904344481591823407607182006528934022267277725307603138304076861419261852455451529559596168606861791587704423193022558651249939039627660059056144849860155289617544704288423644339911331645277081511657881903357871956698629548364984976840547090433372458874907607965370618200957304466378772257727951369286238565142823476554141454322136375035648555960489402826560738215256080069780428902108701745105849562227506363125744845289747794143463650642218338110497953452310374126704139487471271914474525551489664103347285979414477971517415194903776060683700053557853346586358747684791922939505570461786836321950859204917429810076915009451907987552699022899195282153133481591129093965066336037318394880173181710522830332522911505570973053436344380644618674341237520352965104525204899245521080327785275943580833128210628770281679257241277952800116396473771381321751827555824904454315618465718160638726023372457584998292318377708663426302796697312348486346858980853605490695789519963933771024199607419265209142109390482002107154382201197280296705844353309824638595282376904031185533851754619111952282713229327143215816830083307339463191061521138238425864909246143854952815641428518450329281149589597058281301469869413410560842573971169021804905026911406577958659184995193784935719281410160967513499941868339591661230094131233203596772001554037211336077040325645778707088536838921971724915381437331810955634426482687983590542952465907034589258415896385110486473867468914169437320555969715273281177187529635443611271071350640644535278506970921835203405874399650951593948500409644736147911245130862198855815747749075306663721122813068228825350352534244287107684847231697164067904729769641121056361233678556457885279736312730682330890588278282315099053146701814846021866206605206352340936376045952212658022065179464277996477275005817119635936619455488239462597141000656157685767484389583963167444571069467731836444642813978713356128881979585398744789209234772567141289334389457600856619823690022190158963589512955518788302798965850729344039520871754318286822812495635071210487204303512242181824742791549159884457538112052703867692109249616989318118881476216291971115136594561143852795847568561803210031554924892049116604668821143125874769894199704511673498925652731358432782110810763673659938745607546253225087848718130972656614313410110243863977653430609688392535104932926288169919837749845210570178453010200195959808436226645986925573738529774546194510997100121420243372554337192505859113580076345482350763011218085372408943240142446698914198316626213490364975554609821688049254189514076069963906325013087822425065074061680466208880705146092473161783397917062683512678434866615497759741021722392903061807051144705832536026679566883725934847411802306123599895320511167868756415458993034308663109447411032437953324158504076373756087303763579154757386998321407136300903604600712691727361710127318648545881712396000793270471126423739330305649656724771401493269362645279530520869760229209359627272074694776619860096885867810015949877080467193040976720822157677041581499517854461920412598805288550364520587560197659477901378332763000014620270472495287409784998098817098747850112667477509493790230954191634525292405215144360174666351278961646410077535429522625840861716536902624008866075030550162262273976193350828889820588744116501311787674354997040074591544734176021827765368572540243096234944230787708064499306790256172113953359138082128343279545635782326253263041983575499845327944607975490599939099740458400749091099826708244635460332585762960260707643838564251963398795323419752616603967863800334436788137554157842407744235421055827976585575614228101259295069752551487026699875083275633981291685758085968536186514081017720135768208433099714789146734041255047134502101754141419498181665101766502703462191030376783547664842151444442595007098004760616616948353381560134693195246212860317405396587080052686082358424968403111894558765337132870310957214941682114251263458098139972601223794972204197881122572516761915774834068372755099654013622023149859335776051806055613094214018267889213756916297279030673603707838260744894481139786513366095796695699408660062162181252646280415701855477316010205546766399498532777530883996233396993691141716693935938244141168245280672060873816702743373619023551284251858146716376078382403901669734736924599584599345172728891086902992515223789355321174636587931035106965822608483834149828172449959638696225452745102933307761925986714032699102506665706118529415260404749055372927521643546457999056483027499078806579353072975630177124964273508889135219858523345119075164727984266544093535188649779404463369159673230069912773204226298096061740458621683957112190276404733260734232195184446756013939675216789419721935721304472861422049217284081327882791790735554478794608823966500856731665452800117770853238212204943778329161791673155160877449576611939931520002649627454575903910524214168234217602696893445076709720107388294123975666196515106936050792137626351134165438379929839726170503174086399001618484983446328149826527825249009213981223855799038086560894937661354820192564633939101228727548197490395775404050049892089452632619794226083872353977582972148938316136348288793916281508503998402898870998756133370332281264303783137896218957359262088898405511646850737115852763978111293137371537335288399043620042788097316068300114426910504728283491807326427816272422794890208105270943647954956990169498734367850989684164984164232170338540633730629267777415256027335215488131293595420969366928163837384049451388626235594738169948800889635661520212634248286799858870013582404896464189000669257818255547438229475902885316055277558753931718025815819383074428924305757341675808197362721623566714802663468627771010560589857795924093244199112005179408159126198424941244423996233626770172145752470843932893506126242131461060518864978440874008624553257004160977903591089723669872604552915249820624541673747042708249147043681872634066917412811757241090128877950257400084779919445278627129628143422967924743213886416842467901411461674268579780297247867104134765770726934228982488102906835945496006059494991874534873349013785032603394036112099100531059750693983168246976061985352469642020547313652708009641071165118925927609664826743110785864691582815627842541220326497155018079650187008939768395844362469889037619165379409626869265302922314555453196706270149910160725231376882546494562793474943366278533185084397932441621424501297001295180777073511938684668294386970454868788388973673405580703787510584020106102644274864550023333758831737282477024273453136171861225722607568347345467112334468176984339590613383362089837692081749644917682663835585251742299699053741996504418622675298862269607933637499855879646130989818219490067129537023820783937574085627932633328226458869252237248305778589989190993051880903451684972984820427670708377731077208661872495678807058921564087266804503281561905977788814948576937380873831826969119085788086108072331564672421979662445785506842592232200840766962466119798394252306630131949547231621441754160993255019919273180990761655269789447363952911683122529351353645799341650995885692952612268392145935870500625442841091596032004395429866026723252795834026966356589784928695134943385533493844310966706173968507965907060107992220408094806366802408066603061986870193486773389176715523213718896812870962723233778943479453840786197698655714719140356302000725171595981944311704331910418700023884653267871754609093773102140878877873704456126310602299124879012407115848217997121936783766256299285319231602672664996516527344406372667927332481343973926300010636648247006384006085150488395845333950372744269121816838600582085792118296235261306616110995611913831111968938988356523828359601401640862556616280534761192264949345059515071364145929711698028896819471566879047498129613500667481986057960444155864725425700243395479919002861938704228314519740349467189202296097478211848384281026320078905718521848341468344990512764815884426749674381013864082036264289887966089986092003447292530504439595816304960295982534880788961383978019375976857538868918861539248755300690283309856511631985813757907260198663404151361656245358726952069426795978247802412695817299962123631215432904406634857403561177597627861824212265231696394529563591245751061181416847960404354505269336674437907169456179812476808072081061554175042565167544493321759422178484486412291146412922565175369971246872060222404241364790831741189834661611618441496062750564859787961454006047830113654168760198691889233584829368058728186348113818156465781597322692698583574484733953735486994141708395590601474824608206283771031612063727712152597615496354465582106461754093914152647540210681822148112278817132197481927999473181066186963983535314242866987328279327167700992690911780917081463690176476871402099362398475070681950132074122497911814281492533763329231699188940868287923664777310816381837553288266682777754852508494528923169486604796779414598382539557537032546462506664160541547402752177471843877704007952898223473785757567115515021913320171444705753459117905125407760134441001887208378152701508297872296539588131206423474886746540602013877514774925866787059058065507052499182366252063235400745598503037457489748014977573874719955481928335472967034127701202204721050561210587108111832897634005583789479872814900421885480369212169658051146129714358145981451539004381828377612139863239995253302870355638937507930991605932779320204806658258285271591857765175538813808735504155917661361975581545489168235584680252101931884037318831248647182299781974749039985104009929211911530083556367278977083204188153783379442472019766412384598185871330496126374891687527088832867489551756428090560212351852832328991198707139739920492870044174324512501335423266397577915178927440779094962965994400153405173894491107895853346057974051668058524274036012070933186854588864199459856627959144677607137222552285990517521623190339739556246851255103757232510407138728478539627894859461823104220613075425862985993715272127150225407596032324153022210465158521619799584122736075277659750163273169165469820636967453434475966158130034284783936724141179195622004289123043542256973523657767988718859952037812603096619885205365323199448958040274927330068257570432139072095561598013439089791813508545886538413955410396708745647931929122434535367149521659042264036749400419074529112602099010544172770875376069028699791243215806823863626368791224935612870885091216286769798745002771701597585118997050740552374097196371546773964296957457535575223208883176282588415202378637692815640719287322353745828290653480693539490357695438913719506634785552695157040754948211459764644932531779078215154381657780140814746578894715237403049991079812111507464020711473029488412852856913199523215114298516653546135025564339286834181875910268464655710758613604132462028249095588084108925871155575212811491986966609493959914240099039410811191484741627305293785762921991531637314626021880297857911812412355715009904754452845773498355093662414170760679505766201291951897805786790694514514356724236516495539211357637366059432044505107593964340640276876111794649132427102629792247973349354744013099117398618094649842405122376200392449153326760832422358000627508558030427636538140143248814906892073194634927529717277708785008255293627099130341821566733681575601247186619217523816246281672830574794828155779274703350248285831351703122749669254070838538797103061324068697065541007724176140635792031928987800310622526726306925959923206976801176512696094465908718788516351718052340899305050675090388535135294289735316466692148435152758214041125037063804857214962206707926483180349569039197345496393182008995368014792379466465765119591708606766842490567104733027728251801214731768803525591135829402617279047097378523438793434429771133836767000155912813696445690121813235015575442452582585867387245681754707072980544347657791966023008153459509522289305995039767885639342942923091783283416355000527060254945673948083933658775080620040553240142184893512596825923341490311445725177931828980494519078021828541864371062527205470654863930572975414458165351543108934808953042338831208418716098253795686961567994653690287739540940501105934761855456546080154952844400116944135329429327447125184220663848407182784842799713737382311541763629010683354669807602058804200948967360635274420816440074257089172939049064058843651336179931337947782639471684795343239596485420905853921891418848824675546219005133646326265764832642865685476163154696246636768839510503411822030517891988289370292107127674764617959077931440658559895681208523366361676999865388737259716259850561307437116049838578678275077062183167219659726669560218377706183407910582137953129062073990957834864780481829771386738832708324265107773492607179519996981530203294231747262067688709767586846920914615916682228982159663282016824130618902991062882413911713603665079869278711780127256983841954844161748099462964508146554124483916207749416858195090666889512849009570370062690427327278146406363596947989558676597220944462791668185541098460398117950946100966870901468897989072971685908281561859936599482630984003435152544056715007144898976734062898250002180758625863305337340956235737277234059544991810705123926632621052457619786243869537294033374969934662146911524854922389594316386017449974170167366775169574425796983249801941173052405865734672569959491250568989013770729524229905263718128965128421641534784298378920696577403641871571987005305488588047190907078463218646003109621309618967662427174300186947226195492475101330681860300615810540667643730106390763126441079352945538425688388482132119624907357227607379569436296388357866080450413295410009164390118501126759153356130260070285178824161217858544881602192167438807720556501293511336135459819556938471304460856273374334652725510923655911666273896243068385092864784304990604438875960410466041381494662678844827592395463825314779171248750240989417023977343739852792247475621929942034767029184077004272952866520687179210559273185226338583559686572692075258729930345553822279351775678633784588832120172546434635035051469391439080433645921168563003259046794010894377913008739121509080572605892889595269128914710098421742748956767725793513842857026739469672072453951549774752182317643683873635123206701691909800460730290550775206014659545523146310751536066216342617330771812051578777858331190914583354148709929083092723092157328030721101630111731319788790080267140456711150328029751023075836325764184286439048416028777018237992638624249478708335245527053452578338714130946461673052158973428617831544968312214908003681501050931016025017364624880128020785383472179671968110209732982630944179896179230509749326228278917777737781198297392702746537189232880342601518741909160679053435389182283242688480972272983951799632251437387941754393794512311113614862352042125455537706162156054738689634137656618614620412406498541431811859450790589592755730427610840273200844242773719376410650052393348595244500471344275748939765282844874313029308476711532502901231256787022885910853143851758675932647104745432891789476059709022626775725271784436577674390508590988609798753804562253436046761313325702551411821216016982954908766824598152775236669872097236873921877648712259951982811320603122696320682035849143979427734552539737759259686273143447484995876382546802646208659210835521013812741353762128432755859343582158864347218346675403496932662164749612211318285008335991465293205950202302239633584187007535710061404138728409436451635939147981763299350938546406404513494902848745760798226274901100808435195887706165770603150858789684617534322653749743714062937905358821196566482220142759740104267350257594194783302977268917633798132357875921120966434617021081070894566879150358753118582690748024658339090490061304523286471913911437340376107045924103511363447257434334661248280872635013938097231974028980424418011315157937710433338249486786665886132415026331854602899818174752370227014825272917367562575850043070821272604108219993651914524709134176804425035488403814451205917801697093565287853861429663471493887673112342094476628559325511739245709141238489784257687181233576382568473783463988159665556096532898559494703178871709184861006649136169456383339976374040604073885370686853837153236254451503380159952158229335044948228285857380151405681176211221616668214737376942650410056492930341580080674727653018815643237757766141772615223251845822848927187174545013879276254841293535019131183380421478369864028360555348219669283008206907432326218412377454881359954379813336414683899710878140283622171294734007544273377745867621320152681529148802571511025451750784553911208755563651222643795875183798899671824701411974996567020791743701526380017447193309786473634346678050016026816925020885083712291246481035257718231422152738841533167019764091782036674281727729719486945884974519728946434447420823679713264104161867314890874078490019451264522860205056002353583894084026117656993202702149335627167023410331107661726451808973180259122353735244756601301369194705036283434923648682254749768984243412798106948968448765257888461107156002562431856057490330797510847809923604881213804728170399203994148771689559953145393767269686735618702568367007947112491444351326836613130423462958520469297489325619552827704628231108468808239611859582704101532919806707702035706312905703623110903957038248850112077988282566122391682276239635936871197649000197036145822809573340485074706829446965167801720479618496879980125983765322975255987799755421547176340706034483007115814153050082419628109462602366777813460210478903142072185983181966445590739034483705254145172320384132856162464377018171367067926530165805955582605791361131249360070099931083471746720742812835870555519076251418208167054312857716908004214183983286914986741579157955927266443701158882209798608981100753302616220528081636370935729260317479464313011246782273483495092133554177201631315997972741766172299326265600823330839241441832090952370178727107894910798577718596040483641849693794798829490999382492891857364962500699076660286982932671753015485786961226127245025443913263227203837951540866417466064395075522826974797989012814246108383656761765740871670597622032181538323770287260741143783055540457488179191924505264155445396155818909344678337467133147486209648017468012682468451808630435696613947125820519312188550656116073131665939916303045885577281972926992641037930978222837334946329699453581029159195990945145813493324046333010861220447257545924058287303692943188193733493527629341527226312551939977221205741252291396471950213287794747834919324227213603306559960517461844003831855282273299265211572486447199625406127475377241109084954329969417626914357425525323877215873285057691109929025553367149651807416845303563587412665219518998443066946405603212428691841576779425287861537626127870385698932494581355499292504151664936736083614420474084277258697535776398170676608080066569445405861655233439619155807444950982726246081535809697733900399483475716165098542928003681225782841266819293644990719174778694015222479321570468842515554143509138947414010576019388787029252359394196297871238634959143816398207657286548447537010581016175808168959768973995423092010589188422436258610839897580693915066116760727332513478728349929025226647311069418167114515515155922261912038900384218296477946511041817571487770393680393467029280422399057152708082224555431582321956704557815500341325300503432007002352842747686992412898658065825204997440312825860342009754501249442265944914568765533870384157637676566281795883248964910676140730836425607962420550726195913538614519674793267885218786931271306543723128247992331665056974792137499180975056087633928135846318598445761540412902822400294302510412701513850649668693350239381584955256475901614371575198776296153712149031601699553067916096214072709768689729716221230250848066814394972537615822954987300784469063794623430098157658658524631326410992648717414181479409958967323087807154903487336064658765979283538604225520471157752677750999713594837171938010694588747615099018200198785394206845939666164147956004074615175546467815820223666804145134952106763284766515196169425543446977319472831074769316765938116418950834495223992147412091764901682978329589217127851086242443365671506883489899956353919060040887274427983270860290227598239312944080979449988618969713425804123976701911398880766838269860535510225313534259384252519397904362996743800356563342529074851988714441139963239419522207611460446828904329563007286526902796497990072017103868716720765411529053136985704871861639924484680567219907845840391265594169715326658020238794318120891870604788295026240540922977743890065443232382174762604495253998997559610289557260274047953770637901260311327313452948427815826925666069647027543604967132417635405883041558754253389203295105595976214069024124963159862543671529498700525293559640919591174542049397507468219979417360443708200639748107343377453364870339413417900303464832819636278820052642972246888928799054850171563446263148681239471296904863597516356112930059738309434902852541548298699057774618283797444284968802480496618173599821219966306306280879884268373046135603590093847197652800894280594991541869544794332362535390063990079452756700542227361510692897806779828102268573557721571167831389198375575547899942351302990500681954528986008398960608913504590112144560581117025832543400681927771092343375368880916425447860718273173339888183626534430761212091462259748637203753143280941683529559380277601201591966525400454453237556361281810548430618741229165686089926442677132963962496474013487715859510891974901394339387102826531469323242868781106663203993997603023251440204257289970499008195204534826212761587454030589913560381413970045925145605144150152713010256431192000117274811374072978675268933446857004916621239381229482958397216463807756947573428760466617303177814274670103818060775133620810260145825704189072325001317827149188171982270461382484699628981653470050852057979318079161972166659972062823133915893003993786143063870140219722152913358983697437820431692985186187987160923449461241638958207055363038084982657646438373680101170343898026237296449023781602426728206251626238346695729648498946695893595155515431096057589715828489946930076373118175677687838298492383509077458862152462417328690027269713576212763401504954883434073940205339944022724077839500105807601084742578257320246553652170871737467601296619605596817573533256914308918356013843349448931650966189345791186657108259778220953512837207033188637557735717482128182094876227957455958807299008769642180088856603465693324263892727293226749279459564076553095950163399594618661760654100119568418304725265835469661349605335880726710292249155572030347375323927027358915282906216915028359222620938473191274899787017971944899173887961511039715784504488011045075430090652639965459787269144701730272161241816109807831966084465341640552336525477846794721152659994214545451578440599031983515339955439074587409818611480961550733081605064006956978006000915336202192775587756501263881395135469198089485954502597246159429927627779344902428485566559189902755440932795286048651919131761751391793476377652116704698195767850540040664967445269179250507607365647743887622742310461505800374182824412469274321696519669959735307172328917995429554258113231446308802345749256184791703595352697817943005106174305258593879159742117929615329266986633123453846293403887606841453725432853789676388796032698555498136179087557346798581778569408867602286290237876882091691417273237318903231961963108063737118965037739448097779511507292209413462886434894805884751762510135301368025020393288266594245954240345131080048810781354584131949527228363665756825587437074901449929186446695428713388699690016102906740853554452005863765227937639606424029260338526029709794059942620983674244117348247732652579501955334908785152095035031659232190757605975222345090069027108784988327092943729036092408528572428350980364766616447661291221276047464343813585190467107461982963837367448462813390695731599923367146308039399375864219114028707530390607333205908519019027372355354398478570148648365907184321270323549671024081356812850823317486287994896782235732364357656483405342481767603080768197160903769772021192646017194792683050745981375248524525762242458811789506933358818018481360665304684256983601941259761947580375593660309512480319868576826846061990755694119341308520054004724311983885685559581528556599932503406588697718813988764456478463604308621967652033887267669054021362421109150677858214574652123871350960926420809090118862998339376657032192669968349545815200236182797434288638547198499278206199599272121193819689828541824950129311842435615512267176325999172243325219063850096461434009980609821651522662865942379733892828770781352077393494802415803985676480753231335372042239227916232056259820892204786326520194602018449004667302035365545811611100703967585508321347400374416374164089671382298512763695352553957295875906258977998617336912948057001195614623642369160021930759699849918136286776694695584710590813214846968274000401344161248184350148085420984687647979736278264988053750099527389833659151139755231072732212669470637226448143689141195489836179151956684518624111881516510246299002949533535716958629673501029738420835204763363507018042908162047641278511886365416799503733904149302790756382581405421880488414178648430417192073931643730527037686386007772041578035310546019064968062109241022281340925153209954531045673493510128951378984616684325062885799397210160303355244125853041336737359521250167337795982070481805032068738673371595430736986203635824027135317886276353560783075675703937736804164161729401860883786883658258355916734780502590752681571430445577715881977295575034782425478513258041364706365971818474592278475157196238065090028390545951892024899832046743016057357728999451377952449999384319915456947517083065936190187424363387262362564660141549141921284057270949802544623264606989306168774277685634005006638526262104044386627197128282847246206096316499818380493053093780916326984903795745549114248565116909144840810083622279459167556449493011663349498535161327818537655417291932931675906814850320685368641497459437265747482357451385604104312705208997601879119603001659732324108199987604926041980136799550898924975899629099952926411116626749844896824738557380385274716556007870465793739668691877409160584732600581994115745673261391076860450722869986210650720419164181684103727181260881787434554884533232082431611721552404750361205766911248974775103881097619201092065771179194298498235924164916926633488155710419754992736864678304655136102821296751553858095214750243389173917928342425321840524643507676269791037316376809848212828878499287838905605081501565213568455306020141789833450304497132193259526032086292303990129975224432663975191909077624050083573538063658424536114220560597515013668426234946921143551480298870400005168731342386718140174984196917453396758044202672915095051616324620510465684617152399482500141780488017704058010954490248434705912575137681878329545872144658768622286678429146348320876126767570542705738642227270828604696809234935833238673614095392815693724255866225177075691708485738673518686416627134871245379874659079023995116744913593563045216737576827624255288805242190660862238304720027856913391024447817439875952067247856337457849732250068456516618648580808373028102088132160094188633206821058117130150421251104412720626645420268621345744892447378197573541858118781010489874241301419480985753763423367857807231866146512879449328783078430266346137206424227157861880118187060420151361561353209104646841010976688504046773433711633390038211827745085915056051517044104597243282042712122562343341931811010110689925673611975671177615335047451847824067354317681659326414998609699275627219570684707157330401498969153519971159234597986722857688844733118938607923892515073345881861188664457898179888781022587663545217755830334535465347365831954130738294804328672748575585652000759576507042922305152291480648218671333035980426785818336709539404486010725005846241195804743754559392004247936811319640371791097654794618043835963181507477389541981002733038217145474957938410213217244128779145111011113124729301546020862077047831748257262891804890904783332893242541750982464531342093013121756622689962719097305773193597893328353174020331900201326219291710352951381720925723638854572032696505177348115025301098829377712962079520480764954948153728527844346843711767719188733128828767159587217146281324424260024540163462918340410472612282832283053640235403035251583197956231653858498036111465923165211911365008510785492639670583445193569247343348493158506878955183660563339500858068713741393570872173332007296349143604385106030566987106023057111204880680667653979310727832291766695285931411998550327614780442590392468531180339031171734205298628398889579940150523588291093721573283471608929523035413894959864411861153552703900614265001768446456997663933325236735527405146606026895042382004380163142759061034158340553519740732820698682361049455841509031303155890900832778119442980729175213675598264392902726843536539562357785715206493025039501338083604956456582108176439612108419172847485962147970041927992044997137775637779509559218602444615613203676157425211645667454203223091666377551447454261495661530285152753845692313910175968051075282658119602106771688399356572553414980503226781638586592572493283058908828161488446869069072528957212419842428854005487437867170418262171498978011505941658805736978799221469595885244665849126895597959239444401178839358106329391988125536166726268491586141872723455235719932936423030358628914262195332270726004092144635033527878106489401088760901539551214682042818637877357348153839907043970836903426931667300720759446936328404643059713139318244999476343025442862479149761958920294180976165722039129381630043154670977903900766828086413690477545173141128931668483386303762644050373335135447852922298209936906154898242460607799327981230210463858114172473770272233601649891800945986451826208939335295444803716934887695827217876854276645607994300937639607185058650080950861041030032166559745288039792540123052445508269007562116814364931071086415008646729732576463853852812323838912002473459065042033597241839835916530431119850216130888432716512655557043885024877002176235251923720808387641125350622953556449331621681707975286499736407493511343018292849558497045299589641779586594753862164066230496472149832504893161520636947760708999496504458478252458398283623280757872454677849952539318034456755363798189140194339603551560113648765993382871386611146098277868919563505352339575406314003431660813403866609488994289564622845164002662957200381632585735614597463766972377745356399701714359412740476924444598050049811058574121399115715026439997660790394421225083749955331236751854021554522003062575328352539184309707127853390557855172034214522253360712650357380912756215167243140396571087140009217225908739794521768044638589573016585128025918731606752567631490972060281985283514940607455736813864590353698757988241967900080423243933123839759478814402566161875055022127708365735594447140762243772205186581381358110020671175810808081791977501846548070994677925782276869383748163357108285627500942662193155371214902428387913310713439830987083373507687654426765394875386269223472255280358197909849215367770353596386187980805984488563267296996599706656464956973768170998576781214509319948156241191458500785727715932453050737354296577099423838311128188441836130347399829827559479711607791883342289152763799830287378575617816790038557122111379058841616774660316779571476836560591649655915762830574424584454333747451871370898312410482937417705543727801486545422607577567980967128905278263696916800977569747291899994974403403391273008507755993982688999930503736693852327994905611067961246061282018885654665882612465093726603113205750170023745957364408663345238298852678192100178208278436832321461248780599059153755947173026873269022456399410781840252215621096614945587236180244041704752674018420519760598652350104685661231352240783581435554090975865562224097163725921546713713527490807570753786961851814970650729506279688221319459365480100607158881412938016545334243610102936873769518330538771300851354564551776855392760254726511637817076474874598162411320476534978836499083697334998289832872633387435810258738155378359985725193624278971771087531052888000265738046088961655480767986727711371424816150544026874106031751446254187284996570410899449124882836000439211027571780260970282375060020686544705399151195760739684178857081745829800470571218958833701819403672155790313099806191847512034066371152833688323367533599581576258278200754402447111848005422349566394353954635659779299868245741167704938339786733999845728732069838886749329789037303650817994494128516422936318702555288027895710278634833467352090591823009790425602072916592180567897807869454993712860860390002240070817232090498853254637557587815794240816619332079823096425188258029214580947049854296788317760873176852055127453318697248682394276339997991865545509167168325395239334327882966342506385999139491811355041857461338387657269731868030947817878241151029383832929615093425879922781522882952553829634157274267925466625436386695661382017453702948298978507445533330201588185009816766588822948452595832370273985284752199186485794165582832420894827996867563119180660337718001867539101156115007401480106778348289220298459256891407736419797608320170908561738255989729177366176034069053691521298338533184455018265850978326710643243646549607087644476043464144369842526344735353291715569286786164855566237604336810403972428512594725810179483946232880458745231885419786613236261342677276108142819709392755718987241909002682598654014193778889224912480891961418887077190675068019743693323219921040086262775243784269195434501520618125121253290641914633782129089464506054871456815180222521987762084108698051891219761007184195602224296568952220439596168564347174417997243257803777237897573691327102957850892434155062615533034128302880318157774818296601973124627420699151760591049314447539216121295227405486287240964828099782846010975641465577054028470392449781367939067159674894775965963028951315350660785824567935186753589060068322124444541629964219104404304422127822036850215493639684864927013674257870083679788505677509965990133313907663969857513965125501871785992167806705321469838666374441139657789587489009747795203470252448373504282392419891877462223220297569833725661807798499267417059944752390665981866226426919928919051176931914562254438821892874475173766325940237987041121406397726484932537602577676286297510682606771723261026647809880701574165718027004474571173783600718258587127633506266167249533406250196753600450505425908819600283996464037133459748512483137271015391099793903837352232021860035322519579735592622215823595273529029846464905075733216295686072024511368719733745253302936717838479126366525696512195616867294194695152780730976520072506725494470247456012947235130033753154414475718380179940623199748291723971430549485259956141515227994727135977426175743040504772645435019325113155752629756527298119863998952317372553367161238403875790422874709517739735874967340186326055794520314311417512062829990065155611674544019419769752909671412127946096621399033007192730292983157203033975018650562769219457658503007817738440874815449294620638413494840697447907175210158095203057209834809751635951261478559444666811258208798818980817879817564907304704071894406904603214601793665546131899557598424790118307026615245593892696678338995953104985093385489188500442078340541094675148199803984223211444581659721375663963815189909720930160066147687253932959986732985402079579493718789768999790112002551792392343926043548035800009540881167169956436545422666524232795926796923297674254883907260827897389677445905882798216397532805733607830580831713815045297973689617713162540237466716415657905366400327361557132713645431430834220710081081827428162718550118561155038680531858606473567453079266488538263432341564678093026821062540507964226266090868879390535855465294489288580678105291008663369742152656678939806805670171603971318417499143089425404019381254167306270545953502728702681138116826676834345505658926180685905524382333548974857643475838512402717399150962184096743825135301807623668756990980419660983887844267524693915768389100875084578984670951888745166113696692669170470195072552475837293871770708618631988052229368535104324919181368695938917044680089740061475445151424845121746160375348558450581724037055955151750443995943225881677486716608147924861800486539347911747916190844267224337653497804934970147916555867131126311476925947370389607762792231818215417433459553915174106894339745977936141763186783685784782829554884572618019819726002589010491430189725396354174665051812495872246787281387349088438724988556749342467381630032712861110606325909247945434776795906401891819684579949858053011801352198795605193146588039178701009737669453138719098067190797146213740794862480601518218568039433128871867544962140280556271496868535945324680099157538641171900331391780501280266864950852128560299140261832864639471713578263008897474326505635748507896860904141622604962479939932372081243171102402860186777922931268996103995916330901667478732985369150906525360600085583868822715356337266527222351275214254931014062273824446282771839922193850254265076619130740696567338622330468608885303999908652549068851264225039047746457222567362904176412664810283406628190510452150249749189662154788567568175589474650739857589410131687985720212659441587201362875183849817479106759479367525191304220811506400772802478213546512610550954129848376161821723936707296074893626506826596187202307331847047065245419832336898320284020032978423217560091329521326585401429234838671869102798033157605569308602269576005032032489790385724723051225172801006894594283552012614895990342898659250333330148383128744691986351632214408907479750703043099275108180179031368239531789157477613656692691808684495535062883540159717728349417782462326349768671511990945599032138105817394850215074304948563657217572701607623756808673302996629406185610051523994099429742921112310723302252156989739587203201926052100000722738337231457591610673525528832756926247171232854152302077629374476411614612437136702322853376657599631197824686484033266244499201686728169993717424491663062770195283938526624719774456379349579014478929866599297767234675550644988833109262720490918234139812733212796150347440092988203450965027214263546321358844037506581624070948360122143022846440260603246799126968287571095000430721274974322231935765157929355683395429341985398983574147053094401236109407988803867995758249939733818542296491894828852127509229646011922044307081302767553967024242140391495464353003716892718023819756129196927489831404231842965841487416091712311927962146129726640906063607720197389367661284163059033978137301031652124187370850331053938515699739775781035542507216085922621441990830019539892235221981415807705303359213239414708692442089653938309854052739425884279689705677361989520702316361755827875245575630496508151222811898341889800442596334357653224104338821662186286526842944023878680255320044092985345855137203003960863187041070395259728050287247488748419383201585259302476552035633657378048006149788262998629671645022689604484979567941850502897643449822506893528584254855630139411107625488244287070531522037247756929569350501553340218314326800089090409901252262555062773489594828128634877105710157141016760902720605446368893437197390652977895628729177399549107860160466204874521960749328430314968692370354432248174775116545081143955724224413499519823150518873919337440394858204833799135986551560788277894016668577319937135202124628210573341374364770172070357017720269750013825871122327885824658704655026880818421336850280744535099637179239226119869354520374617840973941696510309623339669473068945315300335970609142676357965608833114638812253428330527773450126296809163691302124198719951021520314448031789480233637597616071953168102414600631266129455397598089960188276331260821007269227150463603635388731439118450492086666814917241286459934736340222479027929670018949979912153108475634088189871694986799163887491628102165623450036874125379039597238657276688679153044856406346249632284285734835454782020424818178526006770905087811371394553299822722482825395126659563519519059958445472272739865846004955367717953314507158469243909402499356179683359801878913365637998471652345198089155004936554558602608274375757279731083604002237292312361308535534257146382128906800769350446405199399748476182228173359128526814178915960220655926683319418309097962490582496708579246060754610467082587457005569321106129060279957113791843223082330792067525702688668907278521636193777752571476118542681644053501316300052270466343598307847383979789663144079341573367634842136390711935649996537757292119151534527005739931457767469766389258520891307029252172569176369313037688088693810017329936353722956867005997041788221181459935161456723721778611420224054153194938983327916712655096575391657714477373968679929847074229085686825297856550669807162660221023821167661118397483228978094243408303817956188451856799465619254972676401132147325098559302305103840780546283387751493105478300347147108763223510884508925455252158222108534483553981256968084841446993146903734984964437712319063161809291323677142543925905740650491204980044157823362943377374490322199464871244549612549608876908702412204480607952569398597261408265041449199393267724432075209787593687600127668396920040896229132856046338477288582974231087511937503059272808313147289756788675258286338325875853618093932843909651143772660132779853835576348803733258082261294552731508660942080570710915806482987932547373030758580952830761843153878493029100118441736802638666394059021891207523040105968601451360045438279993542502271570726993871908645508269411079037594883643191167102406193020599826916879215478723045421813587206248093064809417940288349636965225155165503520800339723707513505721798758144714824864203942025034059056947641654813188433548262539402999562356842818613018594425974908624692998893208715216391958209500275701072918680458166395328218374701088036219697131386219299023431214602791791710401796791176983992712546075999066279306736764056751061497900537741960974754565661774248984547459970440833079696585853686922148259661909022394518925392367099947396635564202709563807129937948420495080524911822626250515622233439413890577993986700640993668382964735802143946980250920006618319408584276925908807599105944086674827233158591687394317374278673126938936312659381594941918902458394350178368350956391297554397756420463788389028253098753007604076910482488663645558098713529842201184293134760376749191414779973256119828448502691068825029478248748219171102873647531491701035065502053016300359455236631275207308434994639187068231100261187662560247134817379268776207824873055089474295431281977898579221399873010006227962988820079222858348445213147777569300458316036498964141417380329835761315712814104738681156722500848761039827426887909715044616884499290356547801174649846247416506329724527503973784009406696164603129085633047132025853055519322184886514179639179480223395216551243707034836502288346923907291774027589730534150169248460002738602162399192751670422903067128366894347731018286020008615362148034871984252297366709493474153981450546677535399320262669776167332284487905589116638404902409949313956726200797513138243818977510326235956645649150164692794741468321685853720711166855427329072178568589551962595484464382548094773630149394751490476090575965976080588894993026122525966522753954252883712017368955518271754448417750300099834489927566205327776168224341562817582658268867372202553136973042563829826998471753196648315915848688164023725398156283724533460391805460493980301013310109324430876907087005934294759109045884382387256779870024170756397820509259532738762483257749612104728432629276086222023141126511487911699185305258166157519593315079191038198306120837784798072148082555582662672330299307472578977717230170572181149189636264692225970712291636135756632170064021663557005361199946409833185878575128298493009542294424518437827909291481296162186623607520199361881397993516936053849463614970617678627603929843957748401182603555787859892172421943497649263134570379821492826891944318043365271899445781786099199928514024508951784457656423568994297297526822255624826018206319774008625416989692423455472503435445396464353315113935309634847907549628952398843885678139023525676630810048601628233750606483726672509247734286955274481296782482561458845947916910439496692116769834187537519271000853770292551432302290609243968456516823306748925653775999697986426377994406194102373620976114230581973984005133703115263563833416307408217291282775606301748847401991208291159970222622802958592881716356407642249248512121202477638080282826646666702375733098021285525162805510865513318247824791865828083694870986635878340449544003120404446150862344635921360237536113099616413728628636643158393102209286050057391639777201634126202000140325502064456869760731310995134507354555530676736972360250823825532600031167777861546081482786059540799858033459382628737130008290280939869478073341138736458586723671544385237630112588723539638163763756245127396883188331834372460423231715862882381034995053709715377204100054852091171368198361976092819053527212048032009667203946286025599357180216422211863516538448434773080664645447157440588933885463410419707132326326885386685706821542928093174334330737071077013772150032811810692027941156208755726578168731069016992501709911049008227236213514945557047734067895248663351389214724233500124555372675379055453763119460582456617358895115708418463509853347089581297244811183827667212761539352684371941913207435172411969069047997480592343846553167166950773073141868657614458109851569299641268363689388407918580837164152524493768429565184414888747721605750344277695715795379982844990442484224732841496676130569540710106824849028812410326736093706215786611734402964537121566960034926401456001659442617089562459877746767391207707784814895326263899324102365926730956113251805957744846407502383025378550645719083254490151060532851754396276353578846419427974131804498441090825429118531966963603914223842681401126625738588962689443858351837061342698711959357178358410965914583463329786722173622874580209473487441334749498900734164754122736140438131518310343314113984474419647845627765911177820896868220831138958261574644787436647187674129626451796512949561361103306501617151482190493934381640711691752876319848838678172231094648530116960388751011513649569181054649565367131483511751198750090888723485942249600263217766477223608370065340134902545000539921312235644075404627084973951745419894967564582842376285120289603248025630337880615651415206371316204756165211247276759932356652709232177627574292002571440857206048492764918308399985028210325821224697903768269973629143742073665852274415412841872184621770488546367674736527365676240700393676283082024931878824853254311587018438399494272181678261000320124217324365960707636567705962164122600631921851628267668563398334655717001494234367516180374467782978899331328368258126786153232633184162316974885952612401645594037430364728099525859268349329733589961839255926794674575033438764621051545975189724024925809418367054252830195657377449141416985026939730566346197551660913181930344646858029542089628163098400475441045995997177645746258666400562062249682666189076159919971338263157734391386068634240074505142320061193407850819345674600312803741016614311770371132488452982751686906905533606982798360992666256994055536209293022692895055663805957537909536593454836627178717489342882660349994116631378036071785695946022179915696248594850026188069283298315502966265151732756162715827553146192869189538795979039558969206198010541513846227244482839351104679069136789339310443264632530501152460333627528680702640402167010803456223375025624334307116045717809460402487080892296655861398860880447524036216691067712479065040558478922520570215633466653963064266681033162250236662311718166790361398145148354944556288033925234191014095855971209604390918946307584513795351127142513022715396560694363996859108847329877820040527315881986947241269355330564849930033058386264985623649886274742664924837882445507716361389117448546806443475080067097154125512984713303943501634039008917914554158595037075852680522548430537797887164436410654534201161013995934613173828188680761661797589328960523720992372952745670965128437503478014225904931311240344219173467232425848163945281627406349323765159470680201050455297851588828598317633575135057134168514271032084351003191350526076609124651368153614822038057040532993323770613818515217955115498843179039803934980069450665201705039269125431275771191082787931999110023294823605555891379349622538410195739034859248951719040509301944879784190137288594967578426889716988061034882472755215938503188862074164101428502251065720229740447566561508761390397270379544035017510312723690984286692674304850770326656113070864042507843376900911298297432375954515996623845630966901755097107547296318622871413208479630622267891276791119603171564817479812953927005464070480762604711618509048144339039091784859019268257683194053184252132972131874191497587014622304388514183744990053121030224074750500123615680498346441471811653400260094700425349750744263060530893999506078366465475483725995769339297936073523293176761993468928679896323815018218294804057232256701848359186300361619237700895234088965839579992607302520906706324265367699654969981061914264338769906295764491706145477634618224113654368335875379774143883024374787910657688169042480848122933289521622033139177472879909368088607893005839717981561675595310161036849440428640915553966912987382549723519606568667066485765183724369953725818373740264082199185478918578798218802710299208395879490929031293029907085179684266206769488782801855117197869427479649368902206885543695950800224124325486889445624986383243706881779159497703784754161067864901452032605639603550526291335918308284519638418985712363238486010238693041142140536561743980463613157353881015057498630411223188116706841630147193772905073053259358741619121888371512540184492417553608675617693249399078324562006613288641919603397960971498569157879755452565297980550170356533920180301494186088800405619024785467960062150299547891205740742425288258463636732667996206585273415825137994432677558544876257396853170294805453748363198113493117002616738590573676328152283326671606701939806443092038924726308448457772601582202916591944628708377553008122014535049657450509133950579612339414905579268868628865138104935999882799289383963161513935055341714801313741291034657631587236800397502669172059114711987357214965075068803962937292679891409750788591403659194884614524848451902216934363740533040684468847325479741201636291631036284619210771080112488718852706900179910713315968008740654866199916033749766500635783212439355374642280525348553120478475705889024628142943566866812982923481204213383670367239016951707521725573049475070662920258874478317701765259894149495978804727544566739094791006493324271688328948383058072009317871328777595064447403772870834020303126137467802496933207233790668671407411574752794930939807398318592741816073462454310274662345591921145757970059844389931834783631124851105620001689111154263847515211710348127535038544705506483405958582534961179074816790134763143297575720501833707857533022968528169054948111137413703364407516739399011316393634683296775947809052748777413038082259102970112110901559033019829431362305863670521023160317248143855852403173820173796106203566249641717427747421264071156742272605103283126366034700511196888577000111925379273120200494520261920376299676509904095075137539138565976967235024160223923934761086048921303183117217858953351652418541616130716823770404460385310540351774166896102182518406542985886205719197469287292768413509976575418089901747993980297363732410225749150723401724767113563407252039904376499751215094056838937422693565601170599201901286594727760717659593903240074367811541764626829865554409133193763227103981394015857170125275206587749906149862548398913022686535383052476230830435173364890357686911912718878662124703404981043405092932456508370652164831784749715596659676687051997620476315775195176984795340459723381912249268576152383994353189225493263400142539713969075592782824766911947742910606117674634524517679305611739968127895965790924448395216093889702708328489671583716257824492759129543889942323488386388705746729378575712598968884621168548795370308964785058522371449105425588805438954573262056843531758140692945782176515367920736108408776545865336961827417056391553863516643769193855952349348107616632953130823690214321890813107295351236613650672968753125608579210115224586768773075436052291345465610796127801553407512758313558725904859688527813013007406561395022341418341550362164806967564720407394702026736064619973135338124184763522351152502395759872540550468138708869301042554825629751043362648501012187609189173618111492785556732762864939434893238799153620159232838992564241072038657850827568991091449617399475365226432461930736040583198265049912216364985946897290649339630541080282047785134605616545431819238203918376215276016431645839953349915927661770176451115185052555637217308526951136333226609308149026515709211303994948285539142133500011023097038421410597572577315657467745384048648320936052806607002246187083690829430647062661345714012457086204345911577817886558892829321003659856478854032722079575170360398512307141393481744076667625888224836200200000267126144318381710538848790486394875125815971819175898453608621981296118668278865607437328661363451342515016206207610989375986737037083787565617856378222380243952295985916030914308399941635827649332982910011890090255013601144999718687279695342149652477081383937745405189625606857199002851785753508937156077429814405815290703745278733830103631917075504918678945005906265186189046264524365523276413271717668032199264588397161580171993249182886194811636958324310672244458856097059197776522573830659607304810613795565262588281376544140680004044597631991791993708157655149013015364707367667164267686454847549502189749811112575375952172308093856502901872572709712820763490690310594826248725486042574815274475673783117067911244209887256790673257516069011100291664818777128947461763002666052692386817855950792397610744840245936678496426456221578294755176214560928393655030820224417961669928463002098695810431245290283689178918252699388376321622201702906383943005793200893257579112122584955004868442428148799843619105554522206828256574863547245099555415239484321565262871164359958319341077579097035742609955832975779260933304621315100632938600791428410566945048006029187176704179145346718181170909500800260893780928418144902162089137863125333117443333608831760824163251295707675653812044867674591459285768290298471677626556439090945545731196250888602162846576348616632643084107592182867843889399416283070600188567759427864351270639583571185363490089636515696689449761299456898559981066995120294785499456298183720943388721841669202663276560955960712508968310274105851487694768206462924901629839741225560457405357182154320347781613723397183485106384446689919897632216798612444562708986226363069474285422420976271447000225496102973291526562692969721307542914946040781070736794386634129093243977743367929494718350248407730660147963423174849009876151412218062134822485686200533181894489403647985475098424228000476279089845203918448483041620797130364573768215481581635746555841428505895766280898510391100361609312513495963071806579513554306469351235931551163061747040129000363636889449895647602823765488512940561426162679836879362510045709323160864882492281654591903395801618045466847320428095714319741507777890715911745134513030856478692725951771876944294656219453031147803780858129407073949172535777861344657094171275967257300750636005824002925770513955743878705027102658038722688198458709218562480204247771533381981732410412321358349823368548453550427832197819194548587454061393569129184253615209927735762095209373346849618442715167457509487411711699992989294195272382912496848399496161559585656320547516565867283026054018243868801115733409034687003882664551444253253079581876057268536303171759505303478930769042351391283600599232943864958228592511279087944974887565126630147795765384301003195940909124586677223067814325224695600491165916558684818691576323904760479676252530333878917974047505372977321264074584915595826617072649702997064825870177688393532064450424466754080253525516587352511528134529452975309991867066341951127303210352079125185083981103559699044748275913127968384062090229525634656814581069650715290604293530190693615835731566747506351064411306137884851959696528355398266158666481992308878869622351913363265735910196215908058803425805370661538958909141096507942695485913304200664628954982679367896198306007798370695261658687043356712710115366095780689131833854654852495714782510736845334418260332519895442599782246984850992682016838925910212630532757119512178007166516066630538072816625195724211275753795502972506592194387637657759105142239721278033972409226882075272995071644839799313867727676748119255674713249415521647806089432735051421801417716078812304971917827345119155219537507407633041944763488774143631953584496717754764812686151582626981788376105422023723333250516018513594746638622827576962772802449942149002292918773110994289479451403391156126184685032926359372562722511056905932648580838646678651862628809256316517795036164951453574745675715190352433337940300757086113746511409439205929949700694843644544019700664633447649773390068967774329360263945835948090448890871022148546100379213558849454815997164332784757330532928911077381966939085939799010341148122868623562530683509463671932915069162599237216187233071889551860149376747334076028404911170461301611115618623232063836870469456130925395058784837923213026197775479620256082897290088406842127518942947526390466227191138198345517202000986001617041728512960030519322532442852707071756328196149246119149641383817882154769382533497625084769174790106341033305357047753216390999482664050964704728624075149041123438572672828088265203006361035520780505401387451219932380346758081774655234722789928396164586677516855133570790509270384565024877550295224998653622099722126468743815951961012505322324346093256601951009650094842575589776739423906578299804435249755822091932318483277897897082131267269945386709106961114090012988644632434302199748896209743973785318848448382585316210008960016282216782667461098309378826025570792173234998277800892162772643053325219300753214373536150473346569832348313872009715932449925381479590467613367286237916180841390170854660773383079037925654437951915328343767207311430439415745336599097387066284816475021246198210479095570687002993217409588647142987956875725463991514441341210292725474889123669042318290094917092252990302409500838998739683818031294233901703619782474839539613516492069494972585256639676936207486776999678867767044404910714709250454805663903418021610305882444447242270189360170626364878711289778557963067928018222244963252504033915256547938748943695743828198895832132129393553905020242360802192481991611601143401532471809242780033413976506828195145763678550980471271758343363028622104902964196892146035803572835140392010412836868696855346938768714212374316208199608650354927854804221150897759183535129518020067187921176636322405876714804804862199949039243708704142452688715270572052112887828248333258063872912581641443057961581904260738191787396163905833531279766138382114738320328855402018392997915670840329323958107201576286538222100902749565766216672063425318022444792184119550187438680917382291960433444732086867215888814711600671655430894058573235609852902423294194086774730358796565391606460281261260182195132934163540658033469244576753282803663325848955043626989759902043963506631418232139616824091180595348453756227623478329132588926065188204859293091935823232580340138525807980882817783587402339942699577596913303557359326516170529941502582682995196870566486080360021933440886632030217748789523504431352258641051459361764358424915663979052603835744558925466328076647023384031028341081032511009633397129713789779575005018116826461917160464369525161714213492734024822862470351925460482562025697530963523766090519623142269020576416253888581300348253671263910431272005059629036201073540446597239411107055990005255351305149494774499175487073146689383101823689735294573158702795920186970616902396908802865339090711957235296187840519948950087610588052080394956853467772497272464135713455702468094182970112564203064919595994568218538726481698079972353860719633511600916887534129504015604798585628886857449060864350235253837570488021330301531569661524666693278923583826920587789562616836438695004628574372701429134523297780214025704879343897212076573025359742917877134996780531555222501102103220458042973005985564901112382322627605500209029930951648686306694053327607303168083686453914712992154742703247348643398733763837611353056147936201660858453041440702077508162499799908006901364385325384070331349433760297066423029764310712221555144287438692338422761633363024556497646527889426968602709591604928623810872946316399552116961187851963297910827396606661085913199426080003069873312694247933680270091992977045455784999481648004675003369607479203083257964714981442585750182044782071252646169925140381573446898906438837869779553239472879505212559260293655785670723117679213987420315105213913077527548718580286373288865226729694845330870413427278128171736960780484683266598560443813030577732832452553016109604722643328298096069790715576371519874419759039974980902820785272815099263206042327486083520982579085386698349501381152056768867120792963149033176533586610128157616692274549367079278496376871732699420583154943756190563091766705439601340516359893396065814546993502391044654769333414750927853001833062061132794249556092606147512551879087198380421056039893743162756215382311875121176659698330501810757327431950845739051547526316248751753678890450487494747061994994993079580236244249331727728657548290305716878019967476379910822402116263240622109481577585741397454368368860733689539060204473611678230856949773587398706334364894993425397850971814592917412298367341322593708631095245017172141428335763166752173336935792412038520947299505268311873121554628745727732504106256210474387398746525485851655159427327151472570516242388275273220913723980161337298616685889036237593911314018653634179931405375649745881174765451026069906581803060260234406283210139886645234073292321392268030621206441748755482956264561843218305376704012524964253622453848872096226466863008889678885828720963544655533692923933280189614207462911854248647420999649581236026398323918481519021844946440485556256676808642392336349289648812469805697615397222597936717729451090582869226076485100481005851878598284996474869253322225451830192262272270985154700586316928882581524311931422596324436957537498947213117695740045667182237165396745973608687152924273964255585757303921610577911997951722115549151509617431429163874211713780790778380645796260916182089621208265453436752390826972896590927589846261846114499132355110362235579994862552350793579820179205640926937715344391025103736612995920678366575766296019608288504364719491799025273938923715392231389542145505759163112386399392025941699450021323825299485559545398068411463104666804489351774031266037024689267703426196475429371687835198718204485656919680786480366935882511127174346733902004153418321065613338619520852065010848176470947850293496426251731042308063659026016266781467353943176663691458243709545355290814292802205376039390043976937126609302516798166941206812475375724936493306997434140513180737594330678508913545847878858555688190846115591322003556736298207112808733190114415720465051057106754228965436776971582934591074454364283591453487220914897133209547680918620569317909594658535905270407620200596137926420283392135243903598951156119871441486248157938686075895416930047685017386048532805176312252083411309103185245111865263917604486176342199693446920238579435852815742621871517468387025851569540297034037957588424386310884209653076761846214449200036740471593416000694525695511894170513385140810283708970038725072207765892350594341567895717623266967207106411232742730874534951178676835957116996640100481864033586719126579876138492635615652555156756641569781828909958422870989117157672802583029441334160604265382428408451311571848936044195133385627392406982985024805338544663077926896346274244866711873018970815879199095024868033255336886793942492266141815402041118657428661492222204326641322714629206345031754512521362443405650808315108061639052966901100841787008162614833020992372630504014479968424013642124051595959255305621451230873066875434225821629642892220774980295073597884941179807009207826677876727228705305695094000690480365427757042379981875794255778527219541289215359374708840274715990714898725418798090720546467858040398720561315453618281733613603746232453955850879985585487071511202063003691843644805808870166163417633415562001633446778144187384088819662400318139101564501222242439428515617374468176034617117738483299680843353557181809839406184755167445129832544085838225948596615412340817436580317568091166442462214691240796362226831247438471770223495367191624421276021833937221326419388172130067420975794263829818027129248089962180598640182475388200025025508795814076843175910612620042105420741974030675211380415199383412875286232060513501524061345240360944809736965466318514205481032531115307350008637650977026944074372983415619636993398364791480731802359699474485685381695848783881315883068521588125243360694759224050262557691726146608926013159185882554481100233337429329930431032002944709673277656783627377261370094078318860503577126512531093303560254167347659912162953308597246434178651428851235233748645192553744925156505688989291930134907426218744410211790403336059283058346152596052002082518920225477475248119747225204108040123193836725862325126510035734583873027978787468845472836162455019598456351572079896191728580430516891353531710065614008280873064256907841161668107558645272428055811333682839756989277603724311837021575553287142168447597971857438630462838965898155018310386644855934795041832029785278859172975608768500328472260615100541032817843313337910939309510365177208522310643359812341284495089329817075705533663996444383127056510048812039550627885731617279019039050608801038056793714592226689005606823062468333089353513493405696651484771192227519353935387134902128682745692203808858510398143087797621092714724542144707073504341622012363313280536089166462745217170114129237968327114390231131591438755984471070640568301391031711035635188819236031555301703136544930960369349449126943032559187633208843009552385165124040739709336748117804665451566247303195637732145405677499242894338747258278201064785498420837566467829005752570034266251262747433256809716863351455787419604560567519615307538399079363182941638681258506494913857224495666180028651220719399362302964339195735812362890330308446796099117355432096004237797793425753521539899591214458986158942947762400950171167601214509880585479609616825416813408361900390144376211729236909306078657147611532588032812743094033098781603557722245339689479159142883702270643297695898518454427074081172601528810889037173130645587025633438641974512601971002420222386385496013860323344987062028517390650693674335047511166581363838320734171317589843205957127725410102744417062079998662647420753095670816203253113367450985510327586814954858801784486936674066143857806280038878379684111087521720149606544332013032027960065331222077572918334308610412458301793950174707674903113356458723938176187726712201137378582972872691840810537579926035754512312385974521432897892151949242647255350541724530856975453793996552470348721505658773803490361488413265159218176912514067807109252665568406475959300676863887222055413563823294345351960524327378532423428492604655509073568639740536980914680129940816733446576294640249451946441359907569922348123665702777969072441924100420054425473015150148362354372199145733873374725313312587106142984917268628258738457053655185754046905068668283132946372884096109701077600451136183677655068158839921703550547151693909373202825285216867574778591332770215877868072400574747451923439911910220810825384155748242160643860016799674046685482960281046342702898073912399219496845111268657044875498437760037412469216933075388978492802918817271618905458059962774860607011031961849448751700564411113127722348147914636338583417357629418961946476916837980113154998339699757180165839170773057487965411953449176605348721163142568594817423511592974763058436395073333742373452217621838089313505870713618676428784371485418731865913423441728698957333677974224108775490688282599914129802285433446039323976148636991062088498979668605932654799233068827879865923349010901430226866231275706495921167120642280216108690674334194603373186659256669233161477642220295738634505515481421615256836090759790004600521252727582936368108472213490077652221702947805704993613936946292725858351778332196733392950726887224299958867953497267366095860651655373963644861022154508424802682047541169642203701002403896666776857155410868598497863955023574657260512025327077593467374188105328419002083649103589279445975840770392970786133087796432371283439093279427203482944913720171995678986982081135779671765345693289994771987457515563705305748154529143147756045225424134797069777825247825062731154276866855928159791669871466647947127490010563980558446706934301533848369301649872124327207637713661287841622067049435973051826709338225230736112460192560442863979772375736211867631200054674758031147017370764987850631537845254432965946988142299569023565936298403272427217393418763829308026846974390149682633343128141056138595279790968293393934683754099698137663010824799572171805278356369490453084982121204608750930344930099018483863986774214326104743843955902419610364724322261857730101244722445002036596477612551876374632536897722136950117220733506592100949474566242948585629354520382071760954366052057220962509481220109168220739392363336728862066720549803423355050466360587981005570203477557572224800442371856904736570218508648073205156697849496934112695598411887295774019606257170654643210867830701731563645380169509095615847628554047619216429615066316539313485374812029024317690581289492057322460109871346557917858590598837793488169613339289461159689057294923781637931455893375673836359669497580099279850739159014923826492311496833506883196751675871092169654525122879606326454940456850762488218404365129337187299441463928396509229150286021837597924376111931603198475036211200108079666935909876771026660757754042834699028979220757106593338554982280197192732090380601084329990390878409070806281368160508877727635244814995483389125115598378114972681826754098285871773438854742691841550463327018998360909281819624269916657450407424850593412989177561892914396515743137861042995420300205339541596906741305441027056657574283100792594755168304611520480857499119010391615070325268793905774689272343805061337494300743043807675230342168188629664290076364573664097278148368694250506037996645993339070978275033939698480028175123732902815485983241690448805160353825416959447374339175561627494944896446440895660638617732690988322914801061551122471311578583844659391294281546758367312995883865239026635506807884141746970965204933785206777470104682332210725471292298379258254480823294218337698050905376981396753245283773526145655877817608093510620276169091209815334092356785454126833366909357399341039211203199713324671693973200136859319743342547890563097141091984666826788547182379085811629865533841267177164785036145235090702008309193598103296020272305651490990565499378699246484378921062360870772379210353540584451716032961408804083105414129998617301501769588085535279129090591755138057164178868101890426902448688951399999636348184120494776234373978049560158185389762696795680048941762266736128189144256031316571427053670443480972457490516270259363961071021288311744625240578880260074839962137285564356349891877004131406748949000957181523079456580149401238793259690389368947039353308537675128623955144700615803783581399954626986620305610615843464178861824123059995510747386339892240248789429645139877052704186637184689898708868203521800296677761937696280903668065854043480703575461672205648322037866051701556147951759533296912126889443445419251591469525323723538084883934088602310774222216405472114135241087509478716830600056818681365614689083920763826476344198307860894393159907885826854185258144743699396969077564292397970438583921122256875186388895525153980332114113853958359494845313478139268910099006336887076956522556118653982130231745879894107763790621589325207075822779825049631895276749847516479027789369623609613406753664410505344351341384325022171270390054801596327459254740822248544034888159383412083107638017693647476793805293572316240348693776150418412384002497324633762388748084359532554172400193169082704909656547119640061598412638610601120992970645791385677005806709569234269722226171438966781908444425374225944456925700100878664629421658965412553897887303924577510071105212337650570948351801192093891382694798334774092214099410056855389924081085322475176372057058418606990585423543281978896301846831742837841847181751084681974829905628405743721499292074485809763522314831483432189447458978027376358371774520914101118418616201666631207049075298039784286044888946161545719507520165868428373670607888519847818349511113208983338575584838889682984296216664508006570827309336656494453945816518131951645740512038068854891394134829664995049092270552857198148564918979869954463063480002514160855758909625604269867193514810661159533558726654825982439382443898979465661627510431772339434994073969249191993399845847951234932497635323288468366903485869780455982821578980530333252640918136440219465886713151768680816197182437298403619648213337753500032626931591713257341908435037905829870475119241166941060001296454333591713846616820946336264856605735231701254429570603683584646081122473677007199088006777556355841599034787954041859586027284568318658604849251698380336027033437067957620243189664234580312323424470539560016358436831942634638477706544389893884889037197037858093624503031969937311212202368720407026577584663419758939148815539140201603281030214064685790090029935389819917315445284122074678392630006844980320447887742656435157152366175921197842510929083682360952203248802988390162015793699574863215157365759319443769722545706360658909045667950449583273233803717220839050951553099673208196130873559196226811444712384306058723984708894221533041854938849980913612311407278959855303747594176635506746074720161876789900482615394191324173148032693076929980284965107938273865560281266738821996768740654758637317519040429083602924983079324167059668387650679182107985829635034436262143980953688376115565981551570825531077938171323550140048274678058702019748649940950445299392131805993721731155805718228012305095773548351322552585664692418599855223104787461322802469918252397681062513457214421832967059528124595283125876200520755480567041045242023382125739323686631077300574653283119529802276864749975967791046491895921531853605332082806743874436487440617946644377452839193908053016977896755108890302675103068927637503602468128273601160505772948021076898941690246641592698234620654658043910112980490560326827144124959223631543168513961324124254031361843147843482030917722012377711754277158378014483648706576626178989972359747334664770220899382363719789719475733087131786715321740275393332871882103596695563574381842876513154417182211694777818479275411944202859503446156833687926139245155402893452126737417280746736966184677045205804986693701909015335722316207820956568776054522399885710077021677206117028383802602730560759996058949776667239060128950156961196706646803909739339199200932947921168103447894964371867236763870203481440596858847371602334577094692452957923389941579811456012261943381817186326918849717158323247553197687787879440522751828026211884489800339908902286900663231385683387067679563961948834313212504553573942405049901730512755423657273900304877004478028568256087199654440652020736149446337758112681858642759126536443892591509646331619063090230898619504562551366044910697490403255499951404118862016087930020693519974929605312588652225389890472888375212158844189222696224589517241868151475023563683207129536306568855777107229627438810359525646251792857337753122239693725382101743948218920419694905929096514226441819938572608277633607155085839026979501540610466477464885300610553672196423813239926694063232996312437631173078984241816647972311808403900905759263553693462758543378603998899249796598098398322514102777301410295545290866623064025864342345066548787746439016960464716458377907079867969657712064889748132959841299481640371102659949226407773531528494257603810958864554408247259219450300463687333961541779288802664476278034750496708370200929218043465013286437576115243977057833930910233800726774477006332182281572431386188276795747126589579409943875436030572100265133633366835274496822110309848936775550725134757973055337797974426216529832974890293648934522484286469043744296113911072150094545444887197705642871854398886884620680193469289448716314625909079121188851752696300582811012822744662487519028848547773729336827137082807529649357007103698725281758433678904106931762558875029378974210143411352560371774270188281232271937354987263584412198147101627596969545877670236762014964848594264290068682304977367739445985976781208326327936731000890163153693135531909901508383974467466093945857614769154372953013768579882910711768721389382968660967214740862816744956063727097887538249626288120378517678954709190985867695629043783995746904305175875752982312266726575236589585415055388448046206185188029084501192526419668291473581927266926572814228791005749294897619605235726473132196081377634211587248534346332472221414464878935441569954229675002839428618355886279061747523773030085438752357769247384271820889600880251372048752488836102313790869941986553926005689472114744607005670170997275388641014061400672106883532504882628975714295571824165531553660850268733324542721909294743969935798509979098303735787246385545201288983521216728787823630343703858406556283445479165016018061835387983883189694236170632619753818035673709674648448708391486286321106497434335182352426438026814101814312765965690948151337289820901944376343336526493927059610959182140911486150140481591789109265419405698716186236885674928235120537856008109590135420960786518541841526461766172860283675119209029059103891625359850107987058370856005293137994351983505581933408308903067079708181787539450301841005194950681194676874934700151167221031281590965848758016843902573035247233108450206479776691378861742214398914397091134593425633099605827945642034324986425596354380201111523829022660242474735894217261096461347504545554149930457584830171508063205156624178049805893245820271176427993436589317679900048903868104053195174312428893278038129246806246512911108347844763001193557623520579782043048164101830506047124400646124784370775572636456299731398229145101705035424597637711127647995170855836280168590049559843038762228917465084092109927989583037997462994849257486237660461484640376544882418599470960919667053534904912109295489025293312388724788960519504488038576503764002819263643445169232008656603441902962159073379336256885468681521025299010294107766555537807191456568188107331368785619910885623826977216943462241562819571651242901906876401394871786806050025448636114819302173224181023397469085784058261310985299367392184340556069408527466122266824627199897054311038123058294361347836784055343936030069276800820809671742078428327846959302624936145547782575105275975360305287553050299004513364569569536143700328401223195014153830500559956639418808706010606662914971592348310011180761026344426104626280853412955253911369053188466902924293705141648511056584247564817172941558723480094796461928763572840311032683769761269689480728198926797872803856333421350413009970021769188431200513175900547480034950445490837929695711904705139814829744199080613335806912422042145394186105705188228029590590657882018454908189954969409249105252361418365532104610504808379607533467945160351337889808639154965516105015259579851118465623995755530762336986776176395934970802299824042341310311370299496501822775076491233650780332321027022580375093373806027745232468815685202275946414935541291271211124571183881523456849038301831381027219679104301593702530712751091197975048845189187796134874306828499322468205070788336173850595391414011842791482588367731639214321255445819870700620846776650572649845512332104602994894729641434211318480976768009897547206775542552011336266540341699794607089563870343363383799673496053762317436064969782243145930418319674223566917332041268080111139248999450535315154259477160400105120714599214206245006501995175762049674144433979632997914842156525186713081792857418062158133665617144426792664942915359727234733114292739252461680158182098802159203331898839432972010716229949451927180414150534654661574665894054757295787881663582934422234883639862161224300077163341866914067755133700370384915341641762957203049599671055355783913772772579389707650039782791403197207466582144190432559373271168753857849421070827061304441682873254608702075536212420163685690483693484130738132160866359335647155730920947697944933988114023396341451962888905876827211063308120268159916788706727646758786095156797663022954782819569561760923782715591194589147858798449515387972116663929821184051340985626569243139381069821062018259756474970492511158658041320810315000019468847993978874094806844390985266425899628875646559674235785165854555999033397167153186356717156079515890876407714583070282559909031870237065796936978102868485830700287722208820726526497696255419842244982928276862707095943441822306733426283010420716467705802530400551081319555709149188064675172842315054994001679803820090712280253318930261787639822601981465661117006514992679528598284988529987766837056718310993904242533717225207537695144038363164093265056532206919630778714903434973521520919682497021358077065952853135590056761998793697472654589644650468281541026422457216341185976576150158059401418742974713722822710048713708997417757575677511057337845333487741752399650458008036299379642800167290950303015409633189210583580455991184393454664966740139037696563107876433741270623973006467013281253653010033364487537650824842909713081422168343313173035566354314026801326912520730206349352797528499513258557051208717204159322896525658906477566963821242606246711874391455430352274906774870222569406116247370077957559303146364501704490894609474484161149923565654759815462063381410163175035879914965355608180960913044950454662677360098259782545529310245920278871415528007032977779062689615925187878718701173612571519187572589757366187049050635847925952807716372674322481570847086924765645454406959319328075361180652625585073643314040719863792967079180653416559917841967990239352259307416641446359388038135152855364975728482192353477790996951320447229836915766578279766757090741578115433964519449135803667727741131232122192991447377101555381421831299033224379978990447906489022253262192984995812289101083901909382769765689085469452078275762847937385149665549660600187160984775599102128741648751050023267843731787418030140984087572998495335968333499731727305044369378939870393665244553795724084778683558825224537383708690355552830109452497228102362541784174041479211942076386479087000477821854945348343918075098451081553436966235901640919355987801250901189299287775888073315709872972817615271367452636517119511830212741168779132213862571351384948556834091517813340452432268842621763534769121180800928421744303233679946588876660726096330433974607826452294876130205103135177102802130456535551446798229773709148208528203354949149685087224712396259941808445863939261094761587640472572907054418296819656740220616674893732208058466424539335721092066964186497908721255934269052346276158805486107774085606065008723776880746209512049683825941717438639399114517407943174458804195583948404717671535242537916664423669547461726361264352582542731951049095970330328577796229153743167112862615028095866445573265893206592321427860745159314076454351354664892553549952484554961289781559839033492554304820803501112022575923865893037284854849748858646409560646582642884673054298626226820326064209960869017810358487562714481815252916334358087633417100941191123938887787850691298391217425634477345269923031868770657978097264635210915370709882040541567719698641899738522175799332970035365079701550057793369240253347860580274335281991975371877770114185898794464728134623769263031454480899698252167463833856410941543819129355887463521397353661638173267989157376997410589254637439178488963432888141774891533921247932289192891223433849966230878068719237765454401464019160070043647714633155550403757825301267617502698684543994504134980134492691667891270563871812033297522990103279674545228827831173430277894421088957805084239692000083020710007181388494593509661262547508398984120969336376354237319750525195750586337724505221640877009212153308170595378379878827423001032562565101524517526217847309865640008939297023903915088708137757967342561152074862071582000657843076113005445994485991561560062863689933845260618178338098674464273127865192722297310206927969542255586575666956691595487892272808263804357984630090082825324456990208554675795017481360230483629492101945511687896584533146761265746648318064819998493253347744074693995744292694240068319037683222170752644436951854716716853938527763575490874084058006354538977218750489348566132250709628366419580637512051506312628001174514912310953961059036640340518945704188733419162593507157770732761633581867615047296126766080881372958966451667549195665780643268932151746887809996934450071901945727464765812514787843453367945249223798352627176275684187513137437350361395319021160131050017835920680438536872067929695756964018757256134736856897609413198168016757185208468558250389881247093737223898689871057662180148471401042279021735553905788297041309698827745930196507646043346927168879705682383988934221017833402976795899342920718704420345512038329230200835835054339234425063008961731253938710258857456108387294562854255764458915685780552226945939308869382293071423157631712712644028973463158462656882233802194169283049821706788565211945488966991716512888177207832424851910222271019901803782732665474506364932154552466086964794416390832241131887754719811647288409832430403799099814518205077997371346551825094770083543741380954638822191745969898287222861526289878812564094049712212380505539787973523044855087778815913557254159442198338829058990146950477210475262439221836807966473640979139643045493434357428414166289456626085129558487445997609299748275539888289011847740245772788298206057091805234371451313394109182062948135916347625876411178921515482151944025204628958806555278202808117724269684704596586218214104786420032722365507137806864261511057857616004174563416883342507561963921504520833999648420000409148192279222729467455696248653226290680683662898784058281156753856358232503306869530632541390396577588579083234936290403401217717289130195765044337877223460895099911441082899400490613142044872775080059807473995893167188435404862252246297805897488280006814897000319850806747305736466844717958990078359272043181964784403019895638472943058822388994552658208146779422928471326985549528112819111230560109280123032668789998202071294540509761365174489326349474321720815572616481945552736250710861277927017388397062106696576867883722183452778113759730154521844212905693442844413346334171116157521796479949077260770615826692813907986515528448487989676487132624876172588695470160252636143077495501630381115952164830023692154309187342172870383631144373635663769499253697297166433781130417097605534273798146378126205266580911436809217281887172483209534019660375779300911248970954799073855976784376998027720964859093318119071559514590495899408695290334647793658981513090134265640238855754492545503432138109592092265815184958589751258986748231443239450958115805740076601114128101520010167581488003084051391567350743952470461467249075977709972476864085997572344225275112709646807525994206349499054074368771789510352188863607226215527608643546984944859468972571459410541500328114805175241278454143174124542933791662013568971454972181771897809228454450054874389791244705236488094934346772160629256226611021381381895871911237112485579377183040326567723845444199050771981473530972320742113937548009088471774232942557681469012751084355028139562842062441686917773058118221150340243757006093019442099835765958133821556090835923174807712658857659328750399391578319284453933114492813958212305474573744427356485783461028749765512153232976218789667063948470728430141360136868134624629662810107276743825441966727804328175623872442232377043305023554968952463021504687102598294461064807567896043837505724566568741004460416253674740320404807976684476970528661373653034956404739801576099255059825499843208469633470632447350129769105514215978036518191804063835821657604082726420975239426223450729714111859354375718487389389440878959182740023879542652879442805903095958084368674114219628800755927357613690749517311024520156629340901381827354872781676681227121481715787308378948526894283995692812569808582283547364715598881218845583578592674877018920219043994744363759061260456017298862841351180763308438641549168496365601697755819565002959467453284164160406550282143314378091660285340392481169445791603015488241619332578536129601934916387804451413973847092512195486326488938314801564391239291948803881607918163063509318734064550140368403528642130836628847302114186552748485198464303872591923000239357993015693386360899332425746835832013377992832014008516219688851225106561252062578571871209968830144493572251211915269295583852017041898284959105492158074157133226432071384007522593067130099899567347820154239204186365208947990447352450711095221444386461819039171355862022862146570268489496600289161715706543755680620943614155914799709911573148365530694570299745123045587721611658121279384484355275428523469641522153690946935590388645588421732210039420467597930586326001749775544313384315527816348440096293656700192689231409975717672631113833654323188177570097787012678145053785874862071502885814799366255754786464297498933562100681216449052230959582941485839173346933122597247736753317722782179361226298530056880786353704749515041882961332182898723068881410438597037804337309965266031398959683305410878674836917161330161782056558371158053959123141911038099309915668959657092571520888664840447300426770992483009403308196790933926905056920044936553646337236016492856006151557251048311904258651807559043224773664721321188416847370333801220545284609817631944572097367508753124218548014629055769437168596055947584037771836043316670548287146815321507748337215281957243794288192453851595892651400123718642474293995888879949911022672559615681893660732906076585330814184782956730402442163633161561416009394983025277344899005742702321601452879279487880928570537691352453282840330089565257154256541885352799837956021485838573317380823027827549874138504633539299631674140917326919373415515062993942982188717774942273863428871716978560589283281328379866753940486009770320712619684314161281666552946731764302470145228535257155689159873149819774443275331471555933706874047856169295491478836448373900525469359310315168264804595401487517441112723388385000596144220504636292197889302868906298236747154081094235368339969915065746006523658978849469622907629414215243114863446238549117274931239126916084893747859788059621029725179235871405626896792619733228429592720134660347205490923162321223041015987646631658379459436133799906502191862439322507190712365684958876265244887843814941295530845459404333805989883880553818616423482317260600016255626458811789875048664430188929852723864219653710257999680167880381100898903121405414089309802533593155463903703416634781441391120091498014614700610978717154933020478025092020620005800195760190596188784440441720270043543061066408942719281849249043058496103404785375971327547855663686361523246794561693037664955275833969226149169894847994861801361914005319403039149424017576296873763224370430470650914837800229408277150921921998385508952454027329832755492138849377508424083503647854217902728108357678818289677289592149372454205728099127018960262061758926079087803723536769792942043680566696023265522082064154403322842503378449374484405896580328495289167949014831700114908001849953377791408585374216033447682766607315462121694980075853189102473584380002267277116887989714375239153103046952084316853877770011787383660378626685116500304799407773414826932155986025808484730240667235860495201574824796319486244830968416708601034968338119797761973333644409556134075677959234173746706439815065151516201793420890661285637242550187408851928600339933637687502745927219495027390341120872048296077794413002939721278012169564470243560436022379973453130427588788565094093455591586480941714041776934883030919028575438858771067824864262774836802919856360014451026204502396665002674775626341495888413597146162938845976511433617565634785812857636195198329848213937020403692587558750719025438157721446741119167296406155920604962332011313590402790730962069501032220448748809130050181707910885556522838084801536681811553410175230515125371277514317481050423793514174042399183841449431482465123628142689842219437609551164503071155737154358064846894136515521443661300876547667107568357442555363662164247953896237203003884907293695256849928263360633678549860522318583380242844490420394730854528831125611084013298131651773163990162670301540378222797206685585902931620574570176231541127292790769753449109052706928722228394830239196111906016434367125514343782991560560181122865437549907094447096220537549033266373069495946623056753184458021812700683864064724406481187058915498981958452280037046017740365201838490259185662289056276955354727599047061986786879098104257384306508651959705576287580277186997452915137267611292162263582604659764791845037853925559348200837482397791405822134335688607299408740073555648240878899627315593263005647631912365806622397392432730833244656014223413585637798491364286005960585805074430082251460170845810544101833604054297118636610662616751030502573289273650747001715463684525769160477611677039480993838277053855447059569075257123984424287109207862952336171360934952789661116249182422685428345463841680504807065046972649121745424071673463674077695735942769051141579393594890953746605492289925583239140558562996805301560678529075101984513847213406057717504064089229626209060440406887852100868246034845765460254339264712701012775293650421858384118535536648620560560872824211626389663031437290777289901351251157940421756325182710731629274516366660897180483504536502269795073172913257767220372617124199954907314435050559155495014748025151337495464636266005770550305682434925244600656860136150503777935964169414874218560940251442445763404346117129556737244902264403600637426808802306645996499440846464954331185136336346248978811413447397402937116018476224567617594661567068673089377193666091842241870901867965835992369592231774791242106789740110561273818768295768119954145752314508593415311511234207982360191866760906435538782393620686205672188579140843780976126426476740396599091585749548961308870589435044913157361610185946750074692129396361074471875768615916853948042000247665584524578808047589809135007417920371874538803871165590885754001487976056464309166799774619394566738741091155000001607426792388116137496291245356656147298781022946008853271196380754043174511557949863138722369447919730630117527681671075566452640676350479614942673969632047116554772982269882278723885227405754779721061728891530908105856105177504650103568575776156575105583681883613507998309691727382238847493138185767036743224686599018837180101032586724383942473572979832241668177524660213475232506525914578143975242704628900027855871011564906131996361525961503949458166558601834459984669325442266404386964769368664797227714020010059817695362976518802913709836177784223592603064365716838821955790290681854573383480946389738991801271449953534298617604809122115601021055720325616323525894341965919289737402074483712746637206406561989329983793840463804136380133616811521873824848621469335520273867704331136540359142341592150748448817839897542665919791574805454241513278969477912775627622762048455301516636407269673333409016626013256733171011990653439717017513853476673755747292411373265901952312103852541853223346150922271273946492183625286122072911585116855211303165028943316853090889669950256442577973369977199228451209631675490772585214665541000602142028042799322673449126333746590189358250383964115784630666634396790983183868719094589515104452948791533811267945268796886199001234277909843784247375381002613736355386487502892269294749585998815848963935780696986214144265220101607417529285483949763188433455017234161122513252196566467424110181336502230506712106625109219206141421807907129962637860148858665999252516519426850193933701208408372760565832224291582687578832886518812522118556969567977129301983857344850289012836502652389480164311864776875429723373235298175137806096203957953094074328889770582575176706717696029138629034206604240067813969309101531660950455006145700472127585587876632857841051680642142540846636942546883538704303023592067086624232616177080251712652333319955120599383474307736164887259716885877525101406893855418418619085148179419652903350311598729790510566133511458307482639102387062346775588050786570983642708768671963541578843702538655489571351584619899961308756656908042557106024244481369290463474269356197470663870398778321272935562264125016857539537495967494679138905614646432183630052433969247752024091254354110989724368297088141264187440829601670913280234978609859878264888759168280518131715968739105924714051602334901800627227836451433919728042212231239196670625780803984762732863956895968744765622964011554223644534685232855064422106013556046723602795849757294634926198659709574732710924199205365349353913634256485848201136322677096559956280697924685308148366456900295604793986932547882802589900620732852920140711420866668630224716369548127031974420800801092981049558593709110803891081139241537315001058901158097843629472781823120817237889761813190509554773974125663987706554952604085169918651845470443617397212683305532370592190446440642202960429548822618955884267394614666913784511082288234908109544674447704170025112718760979107367624077392286500915617235497621642546800106863264013077618274125588810296853585009705666879813922896776310120747830756076890961291635384835528851701588846225450681936524434124442121058385372997596321483279227772535195979481756630535995242029700884336211286943164392304898444368316308323501965308677576054339719462128483421841579315991818722324699368228972693936563395181383077587287664170305291476064423699796504509502167396922084660976380722484743178045446506535366842063965583434801052805593722368351032520566490172314385586614695465999886828343724828841668819610359992003412581837129525138302766080533737715430831579128059545393388080140878213345940805646751509171587670250195796624915985241845054125777482149412810553612913924816610071765562717815079120260189597374762838145151244867641275471388951185740777606040880120898330182172930884868870888298028809071021187903245613744334270247809685980010875051911053853424470302701730720992447516050964612312856661638809125922525418359597232518450594664923376582733939950572328574168010177884314063238624295129559830944967975504227579847998351286892142585342417459501090793243255375951333914913565584224778627329794079109906409214351950796243975926465180073764091918638434571475140791774552505378733068854495983820142545749956583480465654202625226271635720890721626336763949998121646693460036806413395601956132327306653202371157245780100158616179066827429861532178307208709737174095514054669961008087304722024285407323819214390777757495596449513669935802315046180550564941898323515722837348192414015587474925742182919596331845618228562874884255739257876447299811095426324950443332927122812153636551124823307448575815518686465800827320155478622812512846440670427505018773407749051048032287604320513121499389147879094031936158204064297156290977830576268040399325181152474028377047241168845369618328107937430368438428073080940496573651774892740996022684875096526883404342124786292662946469550587745704466742421308327492012758107815710355106894989746352220294773241833913164650615979479795047755738368556222681601867186985188169575760951978801429046107046069972000530515658008272646326826303218842942172408162421599105405496795862986970132040862859911264819949259967743756485713384172667116092688182867554695884500250791257927579396328495407057370104803918105458226322674623137479647782569328763879611076497715475533419622506846463131228484381859746058224551917649292691339954951582852689630353469354444449084199855583962074724504151446960148739882747975048154360007667308218122002646452281225445489020979064018415322291259845052409593695032842096015469338017556330071010677974980617498290625784986595577503889368979660342655453671226606026442410329819901265916306117122131997049498179078768372675522349271541611858819804590649377278260930063267109623292843137799381633338644353088994120985434733535701735673966480637616182245211652792470629522774958870115433757140828212484057707643139408002147851489663733533501003380023363026564444134138566662257916218919663443718057709168609652510561679308481043059895910467931913758808448321358350082897752525776347981663968955447219542180926794177955731615294792640800914538258411531023885065703733783178398797742795272641770330608074301649260106178711909286434862945479991950475457522222337200558484130561019802162696961861045391342957051592042594021113022172253364918586245053810460652965162729305546010964251430900102673872012220544305742413118805182557451068529896456256196487475202704077230293625680351823370652080755839468098714514600629703654503529270862102871628178012632422499528950474408989773440621571950396652725644202199327631201378323662540673202173178378850371116469250214981503242913375350441356930525435706891435455128706877289000165010360456339395009865406557305717263383727957877930185871855552350961629708199916021930036220076826017976088395717713625599470471567204528066209259975540189798667274495541138889998567480484309354399065228471214150347834305193233728861282939610141984755525723995880564717533071298772009776095664534783430728359900286417368802858245416319828956956239808443747178103649031218705826174886913309245142207959644938308529803715203173961146053929883036197177723098794508044841736840669471395170626217326119145213243646639414365027084247967902671251897038793766587474048584756114738533990015291634803577162658466329322836443117561122067546002123567440414603779473107355223787028203118735287524792832422179013957137203165212454099692660485731415820991834289939170278002632629149253801556668766626812187232749183542427352784778793919923778257988777009168078115763455848938528094697498189168987425775277950912525178086397304422207016470477235944426456249162838338709984994954428200170912630825532291517989408928368696719077653903202556651746969340101640468369673182700453385996216935454783450590006652818575898291137432652573433764953499853183573225633902362605259766744804488158592432871418059392250990649504001145789223017606127998477743538244158011264237321199333906047446130522405449183278920639187208447773326917877040010205031234425243990617302332643505711610364498997595698516329063560407247342334417613789117418800566990079457599322912749033363561705071641448655184135034095527336029074006834962741553044353178523987536803365554905517258442929710458827468663483909447516714918122067213765726222081300664386871460732256129705681385324774828541157868880036558807834846886601339740437255258933190040135767053750850081304775946547798949487095010378978871527562062497132302828798775010870481892925657748168094465270258704547443545853112211582401353486441784641434043549219311748755029221766556480555067113213560170704492123390789160140389324729201999534741443923744952092937574986902046291780262313391606456195001058093458544385991418994465132073806048686054060849873588853401948619973494031194127837881888370327575518760024729963337858464941959955154344317967615301169761062931240578065474907268858751172069628331389835078085799622414479926024705689779418898934238422119894109058099733054209245749461387850330955765639105755072644798017755114202363192162307724881450001113693292966951833984615873692190164928900986915962413024498057996399655342841500859980622408692047595387789422702582521106757978205311244643470696522610994027979738080073285820040091433611838250630399957657924613389914097763006434580602747087581463728587641117378300541834301816237250728105328614976940842155811718507094632648530748201659851364682852533651009686565454061998529428509562590753088479302618080428767540733438859465092366665916224717390918235830690673101183955748858186789098137904099226775559773819105313172688632816289415644442720508735146281782026874783807146593358765022539123305356205313529407644322766791039356655704190386182692129376038986435523076416053919652359857868791650904740508540849667345257414975771344988011101903271315559271481559483759642116671772530197935914983126539917530751559981304655827776150411197666291453768869860734453424191207835162579308103805281628883727762186156589136382440165368135788178927358000612456010494665406407002439931968232850093121538164226515932317920809178377776369340416672819784214748377631980795895099094966000124865778893383117837102247109776155127496968308116707002464254361765846544164656427984329245115469628295720774646523517330671880134537057120634173096608250846594611191385468672205188391068280113093951746134656000989783838458662863672933528634086705893630038234452284693742549265046245908562280782568143767694660228712749506043130508520397562044706623036563839592825654548839759062228257827305936244304723801843308714762635645549359591890682168039342203580528758005788154268386185796506681684624887126067840892228916486097252643245019831338448528609159002849816331460181865132671277382309167015215975241180229044965112083463905155118691588667040448328198856725545936354120873180554067684203790625856184623596754179798338620057255437877624783460987842215782484479533931313323953347671949206356352987989145178381945294649207220686325893920409788614499706138695447668626177245146319891005453776376792324549502261963745833018172134779422274559009154998349547517991022164702248470657179622211757851865342463078385909120599328525059356170476095722295291940358258456999155497805925742420146638891245040039042966070008751783429425252843103629506076177075427347707599973624404294191881940595112002989392368005563353656308884717713858059766066973157706015772585395613453351755347607705711271251588622836573451639924397833228541089268009836615077845893124989073844790688937093072726771242577999565768140103524075679239690937162507651656341580340642702910384810062278847931964639692843902797348486643285822056546281668010301306552199917022528619850978563019969274771216553228141768940461703139750913905652552659082099961060236813566937038077256294989487700520707849453437508561695740272642778838080154552648192942151459801550789391345433662708808570402340984405991980466088604702340298189112698390103677127339246244010565738607151589382476518181408631778028857964417354604461106021546415720023342308396347020910128007618418420984618862081081457961422349969008035351078936441517244499489131883452633795905245607245952608791720731573748753522932986862981589609600161004972101600299408237462294716643630967786883504514970279412343655660540386541423564165504775076311503279792552705202128807493531804837263539416283078434549503064790283438537043342136230396643586391530556237161423317730966209148933272657103520311082057086031900348784927225154054801869511592604027831896028205682356680761853777534341633451505546203243756530044583497637247540096394358364234755582305974202581617382067648665679853013089327149029711758341065671695525860877965401657914953680005826125313054789580952934245469635839392808605725455743660055155547033611451979736753519413961798285881041807852220771826873923739518424472131525721008855789582385763833972650977369474608572785372151470245558507408256641090866711595710221834737650932392582832240657367088352013196857989577823303152124990389565968019743604086327358256853746121566887253654619538334329327987124347780115539022137476870832315977268690701553335958185304742306608508379709583958558688511857714822352916284561383120233838726516528844168793561314703563285888759187300828733695050037904881275537710156073819582101147980590121800537896893037451761223660916014882958027916486824762400151870412840320376954659445174420607777987053849667899563348632834776791106510739332213419343035651831502109814940253508241128459202287911317616476771164225525584786425219878871436860095770298270677375557937246697536740362602446073163809985944098854569591669330333347098057081372304511206678787219339485331623096247265699355599889112676491038906281146545694487494545420485863686490778617006167893820404092136169636875697569511787135882538574105852208849123270112727713668321492216013540318462035228371490785394350120273227939675470482905887015025833650574902902717082193852184747144514254894552963402116487807831070194148879397239742424575753135146960050245636317519931553232920972312635218458764298986022724971176583792367318864270408132085980824891668150038399883999624075506499545079271988071872494869030780182258234024002174345471346612838939279341209338788610354779456329189143164622165318238560741182579370017991210105718955539695819919098586719261519530933851422050067164869237280472076909623393496908382330980340056667002249668083187448470137335146921051651552855002101156286388350281010124871505499128226016551658342385013164292016334023316713297355506926691549706792469841636630703452218428621416597554392761420845078981288834880252190418326793091351576944551676652304840912381285515475533567925135428164179294784612671088071474284359593878218104992273287101296833951884408444694777765414214825759234402630745389327701916989740046901456727355816366927677218966946653192041561483569687607787275645343773311001536822637804300661868202816689821374641199331295902123527006391758401635981721565950833954420868674532246197647064636471038687478592289089612823953380505393415506502061243800698722377651231728736274602020292814185535317676469930141502804203592677967776803781660722819662696887280618355885433209730362069467839884349014119245711442471395747490497663661341313642254906643053311317446183027092013539050878307562444368782887720433938095320544443009425170181681464683181851931459570979608501547541158385915739604617630125764732668260712220409491893651375877457418571263288494091372429199029636062787313949007214929962031207033010003169675622905103170512069085129637356221360832182697910398627994279898694300135284875267415240774277100136125737122259062092114865986825493880760568141007664453832681791455483011426592019358367425624172772744357544443955429906664638957984763940140352783415833140649021383933686533154450817425986018465669993670664158902800709413648820110289886957698429764576120208331265389106460060026107338444018260851458210443687883376791475996335530385571774603519553280161864614192975116765909931561308343841861723800209148220305126094418129328326407399119342048709182314472402005123575880469823006176994782693363039066484463690289722313584309854225943035869220195116605753635656915178107612574569224106521013894000675113721071743256589846752041268729557899889789352853263954325181833845999779850730569958388537255974454610551961081952768907637888011526599434980586258916858735654481402213333553793910612850183890967294573791111464810315808395447068571919340698329180963493619301400501364438566640724019625189771326410452289427324570973116193448903531321690297379793860468415838931579689588032466655637640949739676493269797537741755627513902888665158724834871715763390307609695223118387723554001878844502239749768226273404864008992480005794096732502425844439142665137411811689435830600567068621343926121620467731432735906104871484621154708807739465744483610770552655609026120184405549637992299300914203472351116662971569926761079966960245282219380912308420600062594966854913582725722341170764970071463224412506011064140096186067434046122867620868562617971929517949996495933965892097179724152479109268717790377146157422204710759312928154500875504745816217328975522987619346359040526818775764822893596361073134248300562307102451397568533105554892782508980819325841196479451795281329332633796152174174005205950859155071615664952016206438206027270685238079188068420640178755855603109168552218928471568666805536337592981260100124580105188001189296731391717541457309317150260937502667485043082407225060253299781523085855537718404822132051532260895658789335700103216411758521033582479239612892299705227133909846010930498476241631822445571930398240119076312370105313040519123219930758272920907802835427089318128715853490597759665897187310971778819040391811994220913376510783510985726473233824857574597928115944240136807936495387083647327145328501539503661146175208006140004075855382954954236894362379082246483869467483539253356639407952282517028000677781146803251498784258197934061411734901126127412554053649781424570107256939705419336655410352462512716150225860984529708710149374965296443262998196746879996947281194744077826357308500015367475139559887959762109445941683908560991069407628856479019962245798341161475856492993976276619422449143951101438990679847775532447265871451377814109557279492617247497203025221650895765568211219767131335472758644994983788685687085973932549278239655712805158465080749182481955577308923146026151001160786235489718225474933647115205844091202237523073968742693338367114296067861370228518812301235138603694739943654793605018095812098257625563513579080593241198820469660112674497554269924879569116073029441906859583148180837899481489026593558212236896987797782710104791806538429536894207122789594238586137942736918198702777120744419970898184566528900972573785009629285374393853693842302891324735097467259480776083969172270071155433636047583635656987948635928736058805862853463959491244497141561823529196345923739393423302848646015947807895447261147471194153780967140501010506566852579344331683550918783780218680447478436654324056928908839307707711168174939621210835425659183562652744996406443773578477650856524287853541420014776434761944273145771384389746592141933509219172084382261979499711869438499401416761538978633133244044862419922156606630665875138598041102387483223691342248298102787638279698799156732074044171030452172697470324776286035690437170806224337554830344842471774251376261180862605383383551817269720943078536751480879429222178580265555597883369748210935989640871207496117322916186626949214109840442066090169724739676654531711781852569792405533139696471945623553015931687654860404216629215796854358190777540494573691895591005253732636472367544539689946569121153492388180355809202039086260838874532237485520874897076265172602871645190387510284790645607700083601204350744439197986863072289169303518933760270131804685319936184969210922784808676513383489124638116676244230480508152049356415019828731155444766806692801535053833344692028676663250096658954968524824989077384297984409111379715259662277690323191378837723810135493110717284321580923276007720135893723633270442430759443552202273579996189018236868773341004091020515608138342688791511015091232471898543247647083863051545953161209787647115294538053828166069620415697433762763171536532319933730014587366692095097796297120357760261846052796159352583484091371000722280538841669367987581854472878536369985994012483709231827924197848952712659934713743549307592167319286337448283112707204066419922769811031006139972540309068221367346506389276707351025934639622212922000234973311788940105855088328595716292616808018145651412536542377120568858599004441626920395773569957150646289809890154671666880884655470342354814649107979627351465729375400753961399304260064549325119433837006289839749108020212676534275646365655571465824644908124135477507727906005158116336665221476752584078759127129330366229073865034951594460047410415930963881217914944466117518804904211739684978623986520548445307237540447443202763237348252002743068618923142761820218451750761285926947381242213981837740808970812159945282524305794719550967585322832703093541117918900046832834982817032621343225682081686320627834506947849554724782043281001361008018640608025375514527420319487828072051203827504451798974623337357203270893879785589140294754982839417458354807112151389292269655375482345733122598229068816754423226661803598712350367494895526811424124442882558205783751592885009523857916454984997621846607838544286178754012135254750800226203155751834046437150440004186570803162579039255401486118807192132988536345989422022999181885303570262328364727856386342596438799929799982945522446419990763202245290296903115924117417583303709383053371910831150425400362999973113250306274106953647077152985288235468728287890160146470911382303943520596880806939644006661360455234111466365550202310978347833541672232091872499868463441143203905947766262672887382083509384961762326183378176649039204288924024753971836280787975075468151575251709207999640993338042896164717549815212225789188456009837883079487115713869141494235186518116673936046936304510925695885874814805071637132268565640301239373835565479536601658947521159186274022361233766465723246394943123742339883411023975833236386410672358821611081666128186994337743771123198962209381007079291665228927748872958852442828182020142605830860535027169406815754544059343974027057524256961313897273368412403145353512238827918694806307116277548911696756589631877281402690080497900286476508451886133041231991501301463903132705204202481630348441639598564144820470891978565217613432309626369233194757323343296599274646125500753194702303889564521646853421602409450396670909513744001613227640857658095519641032262838681097425142470858892239810722373702966188135560911180399071174885808006246485617237480830680559243147903213327450869185881821715187676777428737064143664497083504600564389667196123652853971638313508951019380572136835247270860583139686584732104066448102246471698913686798117951210053436478992978452248706721891463334115850172798883447715712675448574597504187104394919878940894434345072782193566234245376414763126319253406113413929186252064540801330345122917281328110060062447444044380376463304888221756193207022933277239025121953206174051406641046196573490180876701794683846992389969091194584721743158567659457012241169117087646645147615023247763543302405596746072412750565676582321807782787248474239519772621951922606631018078218216173516222453380472232068868666958509707815339683537113027245730545168995128317297696422098765989590917591738738979534387054156939489271986255913119652225637204880760790268693792962458767039797367203094888499090835627788200066189281828796254310240466101801894239855760931773552051293036335527219550668045069197861297357739498529584537471289026794133013268260016153229369452131277748253199853865384417184590944903620766698305029337313016233666571850455932817192834805020548925918766662228407918193411739807385187944729112263580054071815339851924610161716550166572994455536045183656691912673976014151718703437337050177147616528667595762328206988788211731396437549288700120967097268870491914919741295470442436723296012071778463824461401560693716638258329267070816881412712989891022513974046194336355409110114598819118654889979312405269614105557709021237946140321984771150425717580184368608370244301342519551316781109852224255653663852938710226509083115192053807202888156720792904690203681868692075768121545985145005112689521779424939727094205996116384510069353769857985666570211186552731899690043834823190497060676216303504061820712482138068114660785099137164043055578678227219895440060050377603196586105243007961524346677898086307571976077824660820279045072492075867599282722485126016725833343559624322853952548426251182902374843582087143621239100991981312528178496935510709833877302196614226942588059011135973482744305468930717328806725278225193169442689699076629800536881268579352407134328824262988745186625784153675703242810154202469596888802869706089904586078852670287330161530296875009427507675860259002271884952593497319966523978354466308483290642104783220823751769589921310546256184515715442185614999368854001482750580792301982612253299524109879033758135373205824636642331719716847261311404009983363779919610215968209419835569301081411206374952618369978666023899007885667172412433642005481122998872601338531230435752543511224582983403928708719117956392615159027876543879510546011708036041466654840556723095776669564235905714933321552265531603785680396271948687099040344671144233076443095841949415124121373369213000656688088754652824260020712140004199826579201016242522478080191898417847467269235435277854874514158622878627132014124891196228418839693820066753322109750441833255825808020635208026594444806633039578541964950323206917983701904821681837746984789600119111059922208263308390666829057876513721391366158405638101003367013078291391095185381549901825459066741164919231596714504428162483653167282471522308611463653066766060329974742320847016337977049956364137110998734289202806109479619813403226125402957715960085851001836710640511623435311843815945417133515929143584434846629228292654474860188302620877180681745701322268242736612603714507572914542655466644256490730924697481085648959268934423201204805063890634258908053177380599988314406756648660577413172349400915180469013398983499943410694748948730089744707865092547691429534945332252149478246038305118189543913925360079565505186094298275701242780511069550478228271222109523791065550791000242882069304612198400961137405321576401255681465620414096230643919300408482796418866293787407320704895714387752680224499710868505724992355917377737183664144044555735349581333581222753988124339140935026105798200873153366756700048726048590115701220433156137720728513866580370350386937504325950376439497033390423600322786391107382043300062317890973849661598618969767964736988607022951486769163175289391038924311934954929015222821208407106019742781916831866476055668405230476793676519553372410469316938381826528971609155565423035761529039842175275534181188262951421087478824434767614677905025198644340858724671003447894987327677779432164429234527304364134773112794417141327513202903562603913874837416854346085153854130769188975893568382303873650010373335415117697003301568318411882586957312096709784008354569665638324696900183336386365607148334659433141341734361819258996357594776042264786355865715813242619466174030942070174261940073815796575023897460140076860711398243770962719127363239137369374409079812820416898377463133017650436206081486569316919306416590019617922368784957152658984203369310124854046078170432962009052475783575067257945878024089705036760821162708369888518280310411194648425836316553711809706564567359460876589398918908552540432809818692812592256970057357736440197029895861296815312410251686512656148961655824426202019706127836895306750753213336461639821813062130220673811863817912501249036964993813577101734215052520501063009174143465695568445715235588509150441255586309382854497492372311549737902817711514609410157168092553248745786555897597197100641293615005017081497838669885573485888114430888041952224900040258000784693871641288028561768684423758011723725148065725155819689271206625382153977144368869509907002088392661938185129153727498450138537530268471402851805863300218867581588137544586022273674544622074291908912390921963113472927240581800799065258266414189818545069370623687588405786152376138776257623727669879099503208585059019980777349344906498024836130828836630285888510748204103898071028834720553988761947863086075703144236481290499747967065880610525382213023493187616660280179310723923615756227732450246160968993989071627187477818757136853761802886710262149303173344257660749213164564543530945568894189185596463928511416456436686568309629731805605603006747474712119179006046273115509874885122844060151581476770022650559898932251886022980378698420331946895988710316844852131844975691441958411242516240189508614339941630830329956772564174274094176458174187929241203447464115926569566013199123309757365300841474685621441181456136580608602661090373544794042008788239257873633471863558506538110616847937758013022870161989277909141572153928739856925045815394097495602496733558930725191858074356789438469891049182602878465555161458896005790973177585871167620054527912030161880485055152844240934566300263542030089763876999671138514311782595865899115932903298400222013810819518853410631681900541397794906567909526829164121892783282394604169570033641721991349147553925446609740365029831107178468555199267655766034212086051776723651049740026042085616250806232563208329591093554431293073113375041486015100805017895870801226966016634577241625893101034651991019041413242667873738791260278833382710837553150951592860456086957577168504631333966279501998062324342125625526797369948936454834638563356828230304968615308924160862822645383475062001684530883776084248003704540968356188399732336170787745725788906176884560469218938820272736346239716977066328714933246096358892382056001574853763196337828325545619536222753843684599178690343250876942201285280466372583684622699556000131755248628391935080222686189724385384017169121862254660785606062621903793451494336593952576163925786596102598508806915339783535503799941120834681897160040806317296957116993286104660796958006214067126949320070645698854145038791954412425609445612179029025638467349871995009495128224249559927474899049105057862051946028140438113341903932846379760918272736014538603508736967457554655889085410220448495215912953198258861164956071593870684114444096111463882251638666529312032285248488782527425650858807445016870435213469240087066767349401487789961510894268156049666126437262041769371670115690909209311658694687621093063863873796322982970038012421739288648449779098483859828564609737141629816766877622789195447492861224847857158476754036399484043243724114328782377001685917146800783028502797500562372562929119082891547282294411346853420960461858111181442189354586958735355448828067917359025699135932321192835087494863177479202981064264375840333458984127153337736933692548070178292341015820061450994865867043957239992722103404596027811695064674086333407277377360789059984774980831810759084953459365083122064726525750762729791901268488366475534015005880555334338946025185273759105771881507257129177664345735987456923773234057711225151671284809454373091540341700717040191548119755553605951067648252849729713108495870766662230099993537656637058689351654488819177524319903384178850253662019988940860546296605862937019185463703084660841547536108288018413286317194261974802469833959083090135143192890527753999081291931171882970717800622733394977891692209873221399843736466789289788192890834939842609838466232581576347258211396842764046258510413682098514560639196714615296768602508227774404272928742664343149682047145884108195617637221367691685000367752574918376921746133505129205179961567369669009573271019178802929618034869166235099827098527009730625767505805287273635232608753019719504729610954843351297065234483830638885288622216490645334806002875476906624828041570532881426987098470806542215603722003534269437163119555955114910337092304777325385742061315862325650246282638971691691779087297862456971958597061075776481136870727596946061232880608124460496482211681156808588659602342452478662804097932551735223358048547089930732512372415083369047147275722835288066890091479533980884334526377589113828134226038354296201440237227638941336885862146037785639198495607425768979147277660650378418702534630604792312171730076112576956010462202306490332172031964982048779461529594277019784334867626122960536985908146194076753053069222972897032846197370112345252733442266625266847789015805682783950155303929334873886525190541479178867429280817080300273819008265444719970767619199876965426773458087620181927051661822042998397157707237804934024569144606737939392485460767170278540726338074698781108925297814163902569869134706435004590092168930612858897598393315098081848330576002362636092973411762706542517062392924975197841339539590163427916854324329392054580509382160468640326271506354120743799284550135339076059306129614632322417557029775316634853098562718051472053949377022664866156812688013434864906726004906670176204164378546636338501488929902173608950037217814229881238331497912832725848320569233276696219382101003087337316531114741783437394186440499539824010164179861295857275316752339488343602930482139206541842033072851715474109049730589156323551697249148414133037619081628418109333752815572500481000759066550176609966134741099244934924502032585661666920162100916807062984548098523927539244962483491779630242885745378254900040778246147058883132673591588143056135538906077493223422706481152333653506084912371156588592206249488416660817332413139691073941410367377148814131221338094893841913354032128412444531440596107186438049437400554757564827785706910061409023868497787062885917121128178143585338263461815090479260081163386540156516618255122367425228494739514528041927404150696666428699309916922482332784885305536215272507743953753805739671140332912929377987922240650699105305116508082880511431613730182328569144099326384590187854406020836065774666339806800360624974640070945254422283042417837763530011267346172798266643395836095801064488466692308589528753936435994946621773759834504317782891125684101035819031678906416308262344826225945072766431397538880518323802388882166534405839875791265077679192552717398557143589390602151613654488111079211412376173633493209080216188983336670037902791971992708299072046817700192099232477388630096126294712236893797069387598696168106838378759790429715039679437750358390860658360157546002084217387854080631172920350770447187584828998059770589511988104815139070664059274720001600886923558929707922370250323482665499520756516708813869259357845495507409708824511402164334258224726668806568343736195116372261706303558469026834855028192686953876460867019501900873547539560087391473643192855484683860598705253927524556528308498797853988916041277672904137057272801135681582533426821191702257003066805849890116705750590337470630093877404967566787834650563296677832154346254659378729920847122112973806788151074375915743414726354890788741691077749223177112715438343401879462677279590409233486329476160565000561778492677274107642807776630559992863662319656575433520170844159666846671064458934951884040967618472285339219889170858535877146815781239212209383152358938019376220925965686431696187437074340612363945592602333063970721937695983594755563108017068609784823435227203788787914815485536413665917278532922902865686869325133789821562084565547521127070036746604762001239988239022312797344586646030566255987951775660420157908204230385831418986124428568179957827239952550676480224998134121877849267105884998477212301570080421600006266526274004963800754464694695379816349087119456780981456508190126262395273361036570531647993110659967482169851822418844996291116060297479504036400243388610509145783637284660216612578688596601933885025534412962586207413562395259295472742712006913271301644490404024773858399046361943136039520738163750566721646327418966079510677763306374074283499965019866745321998818524417002926742242679781861267129190490121196374986147025441398606526589189800357390322807846339163685726682807950636582589811902997536914663138183211833066984435096985229979566365377098226596265579542968827889187596998358277088407340536987770391256674525793883751767913696447873086196179111176153210507602315397856680771901134096887836442455054389376280529261047555055066590228787359554300929449155439553388684778660900829491423288511431906771329560529733927878302780145911097323044469343920239058941915214549107089575611668502277452356028321363611235471015448161176255563612242606648332211899562325857491718705555961625652358910183219302396446137322986406689671638869891425664777295543509278906136872616161231712096826068135584261776849051177068269809405625718277355553601358960628926845588041122139542135872808184695662032801204877711486435523357141330146894781579053702561185776252972221217636028795574559868826325348986905111407556660132621804671336513724531712435284004388691776676599192250860654777738726688277016198766888730358954587751409593280540914206727045148955323909434615514431605792323387800220192571660526408970540310507536876901720142435669138768283534188641732337047545864764156854052752395243409342682644845511537190415997390182475268785315764214935422933406449906840050164958961413694546158412075911513946140546277712451415832484907066380711415319970468276417740202692385142620347643395653935120597961780296147978154506557301847866675217829382819707374210429193361868685191376521478681097811170319304302267123248626240225617451418072413254342031554750867877556844418842803142060789014592256321287632634130890605443330000370057700791544475900349958866851764875575155031710976147525243525972653532947523785272138630188212152307822842930013840911638783979294000040453711734745438925090604154225876824776290943680223079583697183877230547774434640139126744666392708659135294614414536960433174114678722921568733133571110125833767928712996985979304442620383314877108673647537573973717659381132132783182418190096517218377261358196788289723472613751653774515183840896608598214196564766880950777425970936669311965026830868539870304413983263447830979165727166780112132801593098426730315192408353408905196209829532982268643337441525523396561567111588379558820177170427842502114385724873008560784495189506485656082406488601649653391622940260300683061388125602174099054059451851407523651759329810864370185087019702034002214161077744276953233462431427815733158882661103693598269407591625176183380092944921919467375041048148895840162224610439503123255783099690043487728510624956270714660261063341397191897180163590966580247617635767864963851426163978830098093974039062117642843888986177276714387428344518676665508678418805369436792294082611688764581391371030114735749567383333566703559427740721686197488670777641998669336041710705118897403731502119971198722861477705999072165303116647651061040500696900074161387417385537736362893038821135824367929131312618222090283782184500799562740948770038863962472083335988669452613435121629696898790923637078915985693875391867249625490423713647295737712912425151205653344927098882331907392893000452895171466727909560989837461662983638532679397332482820227276442621224266523387396841086865489796607040324128444944906447144700178627226735851609189743994592735447123353456876623953166108350664382346544052780416123096021535702352703272531507086295776738754566136490151822150519977027472221538549336630635233255439929371553649447812645734753759857969821942463974586881530756250133136308592644294641273922719678255859056743819823408986464351600666893216777141190280434380689468235623587513188573076904070575520238510758928395706455993597991095097205417646377365114727683763658864903635357930515282345273256639008611488513808296027277591083362018350780574131190347360556003297059689414529676492131137038545017352820704659768203210042007969467844854431363631905570790792456669427698229904947005063108998944163861421639176557020431811658323505060213109727065779644244414305935466465734321687359464645571282566780668827918460271832053773746275549463571745135960258263277115439433142394604219509719541508676255728415517606947120416933422394223736208514681377217160149107896877401636293241655412758921981033915217095723477191231916857098418813180961793848298583682085988478781229752434958488252244461277841899000213677509022421375816474233624589452703628445941782381870324071005353053727628188749704749768493014054171929575120160242598074813150326325560267326601963155372037696096792787193953255401357492518505007863403161923440132833693678073546175309635065543280905907371889972107135467768240940602032873307437570831193051545159088463700082418415562045349278875828776277898861677448308592063995707822281642471965473756234796857879453933866457869753332299682022782299265279283557404545311768068133888404922259011838567101597855963533176681319112917247285087752762885017603924097869771195516948373850890006573861537007826825543170981215822536327754014570230610076466500751691179362257992144793082600775488958433045965015495975774619204811754070145630893905204399428561669545883273741424150733975718767697474316181121884735742846686678063414065884092452010564882174565724736277001438101847878892404945348993378291542603021841409517752625218560921271190138751838783580513758350378486448463348364345450005592091373536229538926308576345679027122644505775562386126654988795509893323482517601848369376495465155219564988075486667656446906572650180443921511234360304524731863566272189423999773824203273843279195595295648813510655066766068589257424987666306798185478866764180417720920965097117919741908253543082613431760935194494484521332003268748225279366537629966585878874559076018539101771653752412204569409268365798781091248693980166485376005653052652597425910751696348401022772374470447208189048661242189960452068361666185878900118614754329815826921784287212798410909965953154380282031469703097856319664079362111022090385983041899179553923888028273781819413502996160087207972228706989132255219483964934804819055869632322142776552237151487973387806466579259449694502923950657456437890147572740435305982125384214647837259015667251864597373881394158585201723522599169629032077219705952945704225961174017840653608685762669186067859133075481586043122784753279932602387713316890900475098100167423773444954105553314605587213481630076560804050063520833746425954237736188781428952315949755542774170245535174076347110722185258800687431888449346330136631788073005427944079317112046429106170838929983397440452628871202320885736572156718170858949593584062832295888944456012241992888440966772560743599991011924378727262837222590626034030950523395848510824932187832746255962027586650868389462462643956556578567542946959200691030370007368240745544624346609514809596317384594488945245864676807639979048235481606049456884495206791729747984301056485629956441339944585824373382240981840640657525835890439563854084264081821391197853781982921877487689607315425016589291850401177841904484524946884913308833503166461473387832098279339810336545031063312473798524045803022703854583776634844725783958213690861332545702456705447127051502050725680076516829843793578419035334336303250952755696877482465781467270474475588622549762053254178470520005443462396577737539544208161023927121083680307073200644326919670995184032875894020855113008892006872161726028301464401013411631258230868467011245886208751640805919045014218268997421940062828771132349692493408750275842335072869813092331925390127878681054622785234408822466713868353199447244767083435221365958610529085131721905939986636227099355495787597057741410439927655047591108048518330205751268339911557780977086316472156852343226104074830323558349336669709675958247520786631808561972049840236769874125689646309639923047162899791011564466093220308093084937629238117201091944789874736434275635805249483214518135315549481300708819490582812280731436975163222257228662374552976995461782708624301347872762406153373918745971943517258428782670305605176768220425929191007503946305624257448492275997455836663308941049509735739013807655414684992367799059559440213975956863083429167758279418810071817672504577954252914545117676192687973090098291442568332470974660558361162366808287996034364496406253831971487687743658626996874638521611858848120857711911498340402255298223857795014326671416380281633799224542091041109029583119058583049993184171735352322551842416651344377284464046303232833544923445799226637303010920459749797878905677817039743579109414516701614172810657147297590014340470548252529280138291126386423770141759485709770070432053739680808346556529318844036296580600152583939786764339159566309411640368923513908141570918094939425915132006208491540071728040462058963322662634480661109276350216735807496676480524365691594850726755037520012749396343550987579828953386021472301437669060343791666903141183235750066955613450168188591523280264494232279292692032326455179737897510892915698644566120482898103725963147989906797518095985870536771578763754378500828986529618197616383278315747030776588262039286591024620840004963635616339739027095350321498129251013895286780363860914988216274621933874809913737568084757472822390486058331569014767478810249004833380443292991390805018245664155526734160658567613697774325230443519772626800028570132804980292386514729348792682890793605402701091260337871971961205575121424765843856724061017022966096555581224696386785733315495724356440919768791362461602358405355458151962720098560914914446437173441314823887271400666996129594370952925957320544348837806559809192289827222276608698541170114244762598154019650113717663153477352688387888643657405406275031353041410616995790059810525798057053212732018180952130122090163936714418865192757231107527950465835555235228052729693884039828474908493220613320868899209813192099926005134796382179538666039396326251947599287187677457039973514645006682036670813502360989983232425026190853623795570493031688099085829181094553019913217019239930638451909628161154113618796695648834405833121925206677553534545728841903831037522050412664738904739052529999340151951315912048371809605085687679952424602025617066563692371730264787186499579113666245471171783065213095395764061945508676333668474913627416085566118276921343959717979121614219480532763241777584314861922616811239894891458082541845294402440980859817172422335773093314271876048424209449534612658275973103699615844770599188011304902174962279657887117508277604529885939040904153884278807975876760652922706934143462080825262243167928500059804746781208507856116670102730619538408458182582946536259001873085722744764658520248469891233608838081130220798820841358436580421518546866633999016484589001122914514777907983453238205620656100416220554945629798428826506711063729052097487508284729747333485670593628946047938900903733455574598831382345625748843382533809366263286402346916820580607775652699390277640490719397446390184038247506341680687018355874501983595363718660664768800968261840898683838102457458587987619120874058111707421506063717803197080552254417492427006208966374822738769918647723847990422184010657561685705265589712828654004097085702855849332404507860494865945091238650700928482590309435942152940352360726721897509953292324982063543201151648396446040751017777017871804197237021050383675224438632204983794511524046892448780306537183304954862932237402539131461176171636864203545597160081409492904214255336091845485096942559187684936769438894833007685033058789977392212298308367114622158343886440369593557012080308521778620189080611756525793835551572999680137273554205083324154930806936281070394403912347826094178439605159985031793941539539071148998572712982538226475102336915206251735910417084154751571580830478608822319710312879401572432794494934947153970327221490598710750118266569653434088051973207964196065592831633791797752951994384268464349929667910086338266490929737898248185333923993492526783654294697410584006792730575326009113619475181407598771750711929146942938787895656866436502025777895545629274926461544124383907249231821661874228336693273962184988748996407282834304277989696727445715247888388795668102305610290052701404367819623908449203737104375067625034249604728321045197351657158861856279750182409358326101581785058235245143436798060656305020637923651530373987186830588445415129924366687328551532891112302584028816702470680273966791332414843941365043469414969460660569371238875511175652368527084605129073898786440815183447125421541188778400331128235210382537841607525718631082933575538214713849922422152066083573245460332089735347189431142170089955600753307129826431715021239952428168470074715070259879288685983721309370494514928924208915056608752837268046829093076003485502760665122173793990513209076051156168992438600674106772943621633573667472404764785369175952047925562394662442967224759371918233753097958411727512613117251556318311582432342765477284177423717289913790529140398533009252995786043255677851716914003092987753215955547535540008978829455239053937677327348431004888275364792413286915432510688983223908600092076619580807999768668071313202222003181717168448819873351176868050077505128754406953262958107041078848876853862242093182878772545520459233929472884531709524980151199029046976973186017358675642809866340673321546496052554339701400791384895818166575244286073775040000498811101296541792358983386886271874908756802847027952794702286279219090014045056021914691330329608853903539052615944047875302143454572284773160206185011054158244624568079870342068886675702526705621856384369653333784418518128634880912703622091478936842489025838646989707250845457829861594733665558097024661762167407535183747334691998787544376274102334938831965827319489895911555062768130953537353088177280421365121342129834741061493914258225132111167691097480338572686933453400885736263398308634982922161924311250967342913369458867728285490706218079983517389941904717963557789740183250793689446423192418679549863818402732462044228706897385707726957608093506200723706079610109273456151316612445516037043484698060356227691851853182594138811809241715469004560470776362744660438146423194242797666220800702557875744702955672387036341976648961571122910671043011783659475369857481565549486724955197989320826122541385819393333519599767139780078634495124080735138011898457496931438143221792473577501477554960675191857620396459126461309044010326528018050955497183084748870614876991444296496053855507011697280505133248447837868645315559397219590925322104865363100580814491984963154322196390438779290209489487926800573087360906390586974561708792398026104861582294323944719598379140782670504397140669636634429726522707254007088637486690106248322507217478086541645996217586747720643835184113870169295396732896376608129801087843184895165985504147849835394780031068353173005834486687703829315522053218191603559656803126401508035035720988502635785191773473146982302570931432599153258193604757350275507243768320324008830378145399473539888403491275446946682699843953361585076567554102275770132311097052188339390847109596241614857791063826504785581089785410348178616748356254160924587519945631574233891352742714384877042879035303517839158925313424384665191222997632069609935148081848903208286448636984316711541715864744394743749706619637589030451303899100694948365649219117019655554832767095287202479085050437042245173160195037848760352980027903783512264650381160729054435385482069407971758187863383372885204021026035553201797008775004415069542830421771014508168483832928126207401638765216285898422820859073660633028501191973076352870168386726706357066189201700480094790042339764916518078919138627412416858526479329253286128082625028443422727505222671848073361214071858318550994572262396436174878540519863210793662864775905893714944106738201108818648595293591530334332197303974168091954029753326066435674721545604896218221972888891246663790981268385577668661212623743139932205676755066227596571999695059987579922668977154983088034869717752926297127023273199215354771163697668061559861065526583956451284682558339114193621471447910836948500141634291917725002633167746977010510550578327833909825935675086781392431102451332931622242683140246612879554334986488826025083828550035398624707698884165059639515689968377848992323260498972019246290388977746022362006307072735315284605324288911225806596743650607237592830592447853373068473822278176599737305778701125870160301563115875062569735241326006930970942821278685490516690773284840399393634976896503044677679178066311039566113366856746275366507035648009041314207686324555741949581197550631769804643668556727894611701180604635625629638385503238322503615007750706698111098888908770283604162713410909267310036687045123586059240659079600069952254184165351507681381959753714094936506737416365332496435809881180188430991795502970418247914644025311205053182679069444988642993708112839744913224678863417358833410222823698310093749489765895155517983240528725205489735978690240389284374866427391905936494442407698469011578229785114531422788592750623043544778035168099134456634010796517854209581791206416692982148078835977486947248579935244506978107686788920744326428608279638436473160807869793707200096277353435809099607547857622339281342694192278493152390059749302781469053762950347604329876873570426842045446031766940952866602084203915042718042017871758180872436240948938270846764478993692703369140714616257721084920435220769961967644213879742164850653476364234769579351110207686201779355121583803312441045729681125820160701102747218916420365258125535736657043858263719627961216733262699011883829512387556421263586959907302999224106774016331499013575207291127168303992414197878088746393970224425367200663840985367405208548235365667216915900180848702628457537365473928140203172512492664967916800456137320182771180314202897460333475253266357867531280809087488673020564542769137410381971188587723929446170975649680003306911045408247205800975207962722158605498599428492331828260522790585690121663256228002505574072236168139378016421076131435902895207894072799564836981086908775142956925690087472352655831819669968254648167886585207580214719800965070337068044937295256266907020303061020801400677084546964212578696306820423918885326396719696753648618001461077066651221383756981753890932245202688394879483625425396130554764619781152754759133594815792552345879436921205642877387205559771143994562084456728734421865821310626972754509734399708925581118144241593414416111669238359506490686551515683999690302389112864072602064343238585405181551998165416655708455842611691095313069964388165968680606123431537164679173890990047991231561915514687911004393926208121190413101153137644403968793529160645079824993693687325850923881839909845263317895762925757124402406841221344290321442737512371797005296775199955981107512904844465793175121944752725495004005869464748509923202275397713672550295229657178202566816879106284650926670343507745185641290424008949032383781336656439747572057377065145267103848669249049516815356834506664793859742620366035577795534978051098710912741918111699985772544970536065563188360462353500124624604995350685028135667411324899629600639850379811765396003849191793819049662664638531793243141725358859078853585711233752372658550008398459828253136508735566708141801753190154418937575841380074363740985283113172776902424713474371334989688866560368152683667718802758233889135172360919721068063570324949486369157474172506237221030561067053766694820714931628177342299948452452799567857496442181044662355283931544877277937153631106472821037610843909328786428101842389597365499718544466167510737733894814928403473220761597861205154284585622552090256806826317828317006369798632142219599559680952994702398499662069336043224970161965090052393115192179328362213539177645334145447012601920400987379918350232241544549777952669633337239298102649406097477734253676392016899103232754220342840234422355619161499718527065197162598348215780047509513671157840812326042882156610815510618953944415545257621187604863853308681977707788506590523874530216364195176927623460861375253452952470797466011038411822894188530881530433196111323592783794939244658602642888201077713057365330149408051321959410778469688518844215058725839017953042661129035083689975393830523873876792413145417485957541186472224976498601161541308059917298275498189727989719792458078607317928890468422524746657970049589303001980543129778061882095831247931380066352517226623399242102589833154839101725257921900807766769428626092273873288666728626517677675823326576944808102369012966978338585269654644748378674988102084369632354276057263046777970095677730453765317243991886379715937794024132740730543448084549541321490837793042154253973608066862541590203426181760898969370954666509405495901371791797555444119137823892725525618678216146861517523160443849873132579948358962464339395946033313827541476119832736366764677134872206417290303523407692592565836962440760933212678081913100404692138287919892077603981324378371550163728536121429221687293050806658985776448068491742930553978839524474704939486009393616283466707533913280784864683995802756907793887716167646939591350388711844234523281381138972420995263098998019606639823100479403712494949690660887047058621609095069284117742035187087486859604655799836371078164092876209169940336646434515518271604667134971512664033921932096516738728175711824296014088870913930728418851232014072899263556575350986191936195613500210578534761184260277317010667079362591577322913770468893799592875424209418902146435508580383497028530746503041799928518548457514071427923435573820975620088719454508040248993430306481035011808100154076311714446648262771672580831405906031230417773022502617439259816029964730647806165602987973011911264941624642762805078309917426428650674753993655582502701429274180231987848286881609893416951778616028237728850455530183873804069487420556603637467522930264978542881079622116765678825363520979588334025725099232901558105512208696490433121689649255899164758382390704904094301153369731787071255797733249143558735214993607535691905301048213975774015389193702854733875026711417449302354261683628964838854428736148765455688351739110694473808855152813149572342938139521532313396219267879801292247288068506420164676424330708791158783583635357490070451419988562485669612691763780466517936332976852001261383125613760041534496653130029231294601754146070153018870482740167161353010800410783004019678979211166162618808766392128075668473397538563957824065895396852019930207466336308761024633331375977927538148098068352727220839067582259793255923326011317149963743318722680239850518157371392930475574296018330540490981429506472415831070346568284694212003558317299865926444141181144963386470125387563339835536061885922401326801131774055339727620728268090027338153641277164148691533933320975812555286796555782828939258166215847296836412392518615384237646924954350877993761482843635872064644633127406248662156026281529636372088910265488736436544910043894448124059677852352314520820692336915355309968007956918480886830640875962890688417010740996729882236154432563349463604106209094195832210475291773771318722729040264112238340981422036434869968056261984600389575878096160849385396163662823268994613973745915877267861633329617288311698163612579549612994034142100494583046661983084421171012101629602224651553054102985340854051501030136186072493962777780786321658842684723524483713094246869042001328642809106757176786442916867064621336491164561207057677276591467608479984132232618223412625420075294236354109367091787561329853826137188650857883664823379233109456674113736077826292075897474385849545986180416108365090110505027347237826221114109629416070307862977257509328296672232403038839649155782788728986727369829868478076032271109738351025871116804623681985711345035095265326262958533544025697590163341845187338701132852154691851035486883094821002529604620875139733976399181098457416743111503383213209780635067989607737389564324765039390137758371675527474798349519755378033619323041194554010753657518003240753241377064114909462656118070394579619691087986531969915525631284648591359156504498937489917383877359243603244156357117997502027962939111858845014273414554496876569757838965908574752493758139178945080083035196918769078060142790260903771322811018755256178044361865339189223673054365401234385399672746322056135891526388831542269824196452728449562224996903674334000685704128419827880328837396486835867506151945875934178833709816848832682117062540528412254001755250953289907028745893280924272458407835062646236409977386039973468619187122530523345911566932741228928885246058355375474717665077944030859798170924468123716135756949254873825065929363630848649336310722533975709423214951208412592496824569978694478086544435671015499321624151261643107955594866585336674337419808128594292494976151045404075694013364402322951988685674410499972147787803844058743677089911182740952948689204476876665441948114531102066095657793573847089064518821668497229645992558343724014506537735623751446236414754903095370776246034387899380314002084959225551519236354416033519886087078395648023358430223432634805707033739206725672953618296130998019098411567557572096835974244778224151498138591906315897596307211481590161554454840413053678353708946477236932212556231047480707954398402714165291292441078356382091664506011873705075962314722239470009157419429109460391103907009841785553670109954483880740472293165630550810397786186088898080815752198819897735254081209073518652397196009947202460845107181440972834141035634648090895258287215330256881792427052801197789365359015696548166796520069376130741061626170930195054999002105094661999868108112496458189235292510215200300776538420058475411229694936033788722785009574653271141479062827703437816179962095075534141879663137983041420034702033157037548571632291376146091938893101810628721408790037011545993671044763216886260025760107006369606390123674231981325294070192929415576714158491787673360656982175852118877867954755757315353434284230594626199022636489301611152463212148182304234775229216516941040691273399927743706999464370176079863679088190334707324613410596805431435560906142448701170160832901611910046243433113010776497939658291306019776689720633594156681324834854679072312492929475914312764232024151674848107971311453543986234795522943591981237728916813332020324983542622658220718547551134722928092861450465747247224666700762802255664454798291169019646212007235422889609953182616093176457985517865544703096429482486403423509230548558097755829461733729160033786687549793722969006041872083128283200699455479901375961377349730166578843908706920551941137256041856356524754711027924166103951331747791440770095048062309064791409655613769710971132366541123440711121957375530296208993149900670892097104045298523705824511697856914758426198484087719980761420386290684727724708822388260722335880284222656138492374845915524158045922931326407107862904984576962561353635845768995222362158510457917407770122285263545053417410683778899802519849176935627656452151023988000510881687416466695284413873329154794724994502065435891116773389337709334760492324112734746110808428736548686677182434074967198261740936585874985599187367737068673350664858423316529545585736579438160925327081456184727879182538414306379068485635325739173437598330262925998822993048531978759545369684728887052558365369685924156215149070858810279379667474706679070503348406663587939022678163452802242382012468476336721425993568432807926985728712996273250521480555855830599856560463097245797242446925000247816753198314470561489116734301523661518426969588516134775330190709893255622277971707285787339306895026670001059272513353828544118652516839575942228644384625949884629625397510241011198254954842930207980730915593649675217972011980279282569321302826120619324441170673445520181495712991297732634527914089346891456552170577244772227604958097258238161813720472342453276691621310526060881745621269247092380932014684006366468976555067702514086222537190349248824120248921949219042792226201459212469432559744422202769799992954199083247047315240274645293437305575188805552788180697196067270257368763828389844596614337037719734808596433315934656843865493112092085486776482432439781969239592439817137749674944470873779326439709323477502819946299781716377327274390867922727098465407181894719027769553348824899225347182416894850928109731897286686451600251203597702918436950292624184106502822735382509856191337354884751440664763577570174510337752750484988105492342596403079092510373870256362742477930168588785002769886622853039004446156912904778117994763847805902194141643674617043174508215506696653825920839579472568843915184185505708347324573378305791150784769958428301678187611999809029014926241520569473035162871109337730321195805733558620408546855004270825059088730908997220529670162498405405319651330864842364517472444718276566405908181120168416472674699191226407450827568047339563801380814318660106708333033570551111563291511104151797391303613016415963324364747047427807959196785229120517165502219504853887445896887460615927455950144422332825611723362960253688574909706319351219740598758975808201405249393743998851539462051076401556429034429078926101276631963008270739170348898399454857480283422861616950821034066678750440801928720926144340624042546920489260122320274093447685470295228095301047150472257704054421400023977666221839068794009602154490514077295720165467173783331282524654935782923590088532851355830221118872282987591739452449497716085245502894994854577325484579781077599200041336152320194787854786122889919722651858726605019803257406390379519795756221052899028641119129041571716460837334841059758487562542441781428926686582818896237678013233557102634312482477362769097623315225747427066667607822130832951682190231712180839520064195685655837465933930301321044550348104086859410650670859445761413632933591318059090363674814401278810511788802212483129906501796482046849542088595158238212532578783015394494872284003581736461254854781317507257303844113494484534729772818309434416923382034133310777939005987994585686705599037986197656534081087106762555858499447110545706507549712441428987988082516595580696635271163094243164667284759253633316746717221691686044650598658298493202806747641842894051186995066342294709428585220723920649235079640704467145960237297435391951885673959640226145339634606311684795491628173236614681977981530270635368231158241670244567200487050067293032945092332313046051157722262950034496066010624741636449043416209919757971714673547740607028421602664755594833023695258567352024167724572788475193144860808168681262468613922002428608644893179571988603623129397511617280078079173196595065971758316462131636302570023057026158626651726401116160977013619298119993767981459630897091868831286166742392873679046674563712342675748772509079306534988299388310177916821177900637585449316562895535220797076982190670060679012596780819903847213453140596214755408143512444141036061092314671508506408028837362369178574168478423084270781409026845114781942776709989718825210064092074811035876104175516809148070786209378243348779872577044770364554135329752654280070094951204045402989649636057392072901545804115919681961407921182163690573480927329362338492683263113327074238160707878336857283809181475754152762530544666735861952497587744753274244699725245980459772201233640580181443193596714197022475614059996874911407336017396180887108168432223552052020962693061631641507105818082469847857785427661170252165616300971993137540490482778620763463913407992614581130088362909704365596517436460729809460703287474091428166940360360309867103498465090348169438608492253372361956553911777440227517931409585692137782921665779396831762878492600569562852191637935305073266501654299914095443315503573601483121273587618640774810459431989971038373083512899768994548147841215542883431586418765970610615633632564306398051652415593976600081778472706303939087450188431529109503234233436508422062933952808490711545061315105756053261712039752382805799402471911065661950401766593809450645205521481669511300923599000456336686073890791138973325975351658006759907974861418138847381311191678558463068652461955137539688461865185814341673928402291699381745691847320834776845027444772747416625859456761128556755850781296613788523290651552001722042082289537088079331716467115903659158363947734485107410275357364541550012894016248528655997419224251330789710647358991360625323647878184072800630635550734061565557935053191931237692307649332775319625181218932395360738762177847940947411013103535692444814497785546840918389788425440654473075642014001819903530493351774967611906322552860891210637631981581990405997656164497919391716402643558509642041281250970989477900811936915570020151985013334423867457340641052875619608989627610736148981618319559867106043403811601011672318763595835938924556972087292544068788227815594335524335498730253396905628747738981103072448169575815107889790410838222065186754130456836696574585139294954317919863447044072661590720084618356247699322946979274864319027453075548565177808763078770890844390280692499174988238195159320096924924781322048438776483248000533437601759456393494361393443987852976851186250199345665210669360395176333650630447584347113681226299669788605049161118740712616710385168847315438459858493591859107818793148216116859842475192697614713626454107090808964970781273160271882079557134788389790343596543207571798079372540137209585220911123860124836325816672274122256324022008996773990531519362000985055336021081062743992985416350412538784308410483308431429701081629366471473841303648381365345848305136870249832019171505411102449600979643693046156697764598444126854629585468038398159568249281114108088850773459646041015475631341629904866522821409913227729525061502808625017164620338996828705771773591212535265570194343216262546090413531549203777672756290749021213375658282866625192140911273715312681654042991986840633267819479973579923036446527563281136856779503636577529555396702966141427844508636764723549663414886705181119074944098812187535952999544328441027567002324572560904147557567683639328526259190445359368811300694915774214089599393342313962891553267065083282472118157144156504936007682216421647183156789650503151653911465698475095417607065348626378771662380506717297493556769217581211833655262709496991915993538986231289124090101360344713226029348754257776255101521448905223595133357182908603530404634712624155476429547368446736915196382159069606593307006504872775862598012866909263257792531038683503342133669823460973415843374375240325335201244551623158382191478113212537265751219260249956475394272692768544906773302639852756036131816150789000894585936768204927996573268170630677472539495735357624037519530597071923376408303423499372190289633125482449152859348981127113611726094617858451188775828992180403246032073216996465646772844769507878706225987249720708393431634685533929093858831196472795904273137560959479101861996622984559620943841379338255617480566625053907915962039719151338940547400477697267362162378469229027202220260085767540569614055338452730279479614038783981729229562820644959763340502299542484914916525284404592982437011190566377052065111415106156700762669554126122143083840937609661822429413230749237838860467512898154565916199083321784346611005464174659839616001416530330447982187928907307234712651911742958507259098637776873860056572162896041714342811297146950849513364251640233504171228717964936948236913059752201067221774065894219606644716270221704689012977318654402470310759146431582156539152747093623587536479185982933990560214874523157863460095022417633516454956123260333048906763735977176723905348525613971620390650463617002542367635388354240774199447394054460928540877864803547570494271797189413398600353438794855185801050940388282499976830378311188278774276421270467610059533772984650961740977077631313328227323587208824615509312457379433629809853572369939857898225341314791367864921227650882981301354133601713329208254984617687631193969712468825726140996911297500754222691626899159670934562130134346663411181070705329510028085484467515977969229152027943421771172380321560227012256688617017343646738353624084825451230366887598332433487141141080696727707309330373852758618271640583354915878911010286940237410080718954697710841747998913963530641119197959917084438833982035836550119495809852652751029508580592296133018683284183246587516207977485614899300608291794907389082229455223168342204276111622452788276215372989494617186350016179967837203317289761827648378261209619422857378658767211830675384791132791851038943080366879912661622552882537690995448374244259316494649705263470640157468898680270654725295018092643610067779116051979692497530379212628206834264183555433161101458003529498031792035545040719385008662237926785783782163927077043124132479992625929092549686458413139913702732596022530838448039119789705253481724797188871523658663973807181378166662192780182081157182017705479213812849331289667870462048518964068637955853249446181712214561844470826768011276009507583621365633861038224741769236128448759293236660048766232170060338906866880404990763132957236254593333504394587549209293077903024857757830070446954664877716101701473972793249185519046138933455186637529717941630362534883712855464348033934086673217576177530594927617258845333259428812536953756066664469700565941042407521233957347082730870950616106120814680474309867699173967858774840334290338746250386901720926603275719383241490990091353896560483504694633689617665053863437921270823683026528108793543928421886281855260435756565318347722569834785002092165904025068118940224035573625135640386081309947286515330625996314943636693496419602376710677796942861374463825074730345947743074137084540927411644652482242549174259213082127607119130308504181237986267648208718209608749297693214189818344819337465387039672955565401916377940925261956530815153986642254628491064710683344946522291145665171659867944202045611094786876747658087127351894461810327249668702675293984019165612720667839768661487273134409078436532895552217145482637310626213879001924292987638682726596233291002725818482415135617444560955441394525885104253980075965976790142319498960521528092871970676665009160079535104976840028586422742435017658465148328079891027902996706008372764040519723222023824521424919846320774799856165017914381771012154454414551757557499230854569318818633103792690210809447650948153526993963307289412741980331295438583080798932645370866916675492574944321214174744098035093020511168205591844303131688283263400413651814908719759123955227278185730338180141630670581754103256324136308767167866080446383735264821390684871392203517068975123095601813065885742362980661638295843996882687517931547027114894645592989109904928613380681789659236397498236843140233567449036343796774502448898243196330446743609774996309981795358323713518527944366735455182152924108488368250682949149010247645854530663406900639982087835227497468539742145361212466620195715849542403603108506736651030010878605723920755824882725849313441815892192718201296702176238922515574039006060324787847092321710880024431889839786480778302469023381502311441228343735022506337772782342319985269215704551115964183532785681044123428162230529689135925375017066654379248315581380417145169674798565607060073056404541114545228678211034857689224420636938628839645017479754205999828315709695363375650333335579497987905583925857432663615686077843523282509559799802944261061875850929483586846291647280192390658925579109320711282010289521767929083797426086936946444404758697297290869804416885871115536501215698213605363253024733533641292323201842067970100259093081932445692442235820874698332910386870147274300292058511505462688679641347292870756043339725845073784905661945742910085834356602162732625152964980590372976313428437195368484539112606533359724970904556379939683467968820038434059150177412729579189157175057371801352114098309910850404982793831824857827759154824996579865498785753124889205745155961423884164746269646726257784272105370206025142045878509604544095424964245539386192412501617013758369322288150023811421814703649512747592695519287479779469803377872605292297549595609919906522109632647365881090985807083537687723501267972598814316849792012614142362654473920418263145694265108523294084614381049022937169345288652426703946232809326962598895225157662710379362124176171613579326523758978026246998146183625463776790319702026211827446076917126431027079834720684137925381552875334157734037671623655053363011650753872342750243303169980058921969372633980978850337616485805100135381301359726262458827780591454897747443133247363013517364698959833777040192827012802554991881555525456210241094392787717487015014606876804804087289168202167975591490591121402440049550662033536017437329259810501484375996271364670165420982104059898025829117378956988169557055447121781143057412569764339875063132466907557824758416715562657094638900754271258074821249658249469355535767167023067776277884199080906800583109142010891115821256680430829303019000662225824197994758528734089699988682226875870964850065427356344802369390466448513168995522891207290414291030698614986470116675240240437730621317093475334927434003249828988203095998787048123759621415957706463520651412397448540617489881035642553244529214071739837306752892974976731881247561535901869760155733599201580896220031671588475002401181561417791344251496598188433800587253256285966509474914133539365000955875724228067146887894965022123358275439477307820785847911881686394455415897403272240152135598989674606900297925526658160842114681986953703484099911062167694257419239534906806057678000998700613278355214894770679298500088201853551912662256458014444193808848031807603044134517857861062504216777266401706744492742717247466790343571331518663366820723542078422073224698790293754260266304432185147683819587744389448113470147157185445186709647235662586013531030207468129525146746350014291990501446260326638544737094388265422822175879884567280280619572816832430070449487375004925602852067679650023168712723026869931289203557123405567222652938939214060846307686762009738737210020182062944408614226633871225980653161951785822767348471230428116530210865066703842401978392275442147467538270823082753611521363350604590115457047988531128979808370317840070168858791644396244823449781406922971003565894609105611741665975963353453779833844493095336371244846312335350160750423139264448736046731520941713293293338606399731835638846892143982732340051829842197398211432025234219677049113268181569016150689997061642209350471595891603061409513567404339133635465611779913593609583320725702626986817683263200609241644226928069419558312382802037297422354259544160599436955393259576173985257876193369051030762620634605100366722978650305235690724399309141194988152377970938329358650031162122281902746683745972576735751512494731676947137192758486256068427990818097330882512819338614089976340100423313061794630280166924471338422908800210276561293079650344334794089958561772249286603761788109690048546096292570374746691850549897819665907556064697293374328890316518663565467122028547929499396392001631992687872890900439660878071845554130719596490148484470673134779250795468191977048727588038429481513152492818671343941062680427762361008782265737324894962502180800654793542443204360295662673564354935229905977264501077318931209185358550166430807848203507466912030743960032495792282633293337377578315650878808397805489240629402388859054830880848485712056781036169786196963025935216400262965523201057747637318615273388208218614550863368040527775411637820874214543032912138063781402746086048929906179739853771453620766477384777467540443290210310737174840383415680268050120887826580703816103401981779314581235962743349784269324153744168136800948014793695713656371605021238013863753527668460634209239021282393520411053726248555114435080018529387456209970200950504789311829160822010731264635088118524131139197971968304978570889974371751740797145850283678462479408226191051041902847956376157493503747052389480967919710994490955991580417603243623351986621711806957212601139119747428469385329366784126820024544105351582233005529787052782317270965586183442501697821825567937921834910993149980451279867694815039857284692089508869390083989351090108788938174493532232003027893277592776191538131579417312221553236244948810439834579916439694582578106507391648027646158415035082464835879061728522125786885789253075856524894390889261450631549141667558301658451691845572680057652662518832640923612047855342485392554074483399829110794013748912406424951588140792185085130495710377847001781080441556580967474976848040907476020668756008788924244311085611528876654857508961604051420961852705176563634668354036283084922871242485347141221783789001418492841906346063104086399930649237110654827335907272986345432753759537614784532219226918643343367458530169499892384446587856925588246846286347153394964642741412524297438503638598020836870684757069022439446836290502501304208778850176190502800666222058945560968155885600150065532530489256118694328116559722572353376553755484149691391166650178571064750220075437285242449304029399065168390626235770965793018727465730680652850093097095135399443023188227040536806077893378987224141399083200205237545101485083778644460118961839087819934238565971347621366402325194078555151832589519092787850071761763510288255084286171833937334888371260244044430645020304355134886211478461322779503650479512427412248800180389241749591136559422590265486141454181351720690612834988369581418323810431417335793412011103817727947940956421094749058886680035621733837585465474406954556962673103471515144650556188470358102587000003831407196298103267876563072450683122144606482747902411568749128001179178950597666673059850769660324134050451218211661240562770806651851707219488189541066811331586185557465430481984546950201697454338867852788627478528745226695633188624155843611098270953540213419965577468990298773939394696529970081859962641037091090757154730805047580021706737157950459662518306619258198161388850307344651904264946800665464601122391624820877295235573028050929838915210710003155870297709754299324828085718816736193976529586904832240472434632512885225335333864703679784473091612307425520190251376463486062275820538569155515956882132743810002052890027405120919706873095520280718598903963685205797366465491461648286830044945430907700660638070392155918529836020620273583100414859244006635730037106179424716349562960036040491928019006612020913719714317737577502808040863966576174510740993762836642876388929259220398121929433827988521372196274322001629087564000859193157343721877019257053987013008713354159965256328800064233085742726052946887469704420692096695151172748250258883713415119922412262934281523459095532771029876445078301164326425517463484622367383547751410622583219179217276607122212676178015003634298243348405216593187412344910914216371971838117710251907676255220489042690707878651433376756109878585081615986898083750536384026075605010457659061761930906390394560063869999662106984992404732765183803443900846097462769256512834210911678582191111546144828231640970260193241273595986940567115748853368510282129010740541212588282574048243503912228292870578358012323552509636756526325441488473043172915820222313510128698759738133759246654894959378208182695321921836457481158116292149923784134943579778973450354713948139226980850225893445462145000353633326410946472918872384202142297370849001802091383051387050879153007404222199942681930878073332301749521795542035789064565733933133150111286819533603467491605170285830383510728580764520495107297637603870693427150632133117902433956752824670655776105797736241385205902478833024039581797130172200467224881710778262831693761802993290777376884207723512270088657370361507100381185614575975164136365103070951247643758983971781704538617860096930406431963266871544611336843488549506924696374334203586598177526848759005822357973697998262217447966588681343355543922355249884206136532175499426518092351163736222849261116156418268856892270435776253103516404677600255760475501967767257543719602473867666576903172039139088028222898575906997303652155313571211429109469380802176758822677127941363196743298259959155619003233151369260483074674331467961078674466787363666255818367566410914882330083807689289270007196415722092560510605219493806151158245148597173572535468521700014832179723749076969568914156854746958231759488996475183420202244516715076098064187520763266900347303758394415540686014089715030214341887184312172587492457782414294459016067813445921016438658128524738242055436048461455564492436391346852462731123858122521128881998811741348102729223826472465816191451916397934325268714194165378540831715023226914863829483803067948880400115009941002231007031301579920426145079257527467652511536425552727427468149699130580168600749479600360420528232645406380325643782470710560803663177489877818224950637932733496798974193244063863335757806510501370859515223232770742008346210023245188281852999760093101813646013995793316609607065684999325333873889925847369034904938543933959117923669011343431141842567301523080292990423318508960523469019053908675099507378370968164267183543465411004514585944788744113314350433822613633624403981954650236965326781281101042428190248963938049023840967226033845968384467206947273585315452375523611979110494703043123791588724922025560925021576889224563522478651947154925502797278546026063521369365831959604419536689523604659593677480873132901028821309047766104051768433840812312653914945249169805852242791428044533289733683299030442545329921643726455757134057801699886073218213743732545070831912578195117338772688679382420694782600554835640328508433159405367408487241819843064340702574600195723406207346197911427535463162559748288130813256745793082609652614953019254305099886342002148033467930206613831450209100306095984789269558902057351212934060472665340932740078691087077550547084855110460048241898148127377669214839448537109715892660552250305946480810487593507835483254143208737466136855614358929703596792003987952429122297271978917014521186643782864775407116730020746337546723406678812052587222112537224744338804870090898959245097895456461365397432372480667924942932718280054824646237839848654528029289450136756582746391368161085217287824052437419299605406385785358065859982808739921060106742218286988751841813952316884535322616189626638017229768918384191844729639668453280970228343026909602960674300772989577597102133460819878100878893836668874190314720506140606515340030146725217866221147963073532309632497021607921133371407616823289964220920074606258591716617270070654496079718779577524994878884299000125760596780724292230387879972898924549281725406618066037671162122012777243253928954305511857609649401378114817630948277744294440289580699630457083876149035366912554480805212919708050196367844684113964984377605084059824701473305713093899325249821249726916989909309382655623846797197249329279381354341672291529816984481426754797096554093452963077617957132573624885036981553758997133849098653400104334640929982148517458392148712586593620755528286060076753452964291739253692458205346805184804458856782384814180833568298597686425789269288755444693426114942113312350297272216019630596373614972551837971311517530775099063102467512022195441300480762422689488175338602065611196454925364186769800195271052425313832127181601823335477552345851594083614538379887098162888133639561795617771108105363461203348990406918273608370481111895687995930503660675729205091592824491844661304643962437253017854293639452803844774641275867313879779981705920868644942045989183677964995742004575316829441507050123757082635308680881072324575355846915483631373870018985225560000724703816195324376547869660141510150483603575799945361004867777905210853043280771438081023189572262696163886578433120532929415570492353259210271178275948335186066727155597426413316078976387962954953069173753702842004124150613760829004719252949641191427142938991834258560603408511834995773141690391819362196851268036720524245640800362378233455315202701474065802722351421795800168851006872580998989941162149767434866483542272307649119761358382147591352510810779003088163843167787683412328624044792462393284642465062100692310421161722800475376224060885196238380599533146055957868043218930871807424118748800005228159014212006658023645204600223851684516207653828515932074115375203255270608430472803403439469029865439541712081014797455350039582296871344866043094051263715803087230461557611611769444091552626252653986632840010942168602869786666510593811296756626408169816485415517018496060949946703478600263602262159154633199144650618511899388975734657451274018368371958782736192630412825749131318764902638809241180817898839272080728331831677173456725411773090083356266938510951022397565051955597094429716838986019285096631920776738179341255028005051939599949685698247530448600788146668989778662280324965253831819674341057198457449690078428944549051113252037580817791462683550015229829774910700429123942131289811315496551319294783661419828891524830358967875985927579341134535649711809921360188182217023631171420321545753277715901275736301815256503560403838389504133511173194104819521500892203340416426285185193709212199117504763651016645467986651946913215202782125573064914029184838057993862001539379281452231902299835555792028575703106397931995815726767886468817672739481306024692168591587357126118294398985757196441782606135326664111778372730647306138549590166518252687063112405814854584955631658455606457405097211556852354735356515278877836421747263777693165238410179999287132830277169034993607520569387333752155200701016239276341099340165413543941441091427325107760976971360131321769332254310393458929614385324111007564583290162245944441899027717615369958246987310949700476280057030894069400547850433700327992263531605952000876578243191293798293154376082175281482426844750980456042375821061227926308434435629542945712177257929388879486005720027056546231911510633268946173941095704338506561009469461968862115480206615289658136990726703924375578323915247571868657517311532816147000425030464546345545234344232535149934330751229812193755447276353817886777502711395103014796831512169592190568821844764893471333683072775809978189523278303907219410423634032387582268113663293594441871633018500202094199502070766524998020672109132650078101753999748166040625941684954436629226107298493291224784521249563304303448813150796951640529950938086996473972215174933907479625746024390288809298274230437038689993316945431625962101671730726076229986003349725163567685379714021028406171802995991606335427661607984891016057510901563096452390246587554107733033955778397785435294043642018710672233197102839268551329938421068626756194006656150920556627163450383391558745691489093682754962944010529031079626452080651000019649914123645420178872535748635204317102117927845875989245661563912340148930687520520812081183832702584507280530247472671557284692116016611917094793984433009867360104398967628070446458280052761589634593685951351136000301753735961535234515070038308633219053607794206518036154998851579704986858374563553931148126644757310167919393202215130807048307099077430279494853909428196238848264409097537168930276403392431262039853441304530716197338644639055167312801390727322266936945449156336459039277228532589496425134187968094844223190052479894874158785264850213677753020029002240865157167767866231021924408372707062632253394005685170854160495924122650068650235969217406246454109419945099282417804526515930917347343643681179113745436993464412457214447078248375304562327488858494642579716741370363963575730859135772273480657007597219233723614543044292566373828513833327521878940864145939548381899238643092805834100159754147251448048948004309834622799581570452868432655043825772660222575924086536373246631546870876170502271776211859439692353498782614370879083969731408175893286816846856438776495111821253515857640470674932379833685224538245836659873910469570228819294967866880570874900435876705735669686463881830997082630643657015499002169840247688751556492905677822375981892022397734860872686498908647124497494785662259072133398942817763508279138103931876275335148343277033101789685393250766776803926279724451049347172056485551972786612003049437682171543189229217975151144736882554921452121613417818785975489077771965181710192215278269495208591077528468807713808891129398951894944827907294573114341317612434298156826306042199778690642485874228577173845799522108920997949746149180900658804198900273360457810943521004355660534812967232240905827679696796043621859408827038177411434415997920321365769247044507694576925369842362551726125869200494714770478662176784569089993677531747411255695117581260617158264837681180561562912146387471445779496398107584286336404777729033256479716518253395143819202943184412636562153967078199282935947594244555386967761240478309352733294927521418821097631273321876783140709468014057315942320295680850309664144450633703360792899341739339605464043314193158418345407864114525259548169322028227433567352707949915731163850744521221775047535255410021859913319393422142749626241078307967486703313678017247326400200976525233352723386699024795816268142411285359114580253062294615231281212163585575380901183021725008808268728949952610736721789270338696163763928154456556887811948992064719918143222300462680932584391112998684285463805410363549548432918137192283383804297478072091518539689260112939762134040229777145684952865564412800784826104797423708802535312420997391128963598946990844444876337572460350760085692588616712178017989758638577448086355190753916751515470661840666035459509214405503673349257739905793627605730288480310940045299137081053280083937674336090287384200754772991333278566154291548684674800762823603107947792475371779518554306634551398312022631205895912295811319016643430104940142937456543808657944577963742075482897745977056667277132928063181956965986188243370928963851266629846836235837090807061289328621065020908562334812703747487807032520203995914401198091104143494424359432934003063409014240335013843002726008943604523350138927899217275960770015807076527054538484625800153297298817965546729392794381275896995919107812199427448537637107571135529610516809750820650943720437103966640031311250369567560076815380215616464485049006449990339284205699221048230033614444756456302936889937052292926624475420966520228335370548464675053034048180570159158477429000622026983678392821205819961352183454975158411969107600962946689859212433013579471096422551121164345583221307154137411414890976653198772879072704206839639065072364984017966328448929429638723800757588109905324435386636690267497560118710047363239623118800072651545405297956669372655867660170514534545173366230079784898832951384082763158067857536282693073451116188812663960554802928804083966280768540596611317890274733382171623960586488534356151585826711219523808711690154619253666523546445404737588127138868814109407933428184362732460728041891046751156648043459506850046736016437352304303973772204673668406619685942660719704295300602112093499637256453177304052421969889901898091091905027230203426271837583140953426670927957334089869637320479231869106688753735922080529229189083854434189318607611988583122227104020393858908544465621702341814259479927741891668173519675871869900817097771999009452447191682907481486311156268083008196249061189749889571078560785690505581653838862921662435670119167032748061496230184896312313997321127964663825304861095801297892002026682835338237412289958840226343132171371731556721633084910797990066090906568965542599244216488749145201075737403461060795851404477766227784030353341192414292286177617120619510860122648068445196179442944959047492131209932565623548367125533048924865462621847908987432464746364144329778039434657110682162986536555151328596196178980919816956396073665106565622025851066003108431522287707502763784311656642963714078502112190439032630908938528885970135092050043556006924037767208972136756740724785043977470679225119550062589903520748379746878064359867252273255047602659906662844494152134326028677197894058196057495716463350125399164247091276534714641095708083726742045138294843955852077155548013978574639338817745062306203364715198017328370028431682048448121086737706945949064527550334930818103299164836672537864820108895045831498905804170051285121184254145782442574502614963371366645805854551937140479688159532882648762701527576357846014499332009050088280228860595819513160851626767843914324141635551100683754203685454231500584874103339725377200191265481306253618777857669255821909018558683541044100069358439771224343362822125428432180321282978035776358150126920646232294179627253285026387630277758329417038069520489686214177748120138334651300285804531721606162618128107372996898988927101342478016554399806780934614739270007422516632081512102307554457383573410107059706331351214723955679140521791002084163429124915058319232568660151222408166093427449764901346598237861622986059881413768657796651899817138110592753847823261529477917965238592480723178396190781961592964476061638320278251489851044277790653344894600988862500808047652162565610251157587158153754872010706781818532416054998047647493776950290246065248547917120536451318663803746572669392604582521018573100205821672638489904864817259843862880361593360484129185719340187728029089426451509042830360977119937089682030058711528826581701838161827124894884284940045891699496280527943347736061941639338889868685486463914183548660680408525730926511081658810893329327207563929851988419624982475444124564353504125361954452909472960711046823827480629451243395806719905769114089444178101516560906127119561568158571030362394728649508476679752130857932576385879825658402726672742578218617991428306626527475724848583909811089250487399034376939059172564021874100566001334137476737712515923739850172743501639526469245259192063801529561198501540779497802492379548172801399091517859758406210466864674803662017854441696237834877380327285598158521037090476870091755826962827959188166048422382766310327404047582330718952229273163985522964130763214273359989518576000696571688856594385184445056053606189048190334636938334746855612880974583729925804622702083822931559176161457859612407417683471053705169412018340078645909021886161034903944257954156797977966003885398445542016919331498243998611069354006093089868704394048675846249115604678707180679374169476578037449083440864922421278453616916506318750368577055595325700416565713368810853985492281667664057613015028732147704226577824752558484198201226858346241013394742219581848858391360024803217249948719684354203653824882903524173482875047394336367570284023173714239279707870108174468015446749814662296538211051675314331742364512767742031037429706799589128363825307633568123321861976877519190990183030514035241053750506882581599676032021744198127027067167187524853242678407974105125806165862179510401685370235658453514212433485387042208263689142568775940377283236437378879568109087795432003339917229479706375124204786118267200665089675736289911379451819386580656886002070775450645320269652251893126472158569376743146169853634384752354006781903825146471391777723807842522493726937772761065928919933551191488525927830526910874693455175336503772521813759458251351909033118456651885041573395842013104529932419966016918663845781161621033860790680820849530008275125508032176125572079594540204893866139228988257681759246190357211652463068298950484990994077079667625090973603515223502766118093449509822935797610018860169486253675532045727070412844179774052900757299620619667411378518991765123352866836322877856661368774561963845357803928743357638642700114272213987531280247200799018285724501761098051203647127287661814924534694634799900889915994588939657151944465361478573184931550431183928495208902259476013055197960005661906542245877820955140490325594896222712808542869426765126369433122152952852776916154666648002436982977879548103922348040405495121951960547323084901707335782637529414702123578983840053365518569793892682168545760218572478750793933687072705596119503577853501951129022798061466163997709638807942871588466904210218029636818481342557426484683221935194413939155078982303427097266159737779644783990516774791504620153264766991932885621425268823737876338096384105485416174290373800586359891223277104039916821835491898033362873202034013130313624330026109420401100563551378159704471553865043314166450199756754106752868349973862599454404719767773872120186494227533427617061016283412754118156864354013187951168933355233869100455821531937285324148392945039375022028991295663424204333280977684471172747359191315256243873027686050915490539485689976655752291683979906314382398896935923972275525557980161744675962384863478325174422954828668887856798780894601962889934224832885304592174502597382382315609348218495050767280279613382132862104736614948866010801927612754821236906866979228070959080687285999773812393899672596300195254497356230223820102148249527079333797161612756946307841053183390435428519673688683909319257991984613728439285342694867586427101514614762249355792530490941710795772617800684822541381271345839901317693479736101098476253926795170042527964811130741971267786568502100946397190294525086084668482665177035391673537411462572229225857403684706263253912276233537684313716212021680528607196046627130534225863156918890318820478479731489480689831992385259350222600557921936043360657971946077680134475180893819305440750883996766748458789364371020623072504064982911145868791843581364687784414712112210247107087939801642104663926170889752903277894833315126349787578428778053449818466718177906187349006430329135210029960660512605468934635589255375670691829000318089446021111908114538487418213513348176148572872435910898625002360975637122230101206090395471071049735497828724999511616094084721040385344202995367997342994119150850712611572090050446271668892782181218783601704813305270660838573905269784458451944550904317152017336410787457770924402986171257323488067852563153403616692391809239292700178684544031624637693250326478424905542667449539863058329293751722462215751311970767240168844580822403922207643029373921582640357784802456496630355962810228508769877037739344468410069827335853493288464574234409600127972185192242060934696175247323650521345437698278829770222770375424841745248618901244689848910375009696515961543509239905330482747906896021871519295905932224566177224721771276772865884399343715523942802965003684783824036409020258200192654120615496707839538844391662862901597408415165946554626665539588904147232275904597234688410289086668661557195668811992532918713827987762642978881379337564105575623502750815510637295230803856358256368875399089437500093644283010249674624569236236344174144520872911176434185406481789613289288400739526127386663391365842448638107053889264981537728703610422871087049281196053523320818871690561935721642260277629824184806594399790821439620673947892475351099754042493850092612003441589549370463060718912949728219438314696689766911701500245881237016747306172062431235888476434016366258963916726695602045277740907065246045945115851907702876220420933905914093884985027494798286947330148666198982876088289756335084057759071971323806186360015164143366007650520323186295277164137253891554741496956448163525590880027856939536006216434689131677421836675294486002030318154473572259624812072022339694055176908540131772778065492646537270390264701714464737581250624709579599895514664179869969408787056368883212305694850857998562292172835140967615622410968154419034467160922001443809260963119874118733653489685158392744481218328343721935724087417718629154092528500369025633491603830611754005474725537989999420107995003993298366102843340659482513363032260754327775024720919900311588795311359982732182795183849376290659127073505619978506654311439435061293217660101575930694146475431235483099533151619253439161478344450986890399702214812324442347523609251410821237987482935366670183689432419432094043166917081172747275770919512242584263705575732174338220680290157024078643027344365301808836210194898177681863697417782635960552609769198390792594414891519450527454322275903993049694605002546695514280132300557520339866768487314849390133537285390245701194067157070639884607627328042172615188510289877635149473290046257493658331855011259517371469213665429675677529276171762050443137420991487798662491606663717866749331506002940250494557056438503980634463383082734780019006479819543503921346282689799767336216729871292907318674963085814755192998267745185198645646264648363840979157234475142181667423731113904948811559006091275617453002820411672496857802131280651496316682786373145095150005643675767772155207197227433372834860658906657324810131871729232064798255629223869269063583982344914367449767040931900373425110572181069286721877798444650573737582615218645621447999787621929845041186169783081120660301877623362287737238158754749319919988670993031950543259170129599077998789426085129219618578966984262400660054179044537472362807836252882587606681360620019798058494926393769906900796928938719994773586922623883087919057727279038490125648383850415118925364145748183974991676465060730761861809333956520185535004545781110071314664162487778736090693352562653963809581720796585752116626583066574332965528644795360921056167530052726760997215015649630232304804856853580238322617151447029522199853592429479358202847209335358342785447998369302928347155594810567833203619774299257476612152101236367602121992673671055846520288461470080046925889768582862213586475235860106637939054365610913968604349586425154114766142781554063866597150569968521238161197958781428767955004150772385570901028793091301486900899027463170162220225225082943477294857961764395074948129743517181493145489737688479560832559570388003951265243909839388504523072295463010822007638796020207588206975865074697026621546139949549026105651645845098261232385682390640411576005884095789859028462251093435795473962712807021949609919792472438417205407496527551270004595969597875545943105506313701123711878409276662404433329170267352488773659372067539605745529743337610766190537552896429822569015683735869008653114195949803440524543864266808669372747931360990194036678797677015330946496283525175210905239676874759439829742356085929577691878726829787022072038176649166069942735036189301842505913836191865767184623308759250694298910341451975088370305484480134581183169979450785184560873475463018923072453313512211347515744800477857732842639825602941083313664782154733939923292477520895301290308473088998989263569025891112227614442675980056725596397631802797702185944712866522366608789888530636256835544192206970250608065977707699272239783498764280606725025855912269962908378358056947826436522652970192941187409005049139577874952255815861001616076084785253920033503005762708428574974163249930430792198488729079857502554639965809964906386121549084871311205418864280268206806056720875966352992385661261575812079820045267156795680522182800776453777097127702164323173539451147121879994313824655931731786230427982413492807916007297118941997881191886023030635870345904144928353910987890192790825143198673610199567481620914788680420347218184647665451985445949065978621777660240112705890500580890167429468657038559582907810070627518967325725089500040413078306813505970735228435256004157569545134464213709138655657599035666367376031275515396702504352482626801734112966251590003673865343322416100596682799845153502600752249689692500783181946847341678354259440838569934787795976161778205357001425932699334719113807321822691049352179761983435204301779566407002654850705329516590492467698961610357750362848594610822183207993636307337257732563460248796445800658118029690316555015495647519086384604507871194763592692695299238300768463507468092896524503216406986788320753574290374677393852548907245268886903532489138604225770304467448141523389189978150039271637617969950566749944598825711280543539272899990546298763533180930349599905252796335062315371554817060040545846481430854476110319810065881686565155395505587029790042844943458771666967414559100729656412814192677266056647756138156227810274336705707539058295414395952462024522333177258814629912653112394984333360719409467092122310065674002844864619042230422575609927532251526536378218368902121090901466465361002014044931167690670753641328369110762287935582230600175004321741037556669520437504608271194199992235474704179245096200503177115539679156376135037766292663483904424048334389153715084206437325226781682307681947331006680864456579252396195811675522491884474776577660049588742092621851495260710094384913608073773306316185233285081650619690341474791799339121335158859527914589248626782134988932429162957268445975126687103473407870436387441550280254654114802491083755565597378083497998333183180832463118562883210055513671314348071906003564802938673947141944652083973594462278561857091637516258783140709572423289030822348478934383652009966972424421766401790789195862856599201019169723486973263943328765058578199667777309982599166679099213628000974771069253337680818704938001569788640550962848054585980952685224401399274907934678284694452746906544115970835976982618268705898799822409451054818658417750720018357377571121582222506059785896723182829548837944205074826269202341121674845481506744890943869275103327113473526886948747601122688896065683238075238363680772022425155607002538407456151146280024208318930929334565604781806214227084760931304265904269733935175474688385315414286765524287601263116804816565301222119033675407412151694366810050890984436772708425211203820139096043316461486798218532562956573037458917746275152014743599603462817174554846682217963720462128711914851431072927249693760283087702637889586065922515666133599578438658923064872737516036718206697179781642885641417815450055597077673821025442491804020743839158844426639580410031682665342243036246435591935845420554335150578625324274244207609489172141937666140313135430593374774684141740126024281350173977480775225452237508190008278128898949053740041753275467772398745938669311240324457245143605823744898383496935704419015116054485725218031031913828484627544312868421558749730941612479722307211976045395338976714188255651574306757375102295428185355755635702202941186613692938733909050515443545402182004981597868576101423363194689213461203244801324666648806577942955029174461296903439293974123277890803004293181531653504035532437730901246072578008669653584463571136806372843081692296643823829448669446524738785627559249638798341709550977024878046795083257943237719332496357273839033339747819570612224868248239280844825383586035792679434782132629414251077413650270774108348944779773536560848225253152832334683445412694255979565694017312999006168251072434266230126692169409605690891768992372660097967031602484992875863075395765522404252627492114362695150246629375066936883672145127519382983214419268603072833303594922574886947683034066897259909474285516929639470663036834526167319708412442150638185781345734693905867243772992829513155100805326681987715193109981484893382743488233029484242159166313591301348659210665484229862871110142367487381600591024789614888507005200923099981127209825918358802932714656804747968340940111799006097728342347356971363098276174024214845385070189097683792609856637625466026763321670727580000209814320812777518248180023956691245165952121171761804932045078589501986314324511644994865608652546371698296277398297288332370113527323563274536214722603007463055614670449989170072909974868862780311983046272877202322828063506468971275835852248222515217334993566336403626006465425089721540577206308311202320912666309812407701045378618618971154934222445490203463659356094506464339085136954301955059433351178676534764153433736119705651334730145413026100222803147548141803420027909674947596145708500111956633006881548352285985621428670022577115711896578348895154976521910394099284646462631985792421184545687574797340958286247857134937654965830765120606118207907297952810137840488832040341150526184231694318588968827612649019643669632500519030511941225022100451527067306951209338853078503816740381312850468562135268753425442123946055505262145297103991402622080022755353593808309804125771348696099789400073933928361500600355627773215005617633684344127786477694774210453879304819271510533222307789971376083031553474732288052235975134730989663216501409596740550562770023033273820101356025221878086603452751538564159160708097610934501470518345226208932792825637424052203396522984933121569859989755724381112779246076464177717375363448162305261324762255291600605787378051564526598766760042324935726949959135996705549878839345940879839340489007916521582418770372485427045433974096953677504384541513937126353324610855160457883586532255774878306411763136143177407426221374959795440330757126379035157434782122806291905366352196377403470154610779417424987152291111067399706426471468457257353428692038938983388364184971024373385012682709178752929507538189160648709858246476418115050516907118340076316390699717793754497405750081863894137600364210797180993135703956871875318664534103646860774628078935160582281893973385832322524748173511374527784564074992559830719805419755533670504611599596101694401262892652739010347187390763676396998941940049595773138389380646463670225627132968382194808112446928689989945416847689591209985810259719984871775467400875118320457459147782342739702155958390351389111898343558398213142110503878068106307883649104561323736371873748558660843702669658886690173864787404584419364638540163863084063328442963057528224258178695901402289994735180795934930165382467619441787338629917927310154772218923856328808703754390597684445684628035286179690711356475095634565436036361089025545653467237341244517134565212928397545064458588824002734488164426479043991142941877211302663347787506438959841802514304911239141658090618379642099856051057804134245410632530443760046400493143222876598895120453465417450329051074600852365278766085437518984980778660224525836983915855059700375867416404698127179802139980207030363271243498488397335839693642745540221550053859043926240246517964020613333941912918868745538145561751767432656098611939302842022948595342035488003053232625994876911753982840244693363423568380563027278927859829076772591487981564993686737610173860815579548995854119152437873539431166996561281591421012833695314099454543340396190728357259549824842700835333096877083085975620582710655019948839061398529358241736682986816588972747524239079057812379231036826695938865279452125248221818764195607698102740970996840955544158636311961498331232777455359685539726566994201844035715434508388862096726698890703276098883823784799388757329536919218038357411814433547144833251204738469505872874610627529647939921492779904324060846857878658759112717206655643565763970652278827212940150092966160595239217525340185228813046888562079564815591935292182045400785327457824567955882341041838252361688679687677969859675260877036618363345254490831697718655644357736867194779151353292236940585341697958180963552361740827243630284144947249824490193040924528850661546049508911058341561073576268110915123379525554746650367087582937925233541806764969426201219185247098321285511424553232845644570998270593031222874526254552532929274167184466542697387033724417952878580314172903786029214730919315882412104515453507979311268536546051269984836156936549064240366300327822295491224653933780455364316344740315076397605428501349817959649239238805333900384615112603582237367572090952066820543163418983650196837879663302167854640740116776490394641480435362706086485422552155691127983536348016598820353904390287324452524846070276398207268788178417439552406858711911308683391307036585425405968402466959911592776059705902963971674010946540939441173861634355714362494130083483771546086344257653759983853577810153768254157851946821475881014506193151104283508162889383785607744866846083602941763402945511796704770544273720289364256974850962362691139858675600902417093663316260292435342422027021030164732334466685014503963637548518790871128558492768954966465966198439992553948286790793248987693775951140926578331303238317384702502242377847950982707553333123448815663870175416584863236133267543673389393219234635107900801856393076389711409862023825276336638585592792364252934060722961962368287625361692789464813504667313831138806769697242088613624531175750465930726066442377518861345041967424058472602848869987694643502131782384123770964262144938767490828777854589137985222654276021352462757164534447270841613789195431858239719493874931409962653348619295862234693565141522226445593332532275669070961654451505814579040346339446557821034486862773706801332017959228129697828997469328076139836352686714739562054790896782433139630043243513619253118282641114381004069508635997293564112211893540874986978613118206731667655786798878147428814466497252018041197567657283790189625470055246835689832629306551028954304277993876083427092507658259260018784765684807785659642255769192441772662705646250493076434353060121717000645415960928526763938608834673438736302614072673757939121332105314049740400661181228261324372751613827236352705255449667052448872294778674499462372447627544809959828670513200488283436658595842852759523265854188038176436376528454605788719464154207853800653715065871139300213430413279557137926886901314094446714582082450795138740091020454137046056828395325305824839173871130746882438228614662074273211385955066126068366016380655096623002218323996351809948375845536331307218121497780059647625866510564043896432640522645475122296038418421355383578931510759494706726118822384680989009040961769807642720927150795108286324372944593179383558291775835083771498557587377142444151709451200511336582151073263268369056062852788036839179607445848339163191966578369782785684375686343381220930484430816876743005012479641004132348434266565050322071250809327170009816050484188394084289956574327206338188900664777887681086384876634133852685163291589959719076766492326144428731130299054466954617604672117483876579993744409483836912517711135938494257112073870536854393668570256786841352825414282616796449109198628698462271226757743238462462244672240896887878719029922822502544226879010528186878466636748558371604267902987072975609684283255565436567742392507551784231354825516547042108428725128254933552881693955240049188750153328720968705048407839891055817724093190841865279874523642904628020795855607345138202809384392161387256994082945262482519151835457622655988289304649064708031419428300492159294337502106636965971078917136395719297863826259203708825410649643609760149869314956636639954771202942998369930869607183155395846037600431714667621404631204198457297925096969668874897660266419194398839847235035759132303849839968489718131647631697954228061465288771003722072467116919436466477685418586771771235323246247724211214378430828764466806367440920652619599080129345261707882893638184121959363011510938937509115755207308883695488657596091559413022853401320655590533641002683223311321841557308588232040846238517763566085222043702600684792015980563855062435371564592232705273666238746633041588743802232582520567232443690761870225192432023487880407439676017015379253219626879494828055605760622529463966508560368113683964622768468826570092597428192988112000873069730670587820929251066636925893652023962328562504433376338179463270023536022637666598858286800876819293432053808683115375234166688243665137155088480003544027650507097566288773587475302515210189435230444682398578280954579881761838304728324871894202535326552012562624969854701824553147252581602173929320947311164481599745762997051560734848431044949531402392885912826237280156068003098271083057464730974461696060737977936937129047905764104147145821947572956006979102815102307163277413168655307764092193998910253301991940611755330876477644219453145000463828413354382881049558953116797300478470743164707140318182433325197232073962907433538621398085739010338747488492319062108348029215352217107101589792752265230302894308160485836396054335464599380287678491768284428325472162854858256873355212183289684491973738257450464332187325928831833277984091514906758830399869481754947648720177407992857223138898757963273367816116624238717390741026731149283980871523107896956461711127545211785941251767215172441752739682216934729913191368518798532959543559200295155920658541127420829428367909668287568960899282262727120435825893880767006037963763346464195095301077389434063630631069471919427155514378378905014696423206207471280052632096288556029881737584113912077104438273436483370479610708442760582735822151942800605571719304966943547118601449497627705306807155208074172989201756488488719612545113777886289849696270800379147203124364052164455730829423364157832425346951410278977171265332719501459024070445830207624037516164364764084732682208419346483409485536117197505691982771082625088177775601975614480070071031058156331265584854332648726385067756376426708517483740718529449182382058144766638328759257107460454595746600784144236394478038654329409073555178463445763102778660808065122219885916673811144128002178808159848616645942817501217352762591125339797140062529766383450803981647416714676781922623563920960117451722827094877314786222116348914066497753442050216791534468674954751504275076028795842254623123762542690761308706562634551463137930070224398656121234479770369569730468967189337017349662955943075859382678300583281448178882414785515280101960804762124729823468336521132057307825141043029202064908117653060661440095114929045381131467789780156329660317383541274321062701162336157562403429394646481422673053173884219274286505276306303280761757948578705300780380827905845616767136988355931977445317195899137799261958247055820396139179174160389829319892147663433968393030391713263737720065523658582319926003466006961961268681524099076213742066647086855052991082367236905988643543523260823341287691262908207980196023669651829006415822966878461552456858978579012887401629693788130575107154660939296073894315855086783093157039907819435876818724104979569993952977581601800191483533721547516709293666279511255915927827844823083631290683716595489068717540213676634758097919600333401468283478864809552654533930376970781464618734697596988084150307212289734814354649620059545436010709970810283228025565221919885832306290925587022383585686220829526542786766571695828018123615922797804370304029604652889728510070318728392505504945128247740301566979610884663479188892110551793366811234275844263314415062474039123569197666526439717431028027977704962638696531461282730354643304460593620885825214950734575753231622732424180540188246264828937947443026556273648338043380308712374902276319396310438910576167026373092011178737976786556047331717382101612695024765069176611849991955881183443573411597991651603780363678150518511429110429185134144976789529450133718879483125504080953494777084180034371936854352611683989499178066245813997819558117805526245264031033507940321592684946177933661846922370950914504098761057648586566116312865551905901795899283567726602200897869674385024275068688348231192516443468629942721094397270058363318874750850091096281318696189524045709867861524827320051413646479219499388856431535702869868978634064211237234792718523639576003544349992705722224703543915648875183208771463050379854155176536065227955776242862482496198259508072718964892286220479371888597646911060720686818775981965107792923268113024992308291734477145993490538367695169238633147968549173951402126867991497222444046680083245591683708955555871063667425472740450196558399673683237232675158578914953157848637326943364745317144183917035911369162387172068175399264203425913977744514720560252545935370072517460924814505951548102853088203438864464894299800452566053261534291064953986275296624406180677622182195466050017245880518902152847971609725645210413384888844257492326188146312875603503677014635896650958990856938930811226865453083657735356061691988557994515535639648852400114405225404377023018617774242694801632521045040867255498696070693618565206720042937265872432973642950691870876647815428323738594552137633733987661277807701452872497861527669336017962103622827907970259298128815775224818862960830673185375131008739791974272091235156676207987487922923033825343410064948434921905754369450227294073928773439094830225973701424598604482824517213389009453686041854843987894439278731691258156218121143885601700497517118981011562913234444793648810065153772810494286098466235891521077975538841255301255187818713331498497885971116682367417710501458554002756018754133221546270672471919954309997041172466544166672613389601340196161305735130102532242666466330641953839092885290484379071017851906372529656884494375416600212840389547065780660884987336285838792557768837222282720060679557402823795465268722583563983861766647907470813523907295739013556294232533916831288143393174977497333015562714291234002092630997385952173422870248099483283650559544731910905164671441711391604509558590403369131235415081423365397164847105223409499794111368542237252626089938497163905844216520422084159210640483825642794365848366337708431270948140087488721347155969020453135438516624178979616946236494865028874990938689817492454196479609408636615039028048298567666168241769505212342982266410052120857370754847876279946796700439005630998485824760223278364293595513194078062995654601035048567634242009962704518705020532630121264438352594250568504261547255834362184257552690502685307875481094371334457505314247725083802423185949324930579661375476102985435596975952860347373240105164238917769956499894328747093671483636664281412225455122203213696626450152445506181338376289783053971602498781013561641370057712011106574759134129102859333614995386835622553310559844897609936876245176429220384765042256215431919058863028765881917518398787748807452941947182570141638061794171286457539585405468608900216907025331704379021548532621348671828547082221391843796683322999866051859849931099397766414810971010064921026371948836550216290127566452003073511756417098490216844518726560511710602343521980951834663822771368167701377353926513232870388116469668849040119914841872337671661228543647636863814130401161022153082181755216310741900088633177007228480269664721921730429940924468113309616462304095248902977911596568324167651956810266155722162057634574531275261824772257726022440639786591493266884931991727100309803404430326183507013659925668312414086095213796675808439222626486738200716924925618303221227588889691989011541689780354229225731871605816914456687308775877591765549085886679965785895970118478066067720646907899110919297507899193571519177949834269550947364535379128111902080444770344736563678933469453130336284605486443171729433809415654244000397510059827904548993870735264616773741722209237119683215058686962411845488505286920019832085127681585061082919041559471100449624540629007716961727827752390638910433247475085026314229661790422081450318847058586394424962053126087194805368166060513399152868740557377119584629058557193390115584771813247979387611973839936095335864996948845094142120490511133578366829953121662112171164699440899140851242120234114792289046325553310225760714073590342506737975982610811261802189557659855497379619035042263466720497659096102351175918942998612969691341140410200249394811093792824603201153085991099487904573220496179785860537221175609688442222467559215731587188712765507543127285520045637992229866496676023563879149203169203629073017492915642305931234959484609473009499977575649133127128631395225611718035767401785558217019445251796561193269671285476092613004536120301338526047821386902382390929740907871056760090437596373688278604550113605359842907786908292074436535629789976124188138370322785740683493788209645763190399262676828130040298490518826316527461190155858397190575559660202265874565904017482802535986917000962561757058341028721034223008803742685982433061709049820466496048399534719112172076944764400724877969008693849252994142518318551098029219571741720652493752832281109687112124202706234491373763700730687620654397764605504443211787613314228096222809339540268397517405324007565159105878423612118566450337629264226359001653001616034756741945063385521526478206944566220624214726617442847003170820724572953038087961794866169959564658033377414279644396795336926280262056089123596835706013309392602589652264647992825488280261346841461362714640085168751370556458454466662501129165193232036018556947571698724081195635296007109435953899088004147168552401242800791710948563196461107479633420821786815500947999220689588597127175131333377960904785711936506930170666164146710004411774655661293938494421677152428305339066385691049262017039867709033187792355337804502136872706524819070713397253036442371532114776402779506734965569953178630764517501353908535442449504573892024925077255354619005275392840547589780913554250713361681373758973621021290445005579225823086227880657023446496249581711967869427642988313694360173836363682004923923871237883111309971856102967983074491748327034793978733619464372144589681214012505997457085511829979360293679977573457758623001646125718895323020073340881606552505498399313944253294267517389452186108385956593696791396594540420312916496416132780351065192203423307579246658403585517094034783449705324727806383860564630010412430172838255412669189519182973548446528805309231291004918183133727298901702250403471743244824574432492507445753977025238815027502494392303740925256098518455782394668503132367518221771288128595572928944539263770797202057505761228473170649958679594384385695858450995201062989937994769571940933640990705587327646576912879004590025427857539044288634210864951659311783629833976372746435840819292316887663974969765287744362229917461055297088195156991499480899692320711790424131784594245077669709970938253270895045887159285371101728528227165476802424331313755082421429902745410620771258114469541063161966676752504781226059967789558431016489697947744591721060281132323350993015586576869938934196870265375136167144964080068356781156984363854196422654589099425255219968164589175186471057219584603953436324340422328610587177534992810474023122741680584858007167844122394476704990875516991835741273969369846851444609050029852722233243104378654079114356213001483191323827206794948419190607364592342790133574945352779123715421756894964112633833008242278195199207235068501371700738217579364476219856172492511925853165872450613975522641325807134922676081362986907667499040800457138385756456814168361180116767183239125576800051524392045172279742752568144174954408754819185906464678393121696422856430910892885143890503696245199424904812342397315601999571749218774909666336236191035049627723173807327882320101325444990892639027350622781839932136755615773998429755961474466899053293821034725289846997169715518127802615162448780935522003195876474700297575946278701517323431277466324397809019503093386953095462004083283768307083453563176186325117467531474499419437226082158188708646705804265416766706181636980013066544820956884185171542719545733493488249777549744381456292810943136623081025818073402743589890289234888444223951641661618842143458967360039385028491765165679233063483725972048288819143713485519635487746169537433773450215749667523276889737993322647412852578653421520962696763728850936801659419634326506695442471994526559981675324122047075133312494122127050211163941895354092248185157673407839070756619662301221338983012437847594156222183197221228633990593887288348976218136148859028369237152621607497749483790060234231698604069691406572953206931529726079173205216906731842289013844658169672403520493271112915834722183800503414759939800419076043124913750997164396108565598944909879956747090731375974492895345060614592938814689083215253488670699748413472053061429216632511842260066171939512875537685936643037980197224802101279595218853162973032147083952678223237304375825632975735802928601868523367881515251688654657226369275977930939493162191070224879821346309204036841631843447414940198712986451874273009216331016902372210028639003964809419199024858555032144327920206127691375950890678551177661618649511207738717979778785556470325263247301093291000745634260624237148363592484259700917259817850129595020515826322579490302881262400131978131531469480917573986218772335309090880184759905005105506916376049358835231572632430295111007207838319623595591264052695077249048106182688582966103099246701673050023076504527911955241327821930593379783618691289952384584919071387916251325517838892479170964586138215952052571170064077085420868168279675586764092705433982730156860254677886192832534533773539580668672963468806177303292819176820650949892229345438242076028549376617077264565904201990532348319076665259219048262751203987124007855058256777277964706038501394972586872009831671916628861560487708724102917576144010949556471879410487921515076286573494004638344480139173341896669708582023595882957654315958763481183933526762321756478836426391342074090428737390240952867073239574260132991818354677917342189643171517434018040177208627213696526027859508422994033690403651776722025814783770828302483425240519379412316965446795523246836265776708127184132699484411460962983738132603783783435922451061400449252998642583364521731571917999870917628019091294293863204861524987311313937681527180572908944814920985873947322748154576251934693534052250062633585722011745796928693128664301702585580004111744103141855533708095685351864772505267637937981848757485447347728311059927786024212682934317868164611495951777537671853578556741090917915411061082832912879414580094824823445083644450869290879507954716208877622953083870433918326903918766976823592593152272704657614102640102831379916399371363240043539083797741576329037611893559810765458354394485193758095185523856017684113083599758392922593402544446259998686952934459903299894751665144582961024239668609356698682724802855479952754628805887028856176566643270504862428124864014485129216393711544420586769913820488024088704568359068964979516757721055313939728805154955706310734095662174251856338785397105772369486741742840800966077768491910774612880374576249090715830056017303762538987040957314960029867039466814726377250045583526687045991183700994695205552949837568487090085830766449641693179193162622556398197305083300079834562820456758804390784136295056646054661890639558963682853887214972947539330399748969289602102852880618587582144294957408522612383681272505620696307424352433301484024982182016984204673337740848936774670590201978739972458163150258910946238874374731906441362366126562526175477097242847347957408995287455873722221074515058166934365879306628908007982192059713683758775959342310903648778095240408259031768632829256801707935440862512178632707102119164351069900519178718742711619628823204500867924196955590088265947840170741612016699120039347774579315685368539226718550046928552238888769108511069558294254290136084360691585610606022255222677083430649477826552384199306658983100718118592466577733717658444890447770442227821656322727663792205492509574524998742379903322735676857130690189448797689719366025722156860145070428321418093303460401789787838611115582908589293834159954565264783207470415818064431711336139516154990653112873557870710801026164481230151961122205908901811915556457409766032485507145648595191915954568297189748001134612834525210605280314901999889048428324654800258408475184034538944185535449886448748533166401860679877690107818929196099377768777458705695781968492895016997460880732581100322598221102031924084058544733962065644670772832007364753059891669172105868463005938656146671277611383963331569731676809500886670948300345024886064393932380522350636112867289765042480211762956674084823361859653274769287763217042930454613582340349336674157558969323834308743316552337961072630166312752287161233134586390880778716288605050154430230407043644843938074834000877982536687534936430341696012855104640412532780961302429203386184130342034784642372615079057829566737988279126276674421429096537667324689018519076664043585403297822005701478420778604469461694537599094679293587582742829650744914445464024721370686373370666795744691978262896194240852858414430400302639113036310665480789784063599369716054857504070673830545541137191553034617279907724184322673951819593143718983519113141629476345310265043422931991314360929561951343008891806376464777264838117102857155843890113562684537210643854455526787853387658437579163909684178660744240979368760109297193437190952005281892861218801553222550794919405770270979118843337947038873045915149401785035487563499645322515971434886604490011668986801489986042091160673429179791848239814873668286698582328194812805737839849352876851755014509759819083196358407502612321384647992142648221063488356535900132884104117487926249623387367521578709066226365349608668601925824595581999078014216851019348646565093136512862412352504800887011220733770475324188435992102732938199903149512264499174271639029496213531095445221168048632826867652471876856308464321166915192096224276161667154824844412458238492222872177331811097922637293020608960542948873616109124005821190983364894034987949780912155157336645519000062347783941311349380378171186882986463792254637471061966408076295096379451756395912108514815053390946652578549237839196927997124472768525360158426963053168588502115901179067838040457572595565502716895978233708728354167941603617962811562281849552554387052940520764579986997617139517781483986847562568922103806561406850741782775120454220927712559469166844240593539794213298574939684405970613913033164153666555005531695219578732727900444480793233079496948184660769281621686665588933156342269078886550457736440040489822444993319077438944135412551600291461234137505184172012432654300930727993120061232878275652943830567461771118327009578812842116278641753222278075548971774666349428728724432257654079863570579483784554243563896463484557268082779164882789697285223394525336639380246305464288992886847142381389718149379800167782428768814434060710649509171444153594497391250752044864402983449436007313551871513686014512909371359379456564189772151112689652421855410971772952724648178490143517850450763179328831916470690919619195933277736865619540431095308943519769098785582954123393323006597254814587422817694143164494288658712034099661958074945158944162379094222837743501835425387497818367574027769382321998655402718278998475806043722300680574971862017386347470968707875004160242943814603519375468666175092901879479120581252059428574149159349242634952168082537552911138250423676011437012047713402426787635915586422197950949243567239058940754832021781199695100658633711984995752352858724548722376244303744966945193448597414993746361957198826331105842948401155944430939335415810324580914795286374426551234387871127259463835096343639983600532552305211853609102400955562985679862487135516805358876057365125367231636455681450498955129623822610695381221566654346048984180905993610991224806660181449659691287935602799767217773826314474131921217013550803778900102022762280930078069493429835568144857417158631456180056766648993844809938699655004569017200209878496286762911688168538049627617988048430367926935471989083005627073326830419711614291510377648359181746368149550907845537349612237164995848664026970464407208832294226106856263623273886631326740873043939992783024460973673403585541474740822010838795859472783061535159210768703898875150877675492580055202237635869834648816873845275616131867545179252005715761933447400707932223076579060025500737801745658552948776802850353905534551225492904040753780638916023237135101683979448748253435307527704552061385378674195763831542536013644369733038183505763795208441149392817211942130408228268222463763032983470330663939863034978815049061261977269880177015690031598021905773085986097764553090222514524161819101848388832980931917296252872538141117504680176683983243252295169307687650982701859910131322188085756342668442062481859421962748296687983245474775688130043567255390332122229416140912052190662402895112873685936888856815180887019330428890900968655281220441229228361232140109914963260474590036639613787733934128811405419463994934242826949042772402705718721682099201439027183374273583307320083505745569641965198271503493573065462034143157251347715999034933570006590728163475044738400227552693062796608223010217036276796499354169302469369853198384001888760723245164010674877245716390013094404314588478076971575303275092150275525174839708749062145250195146937549066630368352990608855436635874211355730700261720356241420135732383232905970799542315785796562408436984683122709610828051905459101358668687084074744334636781758355246665598021163569307914390364053928477987790258337377770018279686570944063675638102588911300680265846934250108213823192195095257297285338947628210178729098214875923014449770476228187994761871180534844245661204980214224181597461135586289088766794402614814337860771005375368716074242602829965555667791992866917218123949999383289619547017554747132717657187617860543019584177994271218951880680272783531773554039452140666288122882504131339298293808310686805830099190461505181240350967738103165650771381957170163553998417604309710326107397870988182578497598191190802204222406594188849421177843805531213831813840662563234663611738394284791986694851875982007651705432204280462606428679594569733987241712810049815414125655658637803794639156428263839748929036374399862815898927464420483118691914296929576070467865362485846531738080677928622786804707541783740092110136370930530875623744409233524735776661903181737289194602317511462810510213092940333256081964346029997253401912074457657368010688359427088517236746702549449752022336535748947743565498636696943867962623556221062928184476374477108773623716512333443424694146166712626297507655861201163606616732242098523922358526762565511046852170351824281517669643601986064773463934634010365312607197406836600178804308328899592610472602051637988701585891718931986321239449628374395849846752469829270307693864969427547956171450624001224368474369563806842415884360135627365049149818363939564248067820219185628928620106111806335037523341333302724916206420162558698090574294452201875177525883073671725484843208977456201282977370342630396672031114756945107083372966770689862534560381385284853742328908457079881495983275940774396245518348512884909298226768587746646756061862341942068578180060011506510709169927136736997573374617691676517959080944862787749439693898354022502573570669626198103201661561424593947213442852443577660524112396334150974329025803529088067813681388416578125998548714792388722839157393111200731148396878733068933834635626784669418500998073297881457541054704787262667176391470189600075127866749320744421348446089992512038164806845735702513947646718265303349338958334264926466115643396455492164139996151884353417733007800162442500369759301771976905869460771897712117121060603713933822584422373157995513843742950698319464503580512798707214620444551911846908143448305617743050776177909297648721056933277925513068033476714605802818679340620664998688940064509029948968686529350473223477104481294341355902940802457360730922675123907515319143951544135613070723951354818642104319582461314092188179007071822953575406880252517952136808837704783128846039596984642102376534224704308727273295499746225138790693868499671767785545212697682237368933678618745002704633609331533216740859053778945856020365676941900730232616282581423829952883236881753434936593065097977442617560536778557640610696461304153349870007846572339796877744275542451644608605428084999902313504799982029926428818087089396028414837465930352880428021583377616436005322245726877491532949556223064996725633853736089712309277316031308764297344604222628863946416634643217517892513135537463620773938637136383083731700438279591730754847552963166032553372226110478251806218850168999267882059821900528825938897836005828368499441290840170555763071771888171807651855504632500590706627198499056874285800562986502778798272696702486475723321216496827865601343749692909784356532147503064123448535673729369006183765196533866017201187944525287722786253623581168614343789831392903827490447174794465608812401668171942362729344463160666594831604494149142105398591291796300169796723630274995964615200414471569427068929302620148822111811665451833187253607563172358376471167919687998141907224151084704806006600921650866929279448704133126553816875686643177391648658768079549269534290147083138868126737729008102133287955369318774647244216732745352370703343898727471873811181279362548428635213975516738942029660443555980406816370223403543542080941803814614016355000586024400556114425555381145868772140635940182623218990110468038845725316980073251668634583184325575638132419954470178956377357855870145857673529685866187440576171207838083260179502254249676072476699252914492500128503590525048670219895867387036733956153143978526214730292141424549261232904559523108932959841330202980961595045490352741462968902992914814295272855725161754268939750245522971741616535694334244886305767483707894487412507223313546738081675746999062513652641411112427803218197894962656976831489687472738428399797696768560526920649114555078670598440456654162996536503826111773640407063376145913834186752334690771311101815107480407508987374657606403783184999037020810966784903994793847279706033386235693759878082372075152617910024735779172479142764342407754500913782410405297139031318525189489441158008726915930218820176325256446367267003224611975560018273525883734715354208998590454660687385626831608296882954885479476428019709129220209727276951706572756767396318100219382249342542558562981507561306731584750103363190622176447515571036748243360888856428745442585081392898071892858815511166269435338706706919170118998063357505047004966328217781654024535369978049947134593373697218127523311119634900230987814480862786362490490183560403283924677053342265014012915725666477042528351455884465198312576399471628513110696108102138309832201818574098837128779188943758352743887168592938324635046950582465169432466756247774689956713485997731446832001613526414116702873536205545347251494410505729327387414694446657893052312931560041139693712481255187574900163984905688919771461674726106619062798947991583402373423752567435785669473081995160543502684271672069408267326803647536726092339933780088646029822987381469060948612376956442267864582042021006332762013450476783456059839850165139874545640765766304325897670431240702758214060509445843431244678504451117597486054141152597216952512009469169533654837560228719725465591569650238465417051368441141125150296483867738106590374028528770321741232292829553382155459426732696279588136787407594941005583666104216665762762360575657337341952031076247063922555865676361541893043545671497349434458375519149100182467548067500257571304546658198527342482586115336467093261171265332196482765341364534599151124705452653312679125490691253868903192049437392134931325888255107175796569034835689867262601936987483792800628249932328692137948230810383816823858410416169014566220147301609977814601312001000321478274623400006500076623133163588537023608574313388914209958409362012254143550469119009518576696735477031491698141930797382444279618318763192381754601123366339021286322756657000758992314840096796136576211259305400696734142414330484153053621942656077449002098058178239097808853559524423380441594084484972826613723441051399515146537904592477801838703238475101008698549019770549641899074289337035109093217318131446430337399299189772821634448396356304934103343605705166612065188986078359942193522043882553356363000000471573936308634690284586273712277473843744655481858360307552167639980862989888059633810069863682388488546217101892248811550129649119653850571620836846024949388681144783916873641110255446044112657424371700375873742111265257168488186273499351354698891653684092305048321510815789892755005414276994840254808078669820624219008822907553037122135935233715896589557639313567090845659334358449115368140852010536757897485796331684133941130257205274162393695407359566419043003172975824353681388123661980925043898027655393031195295707197011204042038010212521863800097467733089476454786869848344559332259699905032411579124789040000171695767574099107802478273585133894556610417879270789231700385671890202527730051826269283604393442843258904129060037034104452628376207807843869987011214055297139433674579138184974478502576458698535417387138797344852354473494590316588817547587315828485785495553573742536327368473958056452968541632013750773050019454279219941895453607243571462189731358589449653959672290546235622616874537350808499194834582681367270876472709569647702883907846706555925190914200028721909972772143957745729942514873143031005955295296762691518219086765543652861432018703222735228681452334719900031102911488247798104247557891609323487673716426838439104999329293783963201071914866074016263196383978654948349260516687247299016593205445112097411096475155355694012256087676438350317608510739107020188525943081414254082531846579156714499974153735690147148068564610643971059748387848389037724365972207837614714775951548125589950205529833480597672819196717696328261782091006071024009636324296715220269837701277519350434574413781417468186398108529060495587703742236467263565548408099883191646200039040669606854478361023322500395649662317005878739751968743359064089432219903040492143360021083202080791760596294282393218084334965335087554072885852586626444810596842228286583774439955276063785567149199273799685984186872979848672447718271196828222682789917605218688688514428811469962220265910307670842089971337351793314322265786830487723665262677778771757256322494950811146699852037281377447361049266113267534280233556714705533609391199453103211658196958128496645965191873242984569649863439676139917572569631548206225291913026604114021900302297365752439644007241474481861330809106111821524132686461309048637974270733628304766378144856492397405076257176243797624721102870171082877058227422558911113351771105695106421507833096449884247588344062498196636590672879437629988179931480012757333981294539000198573173239770738782777325641349106411697507719546718554606935463948752646858568666259363767674288910000511543308085006550458566344767000184289986157986041496449236248202269137692133740272460911781208932158359723705441088875662347935329712619365801915219510095891984844413252406682776340936793802277894399629419676136567558359759938908141122771665864241630961615460768166857360908763446877823144083261871282666454245006709543446113311153040439758435907279190135017809902525931443106149419936318614794156769233702191917160372167296091753809279562187547005781583123350797719256524440552936679043341905780567436334678292824837940952066454752628577384556611074915116375974122988182701749317431614642606844641301396666010270921029637124761228910920060950687547903304817815071878605782872855539735226803133389379186425145875806936506093652356688303671195549385412082191367402633260708822083157506175318426734768885400949136600434037528699967601945228565862156615913354270853477413329507954804717236827621699494576580652733195950968177928740372664350300455588025496337726702224982721510153197020210116578717020287320275166360229252181852959690381046690718884930719480100434719335071607395398826850603308154215286436182163113634896730277611051500663524331075964791393853617493563037360269188834747449842804822390392791716418340712786853954063948883300241966674821932715509701348468757459270205775933700063118911934379260651180845405556327286285600549884935740245356053870350670504671269139744047058613679326079997581576687097642841658596954460505383121048260732350901782285480613842858410520300894869478812711614356259156531894700574477353250694595495832489270762045852491106127011312696108937329343496119527959869659838919553026680135709664644086981431598919604296831989535259217390093150741894670215922833033709395019043190267598481089921827504238135971350459418384191178437175183189288726180062212478168552110939882668126306707340484551138116914180281203155553855289668309757406821429844247325822754137168989272985799534648088659737218384608164611497019549302201137087997051907474150020005977463689515131683986895465444791146851815667113490135740524050861715894804775843646025607267030729131774499894004671668178346126318767222738477963440943568706552489959959706635161543483179555054651249719401379521300954588586335391108979798801932481040358575532714522007525270766943185701566824675609449651590144783488894305796215941134580198552565651518026285572213102872012004297015488553252010532248441664251097585925488671577936160214658454209243429947522828834797113481189869253836648377452685174948849480157246324785183547340393570306964896354594431129910278446123404051267834141562814766908425079285191857759416042904473619028090856870040699261966762534812013563633979566174744227841183926201715036918243870171299975604352026408452512613090901751340250138409558108726281958080572420198397225029315092851007291037884900225926119335959029914023659159454123845113628439444537149838133346096159211938330171860921794689674384054409393695233778393886589809410109499384752809177554895770751480262936498651798019525799562550348133962090380086340146396203001288012655249322667759195223754388393996729197735069503524553632734438499472080648899082692785265855209876111949783125088843389217561151649821011688143162115029196343426657668879264337278590749569621778261830480419468917588431317212703617890951678652714983003292260878585381675347129739552409270262284624280135662123080358174353998345283385379326071192622796503025502949609981442640100555064447655260790303495770777994617831662730849807453007354919718222030765518467945147582232309509114477154052648332703116815942436491049262699838875083266133383264501495107209684151426189208074123997658570798498622535744672492711536115169899061552592533643169769100042551649607715262150611927790723256552501972797145057999678043921990466801188029822488936153040504925554635089478659369608661981039700240935350428973122922605661707742923117686522384640668314338289850229507862382807745311905575246534547939978127028026304475042681857943994187131399505162146443220076955368591048563475334645116539990700324533097038919722949931900561738739588481778553351420284205223873664252870112879905441371282631251787348152408668714077778373668259734580248617122061748943269268004380742782781642640967702301166630981347113966262638573764526098854688388558499380258339571747436140137664460946624344469857711850682286957691751252776525591636546969615679253343327126983250752788000205119773105984385002225702436601002526721616233681628294913859632796241838643697142218131417208504272777629763588003105724687379693683733644966298771812809673029145994895499932254853033278133014044458260427704905296783361746059256762885233952948421139851967637940287751300828144349992306705283038266356863533578150894054588905681420927668451682175315260969853805312162420441528832074954942316158255654495021479047540667409892434971151393488314921906810237159006136757625610024201810520451659256308501487693720762330646347712817264506985502962702915076648799013067486475950328708218218262866713276442498604054100473013895896521756076668741635637889394606810446308503955360110244585232854409708554700034468825374768309381524105146551797382428395211002455007685915421970118757246274635972747180593435934177609427468068755028992999959481314078179505504356119186525909725733837936016279936334701661618381898732378789881644103011253595304489442601375349862885549885446658365467875515342708419916502279940877205420955027000356031976082405558414068115163802176273118088665659416245801985943009898622796159425461512789970119142136120412109196221486883534346415470144754448168570551117864565682944615366525434709479348596687548508735971898707891047355346419823632008158566329011948055341053260411681891601152930696931172847788063160270215510946195278482301966383158363807618462708077834677872085770996331832388799206243884329127018138572739943388176372938235985376183174374487828384591128455227406797519545254218213965867162074347915672822669912823751749184957148694292698115655991592466134212821373489498168980351104414983866710400310793228015877144953469539064099283240011997204525879739090063807588415015357008688409765366376627166596213289785019006028360785200894699190972077689063001384824673325350356296167895404611152329760180996310371314958250076610933524854947324612266539106497058940836875875786829028215751694010919943666616578508134806449889235805072181795592725295120019983360240804128931075344521965895036535450715224361927299077798721557551367296237877947232553281404732039563098579515746650749733903128097778778246448645619703295383080188624610370813781076573861091144296081348859975768226248471965529247888020501081444189345053197483242444263840863000066910481689005149412346634203901608603902764822120218043592331846450393108949916333928404816431251699071695041909746608578333492102249952786283173989901833104286019724141800280028959110306819260482521075346240780365310994979723816788221397052385657169130156391116143902234572048820885663078015292916536041133033631433191425956820778763219909568769406836973463242133979333432930088217239293766715557711223611388719867140858567334907021990075276259797956675261570224704654820358222496246447381006616853681584663936818716796504928962811986054601570515282566100925883666930217669010388683674504194338455791923875317211779188158774220871930490719726446762436576956466528527252416281233787412358171470695592314991893223858712862290666043757721563424172269578791721317614137567678821209095254485415415220617321897239906527403178468513073425865414287181444357829218210157299828289210485603645576311409388085015211329071899795594193311692618636078365004657206440642901393881323547881738796929817744394588135263291806047782596797573697238146906287433930358430872147487661775250944629324529052558462574177140708880440190680644927871609659759733714427402651549374454000133802815645175280272161145172410415961596720839692202365895319379280222309358772708342831536605354850984539052417201560925462680556413956016643756564567288788480495773266832559249025954049526148338938954328753740621633383112976763451813484066603333825715223324092808611877608198721859454104509491868424442492398299816748544482161683184434009148745055006748301935218333799831322348404523994438713067536958324787809771416495937969130155780447334345259448689796415220159819329597964719341027618176710365146972044582385225500001553298740420195574959909185004670482094028126168772688119796321291693645942225410014660468125907945247480361165680996757880679702915222190450054870132564827834272152168984294526933396805699022585317117694318350058610138334876561970607632376525429176767727275863929795041364301653815729747980064066584173070220831231086645978033643146137406574721260469522656999056291374837791921140406901255506796604900920044891063033392996483365198474467226190639399385055929568786409133686352341136913248374214956185028102454970439943528417375223129024551532864505272899617026986862617843597841761940552271831023094334609555750262439901030331326911506629199949099056687355363768360503536408549410214531684123370531694103638385144957235348454382640621753574515016996356160186464818457978071798487156654399485277359620238380319410833818126255514692508513872817408849474875925728001644845884476440853363826866831884070522503129678197876207039791836091662688288380096611692995119226861676992370427868935596853085698169911486741073002477477832915565260682416764768231019383905829943224648657320618289235935510989782365349956156787342646170273854977616285474359031328730598543761702431525918985997789469007792274847768812180529990707393974976154093436646782610852814853055142583906610492119484942276815247747232093987292151903323804392292084699236966964209655759488770441424639787606787870619198199397424227323800908391222225752981393539641406082798797945261362132054763612463687084946818611397920820110591400029440663139308994598013518332242992563418815830830142599722687390793514818626255361526987443897665744731698952722565025831867854436846958071690820111934366566050652730797164467635652980731071487828903876073760208622007488140254613336246534757822370383455223589167097474462609071093153200496858214438453561978460588437494480360870308496284741035087381105784874169256325296560354382788040940690107691213657028723273075709135156957627270166336541913796137447953878694511115100372203048533228891387936695576758794891647878399992571438469468394190850759770266536273908624003330308323508938747870639365497909574183843117450801448925796417352746175690495956698500652070215698627934024232927021043443516569064307171931080943347005993655741846267468665118600464132944516468198526374720953281501484816866687229229252741603664612461531235157319654405251744618227513262584886987729766205222067247123578882073383723274467321961993286028211867633188452701342520993946475616877162926000433053352662656020789263464917899505358163972923338504646549443743360000137182321909690960404723483235486022626223189141719451874106591118107572638753858078567334455105000498286600866858300578590187266967389442730965924006422999905989549851269002446909513945142096263013504119065718834990658810403841542797709210212123850218402509015859562680149284885948084239502619712631736983907644126195066429817374750879003730534589322566265896823142530854903894068842263908984883694716094210225965300420613947577062167717081510251451570521902625413785480325811895966570264340849060701736689927979206668156072660745685037014556805888547753300527018848843578366616719686013689620573191970038276247902008336185307968241409074345223669241330827561888331047970471152685818298073596095077272763533060982133751703861668987698543500701146604938068622002482470769225023406643064116678019327640078159200822002323598161352823535868837622327617743704576063235585182069918731966039419432820146864520714469868213042300798510337702581368984193716644337916966696289595811852955723779690792265475401589190926753436605710166303317470717805213168123915895561263408750845514266959196569714804332793096798752924479607552623509574392906594001568123591564301206726260611911738346500016426868678963320430976208659860599500287551775075286275176021717798966511266746657331940862927170156901777867148572217075714931848083844428139267890896264705828542986356402761286686599873322740218145754962856824772173890912334510765264359236498508699592709601846419562074876260539995407374186696134452497297086051317865840912417086327249989186368442180697370547807262062311785515179240750787382795048956865695670912062715624861212480040826374941684663839651596365891556862380327527489299460317241698749511910460366549196661649493524756189238013155101819748693182768714841999398414348687609457278007295962331903506793014947220633883024764690988582014941504260070607073566346746919946238060514278853160492814013603960110718884883972944814693396661418248379647939262604206737792536513386181249023327275695981336212609730412105897561931197806433505451217117751613494763035366612420023965038293987183925599000521183091263418418648055288628663559142579474980519911220891968958085727875153792641416023717192248817349606170114376651155586493144108087586117658882664638805281487480640979467099510113853728180022482825035834143242228149154480900262062254407053465240639234145129438373456096141266266071919887636693228687926711462835292169520522612634573089814177666573437276617644086837104960640857468467084236080281034149757391190663428060887448347130847572980944220840359589893485859537172480810178519086268173762739053864438324075740877154426986522447997714748399816600765024154594019221907282583523624982472940015224374300719054763136198834046349227755440808702262904140415084498740081619245421700105303285012124568295238333037821545776807197847847766147608613709372946759977315853647788402150015142814415275175666353081664377137411885765731503518300878273242871014703636155732149330620979977417259008143300684527227559760873576732212976698473182798775535859236772321771602956097836594848799511060117682047163325901890000660997996379937856513519701228306795524264601330723045590518667631479927257496378528759563830180244763106931655505300397456099607710439205908849834820571856366985376503667208776425814278314555674326236579198076681007780227255142014442959167879720823774880451063363158168154718305895937029742490216597193964462279857606404669157662564839035951511078722182602929922135641356875846524387482504269766593500443397049127428115540554075434206821309290778905103999747105846097625665418342568582836796785457836031889881149687563542447929658097334200552765425982303556263029218284494518220625398381700400232771129225818551651461196249380949153018851782201697349945218186941561602053675090509516787854947731724230355117346941053471483781904173091388264738912878665510845210047387681425300096981403854002068563240327709619560397124622257730974104833295272836218119342701036900077752528268601136564579190961874747882111502380537302079286876956751922536213133278344360842204099958716044101727375686553944090500962136825860323833868707201390174718579842534310936573156966870959947650363805487346236369411841160048442307815032982501023375085370756354086392765873625595752417123324105609456084147204498447343288471161996480861565207711311394255751724062031389797255033484151345867266438370940808523731403568268306648665228384078518509608377285712349166941848668268695287796088045198309278519287787864484034345285571817287248862063220771909748989667599241959644421445657673084521919465823822433230235830394216973207020719878767231685714027948377378954037700523026272858441069591058911758689635509305239855676525527727554006280241045168120353755676104140930043342732896232922612903220872112626279258738920816378329943445456392706841891420072745371932585871475692964370105224690093613018799441164492517490183289473648956901425523820375568517990353709805433300164678107666412526964638046282851898060048460022145204806002535786371220723853904504115836857348755689607470597991593379453099727524223668205178331987672670249758335777671948993123082781483303791210434488841876030873852685093165273047591454923703686570883240166848475493694809059054540682736027893645327910004019080101551944687749224217851076329199534759606227752346676696846520004580643170765500111738113025590629354310533207161744938505382452746656634861113730862429370903126096297595148702328166655271996884041876097838266306510851542542802586952567230775192527099833525533890948636817223889645696333522437491860908678808708570608397030711024250881908860858955938200891039957219704717085792721937501610820232739039277992383681540179547274895578443691183944090248603586714936777265064330631627784474744705476952002488622705874203544000254722974443065275009253091737104299144339668467548428370727478144490524678621705606380920045074123060518800155641940674972219915667863722103116210101077709925172288481856215752374432913660720408434152432740078520267451511147583989289750140181558517304263355253762317061114942455596165836026953958872361342421902205254347542239922883150899247038162238970103567857565830912921022698733664520681627356687057447682073665762334521589729054469461506509252202465608859405458488343368394836215390020785993275129514471480381417019826862320371540613520042240306412848235124753891061522436011576855135781082670652988107338041775108360182821796802770193694207339463276060561034119452095359941768391500647265913247661356205698023184159855618792627684325103149134714277458069790160538338430637230176935232294946882408602690141108445637767668251194165871667462079796455592985426447944991213488693016159246102985260345165412108465249341589541244718797668986698469552062240192546052955058540754553673273982450266828838371569365903576922416753697124955562208894811027544608282577367509789753468280705409969557202438583013599712209863777218242824462114976176421280729095625422956599385565597574255151846714593864731363642286427754121639818350996662115925059701031974433499488856499358958989474823754349354755906729554313274221670195254214037604524888934497631825366808418126926800535888026091034302987593369626940614028532265648335828276671964646815597594150088943751553797665028883962038373555622978659623279866145295377488421704721112714136143189090413488103698671150136094916798417016960880374963014757578249781341448178450618238702733358297475165712312452034644159341700467281521470021748325619889574668890456575367382929813608847121548712432410292272540630449361905096711954676396212552886055675497181467719542335612505839459285453750625774703652900607778014451601946970196821120242001003853202898811100014547981706171840444837334147017914916185176778919379122761350428862736381490303874382196637344293807093577084516965093211436308004008289634410465821500830450620673313804245190279858001505692664490185512396157136084962228043405742653502949753529170159759170682890813249521032821384715920967479150677259057503815027540981267174984286723738647001541684181426628767806730759387119442592144684878334400721132466071181859603915300993038151153864260096808875470295406662613572838708908989965038044015743415760585152379371709202840861952028456507511530407199496616490993338147017075417755101897364072221714516432170488291893204525953569326999253420118797173768827777110407672564078075018696435458982273876742556168099952916570759106748296836844233492262958607278341613380552616134508919813498467425253770159301158333605296150877162069192984287993154582771901520858831774242027059146669610620335136357990866381513214776299098749312724859895649518626848019487786652430711107165012430015894959556266820467348460434713097735811369962645218054910328923109724842784447483058068605726760854054243498489781482444843694702996656551109686842433023914616740628676318207730790616555875158975165668139800877073349097426193057480100955295393210737755872105521835401555535624789117630551527370879110925900541344995415175178542718500954879317290081315768512556787703284254120317682325903450030011499009484624881957766554739603525738783893865352373779204926824176777305370564240571646035341486842085660757613380015227482210067690723232780120427071773354414759732255623144801127820432496557560595374054037220127097831896216323695724259284973021926098439830506670518653566150791435217564340610765135061999404841332107219423979272376479255006652519451855683343612366114544109157534562163331044715241436103028801709650556009810364092055382036392664684652308861235422488465835817733194164568470258562647234095622755921776530548416099693781582164295372736172006600325700857540950865039636418662014445624238902980635207707900912234185380171976704271110103243858811589538156829191246714499319884439831707084074353385495947675656863293070309889426000857618987286444833762251560974215087988565320632591921987862623343659636034669725665085370712752255056419409738792869834239698250789365054726858304804114065186257312627115352180916869887386043968176410510983359012063464619068640510425999078956534202370878395234307413651091935557583264710527282003302522182468254794589509740454068609298920799891550032344360445304971480780392078325338352550072171284870820291953271282652380092831887549463239082980863607526180131260836927834374236153414250863823064762857191594375896579218719203923312812924717841237145021222650353760741818441874184201032386115917947409544083639108081113059011926760185731776406926074330911779366969123636475112551055446422215911395633682905073805593694264422070711521669420149598350223655320624550630319704704011380950148051148914306115938231868087292942800078959056565664419341685677454523299692481459466395765211171046399193572785420859612791415719899618375710673579935035812157553269159117205429415088551780651185443399371982535451764487953325025526327592168578053743632521482733055190171558196898407163812978148837666481654914308269567337566370565930766579409833714774488868868764831302189637624638892815964400456234046811667648639270083169859596159002885762285666846003792329827747000430925719967538758066640331759470813460335753616380134102875914666768225437466447763103934602803710180573183206563821563200758025012828671539026694549210597532951905408405237505100201591164504954136393598178009002516492460535902285295301180032485576498505120342976237161075495743126581006894824688450548270136677293525584155618776409008605387120705367123778592722608242945144976503089051725213864894083404976324743172798093464294414491095300033773069246094958586693989483787399684526327271745678935426037452947641321101017288854025139513151345754393925767933841998360133547839522366751703458912163180149964484553812140522695442281900899194623489652027221402560607285839399032409802689183025663221294075894997006623673812412381409997301531321658436668024226975838835456354400752502473593461969001883246591990975903303360099000209603705881604272237531888617791941498108426020170281126334749969124060966142273455114533625828520043193273748039128956737001009052728493382439205476448154130524232101715194053965400342670243691296133329927572853140694093265738134240815225352873667605243229973517489458823212526779651919854191999676011681937261851118158553556275771489971699331070104807367991662318054238986515430601621286009799778012897980722200273515734888636531751392849580534017801346484646853669156660383750564169298345746881930497766337515491422646429753418795187977948068156124871055161785117498571572805394248961629224813716774580796748993986250686889837410935205505701484422089499971733566557224603301636467018186921820073681654587246029072909272763574471613299249376614788057318886718171099070038128199784638587665847106331512400676259075321103773434803574873306619053663653334561915090787830046824500671736458433356914599543238689039505010260522247910596369066598106340795276669904929944804381304528110983897154546126770338669353435352999409886173042661117419075075869009913059949374097302560025113666948887946866959807443431119699886315652561310257522866787898733645237001615966545339004960510106444717391523570666159738203449799601946793474876695966429257466904753608641469804920202059472925074038290378583412181857534883497188531056254782047342336653661648855249127577475870525776239421473232786030407296371056296088975518628220468994980125012606522495424728555016178638641178487357246376057881934765233888172616592104693481373159851941988030272686055557517697693487241964687135798781120834367083946239391062612935731845744540186804228383997622828956196764036955496002234543360783791965794640152770780028846670946918176851442081566366257762763518740068019045578633428391619866927153169495798921448879011254415931028974089579624399987606549688264289186787202019601548278967275070964377696284514739682090614696532465555980592889734256281024438498056824756285135478559405075445053251464740628996839095223904096658734420850845860386054395237997456705976374400307048893686130215879849170516178124249584129663806618342102783161234913316760400427042230482900232747832005723266307042316131439791177377464457551341618817337381020388189205123529495140651870915941556473330647623149179246758637705144143190790356893439510519983403797966776603264096532553203548407348469053471705925728237059314725379930419439937663926901564883426929335818418912903150795169712603529512168920997082275334292433127616011639477431082981944423267597535746926418278376999109731858974542860506949085085444043646924846596250338650973865800859002429348624556181160162751852371639657315566505118109746049946519976240481013165794739257571445527510076718141230169516955449938060878773768202672329716441431149839489342722712996310517342287327281687523527639505264446917274245841312818382719412462388146833725457405658688012323421782435054121623119078564340476092284549463515883659015391963547958862487813481344095010892859953597563150535364453653338917234121563513105809830670128840699493928568348492268993656350675182806024464997714824709019285706247619545496775099117815378854048650133948403070683545543755104477968154576142609910361812280125464789692274611839996898655436176469174812295102203238333617731583778171290508580909955458005569990763380439756298222136119628074489444928785004042876693803047689474542722437606551067428047503277997075063087869923035983070932544655271641014185092215918060671146872374936349377025904254042111789228128374638212806451231596162973115581149332669534907038035297185594006690429998416816525409525509011328998508896509058696048333362542318605159583837341651221474520909308117793247093770498887601515949707145586964243115823441926580674655181310398650354116605389850986798199165242390948161757647193353200533657482426569992748936634619334230285133615965233322845677232015345899788413223255523037641893562473283229495124613221417752778782705577766949270572279347766456006440378399802571344435180574742874774724824757076350280307443343087605873561185448474069850656629067405736746583413045546822434174181980937892408844153255495536520736210596534907298446941500713921919768685993544964737085300570335772021213816382009064930412853862930265703096435692248852698111852981076905899731668751558096600492445482275804568590221668112310947102950888828566250855854618466963786683217419492086044206505045016075828513241385961474607478724588590346901095437977230888707318643909091735354845798551297743908167190123164264744031505462734167038396003694543732734975118832603862091390523964607122232784322597633963861239139498566174752020985471417888746083844237692949149677019689874100806136874408359603894578643838141444737406442755087738467825845713021349894711092061475754961676993901297612065137611527841294921470869322667350959304475206256550518649683100111923349608465904280640737147900192544904214675270122473704817336980627394743542568290806205488828145381961010827026444381184080792348148953903997978433412773306361714423950129012978051102132210102534727291310160053814001379866067557126579649672766083211012548797189879833355495013520662479077438910915087163273570191347625827122259469248840847248174193539689522223759234614620395502195909816053372813158620117073538580568531691271519212498281899900437186470107565751526627902546569084051886611805456567165327273195844238961671184515638416432673690740109628098492259190670167141979769270893011740461674551113824953910363681919953114128767659798720269031810258854005882771024026766270868685061965370706247555348435913139002006191025135290921621828937227919882721381394941564188848483622961356365187676548688648157338469912329766472879452016379753775732006504423640226776129247725639277370616613760699335936162296226487649428839165706836510319857046061015030836579008798072536109838339310845907366896455953707107014362832896487418213188131368729520369318647250857772858815465380417340510380323017394902608833688674613004219639548514717744473141327339419893216220686691661014007925408984956256073469846351078706246382203297417226006293580200874142531447309118011875421119795980366919396487877403977530930566608992204096309569418016095864514746443080319577601452677212712747359595322728942140951521513131519777476803419066701040485706935672122057920408118830476928427844758586498936776453576918040276171560108260045816514470143275520392223020470705947321113268429638406702519340033405390920858684423580396584469542333118650723365512605291015658272590528769294329412744974743752780007632026703563564652537536106730510088997315660427318472175253525007224740234903860608454109549019263945081416497702427479641655751187794288938846016316124711613318094357197467028821859693202374361396397840438075084358602568663924193365969766220696107079872493121016819278815217604785804335480247177193580051982656267111271960480225569374270205982191306910194948338885578153925469795128629106624130509008238106922488488087260129482447220190175794193436719593529224240674203000251887885838237602810118210656139176686991620680567256606580212193306433865009848063391819157345051320777644508630982082471939035913701101869630845594708787653997076751349746819510003940736698757343550598458948083103383676389908330940795057162314238703130649467296731048883450136484491347909818370779290085332786745056369743380989869625534036330537762744690291906761666366790390355793139479632344710361066802770943978751071068406254935278354330114864168934442476351378153131074792351278898818238599004136599124415740414336072750562864188310910020670554714387029752811142400294317516937017882056124213560884526895565773176644160193642094460193898857456747896914729059697587843864844692541015494059702066726656873701261197219682283126529265072115439095526717536343020588928099447910722140676751837163777105993974485592540904555659171735612759331092437879898963571299658020700328403772220920093477249080665286882232702399709419791879442478173495134270469608511750593029343816259556289758800176543262807730559971166430198059929360787597103319606402386722384064212081350244876026994627111445473877690415274915362830846440658729875819985296295640162577635966490810775281998023753411673256438656106570379218750472565799356120189789723401803255332223644516863997168459371277255662356763891352269763635339369702203440509436638325079253848551474328193558722650817495073422263397645600761637409362025357739124516133117426888703939154295038465928946901016875566670749980269193473846120943791029751343858937553864745760973262271385655221551247672894858806147158828019150370880350389078783739618565129851430512211314640166612057882779370581759109455861126148409963900718541705955657917581336211699423805076493107880574577525526448332123887558011559666782261816547366679791207423837319137175072243124593377738909699842208586737504121927828974151545400494821781055339605354871860019857463644953118571430441209024974641930831050570512599422724269524382585919707416896532074304247069524609052539347296421010949099371462483590659852412263956681066870481335517925861347101228911251548182660104946724566697933233908146901104831511495528443012657089850913449500318560967602028662310014012228229981601130556808579251550438420427137619057059119012901604121562421897326507085749546449204412913826233293792609850675781186851812871677785573972657076108865003771006438270831106496330004650538963376042965830834649324138105168472211447946533014428244424924137627700316940505851606773479821227566410587509247055157704950567315746051955832407040838017325448317862193168997724433178169278252996343892721766203211269485309502346283314744576658235518094525612949308364961864115780924817111810328554042711083398163462974198428819507076100264968720808379349613514328776166311914091670506786886991535373331461566038699240629334360352537912972288325709763287468473115279887663500093078774029467537345728663097796519110097241602736741972704302375057845576070989034381214229782095109669193189143573241313572614111896709613225334363686907430803866517400663549565449681217343414649580696276635160296620623465786058643924097175913269602484669931806605397867640470415991157540508610704236045799159177436858171955076689780151485582158766502093828276234841845350949308663700718372998659688658487060669290503431449759718080857817630190932314764630432156362530872735454927132148203167889921298693691786793291572267958090598192195072383668737591582322014744199208384208039963300477946813448726686186756562051040365662185754772518947851421760473594336598133422803524091947944091193780068288858034950658267455485287602391144003833695585757441554841933783170520184695133399999491082843303381801609633876502538280435221019170657027830329123694784364307711971568817034501258708361420143271800772995552170928277888336729616114970367671100294235163220244650397315646506098872734125538273820143462956894067425047743566759595038590358457276148948725221811776090889873102389033983677252604803194440542761776197943012159458270602289120206312324584651439199667228965066911511464303849685973912495046640746876373064623915962152005197304177568958544299426008821482606127445936907392452573414151770529375314232985033670525507458542577024798732741093896341489639597803480128536557880920227782504804016340253490500037104500656880342483766271563598941426773252341446789737869726723407946594782935901888875688122907498511975178329242524821390755010308850790131950502431964731219984568435002213796697632929046922393454882529771509230789159300704680094317955653777794255295759447364609756013641010091220351129141740909676978247056912770836192569073671030750985554417031151171764010238517513450881981212279806044531484758651499075202568123908227646718710352433393458179366084353931276411525684012558315571812715037901653608806878318074503771867681085521344943065499944488800254502604279785039267639376822869071029885048978593713548609580735412694865866178786403134643119656950464988633815798835667987220506432951160409523311506655751025198661445441500270825124672385730818693819773603466485587859971177762119764375413539797245184798215479000622017425693676832973210472419904337198340159629335068937018462620739099770584912795816389538147845695019496633283488069245340238622311104811468764512862752503560119783728550174628338464038452132362598578348136585846833718536269735199392596127200617480654966628313055558455616039556330902961018603893308098621056213904505659646682037419622276729612935028207357186215284104340316551924689020516700226928239111966878849254775496187234720295336203001981359236202329379585525445081695048763027459446851793088068912596564953714290743237818029767813445658912795287279586810062029130277777489897593131945917199948407476176053788956712891325938473579585302096650434255782566582323301324848502178863962924627206479572845007722185406975239250916804348961968231868781637126443295152276466020862098151286629860852280354532651031828545351030224602768922527772769294590298049344273944037279189416016157543347088394114959954246949548731866411797339234952263484676440987861908276544856371293007384526528611771970106440523198454295978594992802286010586176347635522130229624834477748374752577843320245947876177111978433289952536848689781903410153155790174034698435372014849124193712140697719487822232437611209800029405227395466028256413105708562637646966609022892989821664890907756501530995885864975504036900180243344901156211156190154131668644050086675691850715740480195369028756878888441753698134975445093399258311740142451710659345466544392675614864478613677209920359494313722821312515641831548070316323527108245564699699635443679370832767347598849427869771763851223230449216960413128824386958631205427644738161885075347738578257923161070572429139310598666062087998979682128064044901011315408803161616443888619791069432477866756533816290220180643407226383592279056810391652266614410393204695747985607963750218139017368957985818919929578026423644238182671406103949436119532169777935451804022223478909196209523878630598098843253782491039644866595414631050653545142482411870991798290594515820088296981810084686617797154047884509932466411744388024426773482609826304158898851498339648991048090854858636594624169599085248719076290964469246939280653521331272157075762537726091854931368546451905246948447362604384038872780555316035995837572690448099844086688536754458536337434780991500742594908784926766914255550620780839116438362073271289015017886280027504837974037955234309880508755646622391950775512754502293445026261452284840777617283847122290684504590383954931463056766804877877761244059245252859851389127175576888264121264895005088241588603331702716461327372371590152673870808247428788275552427436168268340713222948834747772683309712496801132506497569724445270335618081221983531408243939219418117700730102230889446912641398495138075979882380462478713104752149281402252052011840405290417509217136996599695153722393987451938124277305863286716418602983220642394319578832839292967933374539116708890439750066125062215016804157994983555328207070722813847485343618417100900115676804711504315374129957563564099582627429096118020879933672282925849946256051654482273957500998811538220861774746456264411043433583618679489604774236959437567591666133196766194303421829040995481634303179219264481259811328130998075176308321311687485869493280534396195700861715460657120506944986585747275732321277500104893747177469946621352656899417242681576103933466318777378820539106100001431074279506558764354330773442325021928601510225721172139013750928220111508195298785302599849110959852265315735934736831805782079078922077198305642509718356450158888237628274026039050507749935824087824970085643690360925845016638370524219542085577643592980470618564724625710637267168594472382303747291288678711653984121551535467383935890227827551033959551833579913591830694871879024883198696672152022964182612890540768640635207373626217941313485038752764064762666560411921628174979933008256533942371452391450879195965597055687515589550160731098869292213765880404031323719979211868738210025626555581881654773658637608559413328959988193939828211310173001600501989640315085112767838834837971756399943401516315654315891905064255789978225933547258403357846856456810337263674092071436589613965975218316833671540856083754873948697986605763726820802543989683146415304682835333649431298799688174737270964622394722416305907827393630981750228678803649417596093775080562779955246637457238355489754409799715354883258959392885148428667936026635631798297607090318081788518001543652059128808747439060632968286723648547074119070384578539332152558017982465006295285938538031840598386986041038433344259657047603316186065742537902061776780243899181186371065090823799766684501486542831896271278131289012149678392154683530597744168662910415403201685912716616051811698717967543572809105043121886064078723372318170254443886742847749181806389235730367677379725119502560164967060174418797315847240492803438873317577743569296245610049937405743499511571708223959576097232282599810117726266895634050696521061245641207858455078581170610942097527271801526312945211303746600134371765885194857928962629606747164475646234924879058331213861421210196108196221519020544472313581270807178528855755341756915772425418981437755712972270674942083959570671374137235859497625369625144490837378908587333316569596289201526083296834744840733278408249241622295968998127772060300376072443835445280290966397077784958279775566263783936615608727421909276535583377456025825367369169102786934182792242678165890732551525337865322992604320892103429019639713814729440954981619567555794063695868186750898763229348291977902960388168532083437389045495105733298225596086274115251514158531651201741900340718719464862920351924157514342069746490074052429135932346394848666676292247594506229027609586525596510906672805059358485936978404712700616793967038228213757212036999153666093681309629541944173279322566835161783575686768218839045896273252567515957416068240612705943831638150905097164313480998383706466816454191278951052783821181664328697726627422997669097899714456276729868870212862785264361988751800498131967091996867592057226067879354394146156491123050516094466141009232859354952808086584710768663685193828224824508950199889784932249745239000588882196384512676586976088237893844218215315854055507962935657014667304884207123081201032348627734208869270228703935670282858213234783361527455288438984568835942424121562541395990039805700941004627332715406742978672997104806361080093341127492645969415627467207137746402254736166785763222199734133653742841121811690566917020823941978179381162164359842801119340448169607255635699775355732500848545953982175708415142857139607480767690096044740621785733995250065245379183331983294902481462740304334494859299874922447541007592638486861714288160490086543840779027124718673640947828140532040040018564028166992759679188927814239395974114421814507154471905083613544785530789901974865723714224125111120424948531264314247305196213949420312557984004036654729962236722617322008662319763880479551652823661880339265557254287263717441615387592042782293394729484477776746089022135934028634693556574789290649966911156541126657720400021382404323853031851575201886886474344373450778132673655221714180096241416599353397051473005444835430360971270223858647355088234336120378716698099801670373504002430644515353563871216297111523709754933191522574145668885528710843164827046147769316626591194708395722736241729673117979274468260679357570597030436381554607000858943987091396728932011600680750491885714109904185778166833572536536094894699044065543083896593398709310138953741887573771385251948428573649721122324900224361728208725909207480301820627823674144761195815923379251733661191125826093481442003647756335975089548119061903135716854923537816561602394038408745268913195286127948002249053827064960440701460386380750440846123883304537882282269036310210305458078880236954138125845444260760294515185678268196016449005919595438057971612519834105807763228768931450059048979597097428888797003099425765291371405697844815597567239190513155459301281524558400027663636858625078594598170641348529337103507684536284619558428644006068234404093901264373020106694343485205975959143460389393130052716359320160265902431851388365500286228646139763618903891759191012542634120126612324895113535667818119674443910472232591963376213707094791923081040302204691627693309259902634119191370283664954095901899478745896215820124534998749302710322494622334105573093929412560228768954645938349122380578962913688197070570448818807774705673099374812273155393678147883124578236425916620461696391656430812368759431143726825140312545358281749079310356167314226761121267381916668250906462365030790972723693137537536739601843570268298652465931824146579035585313083810789044301005609622651484081014453063070831018191874949864665122819807576278077996397288427949078216041694047075921367707991461958033309959660072690564738361705538375608312275015243652615284866785012025749194766906940241303110860895466618216876310772121823574282398772503120589167951436605995476663554203968614418455037308950797016367800427450796656251277610394466191260062610849852653977127620584386463771534423746073229617162604536445660989082186670224685084307169590755363043801105570070020029846683850406611857518950231220645276151650130645233521106846533744102862609890873529853928528921924676392385207980075541983587890832649617890299883696112863694319048182057420790219234698861997588254094649562499188267922948989948843123525391049864600418894901142002055371378343598889042739660153081143288920404077366766340998094680870708832626850223493300815130527188067840721267101714674508116457350503972514314370002553978689893691089867436014357154276877941010724852539322414049301208252099585909685062045787274199432906394730432683193038485308253810948630802453674766768992222934506225931911384728941929237074537943455691861966001335934987059909412774316428070408976013982977547222953914264807933396854195952244262839026867239746902813808822401990013418803656700601461253943903422769141921860322150041145655951189940616772300558463621301881239980725746536500209029477652484106833957284798123232195596618491627671090699964406967733430574443723901830666424420235315122143511254608427967042150838781350944247249813244842084483180535636364981664585927883531157251041187048481312585814675067220502439865470046461331360538522889634411975182690775609254115204087262310904006399255617272411580118683245275755054720625859334508323170349497474315583594328665489059532880273724255079628405882076105035735393058796659973835307680834424921070560866682024171230847008051766637998794362366462788689225743940275197120888829660460542496661304149682166950734396830993086356458211055054726103844310143571133705404399429026055986240099674997804646076514006242915433681308082731215381876237783952863855832333702330776101980951361636028596581607689896417603816789348662437208416917706905619153982168433708107337959105336420339465203845093277178666739800485327791855208836485434229087470661407690323053502893504774325682778275348109515519179653667822127516485554111842135711356854997312954699028050879938691664181681540549013701677150568384806707299889475343663556611049085078685161796208737772272536409105058066946767844175163167022480307764760466321056848148557253218039956760333594789412073333152922238026332958673077815238204725565619926147041788774669446727500664118128842609721518685547267833069438965232324598821420916493234228565314360692143991771867533349014664464067891232924555365069841130616943760077721437000510274947581270796717362529792777003508144588045753030065985499522357736728052955005957916330233411865995032132449004366234899017391110812222998418769305065701411863371580042738728559262130252203922731626885745113918963017238762345382633394431537077315912372445019943054152972845725091326877978981253083547838565541301372930433643402122665380648498612090660754636175744223576386077489679955595697568589533603454516877311453149262278923753404981981577920948793963655939177362177264490238671204024511732105440851423692786941784148473233089403446556827727165699551519781099893342809596337899564581323799373210679699527817005108247344625773607904825656065489778889675524370019726959161857955011103735831098183633794233741228841369385621709517529739535874279268470147063946659704332477505906534889723811133209777591891149785538111440884604126438646845917404319048259608054600790414088374819936099822241606617401262234563897507242836377496203848894182644442689166887790543982966293757332090213475847526321499139705452083844965700024651704948805131686617410854612397882230548144076847009648033679932642712548802024087594597974316759225949150994706958433624921764191845856117021096138125822574374650008671682560299593868100100090428983843952293653869569644281844899034108890213765065689958376159958872074199546116774031932204865839790835090736715967346268419835016109999630547785682963483337247607988211918164909871182559094736788566716128966959851659507679588969737202111011473977332704836583658995272939022924020638621621816985139823209157313887342848274251297596862817379654479401838784333402961945386223024456767264802684343955443587050293132346087981314615169307385088402143783873523964267328427037385239204097039535763814722814527222578344449752997266351939946462797554362122789575789358572744508004106132607526221626929176064249767052648808882672473571939777465810006944242035929047074866060470570557811022591804663945393093872563317717232812997696572312908733446130631356374165879777322673634632595971159173684352526602683006882085449607670911378876085985397268428452680262730634193427129580052110280586239054425946557907182588822663121777629987362728787230397932607781924921308029567914978606493951821560540753789215985195865103662629367203369610914623377395825910308737688429315700554545404317574209055692900315655074259468898496196388051869459928513147147417497260583771286755335975995046614417066057906228830154545197655711026542315563287756358586955189965148509599556170252313858068770792553484578100789119083085329262901604162954969492531626488061820101369327941953502028949523921072334164446816276306507192232517408087038870027426439684915694135658804200118265356521418185097934328405948287977644916628409581338592816036156971738880083682641688089061489116159683877167522029998055649708868208220382842359726484297761348926792690336672903211512469220537885862699804486365520122265219713671110320125308477565873220245155062221117262212474967359308212565859675914294313350745686031159900732191887514907436454849856993153887343422814043020618531828070592213919811005209220193282537967250619742405568097054241820296099436318451547604407187117613496979654533875449234966435214836481983970848154463521244158581543991497099897690968735659166639638750918844556368882866842778967762443596392851254803389862675183159708098821846253355970904608102479994161628625392041438790781900223140014227159628324197755886953665144723637524740451546848754196371065247377944587860247503985992759859703458721976938603871337620274187090202086731985012854931192152440935374258000450145716959000672530600487252396413416363158072828812911555075167408294100744973068533467063799976399811715976882822747345421362680485577080380872880398420546505189182288683935416276806214331151775304101059993674327777762307456690200515055564039672652491226158278060944426317293492431113834613762239023764429856428347240246083852279944478494903635936296895097344742857496319615030115804837858239274165011632630830500891654165590519045490523361327624953120089274361546238564115800363170530691540033303893733987934891960431359671871337243685930792078598520149784650640151115416231287942921114702139851344128527977946954419671540703454956071878425909245745428000788245411325740507967549865050016610238139014663710994802626268181549995443293657069819886693990914112992780458261120215141698174136966569855992317632457471840745056957336279872687045962412197341716925364607791780327125516853556469535140515045687186583838514835408577073546222447808697064303426732351370454315284036885187755731843048802530093050306418959280079490387954852899347486188996598050048667678108170219099616958897739744798460206103106087143564049591271052036853500765083609235130035804234386031487990639498041790822083765108807671315368752580684566244135356461902374158395671192516898547078344835117927300450935025135668638496687400642588516406948146825646939983060416869556729502574082117709322637368389203570354491863319079567149001355876277493718466489630118302774361402658456426378405737592523894245668004981282836168531068631725048663124612147020475153052323168361948954494639663519254622330440942150439291720509201249165801806667381998979190564137424425705116572965010380819418158089940049839939760625416505407418059219819853667318022714606509709481537852283350564635296788969907116040995165117153063588076253976910005914843877723455403203693118830459496744036100002414376827529281544946021578594643406808020096202322727892262383535748287670885002093906728614751979339653543056068399937249137318793821723264056775878281157449504749435938531369017122178265965808827606220027298645013943756225125931139798995297489612261475093948976502002467810247825480702772138526549371855933811200640135360317556782693781670705075888534662152169557534234939054913270733218444719514909888524432674142069905079034794916302598470050393714231137364538233474467177878604105681331880583309335788519819672494184955279447501568285692342232147688955183556385609804545414232838466886584864589949033345323320716029603723962933443640535934274028422466197328071828832943481234622433455915780228579433428073435960577286023952998947209710593836824340198673528837650518541795421388393920220350360700579914352776375957018816306759897523473608738004740729127631664294180223287748262398442278283707193944987221694940880722172967336702904829916221827944754696292853920440271122983067679493758661327027756160723071986800334686287206456031688433756090938629504650430258791836753375403549841374393046484709713711624548163932452160314562190185171139118229924501258244176614967395898172688226351423498148729375490615927930403630927684704428697796476524512853978523723900018173831179074150747088502175308279904150146225592314829545839287706461064286808520139669988832455869380406486973851291728012115610468313606081073790392580422082618301473859333019148352686594003325903335859420954137486697533494522156823759046579379888403743898704877088690374489275455405892852447851996709737454154974693224126351199485425497078507417385407762472057047450190249694746049013632956801404788236241802793159090561585269043952994594035416383806521316227470997251016218856627827962787800648586905069901067233184326021698040009676782128360830409284443686868024765757472595897780557783073255912260835052536207664173148262098876016365382939362594218945904086654230988422147790688657200800193849807155992958248091966397671974384907364963959375542567319413445238750870905003144910009060132822493130468445589835763138257912748298398983868355233915089030079912583077162983433169236736245128631434043962986589798176842835753367625537365397227050979200868491595776678282269822726361929425258782959959773433680114983589644928895720632746780227257545446494986414072345828983631180830569958430213913080646709135853582065549185287959287864078552496986872477788279962599486492490405742457873607932134338075892035593507319570791074887729934810973113363571282895930780982850393536584747970967000575744974684211391009211501945054128226663633672104206717856893298031997318300948009039681221571043798768202509119495760075283917330275317401243899979898179163111066577006270854414980574787005437967835669259129229298299570600881951429577732191064085742245863052976161798398979707428763889993293614211785026152465620773395334636699956830999366639051660313388381749963129521718468380185076063340322240266489607273511744706043215617035749407147431979608272117194620741630218715631513773970307295296717847306751002539177644126977428321046290378816667458457516799006086692278960228015094461183642033926495098458297154147236995437372252958480787968177480811522161776353771809630903283435193345927378735342276353750897016958270938766011106027387154889455752736101289346562621805438048814849984057605787017406363963418006995796920216266814076350413608740184796527731715706449091027356262044369353273462738032059509515656051400222622706743303903797947298630872825565732727094732256604275235995170145904616980395773109040079685939371596272656571397245209735219677775606782918345574561718403176006395996741259076375683226857946292055948635346284316381037206325500175293781286958119633219862499619556618950663372713909097121671977942967779378403387296754739812142973898352836424431763497702128054912768611947660545215329612160717739094331320202197717877054877727295018850471385593567315808512165994202230137005491520293612010193724460632802520837168067376061224530341440566020268166027753008192418848683019449222551317494758265273010190049583921603659636623144128650059419032051024688194251860266524907595001527733340903705656100653272306881515403617505042207410798552032927690662535134815207038463306185396321032312037735591712287234932997041533159462015865342717558965254095724391112840023247085707158842855969454980173782578916685267951191509481961144908363121414562013917662290358506293890704919388379526050893800537668803496365723381710057893805653431985538261815078336470916365723282819236293180570336274482862301423221435377409258436818077486719395202763544842269322864797222482196982098358112178987123728753041720603049339036651031962253298661753388396387419719067084478790364437052397908019459983078111879062551341174452394941492291295866528338141431425108664343215534463276196579579868250178672483760700112656072693419324343568759151881508443930462923071791944003639151606480159816050878201968667626020640908864852201095680703554354075391743175538905312922949462788591134645202547090599110424649080250074200472556841462269957906938830218963654446623902433859706979198577364103730250856991167500635607602590698002740458571184582301781639701868083809924196449960665354384272508963503141092338921966743781073088091633420696624646032647737509574176584163672711815010396813586183209033571502785866908452716737332517527760860750087373227704326723329979344763264229617660456477712969175152149066621855075474308250808018236900168489584700634021800671233309984568760146221058676746675280661232467939953280382149570508470793000776653549244449773637117744333632536819797223127283942789566644245150948102218449205261429943545166749927519660688577512185477727554047647026613233646399462013214010894842775838169256332948441319971675207289302273108282230635505825510991430161980299885549077749107062056909149236368069608419215703679613780541565048423243106922674168026738016371992288224284101880001083189032861748627673185306443757779317163311932993478868571380390431330602909940886036638635718739173476496219171275424280169620598985415432861923583336689591842639497890211692106009048014879109329372745832449571300696551301097759748485022847214882434177093744557400780951993047498011550346819559727651244845590547221286341169135675639928243640596114817506443342378774594316965682830895674268458687059493735765239529925027517736085118052577432495785590930293368814263502499593037302000675382136272387451319534345510822969162616861045036742735557783041281997193839417260829594486200310374098030100877729031001267111162175414596810090465771675107547130427627697364369641676269211217781514335723352120491452040655032971522520050919009215556484121749664214698644100015631001917313239935024524644945118650054259586865747091825325327805080377417690135513775835549215011623699643804244822897016311250810029455473959323872221935704079846799843243269958256804053938846266834789138058521633267042783709537669930110846220270155515468147849430586776603772187778846307521691261537430831713828753609998193108162764604693186308776943310731697902207029836042194788130686580385818670134076907304429578272243819192844782590897245271934896888175648095089030965665291313318264922139677088919955051431905076673092603412719450613433483894791827182125222133115896174736460924095667743622303772765323077681292990714974574903458940044126264248157187857242252225745290991270897665462101249056553216738076452031124649276334761571554687260726556664943402607318593038488412887483713790186157578897021879261219295882196994481398441085760370463831511389135423197407533972685387820075045735910150318151950154061011072780636959122557954026824620650555045616387894450699959418457386787801192451801573740437292592610616532982086240845720004132278096523869185386491069024753212626163295684936294643699385468936530392988658485801334539163380803429515123879200193154685382506477195202526888323351647769454451717044166404700414188025481620964277739747062070706746061098767474879604162107694790464417375369465569311442486239332774101292567736794630291192907368779416701301698877609830543855851026219954827554235676233318415393630317366695617849763821913907783816190351571132111112886850916008491393570028840978966115832681900010856347228033456709202097671316423877766523559633089336599135023501503365152134180418713525143119359040478121163211133768265177827130285613382600436652682299687867319833484094603495221296727885259790130526689594993613449626778121233360613908889894973828405148160944699957698440776253355023417270646002181912709299003115129692145346263660383903339999543542604359068689174543690018594815639299622075082985813713991572166466734340452555680491366772394753674476874795122091537765356568430321341452326675216309575589492641024687662619275238795268586579726597203257607052459415708161380542441993845097045517040914119160117519105987626721561953589998683663782565406877131929262164811841495781254341108231267069208510089389032406041106271894429652334114829751407686943269259166838684308366192954793476424671432285660292388167697167970350678864196783094547010367481699907804067177491669717482868388563298095516804018735662120474340021530194137750038397020740145669330853695336143338899472959747353711459896641169459188996227952279260354274596253994364650666119118728968685703599872644573892263096473373660839890055000835699810259910449741503428026292348379204732263177719847206396182229973412505260076170056139115665656471916767801910528086311776620338257686289475643598235579097565507170128980269757414461740554409702395143213509064888451124971669547288885471621012328844766746164317099663447097975106891908734303547317434611638644089607644614307210441470447554181005257973287552464316036154799163190881420588801817431766709985468717834467827264852208742211990244868050138690482408026587151069914835632173367069728517140413038897957060491400320916169735606146656285622468282785460900882560394822665659358603718941262600178580558930282804111331704927441155337298232249305117944964830984597817103165449154993795965501300577331585670142397187254354791898928201959532469548984098884295776256487388251738981311321354077384112802828664713131552094528076538383703912863221358931973771477121752319638133987802509477484716415533624703718172886722376774742685621052112051660745585386031967007713870320074064777311580308994514503012162753684557777829914894153361586618265552154580598751306106969898820473540885871904586310877261246131888902002276071003807302923803836236826002119635035451440671510415595326150393327146807666001978258133135590198941179643348294468599108342991263523544018690715716234674292824517867150201244883432038761734329012632164251173841870438018021058302839150213891020327415846793325558795750191759754515059952015241328119144244149637226226109092512397658397440364158325356516790530068991056201903651371310196868423022639392397211779886854661710143271237900443586919416053653633999124331033675554304503412181299187836319744046756594474841902498126828649759214176052881688081276980799037590107939247406115498378146125473312714963542520748350824449226762792991958229375480898445399054320840258131806958189109553216382886136192016341858624964770013704594578361882571839297026028955390845656895971641127228163619115600984050229112695968409740512822616815134365770472813868566905464479650181253724675929305846029568196641875994159614065470150067019699998541121569407556101243591186866471250088658060833645368225085781021236233695204142222101726317992431903573917604849273771784722221008372021647390354080062379359931033523352794059615463548617713735890715481146702818528063780930102701606784289737121404111093494335381796972484671698910937021339109708686644173654809214603240136219871623070706381861135561888006954077085596000851381000768034544508169242839752161252041884919245735430315964513424240477992535164239177060980389031896024324368036294143712787096132918041257835337847475265268389310936207944881498007343864218888843937078867835969356512741711082630166799983875471512696454962619209905782530376992068418694478419860307782988008900682105032227599770850486959192165829326781358693340894338312470900337058276197485863313997506044394449476854115926066405971875682824726456270503820400988055813676634978985157341167277256167686236054572642529509547989785621844914170439731020072004257175258536544299115885287482558289198737585835678031724033500921438506027309733369428352572415907344606278803006665364345743020345030514226750492704211084898958837466925945486398159954085171536647197324944326198435671128914136294121678313491906947488612100154451079208262097484788348332574017158239085370110329243916098818715113450333543593029957776540133387294380843338353083326600095546903043988811404682390574249999447673940361285130349463522668386305959430676748173615891468799252559380457951838843553628258273783487632020606711729179721823586174341759221933144034396976522396147113349758550147539015231973959318063445227808259257738064910514342378528023381894733586030578729294667043217289719288648082134370434368618426436243259613485137708206077551616383519511470084260286551884827300059848106541200168332553296978718076903405989864354194616184917409771101347597704658392430132817954238718982484059702611379745426642918001462542774061256585839847878856768301402513800388478226744192012725178916280709102695470602992528993361019706585194620858017849743522057119364154835226751113362358876102820674686284689550221188970000673723206644490207420257780000764913945768410199530674510193817084320987520877766513692143388844310942455170671588472554005947119768194774387301136983186559583419948507242413762758545425077111647800073789615554719253039143763441423310037848320109992690358985106006473153683333152705677144787597850730650612284720862448573484650181297446947004972827363813952343972701718540097244399357533317836485196079210837134671798588224069942173274866140322320619332456250017983871673389934570408342070848370052717608023596135565667962542230336466905561153515070834015674847256952467941761890799088277017564841686318101290596128272877390283369900486582926955825133218990947677213296268619642414583350276464905249233603537888485003147586136006051991297016401239778900293007858692915766115608672615627247636886896303832544027440004034555658696644746995747853110737174760858333344417731082093095403822209030400848873274214126485150221049990341162792938346971976390369149415464880543688531242131864609907813368927972908158568937459349132766677664314381090781545567127876815549267666688859356560607177569138370934531496188739289431180607531265501332220061946739871821012178318490522105095842748453186036077499184943635101179176873137782622584843616032187477723722203405516756170293622562020574657138411328792517222795099170342353902137971094897780865566645292525255660328301578773664418689889243485190303928303707905123981857655121587040534699663315552647640969333998733265307538398537142439279209788393293941169199324878297228763564325495474016613553960166116753181929655736415273258096743120416084834755360361632504806506005162530763599596324869411638956355635218116732780651751809982495849436993139784445254508819341273078112288704311908115690251513321873416439075459690901317774525141799062518779089837336063399584566630737643562302109363526414012260602358904739909981691370401735565297636257916066626979178787671292254567003326777027688088750244657401741716529313991723417394117670261398230933772281226868196810570385494339703315758090903621810279003370057433476764969859914360814738077482105126669349215955215467974634981286422488438693669714606125104607479152664047664604998437879117395618085055091407701441061797017355458886677745101963908523213495718620771065142881611615292804996439051075094674704050741920512031138526552131461191630998268866672860215894410198109255728798151888684197080495937608974220897603912122326828567459140248027160662763380931081706317121973298597036401271731745163050991355693247251917510699267403136939045200393429690645208413445894371655087191312596408872227991412208010429165271859989100276756843276340242920401271119005029728257959168610972570657063686706962239657689469993144189388970900383906908719275522277932293403840886670441303054141785156607698583221048170394471707683143372234566573178619434553634094721031540066345055317548763268837259875859117007140702200207269684325962096876415774671640866858538359094792255202545984923329442982275784122066051663557262438883574182416454158029086899258866727430520271694228963228187693466824636622052613045650514814239325611504937884098745880590002298614137897758355541758665058195529861690585183834080603827928871594932079123076530895576548418119253075791272117451299216242200068964053589223095553737487554759498776508606184196778053657946636072790294600856045974112810193819999754651763382423060089680442546504084521472982843845098968511188707462068970440011277404707984078281182611315011683736181616192410437884809524143353390042000157339109894801818978547910295651457131210363769964558570283858677342284266431990096489355540343987767894876231414407005018656991205269743322470748974160865497524118553564606166246432565100732806235884845696098198235991724515541976411326387481504198049450038399082154252497173849566755328249381124828853427535142868350794262094682073209486379303518570196346159663911046432009362881995022796948562812463689556785138468251314208500913848452854859524438981325202081226073644127272566969690115392686324735102587867929384607538449928395801888950086886962978687600972188124933678606349654574704368661192668030034163382944455922674533375577187072386294797572239034975096933132902867712288392644014858075268938338875972593468171170926065843501539499895584213882010052621937249487072159690896107091405155890409316667350206153409907865467700039193495408162774986166802396086310762106073231225148556624505819480450841243185642765429540352620361772201907026081797500045867827559600192281862757892535189408598831469386428045210222144753435443930722453220520725659136866986886518135807216862943169208861550497830344217293451359806685862119732578593674195095340544691152156862086956705114159750131741370213952421106603181906386654888988173845831520749491886097393766561586259807181127979591349456023243473512170871131612855327380871483380977261957623584841410997474237873112341623756503287718255360018364604568112053779887467366258621471384100019573660300103041579744315980862968378270870080484220112212473852487388155277214640176333140421692577303571325138489602768842363510918483938043040250012528678581604581745173393014206040736799725797662819147189195093733377480446773015664679983737146185470250403898677791093873576540536943803832300132189523913838792451142155920323779298440903166819572107239519857496233338749024450923780813002377370736686620828240752461927072236177380180505706367196393720367932166536235195924461652309429287188229449720880761570382174079749591407623570293414018257435450148124451761914776765057884082734694351247544599451357668237978830111130118218780384401846734388012993843383751905193608245844771403672869981122516711869499870490247597020293181882976580023093461680140086333468419015847521051314855495612326444675283472185057684640738277724097492091929576128561538801138159519986446415137460083217134807611290803376851510601696400221016626831434426435329307857695486301079212231529185665771847972988248811490405190256747233694222787137275879487787691453264414423092862762443343157704386067131574553622191040516006468435608831894442310839059140249270325975926093557253741719959709374530926854096895018178491309044400759873855092390683293127500203359158072228676169718698188414768656839861076043159117623083640519602398937943878304874618233235223962380638376378776047800775903184750989229120870042510434055709409014922397677759949192041877938542736837782960581334474464497531146384554813459410610723346960609139524553792976444849107987125681306812732148677939723899306116431192063180942063886140641940322477972238117753465138300139101902099419744595736469751933047279689016267705027933914864100676867264028966657643146284737451836860851896721274049281872648375361067235447561890243265429140030222592302600637254458701363940699468387731599371194675105573014492209967142033473723028840874341614282650003368433205928200709172930953901318650943498986093672526774376158600904470873578273130689075949338662114375097643660249192863328647545644044535880434746782843648431885656024515955486107483669486296972845002631279086134756029620484908277281657418799734285457167416862020933122359605260785118370731982210609307353244819608476232160118918455790832535021431048480451676797175533456097142956782458979803962165071708619307390916042621319973353297725455869509772075937912238840498090412569665425745957047750661630211196534976945110758800621915640886968767038633280033410921129570918283408797825349324355069405333508611187258975589676149631089237560444091170357729564684429849378635421037341385328179690613854713366138744725977501848483608548748645678723217562470331433517151632234834354523686477893553035312005416430340101857551727557716004200798787372186802533417157531074431138232374584040536919331669020181879469216095546602963578887942795193210645712034254072151867938115059212110270664276917384037967312376577311598637808337204548658405761593397930630598682582890694388255433399266571779871898476082610037855430625133320474575180812837814252358090930234636410095899921295282634827715338222158829086412107543009249051235188149987150510007101165577500566910452120100331811487863075787479652922706819350413085112379719768911999750874679658271214552144866058466273768162147150157845955831404907817418645301664497069355199851821787581723523264769930896763546664530187183758345436576497257826459689260354644420427315133788387496273113086298786040415173670270105861462551392009882988167018996866443924718394976965864983793119498427454267226383126755965943863437208691059018516307453164655950778440702392704896169017421289986444512992448692398927165707107712328982735731448454982176382676910659577431628812270442619315809334929760297755128232542525138857663308836062571908046191648392988897928904906174579031633561902468660318204370963955132475829687404596845462016470100951723573450230454722579441228184080315676319643337345031411818381935963164446477725631690567543507964119956072926070014233195212690153361906740654372007393108802566513368363426708538879458922485174007620515122808890699884369098093873075072508896952162877796580293320732189551970430172598024186572758357614204790889330905828547997632718007431817129105646913407255543930561291941660059838884901072112249740434700289937806026244754329251050144302438805991947310713353227175970049546282204164578186517564373995890948267868397805048597184478860113883701360075564408733724190061670093326613693577909213647321338323798483545169145097261805704043090662172371367705978851801093368955526904098401077367928669422176305534288636377427700795266960771281845086292364640846073291306654025845019057318154325519711622183923184089236855832213578087882550375305687400224334732939407211339125428707129566963810164615260503501983197195281634338901240139647445329135880508082870640407034305449245429631882994546214526207747647047800455454510695418283870595793864203026106710209595736111007034023044166647874912403483957127791842858474813462584760300495376798516330313390206708156333937018910667582962610406804528332353382627711491069917669760101272719328090372224370488137583181406131388192324480008305667327579763419247991087973160487550698574301815731199068730718360218149108631110854296000083422347574795276598566200475239809571234454237423993336475899407116460951890771204067738794071127137745062441269201056703037552956599398223537535702870848196624095052775899658279460772762947590880320170927230233767762014222931051770893806443785078006873842871753827842222468635958036150917901588116183065963093328803234131424501015769896857083198934409433519484996987866944271903849278436907044959782322729204787619877400429151551167017708376201641163661597242495449964558922201813075120576920686819667599774492698013988109723496450552627177208588165027466346492500057384545482064657683032988786318112040788741240393472680629505209587997746057150831676046735601269315930271012888243662433555924036413071691979379290788512010528298464262373692015026698997233719405926045064314045298632018175786517341860049446211989326679268378984489695724701996136045511772918745867676430309043362702078226715669614539760859188849176362061719664967806481364736791458004056172793506848190731460624878239162347497555936608294952700979152094997205577130682478658258615842749506840601595245358497513435478079143365291105140010218188106253041147388868339864218171848473073603890511784341390075644283373835931241062407290812552198830839966585317090687459527550004395314428682565602102643153328822761101567751924903854040923925847982789869504756052597233677725824736070664158736155934789423763664859497559999604520887505715325740327256989944517147930004912613876643305442900609992294345124597544986030790052885917146413626673423512220707944080278584102593819919840187613284127290395124918812724215208573355276680194322392281047773627202873085170604673148274749803263527478710620330596437814611741062629701174600242534330338008781202108696385145021638200897327109146597674976272726864007050084670872289899165448506419658334067333241397240813946345593951961194552546718232640475892453694674424785456453280058408921464944615821053098945428996725819863655108592629482006109677784757325227598293074946151082574999031104971637461118457665066143188389312227930209085996888902208770649191927663469121680714317653012637619839954760068588909041946991279037897842933507494311437837973914077389711185084897034809116813624310390369157287920287319848737567524849712710850671569225195228670221022170885629481127702912840329295752286123099727222728531292923496352785727791739785486986679804337304133106832086509181856959307368456950481977109005716059631955159051385734293639575686493193341031946935983050773597228008584981013294837013721228583857473945289110728719013193019920183793466085129221253389934863794146259371141224212543562117619412106738937672638556357253129097616807955629825837097743585837331589564057535217534048157426670963789868979952724464770583142349247140039769469643032198909686279539478662189089715182784599537710862118068467681258735510455687009791956519207087162584191862477467275478827142319820836604747724430887820998612610270173483936924526710118858110248484332089879730962829224167731308325589873932983614139598169946565767639668242909613368641906675945305655057771332867531395454271169414865065959617784909825280472353779305097275704861146807101297780158091114500265766084124268002300092320387603116839600385471476997924226309051956129946573148923300112780158412131178114544459563800370330008254506587922114438389610127604454730171475822367623457104260397242848659166127570812338906815328267438251954386943347429413306913178550990121578772151570576906837568180551458584444418321077108071674973243893212525538253461432537694375073723320254934162377417523133619346691094413718564214979846666852178727282697092956376549653839902359251488341276977165367277102255700005388596476691405975402809948176556337623448607468581078812886668553579086886101919692565542742816724851476800821613946261613610439558143075700072907004362324140275355787090772966620132289256084473339764378588995632893317089841021015498911058214883921512806044313616038728664092021122118161005502553327067459332867104637136031365615896423035665022228895829845920163257719525551279007304611133795702644321888496723851182125314915287466902968747004574552090141725368254643627052901452265270733526343863771935725330874483702483125619333694076092121482613387827205695557434352704990043238079376395855764922030966867748701127382608129855538606943412097805608716435830565651787049020820064185134747820882563106552716020594980828338159748157297233799492576407118625893352125410188834331843921604038287221941000214581244673101376354478065438784386194085835192338568643623563064030719699126332008689327259083971958669045526670305678087455198705299705962493040084088119322821297388130326353118210028640649119399355760649797722979479216273564965339256816986334032950173871808818520830556494144888395962097787551938741327505881849829576566102368390777703325417137971593087957846911497915899855264412334107583046571546136341651419061864774552779951039693035911628122637718659186501463799814681309279713868472217815950167126870849431392774630746120280002662736521680655722756896207103110792513044868610147951793605263852851295514999918660465432393486285773582861745591812535303707238741089584875904734925336806455700519303361796836405329948991380983164604059115629883492216516873015267019038156187040140789747695883841566646998860170808127330145765502068509394229605821836563007918377862967839993181693341187346750476680218120608647794955486282941952348069546181046483326818065455617603658444486467088119631442592037481727446828508198161006940367936721053734792173931702460613375723085296575159775890725189371632265765052439828424064754919000257316555290129468874075662607239014055552643218910633136252164108202789305078550380537252157192033988612340281048755803535483210685855288793080066229156616478841297977239317540172146759571865520626216934776400900937581802474342418472752156345266398547339399585293529572785183062121693857620911111523064915033365285684818430260297817078095418099913261051611183407981476067528161197789852812986795519203870359841864476706009619645505989800809498662088799418793520502598685857529425037168625645130537899583757967549441837540924215382935336901632975238592337634657497443317521816371767947121108512870543594695650195713591153155445985559495259734687055135388320678594227596790452971861598287825459428316835978735891942104502930390665248729464501598678614549637679235763655495407120322463299425111403922781161502588840383060736876847596943707178468174123033897794526984512673291988791725725891917711582396836810718256059035950134636307884606142401236815077970669946011758477029176975164917161313273070055333063000458732693846466311393053035211963605613436671558677282078996785346451253804645109754993249450868386276419740875504490156988845245403742661848706016759084744013302848408231036088027985432448539204872026366609248662882678481295974124629543665466779969804574921731473621231775117684116333618341176581684058542519222030923427602763291985625979273186892397987308454447794881579341051865712727425748208599438805408074642644776567588706210806716744248550971381768009732674020342019308161905005717617005822873642469839536900711508058363853205298240618544264522457383105881299318293851049455756958626870985463250897838757619879574079913359606361865432833217000742278877178136903830446529713136847274981584286367330418788474257541289355539326546334524065974183256212653876937929764753737714833723394996810322649650036921751616238141038839235640576286105986730353141769620464273819103208959831714295347532443882841080780899720587237426352342316350250734799756221095172680020865662335967391523263105857456412421426385869284912334875289887090528954630602402603967997135571297951574778787908896314345484656050503998323632079139944779921558119319149998602530559474159334379196460693075445663208141389491184795040051312812016489144996873965348136786809600383223075658415104796566813941277997622221596104208794539072688583553665241726408132484612382712925875986784093897790416805682820749563174605655168845919107231732651303829489784018117394214358632700963428872089350176996079478958025797402542090584101752727547276537530060903926151859059391556321342738766131808567648612557875928767158813646787693766518056657307461980245468156211075041955924174406545665063969026061856135083269013171589124287786511620131091682155528768003825169836968477195047957597051698013011189693312539068531623641780496275664061672214654998325558294611677283941168814037310341362391662958184115289515110709022620738316420612245935416528873666663211013332451347337752364025270515118786660904867107758543547805285311991026425718309974821927229288231456999359968666514886740289268469632133101208788909172050034387453623660908669978070547577086673603804393074707676956054330790710474307671253593792739132907125930404293466290981807745362735144895722619948998714466692970500031062234321566454979273181450912620137485642034521898305088643857951956360555495726617237146240508486922358616948319359716544759215599722526413613193915629237694485521188945431074827168504157359724690286049406399920061822193525300305149291871738309141496961732239774381937949549157215378854573710290845889478762813273718488428605484128154685133455260257620866856248690061841620779606266442834567226780978056995921711763770412373316735378222896206873857480015592457761598485312905782236676006525675291650962869879969492965751956319211525208049094356686226878907378214916489988143651528188797616416807170388999013082936232447751672032308130586697153391666249942217175782209690505554656813829319684472589460518590953869548824153466642294623784479395436556681621816974973970026464440775991360079678068464321043812844850382780469259597012644270959315703479967755234599905116708630369647386558780060777476514934753040226491082814177385387303868576701827717370847691948168739678268816793349219285027175829534076174990234844826304863118155340623332604542629221997594193462546288630511237076024680147608293522009855774093185709362320665620929864629217032753524031809179542027846001907709406846779890681050391771905535891359127223948197899752928845439042170137770325559742367307544231957031266688313072174062332164738950403197870620519056849216783390958536543630246698139979462785494903437986589200589514596823175202711287019768441341585957941270247776363757229081486896013346882057820321761775730507891146215939914517411879631898074549332494864468919717728689959927254237507910344457594599831381015477189108860640952292921731211273979970551672552586904320099838599388922428664638902539095971418119515756648232952651283317530820281325794930205367102010909444579090414483822059925674391370743608577808962921293088835453815110553267380733415021431743125952247769466209116055579958608551123956335167601616349180966613846551122538557518474459249943137862213636314975339287789443753475077628354453237151465706486963320315450807698121965185103517346001890605225591559990692104452761373763020703053401762546232212273071070048623990163471875129666177268532769273772413638821238943081839006094325129769083019359352761305352764967602882946417073471893942561282950907985659212050676959750111546103301001513818705760147983711917592695603105973400990979448448332317278909988768914712527814695614777007651365873929142965513578714826860638256149192172794583932461471339651518839012298843230132913594567371757262674398910728319987088983161494882679716303284870803793845509743532271335472359205081184296542253706839155775092612533226965528477600130499990606746508804671096225678093044175887615063621071925351297944746805096158656322747110093977210119783457794468789903442665502289928250475381256584954806611909645782406671507218208162988239942339032809101409108812529197195347404083564679057104993317902633249696997831839450955877886025854466690192487179732578117800495916712046858679262788897535281507124063892654642747297217285125791100056228142398835317148517853256646665140239885700424002483534882698347188382220962622941066128373956943530288882665636352304766057559481881221791142406365989225708010190957008093647858753692659635943993757566841983890863855927473521941391607959052932246066870381094902354367034897180181945228482548190732048837553414687772924345784570759775473320913914802756081589201409770634172350970448976775015577200737066938125668438580770712889068501803742918896257563524839108492802849716714323942116325665195857902496841176991306435183769492796642463947969096557192736838381308873608815755120073754079922082358890047096888361370887894053630345811656408817751679598018086835844614151590623542603213251116673931267793209473315019392470964035364351175080092526287891347944656044088110048235357891415306304303157024764548959178284816117685304327794565489274080832368529648497345607782452891131652433566484764133066774851055954663466885594226804820020357779712132643712532961393901289257547175501301904733127699347654428931063860133363105827157771573354890558713281122305241422773728088888377945444804214655709401161267442035879130221125174831760819878028423837918241618475191779289493362985870654023712546015032905927849045992912095518743655214394315126133935480715544244170035367970828531584225189295477508017921218254293497393958507960320057201581202591727600205255982385323927612414693499590710172718158109056628795424167673017068552886886011305124867618424856523726470746555411114682873955682492950411081689597370881386639008901059225321467231216369754538027310231205700060511022891297414284150059583864717145786225538258975607243703537596597430474547083807835701956340223953247751155281833287530902036351614450618608546251406823230251294010449196675254431084470910721214112951795052945301336274854625867610246477554203861445215674708772416475607686521129913514021176522600963762101309754616529927917323279037218500347241688654488502553281464211730258256697058043505923592883146462217201912603185106167470999410209876957324188765448927432531472808333389280585275629647959009369416001079093414805391714376227327149858945563576853739382535059824725223145470423030875725040419612441828325496831916080673096689429260989841428355169903142414218188126709244518527966909112895997836916911996919184284419905233646450282418287224728985069526446722943321847199656684616836494744393049307237004172466233660648968865162789062384209279994960590403540946922710382719308599165238781838720122599192270476071197435085318392089674928887687186461052422845001451473675243795928038974171115110920635817003681252185054046937813429092667639544077940519912943049207586268226946154386013996757380507619322753220544184924804849571881804716597269318201302248771035083342700732655856648849091750749168511628961704700808314833100721581044294927633526597349678019850929659514607407659611018143580144424234620211807415410123851808076704804716034261037751055268279970165717989545256384634449544769858941187324256234099012331687986312817272162438699313404443782597820305240524514374737263276401013612557446997394924289106540955461979722279748571751374299391837677977613185525405619827541697330734293350007321476332768763680740515793712456299981339019473326525197476350044250475881598471973561505982728406441736890119509274741537691518123433280747791405626480077033113515623174324145883087870678591937534455114371717813235782984367028438073282517563619728592461022940949284445488916823396689370765330145208250151951473889456667699586156841490581007732917372113885632346341790545657681899470117805144858270883941442379014112674905801162343064847632371419498696499736177772360825207760265072646994189796150088859202798736865183965137827597059997412171401512179516971527311774262950648866825071013572893376499780028319274571911529709110677643156676506667052049938957709486061377169172530957848422619148075606077505984339887406319440121750180077885822692709854621116266837378611917703052889233900179096821491136908253299043833770242609750218736696972536266751687780827149364178185894272745705005153122170732675393309237830781317878696694416423113060152619314436630294185178162032937079964099908639067243390514659395644782460206383490553629649626242327911080169826212408306592175837241266756112715417531763597270983572440734606944990660673982755989656358316678669132912463965147421060473994525114279542893492326901327540014104073026697064804970733155119861713120068849670592786421114394998605344060071241134884909481275248920022726881208556493244814382649509061957724835560171581020808431000532970157339777940782477954607366124354713207365822819922769501461802068557494804934880341671130483140827823233976638283617455694447757080234386708873132089957974059472246303319105356665275112944340030593791304555001259713970799526984319920532697919780762731578504993583001788856464415885023931504295559819862125487952087802069607671322247511157175792655829763719957827871744643933693002819794476250649512004422922311431839595432381575935978760520718462501362765241708747062620345906059392981734878607853658541107700953064106094021688659994117053446956292877543272374353060622160745699302185960355254010474365994110336730301896666759414546887529511110820865426469648687975344504376823010453493595945329062451285928078989857133336372840990424496343530216779080112509449031821923056249753521482474714244627966563182725410830190289783742613230333705863385359917711473809341165089240115110131392080611142846445916942820065681041382863030294394726755600503614959034468651757361582970908052337922403438455838209858160744749428534168556304743351293759057391536511599502417469954483944891448962272789107756693495200106221991459158630491788538944964152417464039594175032986778038815968267445748605979793603955435164637924557086475894091058749684385990853646518325218134267354798205169169939745329738439306304920945715924639914916408046292087138668498530351287494694916211006596988421083590704245012627378329080418591977721743379625443236452373932060210249949863566467367082390166327793594332099759796015981111346675505983207145327916113213760152697146230098015517349486791000581057147483846123153025127765512818397394552704134863609063935213684350408547193784516318479246835957881827886120955464987665806475187907097242577998840341105188863291096710451973223022551154499229535948519633833229819883055875751965535130517221648642898004469748751459770012663935888889124493910369389629445002163122155717935105649005250607768180594906108339836568299586116763995118147433109686076981240263088066983038502900600467595493545948186667887965734270139163779422032932939315136801133726131595544264921042535113704535376430541554560335242397778960384169610226097993602156928397670712072452823643815163009591792513973849237721875308973306778390437300008638488306792982705488515902016528615599863433355012243414953761893668528765091568653084094981989814160115983107128043033836715347258880426578653324059169068938071798115188871618821101204242895132257751249680730386520945122855635600820111159443366774503612354393892470731204117207377913240381047849292929569942474867802804979077544852833936924474766137911230060916297681881058913326635994256524402636411171425884719706084938394857636363667145863859967639990301011025221382741776269453602579378466911968462573530219158465285002418391236942191310734730430912822970734847866836510684862253468537131324732812066976152102383390219930468872993989059981622661631801773463568314769652408705888380581234634820074609339375421327289549045195962562827266525367271918985251049729016385279309300419498266748199361636709419823148569965867331242538223159599961080038539373015487993625831859636422280666105195876751363814026642504435317250540710181351094758773519319025403950663416827786740711717146941908710745956508945082407172121166612746834882969095701774661048794117657876633963764708227173763624497148260612494302032800058494866088150149042854423794952001711421451366654190450378689577540014559345915753265878393149808658893006112460464370514116761655784421832037760330528862848850006516030956122585137414204794680209702460859820830416479390517828364081841188136390030134372300371960090310108495603575417393893380068957190679325195942670290949131807736844308567778991399672602752786717024792626398493222933932347276399248546060480246377166103548060774704503629290335989541213244335138563151953672076180176133530728692524878723776116714783171231592597397825461657040798591843524291741003683837326888595229334912110361796766490357910201518492479854039100826260534843883763076948945902191658449134253946957749019007996907475023888773087942971655527600520791037386999196735686276774077956031094461011603605693253081679163411485323281852878452106845350044247637097331622514730839387440495096198233694662641733550514983837849626696418331727984363070253999322750274876480989257087567533383538242928263312429231087644720076541515556086668564321705397025036052483543985196401941625888533546048331863815648608368123543607612843292362492762760548865531831595570195752415041005894583173746528069441337626704593372456333067393460160727772645643145828851994380619188837750330994307539847747256586205144804308364375843332642027660286094199848910287622536392023269621055943410963494328256272708925964404632609389233420551096256848062751578031316750671877083133888570035460531468800272150445384796578962598001768643610450701306622133185158963047279338212324049974480960665616253471227991963237964034560826398730108560981788994788822584802161355575675780122424607823714240664956505923833121810921137534118894180646353471252392197183091081955929211614527041532202843205088740070132432907357368019159467769023955394036737436963612530839592448179468355930096046188022355410985138860782024797309545800363743778340436332442644524845237949195662355675044966687241158472251520568267755472446900398954253579466021081102214357020828063933391374107903494760211869416239666671246165131561982605682016677959635923424211223378640276860318716159929955972785506733061758083196960116710413765064829678225392241534288611843830357817500559113097812391433455099291931481410585683038232291613077106915648411699502714946533268346838612434721289688168183361903786591340115902528076421859045204244671841999436894651385417015366692288749060689369353267763733734062859293468936238086643290808655056824870084139754551650027335731723798630488310868354898967732946210666082230621576221350111867057288652523222273687002973837764205119015587929293815655385932083990648130717338918351725041825569565483944240839254548864756426760300044665105892216749638342223689811835735849954953353760878448710878753409073556918775266937143317650150942127465480948830029711717538924176361011349228628900159675335087079803471227327923882531149043669193158901464443500226412777174874235397642161140260802479956064379100643736513443333265095080282225963435471033631864166359795477031259674996008544415879537475282581789402402369003950522844889896354103794684066496225037573226522935466734721045019280176588442758559139911648691604329813005719186987427195130272263674539606043227036902963695502031684426333257381174091501805530042974001435574317666775851102939745880796218625402373045264097482266525867479420022808325363980306016330052248878415983551634564373541756871824902260099632722492261073928442023063857419334046045402268851936591794783224527173044957774599647830750686050724151983210836988507231778200371155864062296312770762373272619488788626424213807995615853249279207605793771449027254889958859096830459310551061167337934720865023440952331128833655952301816095243278656222806009656780049463591653570602024655674946794953262501994070414521889597913830172517491622748431297576358842347356559119293937780440470878203191671946989332222419529517192042058355297106520443232121907038106018644706456449409160564636099139338625041872923213074410851781377403973461168449606710287158608821180637498072620995402799562715273804717735959506375454692239729273807623268390610310215724120046339223795022684439952672722154933540765654079035534576150873545615656760875260206094015515895500562436704385714121843357722303498945578832006479955044855346912522497722699729940573130807782098251210674093090285459549161039929422791689168951991340198044986836409552893416170632632016955070775989798899956936927511724613618422498714780600241902569787734332727286876975587489400135693668854206278001869190144087545474604937744177137560286471294427618489403858490796865526939599879854749660086689103084057660371953698546618126198185566902304643583258099010293327659875837336016898610920180308178941063208844996884342430055013756975773014315888343756651127775305039592583132269549081174028439472392833225415143793109566691396334912862733888194520329651836000960290648443985848788076419926589720270944511832741214561858204534103866049102492553996141504446141863193212596739114795861955588591063275572489238256762369842707517954362901358983545689104803756415620245719835449998742836606946873570669115397571370487401979531938248527563424440537305485346023249094878444931419245746005232265632160835222320192693729667730533662146164227553843739133596155666400711475045341440156390215211593782144241862862894616202938830100085268793390566692471937993416060450930185332282004547871601497654879991634107497684206966682152230683778093541299166847435831790925397405682879028148973390527551724542456395549533841659459144810357010726427214626668199974012593060208163771571836609011662591259360601692386979614669920469501854927556778045432696060598435500151729982510803352572326643315839724437990938280193858053169494266900201299646282731478044576091946452545998625688388017972708707376284211022585746089539226066606768372881598415011817531018846950832089165252432394883573337068312421837658706666321579850686691522299202273963209281212291473439238639844862899543582576043957298408505633814608914183844134849110644462208664936826807918626097522281450099437014158966919809486249167934313696849236836437442994530828474568396194278181647051348297861028298900355159532273814436464580977690325305362634418288931878609726868765231175120429097300107247065472602732368348757359220993012084199492046607252604149403179232504293494699073508228097239544421238412723755845309247527096718497238852181345830861294048331611869535082544368264879333438198106382882993490489872447374176060007076544594837911534578198873021795988224507543560734163300514106290851917189713946454337008073449568941921703599078340090379024130861962384350826518611678130723715517231974653465355882967687710437778124382351706189610217230428279334481825119372164692036141488916036293812481164624157675883807263227938392009931576131945281515717449337623739859872495720703113573644609046173534917938087825408690436689277922760741535939359346273516366537933141826698987660796257591151685797158640376823884788273879352223786412318107953565029888699798102938811007240435545473854625426663272284348250245415710498048375556790987591494694710178042615499289445733573897102968791692055780480434066114721895965182316749228986460720929819779305741163361055176039278553786756107996121985568460655745474933902185474701303165718413925011241819538687799873538673392122609162590473389685551771246166478268679726517503617569901997987939243183897322355592416946744916859232598343364917816817789005819084165782869141502033109886315941406491048979472219050813800930498191494531385617590995276698773740440959875233086744919114371136688442053825548477797215111595808558987131963388525246182965809212110320597653103236148557371214629810942255163924381041060105644256161436227188099922431279481119842713081096688710369271508856665987095231760742411957268771053109210098155093034016685407979898205123679124424529691642812143241745458818476254969092907438304043053704373440702778580568485539681322118378401441268396989258981565144853903986288620076872176583795512844798652851942931705506840031717075428995759463724844990355671069039468001704994345979352513737203550656899580621257772000465591831097574112389959705222017179658608528107349043388244579321663256868990290852537999627980647318067359784499967523252599639024404966995418052675985608645710911245688646273917213124923618896327891261781412679536651191763824197464563053483024190502971972114184187348493692305543538508850032321772620452625526907600184057433948483910145917549870007011652350421347445520023911178226529274242862984597334268961922240664430933402697400718899179837192443756024369839258579251866206515381901091931551825177703258249994286576769498477644495818856441932664832049371649915827069353694505147556216321118946787725643759484101822415063625720331134516378198173787874152413070845773201563638678710906209302713374886195805709789715034394666173306557924330664662503378626415148875897258152619177889829725972169849081104881718701219564060401498465277558577399508099104620175499389724126810995833696222947387979595988647061076460070815210366317161171620289323459256165795938352262236245178320474429162391710493754753645581086401446191786895156510998877115978707236994374956883274508487841283405505776118522016648847568180105161717087185233884072511171549252001076586188361065938165886214925751984885524543259831496538768259188584876400440065984288639013835078363070735196546690463975611104711108139840777281006336011133446999953626643653127270003230714107850544665961479430079464769554963293507059486140091075158957859655049055221159353419985013033983066266135253533510045031490804893209092212203152525372067585236595686867362778109744835616551887840628695989643188491945490361503474138686496071405958776858225117708002887590714670520350557289613101238072258140279409730858449973507440491862393213430860884563346769854946033968845860284346248499446177600446058788867313897870279415553903807343104006579672117071238529625733321805084527370376677945845751440991743760316830244572933439856176793054038607547752268524214633259311304818407707671935169410201490481930895702565252367209431065422631671588612381441854266523814825115674758368828832491332225908995744474018941542084458171169184551534587438755204493414129381763525443052228074790468771901431341547590916226697136661544116199970260866459789769153616101181699163839995580857985510897248928251056211320230937613208633506834204807687640082014633879156451812725586504546293613526861801129583442199164111618145411690717592578686286461658838077762463686992562678341326039157335387907745336553520470024070211845756163924686443747038098950772375014262711118283188116200550477035803380782040193605596005842194730076464945910359077547222794287794959328980506292078442974837253571778529691469133466865044745832862534838361313015601633995580312584131667978499665854580570416263701331151461961847211215939228707866402410754059959839445748643672293873193412165794045227727996530884131557254613458592070446883448939384077666153025571103595827778218994591919520078975373840239055882299286122880624661333083940765938944655146710335364700334866061323731396961144920150946196210082810618319079784943324862804218660436984409788692954808069920182227423943510815651546453166982590631850674527415457628934320693923614905666971971581484547496651808088433520513095966395708894544335876622866205082284736380913426057851765947587103337200828129036233331968867401625125179139070011110012223909699629675936792872486838473247791444737290850459660594146605308707061251748306397992011454845448859384371696443253570756906150366367559050404879954692625856828020249944604520486319956109974637398796637449626540951528394989801252561677792997586686554609955906503713827723418371901777313737514992331912907716631704692611732570532127021107835864092327388470154741920971806342858277397089596830352662771159153797518029107230809913625812245120075237486983726319614407556208127797782808582554205383948382659714496636801607128326717259443838154106842888598788866216684526234755455500770645421522362829123552932579250262970420804887705420134704032452151678552459084830332225578854771055524066289563503509650551855621936269465135841353006746256910460962264164746057082010014786395425347283228935210190380101730046007856769323068897561800314203593235137595666113092523359025318097437360230088100858495131652182314887287053128793327434887204760457249794103730674225153022101448932517247874140425639788265000276896719614216038297840390326282698926794157611015859277568640044906055616171463002806921839081304358730656664619428858883860820897425676765893960935225587620169443795308743748883078986607674478838240209727677516860884078957753390142179970757201525905224893931997138607439822154624921138850439230122513977107370861710202188482517077385263554983969203970797409044207334217380985941930641419114208814828549108240463963019574265295205387042950849282741304197079439243424054999903101215665605210746739616796720879347586287936469998578844215476497844061748655585010060627510812168720003649004592804846163803633731846283556039312978785437010903727220573144242643453676007699860349569405823499004425697699443749410450076072149702085936618296320350904929954753077442413560787578082470501313423282880505811780374679417557467256215049750414506646984393741300359722584617839852469940060126372721086003069751099101211140700559352366650242022062803119462769497986869308324739541860005661167169954116018638428200190526859844202394656218769339355421654246394927433731832849693132215972623092797736144332198293708640384783944398247917202963151510066935147451986164543686114740629233130780480604437686163849902734480022669484969544173521048563682940863697541693440202651317662637882830578305093944843642620293764168278461738538438691959868196477881239221742236687032775556151132904717538905938801539485044209976542505720367005148772192269079616910662158106767610260319874196061328921335541704084136054332992971615467336659399543989332021124745900407249892303935495189523213891654822627661489420694739165085512058131725615103079102202457815740866596727558447145010476133606804697651415732751835399825789324683654880913320017453270040080288955837986861469828355933039009907748293376663065158542515897921685693836077231484762826016046523884126039765840315124971218327944012194428550762799779414769600002417634250846865537977298705201699306054117779120127758632508642275535563595331382628349250127305643706329625504488861741796613492483711270238244036154701544728438832953857404152620639287173638944522246509454634489087194164596921310359501168308246620670363068378003408176074477628752298164925135358162622920425873994425572985217035177687478167147577936305214206170278994190872978462524110165413660632466297373268213894458627440187663307324249906649075400762872680091925950066982262214688346940897640959144585088148787138125634147992618554828432260172321941761215825290708696394829945413605236016264471763005696932083133039089130817333839270764867204076349689777367706885981111436735948930726122502105804978780609848764549109613429289005909506009448925254948711282512679800646278344293537389312630048905052857789704780842192588735977489786387296194938924117293333329589712003598898854710753108906642626288961902632181393968624372711687106256993154991068636847619729435658899898656091437871644699554288758953784098434051180747199071697977428257971104358517678350509054087195980575482579254920513466892330016998697694956274431454124182905841708224544124783386057836068966515285055626330968007009212722323695091679102958814136485807025694205802858934606098397539832686677153538281747972957758950210949020255011571809490147570638949958089864474756406875496440595669892328898702333846609512143967437800772470867123311344297935192142390260396596561256409457655395154675888440591346339840123460554172419767255178624124985997666885106929873398306460989531542201866640572473708131617714462875898345257910723752732571772472193098413325237410534107600076140380594602919037075138862031516448131803219028806806625230446749884672945713381869970207600789610112699558675832150981821469877328193319171352035506400330568391732759403178962533885098226369794185482872008150100264158024648259032191197290767163727204398754242437810162702658443856322928830577099092520873158160244753815642805827867293627608628342327414222159992003261471522805903935880049755898625529406436384640902802465365091216971256557603198122562416579425231844442351334372943930576124650194980562998445588910678470155750769738334354399514639805508692527796106231718901622840652262090870489699542296975460794430418024856410849085593384732135009487490188957688705460887275364610134427674404402274158501767732120064988815310214671743308092313749521608068522553975273562006845932653293380300504907673430633808629513083250303210064307483744979393887391088822086613735763980104124342926235173348007498050902653389318707344554191458931714858029014719503840782993693184422143944992214942028026161226584728758833111113124765545500869892482084189816709290199594298945231453063532693958612653511779135858995342723536909271752914093895931546125300219495576762990039918112108725251469640425792100240891900871414036787883891381568583393069345321846845608853327026033109118088197249254412114494360833006398303289997490203602046714446267542156669837885950935489340744335650523484988278128486614456379288937985053101042470867160336090012995553829519255333689566036732159239685926860448384939523168602823194146893833669591811000920619387702778965264434201994818136940413467429947755731335769257178564528604794518351854833767136429804509127648608489636619745151705925873325222083244437774561561236298097594892992692867735112577257811992400072846367929237517195169746399764944548548597624956027703903026793690980893760965586376557268331029555170374878543176726139563936743728974031877387539820081322055302437087271747922886168009896456675749237117177250507011640131576972728450285944990464085857363585654351222366798536587789938574664283279438764026748924722183750679138436936185091346751288870880824107371969840636317366898154877902837913187887251249158643874970068405781663099976074827121732726342732296513021900554781159681912338882557021447367728327179667726118895592099233769380170380348478978079641594341377487469125837918516316711339018534392425925322386272649193598453923682005363668973313886332798396097194809456060578547330028113775460664360305733803666154226654239799506351793910521346195377696503091276643253168864251622694131057541536385436539401385899176752204358078310595775575627095942114576116816639231762284536469055438088252319751538928606490459830778260834902998905241295113321187029093416456547140495155542223714215613731879059752760506594999571636189169104312020665557498870419993053571267462635157458792871024134295657466107623681005791895336566555479226476487941093884646030630401333800121935180637821844797536658362532358527545048638881502510253182452848461067371854642315389367020660934483893247480139255665758900691057762427286148182878886055248235038385598219100666632721267055931926472965863622170556666107383709949886199029815511771735581736585009100160913082381145944355848295746680457789094976816752737136778726437135928345852310036675733451954735910750307201210737051430925010688044937830469186836381470043902699378913915365240005318047366960240972274802940434690376775832864642309389175208329294421137199315595416358369203275702975455443565746235219920429943057770783144260815368226477676525874020342198466883107867649827185731765920186408724585321040615656133962431451355828701292066471349933458830943461725456646953841856484053014098727245500372710787786442265352187900421456267448431999112316700363265957454331050624437041709070522321609825638661104060666355277502518901718288750930128304907849026001658471182554934625445549307132468312896548163634443722059037221581293617951675161955421943031286767655300001259306234572415304663573616329602804123336876123232951814759966161442129948095779935920743188114517880563277218442670577172903747558625557757478232112472320307895297445961338421844415250518772174304551903472726547872572911727724562031193414770932032132564419976769603695759802787031511780399286030259966130771677152605462702928959373044836629884096669674220175186070630400170522391449911823965027956312176772203789697409708743655273354644139188733277725818129719455241668828685186436743554244183886549109954886746918736152032809587024733265000446477603129144279479176208469594322765220939698019781929600864361724007811692000436691460182534010770435183957736840759267999092312593083806944130206217781495936250319436090602878000665651110428862300376518032679423051825462880068858325735565773135972707501463064923606759867075925992839869264498010182412476623071331821440607513116028377958885223856210158142770890508194999832084075417766999579673957250723936929007348316271105711661031629145621547591025601643547207365133117496606718196212191638552457998149361423536272296514893729827976167464189376496231239751796461884866279024848871029842973820034775931421379888038781340464305139660790625722269533294327104231995734178657116608861941656058724588725579119912649149950111658222897017975983620831842876799119488262923628381232221297239805425593937415953515675924540008590645474469414076931558301439463752224139119992009968154941548039803568779772091361104231889419981291988170885790123049457948560816909979675735370266003997942439045568912577283174538404743253650483571825532012384683979559508343481200126352259564782796373186412334262883702175332779385316748818147361807614119294121843914625907600833573089292505665604646042581017489136016055037418402288412848286616703897091217057692888547659542602854072150703674103636368191357945924415715408482154134147957910323817198403441904421454869946969497016574373998347358439645787792158654355270822343310539692152636111632886589260803679883331391452350602574520075840635159352501430618574791867027426865472592571958337097052355050879431390008354073662834226177709866317154070484443496455334146951338861628866912187363318418097589260431327469702770987833397767579323210271448715718423994266487110174328259550429942889739197834002635454007938678551777511625771714548234295169886078873147104065086284932664392990944207161036876673318759565348419641575026390622898075167280103025641749576734245622075469749268880080605722504118982689553984008990930509795811403188341165926855913030386645560666334931261511611611948231298158922459955329561558699117471041948034023097078348504334457324483989911815371200093415761921448568855550902861870829227658395663478051755883992331464771263514910865488748432962538783258733605947810407774185834744302545015545698082083211368952140859601198492950577487020587404341428730211784716223760305964252362262423745873678195070715766595773200361428818896193137116394008125425804813035060604129448870343533470872223418397964142378370515928975143034299111823855670780090325951876734240149810872926191413814456446780591913541239132385729496330033714977409919687090109803380855132007638079660500875093657608829775803172656849858893913757673995885272633914121660444492858060074571051485512701812468724159924825406377778360333169999010321359409922450753095931248948093074683196658379391167773115627299628807475803877482218665155525924936482750253126049718554043166464581509708070565075664073253661826989326214511210119936998589050274524642232841091699301593399190587992791314424967621490298658569861891357229277127632893339349492709683265409769749943840555400685582435369659764929106313109702281754995679178292305607391908526992319877312660279604614764214770963967825193476228739181156038552075304591792071324199761163575068005247660212196981745106895424183858765372572863211469081454776970250880902912148856473245112228682734670880836934286080016398875476874049848891332943829514981012256456545717217256881406090607552771054569164606556250157187654345716395060177541663107266308880157514782405968720482036755805461030281356450994722339523375116695761126492169803057732989071542371171108373569984957559025702911857197699686416423408542895418872524126926667320036613929054453061264064779876749713437689592065913955037349641902311945962327391720518446179459706990589924283545230843873241615795693866793519759365665307401263834185650899269052062940433572636568827409905482779133790526364529387887520492208758628215723329445146177881902031475511593802663929946297321298225360180912193502649853230856587451862748205342110363873541839383551077538844215479328413682675575377715242789516785695330528286774368216996163784358079444876961051487414910815875603671841205197881330641245262354080088970795522725381509711770212149855528676388477013108825141843215785814659017059615176302096914581660803564168033762843864631043561247593857162440259744961932324062785114634070063898000754637775418613732929285615688795378706687850729905585209289557083532729770790042861184506687201974592652538385431066773811457136049460042801351422648350152881866191678842629026881893712617784071991088563473157071097089895290075505933050571171834657826875615919166127871006420094399919790929205542152000841345638047291602444305085963122205641680886953057866788453428076922480854070317049362284805543954090498695812708060307384518945054179499126157324857221427088654191493023096197387674756051259377894186660265558781476859934575462028415425909463457036511155046874383392777719712374065845395125005272813752988830060906951722421638186042267261444329589287888661379375226511205229040212134254265204796694135935598259614470241654681065172076960809318779564099812792601682682412133457746055856664253892262976669063600160370284976917318578615619727449618660183732958051607797955030523191205613817215514255592144889206319183485893309773796728041043567663572525320454553672149435724525172152250773087903339853211001387361100759363259190596233805014803636662475849355731576583884784780935337692708855516676795087577026474030438721334428847847736613360523229808655765987854667462619067648570175746175254796174274925661547410462629059745270639636889134443985734220836461045792248136595779652495757026738839224159985360758223620510961377671805448058892156675023202346334329030694226695952561821137602505726427489794717341797085456417562601162668507898589165093736690805856629386877412043304655275368481913805835088572325132671714975845701184962072131806902918028180923022304817699500882795733952440764294140111452120720761975238212872457390795746859851415889715081599564801764115246294897422709971803681565977696002239570913877022857183242222404249293618330111869814643140776970295940963665593533502420023601411911538769489446746633048287140739731114248143811536573773076715203473331539316375216753054252921258410249838827433884927562959328748310546109044135250775166930611682843860178966113151979475460024052213552456583970782657345893195857107536209261012944983396875113560073633912812688713848059657966394449286455844036449026932461264442777109056193338602030139505789920049960666868688813163951631100869761963288036953069328589578446806743944732617561515880663411286834602558954456867584653688402322805568202618517738932710032467596319893673164155958714589432467571449556250343214770494834376454786812523363130301926096143626391700818331453402963807481748387256549908172976746298880398701648454135152948200901524545726088048492248342414313281345297239338861729666379846589532421702724388126770716725099344168132572438380293010415625969660320851068341173952533089919480802271989479186030422614579258955896635165551369610416816561673603371180112686828620075905568166509813554656421419672626923235918873362876337046126049472453430130512628851323134614489090417954783012389807382693473989221181416258604421879250196182961689783374436175975161240409138018077848694824018542789410579459259971300956305886814981932472651131005342503247963752541605269545144118163966606439800588422650236565428721153084404437263405410342581728644805142108567700306839612154600253424505374280167417155634750443251220028932918993817741939253210593293189563191094421375523286938836399604871529328339387132185118853572214890344341535914826622806991634533510588871071605605132220944962305129161483918089208318253710928190938807452096015436310963860832344888318940082556494351371158691891526830808941428706566707495771232869802758355412073822357352357429394138427573043023395395810515636341336168994204147696055696177166828377051724633127094161182688551518759904694977168867748018506686994996618867222135853379190596846365729485387374032552488193431913959829991794954108243772763759861090815640199806150360022610003873586794482438557240412434504024639258738423610695902067112981256830051710240202842753987594244211505477181173640238801714343353665572370181871945484740415669434343287014831626216281995068205269681247149564387233305947545898180813484101555644846129215352642649684114510453394569507244433112508493727001112476843147894550578453581610229863156510878496151927885373011864435353790133274016131946658392577323412542880985381819715512432261586669424294027498313573482144246063676455171041422363568152384842704253072457732965963927890923930300424610049226938744670136682533063181262444571361851736676064038264785318470379853240117536771664661964334335762413872465928899675309899438182951892084910435710479698031764260494202084520916605216068511228086233953058060884534480070602707684263029262834129301082577613908068632187719318805739631533114630526624141643432194884262980671467426286456642933901974389094823602870746136299412896998316063851652448417885513376429704196128935197376141226503547330715845740333420774591067865116473138781108901687913661539452593026665226021412822820626945327662097173058539206357106767230707183308247617277022540629179542486477939948472405482615706380607964591055423648790953558123573545529025215258004195757418758439165803533056210579792108786555746936511061329456052633421017083686329767632634414656637491207121328401513966651307088021509125076595946264157268360846083084110851102964161014886974946015046579732399249043926895513159238751564467732924939262372268797421758102373056773270941059488400760894379572819499899187835068417520201016587662594271859508970111069732717525906071949775276692708893214875720127082283256834758875740428451485148355993641048155741250444906270654714338290273864479216220266998137268356295192964116264917686407156430855358018919303883970391296460677322093549703078581480313818584596230422059651156385555846073139525934863608146418103550335603154468753181187756689742699592828944510611703000091507440448909963517709483881745878293321155476271420230413000586839811312753250205617175856089430568993201976270847010700089105039528724032955141182806851956880282133339740335173579897951773462078722654275898500885048378269456840295071178521460193997120811889624281736414568372575793840193453398629066896318740203057944248920795614371693890631525899664652043780160599293510158343509351950483252180212992497545539579740871129003911286077808828698499736595217036571880898939801248050446991363886089526911459136785750024613262463152609734148786808825276788812052715118201319814800615103467014523015513435786473053358098137751675633919789517267072701071971573784537199296999629134102194145829427440072716439919975867821771946456131187787359703038355771981672243555284927878193181554611399560245524028609017977430478150874914609408234251186727575373100469391273669900542660489374714729207447468346090645409202029568700118862207140783260338207973463503361377587388024052124739372365538677621717168534754685262683340027855818484780739346810151838500919947030797493618501543937535083747192091201733523764913674459553052583140317234230069306564170698450281381958049931267309278578057567428382418268375893770142262321983670638790729075935254239603560139116058757361198012005329751849102919129624398325260597575576477659567356726180776421975037606039065568774654363309902959990816409995319981414486617083953427150336754101413829766448573241361044849732247332652326388868908486266525429831870880534670546488487820508076794007928840235999168264503659120909736923890971446197303909363264927303207451507228562882856079283728875458908362798814840857549681630329291049895757514148911589983049857310834662199004949914797727398279266180255457928070536243872220013068311648800509861201144604275245126106652166371662349820143416156424816570446511983810742063396084265797851873465846534860302705540469335258172033638331964110331030088371168839049691461774296598392654481852824675837173078954291099697822201296388008282059383730540067661023063648029949707132579980109892063717042460076151287546467629033339856021618356347979871213324107277123186035938210279899221073488220917460004993726448481735431700916328327042433950317718757376922315751007556705515888638039839604925636302761854581590650769776755247462007057056321047621837734533185015603675615442684853354485015836847546973299266576433727553097043257477078027132592949404795980431004753540044972823820432452944170996036443018223751395935594773481748738046242681003699136769778399988351165688980490033870203293606063275622996906835493528463448117376934779927395493698832434913527693328534954999011522561273786765436420255452864020487209302707518340824753969841804599954476513111957588448552099534419759318281134990478449500820932259018409885116028227363806898836227626498919215288714375778001585863541113899591799107011326786221568912603796292204576535465926172912320689455713002688408275999994557168517272423716015094504327207609817573040932663669961958476212526099275165995417421826428722138852325592340224791853806555398450958791974085885227937419686313423726278325113578943670617713182298582827379759708562103467923684235909083828916799021777880562633123480936577097841047025028165600372226335363219624861519717168381617679772463428553459188983507860954756735421359933557087846952833706764664158434557320721309826920728182223821544473708220724034313889760113565921561685468903057036562302679098596309423861603017665797748365938778167792970943004601793457487812163227780814551153054485918670792019800968581145870937357991550462523232181557778816623522483664753270300645585742517804347351936083072353479736410178423427993834622307987534622651103901757414594980067625119134120760407859165356858965054718397467424497758145133005881948760052410238659862100591693296059109254304470462103602396979362183279272284421909086539758414071041788441361247707301815780544877839041060036591635968778708662417355029318622422466740596452284304706266324398501378687334550016943826301608622486141660820892601594028695625976920772550428348849804244935386863376232355627089593621813203482502757451022403246546109592630783221498488467755918891294678021069242958133616665387837622790915410432475209605095376649353117447533556189997264218435794075166296512038975167088390454117242183214385556502175988754282785969848891243438775082047415452745857292351871002872751920963223113241797760869392885588752167883605853667261041162717755476221634928141105922625552308613405651295370004186520554059055265889342420766008499057111306451040341853708046648371896038172241298750864053060380995471807287570393810441514810438509122677125685420836771496277843431710320534640792368809195731804345696675041894589345210778507197473568476655583695887883798883720920344166360307339013621633254885722418987487889921881802736155232048457669197988157168021219193035390922483625057511333654623439647428964466069128527618975215021348891449981199083362031456555333146900009732669733059725788935773274447779214482138392676364881357574619543872424536545205817866456180116710601426687586839046007981556820741943702051843391212302389750719764791286556871772279089818900953833898759109367667263850993995624750635008105888585425304211322585177927964834022913229734385663394981371630882576035036403034896517373488454422225708336429382277586072034727069244445381827683367734468901092748675040855451505595703180137530678733461736213043543876349944246825754070137885950502880965739046330587818442119504297090413259909871556251464782020191497988799065457531534353822137617195177093904246347217508420777580019410683257139969974483394454281517699499524623769765696498736872246902922517407667813356136611672674599501954595248573979837843198811116483166746087898120476970338841096510556088066748366048105956678654007423070808478971981304777851660156208689703425217530394694034555230643509605200699805201337415131189141452751357403510351357254482603437013060065761683551473759083143896828250528871950096442032207231313816589942287814434689141253445165023116963375605295076455249625774902653782807217397149404182145262480429561454026823740805278284887290239933926947839568807403855497688319732752156061929553409409650203940239023408347900971956689198392365355260600945175327504188174471864841682567559937351688783968904987893708661231349178502546232821159958046823248747755557875269707037962762669828633301652061479841214323933876183513429330411910276317705087960744527009045922984193935563862780833205735570834730032959986855286214935527177977311552657221613386272836194555278120398449674882100021331107768821695255966299660015853550733862705459998609576055498290742052639538825981027046263493337587253685249330807643613692235067427273942045217994886727178620364061601585457392925738168124513254288981196856470431242792172584468933121945700080271296294903955227430839823151993941881478241569070452148472642289864207792777333469593584049573436849865119068206870584158869695444856029944778624071469182037383319307909720722373669274308611245692635223654633638790118388479531129725461951744778275972199464069825985864806925335096757456638033458447426064628094051631886798822774888021179617555330568155863293319065291597935027325790298972002446630157155163735901921746449241312254184988544140338028069437987106651093237189782862728983740704171856533201752259764886422557966341257231996510908387470162835578777733229353321956170142635001574182413741250677540047642374728653956939953590991529316810384319901261951374772921869167337414194997430137158298026053201904087966242822501472486875199676937171098663144981915324454296071653812900141810334811525353959510697002386139807486629015602318535782941312222926806394037311448991252052216289546444401235286028560259882314794804811454898872297488803253646248276298998307187006835558432122779667015518308915021869453315730765437072970586714490956018396461612077372925292502049284628684042850107933868854689395442002758225397060135436795552272640660002685705432960489084927115970624370090783590756952345897336791735776187402214169023046775404597281758549080310175053251734098268373758980794223952194381140933888625651679172563447658342270565171082428240163614991307599367138315634691668674447046523407418049295072711110211053887632195806878843035488573114378844868942207876211492863784739965704729500151430847642004708553417500394648991964718162674489034789214628102086481055015481687528055694171214270499231684181569372749024907957883428362771546998649048462867131819885457506529198169445837906283482993364892205057987758609992195541880651527979419581755268031653447185112091727005190429870258657272876615349236668377627774605434636736840875899319611876087284721930154939326639761707859288019931053356898636452970494985264555757426044483722517511563148221931105490619893741757617787766799547090106591168615407696301074941589555137472567858873571977192272368143759994065534289606033408717639225445473766415997972651422341402272435642862978833416051136928757975655813832303632056082297486304455383245285784221120224361989879991890674616793602925678577105906702559821321201612202411882108234214570071848355737458430870385550583908524021931919936569211306441344455361999465161033397219655565020957151875202182810172351763574129471834931166873320989959031799901465454351836325375520876421177297963727895312296250081337501483349831588154360274481504385297712279428823077335890468708742254664147402277473608991803327167547024362428073297955972249382150249924544432636715167725424559555377761774924725592036055057692755697927998322055056789137987464682733397399030019771364113443715754340666883475443874030037518362256508340318270922851340603907899498169421518043468995074823915793915561270205539527501530302255251488589025596189677058766015986617352274322948006845851912636744908512295296893228649190252044827227933989620646899384680774475492810250779220485149983777399523037106448357409368525727102058059406227170478311620254906315258037914348919882540747909741818292269237552731588257769880992211752532060082243893632982895718588910598395673722273331343264231681745297804645702966316219867705520291574328726527079366672507536647318604200732815398089319967665565590926191982589026751255920813166217179038360197513333817038502018718436293802881667669602486938399236735966875231099399072370586470017454440600373748014477736825458367887658098052505422198797270474739142999368115192087674144484218135953471814556101296209257427583137534709730262528664860516511097363640454729182479545375000473988604383152489838944571127938811567839409477739748116045670470710840465079442187799572226839871696823152217948484155013669561550241684545249020079727358514370714508529012480144160255514277176007271759705492167054661562851571498928770520704183736792200066285746089861026732622669797949724381403469621720106227570345795553438143339975945748066366695775834662818982686830971848376819454978175248607471284800764062009022999439744880815846843745594758427936071460165490320659264946764684800147315618885691156183504793956011271704272179219131431134995026863311847170943057041821874044145874140107078185034728712791393544622958302446080706804722295205469034553159468794759869543350369234495390617104861275750919486501894256182706236231333866028948852839669018887636521436488960294292228357666215703249472698183475281834254648289354139074740354913761943586976953612355636574387298973867983263737444607350768102272459697952608214337639728402812403534932509190420695695698603324521959119420290830056875190715278547175150232099505736879895502674744646920593715598053447185995913120761684857491638177080225143404466088695701077727749639690236197962718025588804362227580144617884440559893001100905568706251991726090224474907252002382821715542012911193827839515205956697023888585012363205780368918517676045322295559261210106578385156534007118056111200008989851839955500799550388428099903842107658452567332157352192978194370573940273673086777631285778967372714249463259582162431067397866340083734748951155627006254874982896208378363431525468481270822780951599177389581735391040409433797491186990362196332250030524224034006709954901421964836132302786657919619608588962734794787585958910249457574227553079139089902480620170230832133893913828290010838510612522636657954351357457672440853543261631337839891501580739462147578672362555243283761803240390484609274118485676778810498884070802180295846671479251528788531883176110773889166868305132715341686530340625674056581680238480523646348683937135715635025164363389219572850608116880231097050797893350570563990929494194461202506027282468300926109490793648167644882290096898586790913107248787874504618665684780325790262033219254975153607316266354778223982748459809005746908654235268583885991056286304333070633732735415729147106484635731500381789836822241049446116277694069170712478906487945859716651256441421574824447358721129850597067793629251142167837348964175369891074967417878863967200355787982314800898890041627190447725805854008152484743603465061563550449751227779041104393375125318161918464682232725284200770165958557112668695750395364522586123309879337697212159830568300984341985258120246771956578939292301543819536465434044518360672365047812746057027907325416302671385981591423439297829377299673541056577377076659417609288036472124771739057883936150526577642281345948624750316473646429825431525137040723839940385166644382233400755792995032393575562200485648635186168730823927355586641679908037918637014621523794605985167294317788961412776712580262512315521483327989534832308849602792756559829974631706876966749186137442236080925213228596008152446241956166998841389271332090195365004834484474931863180183381866586069020714855026070933118414002411194756900817737933179050770463860569126430182968079623714619729049824844149760874560018269545056617228859709449594877670014431520007565315107146147960678611206157500468295044930742045727109046564486722390424752266597076605861836814771157621057899590257790025653580358948832233793648079168116494468545806465278841504303161736381488031820160833931651257381456470447518477268555359759634125585458183508666616483981186500556128767475645648926570491270739629607835073015436537035456093406963453851715201637803105352463380640518442112889506396918253293572613921576206022254140258039999858735039513552550170636540296407466109403769383311858369144929955610660464834736614167435449929925482627228620988229102867063632712951967561385446240171661988444087205984368298907843119682160334848971125458970454161639342390092883188051380415456782503959002822770521616105401588055793597109121370341739969499089012907813937251658850871467308461023929893477830748966723396505135759631259499128005447789787065792832242203276822433516416138219207044423033113561004768821459407668174798877699767495611464272159221654299700547333214851214958751558892598485465620954147314888336016963230058378772778155703298980463162592816181137794154997294257868091448047677452837111223290109633847381299205272058995699795880171936480593463797858717636564448429119906242816372511150787458155028153743029357817287822397884733105213828656482483838354470287972676867698457176642353654369101934661943805375513090321863696743156755602158072114761733017209693680770538349083901676376957020071917123517970250629667782021567280302338724341835365256355579293506592008320643264053272432634627789149617078233382796342092479564481085350243010509329198779658886603058202085932410869027053002402891916214507754571191762293792590855619900286730567033312746632498900888542345492910435239839870785706915811348776438124505889341039033054771385664357601348579760797448201609559178725478906328706445472779508306472555327715654161136887365425331691925323445265908106117731501571415727843938393707436376963377219308428680788273154367487954096535984991735927403205118673601994932662291479232935224150314642204551947882965856721894231279644910916152694777158478550181698892386220863749810257872530996073468909554765574099754778278525175111956202184528097253314768178830854589698750836312159306576803274221171504649394095731037497239234001180123354125990486618271025760002852122120541282305258217400646269337297594229305807785436689038053444299683103600727577669831222819574658549015126289506468187731036739498117303789306721799953890095593745532581352494443390892222184028600192291780454550321526361938490123041154705156839739329220730139354154590075179598057151267891983896285624418098157643204810912813990638583243207509373337442611030460937712473904453563957786299912767035484417478985739084804346625908248469542636367673862776891618853549658872013044536883469747218658347384867351557631871959442371545333969175141752847341636185252977508527953478807546136826100531085594069482042552834633603411592081124622079436594890353608703166877271738461155802838807196258650668783855910944162124980844840795502043672332242872057449719911272316364219144229300045225108479132277163603651869984544632811927292747039508216149036444623304158920695191451298465608084304817931531632082716349256451489219490905028646378457868095717170085778650070250070604756231902758856324565352174293768486524383813466235576204769346134727707444368570587115256314255139335375879811787191095347284211253620846708881284122872861429753460145207880079939670975363324405970783542713652372304753017349115467145488600234793044536725855120661744784355151234907750485677796243774036774431110775836021767055434940978467935016846723009982739842636743226735224957570855513820280891484444577521753060653469231480461090827892438846568596386084726383728082682072173926907386091476949226473957939701614383219626444461821702511188401671743429692580268461816748247830976105805546925729175124285233549536297852715027626583315875413647632601263729985370978912922895434755205218426921471886504312474439684204695163399282947180930963699899205678851099975970130081082669199138140542279628100115984185854003794455905710749926640780904148795113249754959558818914248084365218135459215492633916454633586053703122960739929534347398403128758882997610721015255084294589058145980288548332771731238203083239335272393661748465844220191989886966229190932699293690229329961947964732377749431251545336608333341712298677370568791205490270018588241642779661701555725530355976347141472521749573499773221292284676609433544403481961098790314060910522798246736999841466027978565835387757106232165015327243998778403018021712330298080084310799790633768153793581731372682259719942475237728289762965050651178679503421583143850895750597429856754077676290884882406662871927692586315212124743124682581236185103272978608048762999493842678335226819867131485948183748613265545684047245972441661986581622734929292200233202275394386037384554371261732243195646117179064089795416428695756867110757423141638205570445530791621352584918837439634659901803843269861611957652280777888163563661834906060075716285727622996326000930895989712504681088659225684707166065883301343404008375856139390685774895759734392572105954356280122697042926057558299681794832122341473311427870633173440875572561577094453663855255188777320761336988107252527930186630311847114606207595640566247780306789355758751835163960010660527163957841160632147223764856203043867127749288643486701246886391065909757621940986476617257431742680185961515219606423085824738314086722136431483892502363858178865568392354790739790031584315843553205623485459175434037097212087616813254004115506066320615645760838631256620973797148698643397138882927823433956251516206652285439565982909481749833712199985489647598284922486746016327258632090241043549465804384859552598701017828458254309457738153681338846208838388071662884422611547532940905648263178861193975480321524568006326711123820800991952709146697529619442825823264923607555350204646648749331524102027646121151957489049882403143048377453360019456836324085618123731322184599090824945942294052494180538739820431891530697513453871430295192849458144637111508431665134783701051901068277555245395724286930414029225656504948180294597122195289393880967354890178031920517494118910838775098098653276101436747293083722133936917129933489437184480396317042754219073212507434996030788799886669623943949056957793634918463454419642964929880290930834790000857186035509920832746266367088635798804785250884629267258252675132148619356031347653130094780797570480908396520761929899754230337150317025558550329938169438536789152514171551570940722155344119221068380801465340404083941712555432334894748483046420320914991643532910961243200350754165930395648284105166599880216979806900170286638052328713833478420932768995778994327058158904926395473103843400362404797056457784651463342689411768354192735800711557933251783987394694138395777752732914542002940266577759645503925046598664055348922618604973729518552659174185930445469776906332016676645714270305873945017822839882852736293370865078945990547557883980271715926554940474470946965809007045512709079101407624216952948174707773036743185200358610665118804486979284962532149324032357941620449667079826976949283139474259860765343215790009930949910062446934258936495418358174008386850208311446707706297126695393295999518937879991117757554799655115035557137626760915668749272340143456307955008454580022406310181775535605586536060404861246297173159883320522341117724486110652480147334049447093158243215196421688703984985810879900286178930819818932242759683499943669166880389541330689864455142868314678688141069725673172119697743346468207598156300346495620901829507463668293523852809158484707639321420149050475040697020648813310040489623572423315040503312043393148978228725111328325315354420344423772407822760574313252915957487351812860124608144721251636616213493998523874801423802956599004625939236011079232865335463117999198938675468515714236887109368764943701387001932837020430429431265564035318581263614099295166004918466931719725394925503602013048560124812464960577726634402030383633504179310525838947970281678712344191719902553748399185939179601028773855432251334905792287374867481510762603347492646961881211547153410773436404957781228223946803512999045476171744952896200378683834736380265430491188852510062704054883263224344219541402118234137347398138203778409771217873670725836439633841788143624367959310534597777780659742003283852993658371563793680086836632857661640725134904793883313625355424194111383277635511354466395403182336689759261086643660608074845791186602738674452586135286832533177006685121721012679659693470912811555992167281514967157523139915522822472741578674091498297469237657442491800975087676492997685401276294886174277042137672902424320293552097000195215780356889927693126460587873365880691038542838851034960051745378196874287423335304351645725963857270724652950821262047613907741070182739670130285411094840475888221785564744708958861446091034421469951093166021374957938834659625207324176386226373492613927331734459322062697592733313740717483795202047454704441385745839322140052121754003059658272825834161878435519609628369463791883329943622950773180322998111682025797873244312088102215545926409524193404143530303533899710997010292874543557283708438874676334732851528867227764597548740051105327841525372052749968123305221428578346060435311817030440416738524846718301324660914847201435263866709726264113329452617753012045942001703516765497765487904012493880563091629312343420968549830191482154498227479075786185673804814911898120554271602466060513181113469430894845188297898273785098542405811404627448365365378097838372632909021557687862969040999389361357842453337722702670571085357798024172176760955878170844206893792787950980775397707853523555514248288826439780965084049557598479831480767499578370318522974021713167539148724111546353410876277139809511608099199771921190687561078199410053464577663195232324989375603207189212484888195804499023893462894492432911466114393019147591610647713185021440006116419275938110152458050625799882213505067313009787167363951103184960403027048876682590107046607392625580444296132717178803701898994751934294201219362627762184028518119539246989436937133608153518024131657114124166862057307624206676346017446985150680895167871266626965448317139492700962017475682856764874011183668750803155076077598400952258064225128288372286166536158398569872575455259320262956310278206454818277848016656134953959958041245280861826561340993216445703192002896043085395321562020285814845288877019680117193932564013103162749890531778873521363064706157556202891367029528600739256238299605237763268052189983220756290367882748454726854278928854316696079879182207665970218686535543105682312083109498075488140035609712701119226810198150548828409110430493454754645450986950412371637025488572542243476737403995514646677694745483656744679373896192745503893371831708136062897507156427268723763536455394380014938055473892970703152090279578609566206878168694864436711842323516366881643064778718448243716830468321525799055068459829322399135455395574977449710111897714725140681469795611139423641345393106581461558430047517208170415607436839927514896079575858756165711655612668617383530718619353904319128573738328492074629605635676296744102852753766904626653225613635974943875577121839236272690488475991656438440247272252167995759388231890272427417870263756670681335972496119470458812918981728225076959743818508921575064050655818951653827764672942529593814712320905555225592370862089827894885099272568814416269420637680807630579794432882808504741175948159763728267617665894840997192150650697440252192005768830613101565835769298177254431395625128307812699924717727167694642356393352533831137363883862412595265985722345115847537879365023440945285185249573750664913030912200860848245473106945823686961734491980377682447328714222021591974223155838602854379896530358303067891009440444006317492685588747787912732844903013015030625776285576436705512511271837520670310371682795044884048077504793336645972459013447325465582798335300655951486485925113340426434341491434491645429797261932805931061719507506784869705695627649828279825325289809684035785744991988929400012249130643883691638527638608392279086785802381816063045752500875918599904716718453099402959500423359657101787520250221408203799964761800622546814019085098367508506743440391133693938467732266385194725890255410856675249248021576887920043012939161189517136380856236660931799405449090251435774590723160807724165370410877066860182889892783935687933691952472083555051636959825853407239825127963264065133533569684856456022154161349359280463691958782003846839851460390471039851823949946188153390358109379104652026175838967997952047302836584231703869445577983667963259765439498095050180847570699997279326607555267479565535115916667805868665687911048528586418327867416621494442816728771378861492466918724677403659380916882019864933131821680523647655878644109181412795076558484870777024276535948163066020755014285495249430162877240182159485944073374407712044974655030324433497818652853741467673180814929880039315645491743580301381489080473543772971352394215015873361632479087288459036328987820146266744714000274264700592497325877314956643540244655282718070470676003815267218388487999613445553930477863529960100229602990171085815917836657365113443215106526248680714940268966669525818884937471676552824099993102074503502675151997335658527208453581802638318576756085758475462206200832204856585444709986476438274402868349014874848852827273222456067876765876868686155713412822641820933029886074032445112391417657022311403031594677356377540934884782661741423930988862081454146890883075416026870280712851876356778921059487477067411453802030334083562120263407887707646760516453593923198718562008268949893121453200309213941740181195839064781122147754777799263549437126291144114359477792214734442398791648922286273426321809494633340516455605798404740649853660544260527957809443857960267969510955373174490259653179076277823360520353187659150798114972454438910518016741926993159830968007399738554329199578319759462371638003562443582453640760512370983443963136633051273503282998604981246351805389470721512263550944895149751828442893745979276614138445876241319475874319267086686257002969206629589132228058131948052425717515114476874853421897936846602113126708839714244379092140344076577945607886655300097960766818779042486504032145027126978465188143479612250135445635200721643861542695519248627544181413176591746815165339325731349342776842359971017605839192794845928373789642703740007921283406096212877442827949410438809216128276847117016701369294216754325680839791277245677939642380469899543552837129806999932376789388806732238894567566337441163358195163520931960229016265989438510649177952392894620954594688181635002300364943107823713894873432732252509067863632638219216537278989561769621211608254123557541844087270584306158290484370085050482866207884601638458843414311518987420058652079051948544765480817407892586811686583467211061053650453749933333641102342860402789057200106612371267647607327566780173909969084067887293802676957273853107684943810284672022644597365836037150107568054066426819839924552623434820860325776850628455957141658049690956154205289644775454220076527120058729216563422606760630434938644210991241011465355227631663235682386919278136253348862233752736776388102607964498286732414015012627212401629000700095855439759672263441080354700782785297717656518567201295270445714112407428621837396496707016742031525835712729201562934773455343089538561926006489747817546442689050675442640073667398432054821517728316341911737241767187564874199765714156256425704067356616049189506418528457076479060288850328053288076152294638082337406421363312566716533755777976125670726030634155053945197449362015857535449579304608731344652774729380695055487514060208248811895022517729091041387848969995261145931531285341457749952259530560250626605916443490687342987110687108589728784340927693968584553492622487118938171069025679633104370798021958153944067224673347474409723800833885102878462026409280387036435617846803171093359337034811799327310651112325713865776156792002594507081946895202418660423891239115681500068565966418981031731369290897017573257865883826969406023068848364580965343231253900208692254788601568945389938632263063863929010139704038859936663927622848348284949967777832484259224754689732804103363756425915442080491030805224571559191674191482589436697442299111666446783430031878626386555355551845991519147079326299370832163961082651780506068825892353931354458198673864376504911329814474640048287899523546602276054261054023911435648298077058580771364766085489548317615157904968781580054624348405523351647865917430968341455200463569170887448146231081852748144963487680815915179233238028873932947927912425539598191244161806416115797947861159191656964814612881308845989147447186332053699748119392537702924907216515386115036549693883657152313460858755091918361630983179088005731678069081059987449253698139157236170083606879900896086075121756400223883746731147081274087617398213666818671305676185687283482921872363978240454682123953439519829041065805522807713992022399664257872974941015475163260802989543119809594022443923383202842633975662367695017483879445979665156724954435530229378033951860472332252823328318323091479494286108203317293413974956969860330993358457335309857077042837513813707254837894694926753927891437390014575175480603292117798365332781947467931369187767855265964740353032992595578958602806498676264024640134460980079160366886898546335507627508066816739161107190733741172818115573967236736836611114614191561930743946460296940626539006960996826072170179794050352831658097201152734998909891434912708648362399341794478056700693913290416514793348009072814467189936843987280553718866669487881821229448171572634636282230235316529672673068219532586894464469331466822850546968866162443489919458130144146901829004741627215268195893887205379526355172986852908767519514973814878010451960765755035367105926732494834904877280672312241583223756671890879987384261736323350026595557829133703976146145728801334537133931094881871710915323180271364575247240183986734244070565205936708140844321478192314600556556717748241031738483189367139197465013008147748332387454906980262066297718108880791804845943555955456279203417576702521393059359321568011721571473703977522395372144732119831874487530821183063555466237732566626112106228415651139130706212890352895578487227321651612118325642916720533073735752224814860369015062632475120592885020098012431127038026759508428146957982019411655509387441994676317218756082434647496157558975808028524627539152794285997734333593935977750016306577838399221685173231488509930033500242389075028687276997133493865690634971577623473193573422501276778030357588513636741344143687662315928333232766574628140513001847116952422018487770579679387004872597190943019825763764825542699986424186570217288337983975769185475036056447234011207907680758847222212147697921154417268310339772537978119146041041242797094020202872121750936168949696356331469831716812650124793396963940472478189984521826077143323094315467916807685586767313269510490045412037439113033602848802116691729022119488905000581648449409680220258437631726471779201719931681543243055278808274766708776699415443258866998613388049867222236947636469688017587627627369626995796640783952166616521111198128014027631283002919173151499342330241425930444942004356413607386369526628716074647081168969683628866515250131468244019019082719628962473191410493183120529256952138921775717298224970646278170468500698611554722247040815567464321888495557014001534181879982812482596120746149447763790000231682375967435506634797230219230096488952120390862865563518178549515122137626309449274439160325441329988380926251816313982744179643008717051865771302513263849809225519583633406559459714497118795541615720514722608672222060573005399249459934472087440565733092800835222932018543338344823081240760797923679853181620612396304708943456629779419549369714603481384796745922891016664401851655305406321816697786681313352156598910549225936999392560643542954373143825044269855214646175260000564674951425499298808868615502337232131548160392693890309342461897098981524083049374063837925506235956173185460611165717697934173316380901983490968370193204646304106456863491565200879218349255301276942638647417300661318082275411779594303016686074661069882638461566537930365406383588468333796919837130494642861180188755115948713457240939921560931233597943727555098868533364972510665754708637737526154494826039068284179744383370361232412972583656746614398856999385588965126079237586594141734315555400764949735450208637396157589454154956719911229478021562995546456567831404174449735945262545894944253855983087958543841645263247855345582773808638432914240338707419946770690469245753988919694125643946397061044185715046400914208394819107280900651634041642397259304792814063693186639224452533217098622808738306275426806704076723458021611369149727959202515722941588703259332775655382702092797312847880519116757755187105151472669942531038859814685415165784327247024390324691071921464973134734718646285024784332611001726510974423804921892378808112137870532306276817975890227803851975211225898249489203029374377886141585649398091845786781349956254970740297200367146348361738359395461714904195975145873535719573214040193075614929479583041046569465255624719257238069379653313622759548343697677170246043468970023984081511943416954760990739289640003512158890486070646804508724623718127539603425723033112209621443690818712793701654423033387181000527934352945601489319538370637664592310341532852158099821747927870693836884929349043589223660229057494665954470150710651776136886916083404131186422455495456948210102024831880889243533462589904024953642645674466491002496246296798505957540877749966845261951853813023300035498757769094011067462248840221333027547095017075012409134381088035149694142477647314419413918144473255287775967100610087995704597491290903366478879178361111635010174326184661883710730704032008959457006707264972825355658972435492188028062310132362861000583485773298948320339284186772242716813234490701745489985844715343657845454263525880834563943612711523961592612077918595087779843753742743436408272505036301148318273708707228171107401912968918940782853711107694164908904250864696518112755987045724430876750621406303969618063821265719568257903861964604575944521142999140694689657052222814579915513930281308599403724527012526142331810163544003913598138403941189037387215441870208776682346665730508647979844565371574041112391494987796615448812476027426541526654697292528974222708024901778929358189047293323723424700790689101658243964377467834624758403090685704516856820314383814846143203309071396764675869732947615707493467063840820019555728859322489146335898316401967341746812367650861564705759429689516744094866861010236673090796606128178408805305125522942377894763994947686261783577547858628003306475425868489982418804186965195137415798117903206136808094149041408684794753214293297645169454554336290177283020881504307862064414537807107630340388986762830059356224610136384267544613886049904024188247759385717423260434208470572285125273157034559306556117195834351678800258570868036252712334621985506720805730849751621297873198994455376144082045853585097212577871639837192139190798169926648915986114746587992231804117509522534590194366588467508628104680966370121525598836418563122224206169756802244512923796864863969588156336728754671393900853935927827159953965636888267435982400246022877876504439263450340579456280284549102498213282956256046004696353140639219418146293849751126857070312404910891973167217285294787470286025471080249720811382573162465672443364246918490748547259243564917803291850202695576406324892520666204937308013537704993441216818026594743571961917353917831528606002451529595727301858626653196843225136287820763726278704665555071931629584830469573010216778151018514250230137324952058558532762910750634495251343089549853951910906072068319411311915745495311746792516956361577126815410024587785439941112769673670555955565105172264979792539437904091092928535536701492424531523224817204667803293800990261026117770475377694654839282886340772512490998151676646430382169031858832862018643927108996507681676176469479986545407719227487023200726381631868256034700059795443360201271666683635046078561972768503074952897672720379315856969535361527499888988154033719439290930011448589871517373165636783749108674998841488046961743483833691156792186958196766768139004187325629764741264162525306242804771489754380093264156877828317285787785093746262852127697748852556618668193421913774554063640361516414244653783637144446420016988481092323819300299683438558897247370720940884558090556080730333454327903394703790519876287949256568716420287998754876290195674632130872179793835938451350010722100130345017645391374596929577062257545900520963373717555310039244473040030258233129586110505670979606482868858138735546529193735832429714418067150630179289985879339643804307642791058886775408021379198533315761779749247762583750507567632546422241253356424507798581362962733188629467524910427786748262742871429837925571800449431771872435153140755479480181149303493060921363658135398558969536772897356783401178859133330163376322966457410109782613635587612318608418138239331812375552964856093522399101254417252550313428636473061623912746993101803036222937048878359534443371014004621789228157756489743750131533670030553110795723288848158858674499284661911061181969503105173801389453675458089517366020370941236616643463207536820200265989294123044943666018799193261949491448324649100213590253969201540103472814039909787587693534927939422490970997067862218350044838864004489452799194968147392004466440538390153704591404272411880617868998858512923261721008005861903453234050729920702313990664928790295360689242090236718509081215344991901506706828867914925105258708542880343917975066427352547081003758046331555252117361231574765022614740163670026657777161710769726777659162388096885385464433052909215314698717028041537446321465150170684909345379414187583682312827176604701227916668370146442462303183690553430025382662291107439249669135419712725030967026790364119311804509289512593609183044693125619164899449452216854015784718146856697023791612029847960443684183699161020954970672715372597119549887152132550498836592735250381570171732660556941643877725973818627171956012875257852702263272986625130644964727646106344572559863087948859073569013201661927534256089286526450788961319695480966330506154419688978167911888643280773451830004717584434468139171982836629356658166055004701607816780970331540856325708154364470171927582093233990823413496631714428426449323355808891631025458875853919938380708221491336287826109308119391094228246917794869561358497467789377494178669569402423636206670496303980580925668309408702949084740423129057220145574562662290615096795986177373440018601038743918771539285404050170554230585457309298349382439098488489847069825046926618639745804005123960936239806346222559167100933981368068933277418983488710178987842450822305896992415602901586325873617836445392696926857745858114377357116115704182121812336507801818223202033685495328011831550754538786457976667481543319622617030924176121141768082429297168243001056512536454798066206253094258996720849995516863329392716660683418635936792991605592319212493034693328718564442242842105768149905046335684486622662562288882118282543859450836179097586855687656821449526583687441333019530079922758699711070270454982472617299353388802372686965118751953957231863613214401800576193596609156389987314017485414349197384705713710624676439212044127532249800652804598855868519263263329360135840604121709564179690496160431453055245093246439688291982277492506659575959869852534449671698327224137244761452081530588285714177927575398668674973620826380805183749474561259782732648483970814414693708994310188406911262903182559772272266079001762939202483927308530416719685641730655878733517244417545032964921724377186779495425090929339425047684453338517967460312178781358377742039718162868885814377840795964172447240401841921019814101794334424319703555351346309627172856866449300876643268930703529411821946996331717894831501267818580051330255024954227723968906288082457262519786806667465183792808550564460744982035596281496344600643628503094104779046730296145107606607463653269023971556757955473302797643159224030990716563484091669478055222156333744342421375714171937731895590776643067409968941330105178086708287445415698321046729532105108362322179923573609482848585509943710247149788220964625916970338483390427345224377683472433136433274082237054980313183463605169239842988966459256945968325469361818276772087937876287457276743556638442247566141168926684806119764225813723699296782477581328840788551504540231465693704950238596051407779982321414095584483573503983359186040185492682966551242826674718115644402992322744034232735657290484300528602311211781022379108375450029375689614071181727946262976166377521074377024655168136503231363173696105224801947438761761498733044138497459987187728640014818966053921150675044848337855445570762258476577540476510661213332106713432181992310005639667991242210606029813950535128958276409908216830723332378071110350850891168768319909561273691996339601977451612820826614699213458794861722041364799027086057256834251877330549463812769543902428265126848156468346375193000801790655615072243216502285657017914108109065817014519739778100689617805546876907978508656390379168952158186315274417448429449579606078202902883549866470540929170803667190070224209348527574471491931223576907006767569775619900066764588164363218265402167119314788767168509172522282388184937935547314249342067972652639477646091310128149599838389547526699138692501609745891857567381431371723475123606169345298047026894863582056513990920288283146082555291534437135803752532642928931303166519128364897690991581285983281516455808890848765320919030642870344633155886114685392919442197827686816967648008349016918176941785104384133248369875582174867129919529667838798522785308504126037912904975423392585886320461579229226502655056575865523554728595380047792362702632137698288552757207744900956041687612350792215109750588579317832275687482584144739065796763288262482242249507237552430980762986375580122594747372960219118233350045241164180721833740454143653212792409974591609494065037749240105805008596451317225709524749309004679861052846743741176941271615446236371384318811377590629178698241664954856035352058600209655752714992394078034135903383775846301132510000574752131133492341095867769923365858234584367202574547204581081636750327439040160685376692014427694404052621237065951424983740044290690526373967866545030689257661084932191547009275028903904361961763431407254766888447522051627465224246498210043483190898447417892923003541451006186411144454604825598874551422980403251494063325023027483399888402070168257505193453807224847936462895147569580410916988195221540440154976959403650202731703462343961197992962791639034785073933742122065106419107462137522435797101413556628680646919051119594334429486780494200181223792972117023119066097007409940686373961842042636487208180108963178154591445440912240540794865913548966363480392979965218160011336967901643724283444860869966998596888136411547220224568051656522034130301202032720974072956644158042555449140905705939274148118520589740452384807860385201000629661994393450590439542642768700847908443485533252711519194468314700204832742334664132329687716111251966721038327242765932921039510983662213920529114671137480107887301940910128306692089136403207991811439290336838471463907425831166993025921101048048281612570796649979810959516112126188260576209666811735605462960082168382629886626923228657415186500742828591411298001574125755265808176818964205927244054259756623861643845293633667417392838506114976812547699497069720417228577755723220806316072587159798826971804446553898443713420954901662637594750725210493975596694029768324479850929701691882191090619894370259997765643044213672939361716996630829966140722371320083990782945642120158743195971481153080484559414340002535384934270654786452975116075406219402168570429736877399303973601575003597960201298227442716372205437268271241903721675296360724152145991839687166706263296362239961476486564980247088138703888585778491087775721519678338839821744454748396536090734368888599873939357895326529387299249222833116781794152783237236252350851495838315857923068552923580286161481636778433897996409499534947419266654682298509503678414249670427361787457900902345158061083466705082097285043659731775602731873686695547954851496298927093324653954106109428166364153214835001767372617422339721584418829884142877784871638595417579663383473187009201598041217021256724642357549831494555048184747514578057235935799455612680871645565362819434448877166939065480240426058808873234641241490512445104533302439000327156575320705632363201999000500812517101766410666941054890641543618613716104190922194886094096855899750701656921301876709749970730818154274679451324440252489543297681485662060972413779536486241098367922468385758271366166870718904882539083936283255345626997595170580626357312808134673286256908813943101017560159743974689703761440847931652467177015516019187795318745960545298538832596609618499040958301326945689253599994622122264794517634741139130463123046298502528693244513637352738078270151276585873192517775845174744644026889366877790030238078813391984361214935158471932850566341931433606343377023495358774073811860706673915471465339795957799084818138792521070801749530309072029222965218686794867916927427955506122380771393500168891074396389858995047300490007440511033794224093469929396600705026899289752065045201624978407642055809779710191444260731645056752620996650929236465016276967695543305353466855529168561536985471356128407687208738845323224844752837414306266636981266081195187894595909339778840935965203070828245526978908189986641941560096075071805703779507204709810204388809007262833937050948712321180486964510670336991238307170454825150081473867110866308871405061748842241703041081488475372136468509506187694932182784800034995370458810796241027707819649310166756184932268124989351850074663102862798098824727734307655334258581854666488361020314580897764675881824025651197964511080348894388368659160569115689417232583369812654193125406874650812104486572948378511232628397164557596907765814848651756648139728677784205497087395745497639391598250817507415919520245611860722634194994641485924376543334836518384959565310463836794915315166000443382859268424332294241837619026439324440529458444581828155381270623941463679833241884832256123605064928897052092420580754344431257086202799719243558112982104158023821094091955147496518874831415413770500586073723563770750443850929015594446499766186314164285415868491428255571512478291874422536457734702703566544063647695485945872610483098300738559279438111956294373100115760204085009122607709079558980986819934643967437079060203018537496236931740316564403983804222685447939047834291117843743460735446527515031089784087291661553008726372327910138644317385787857097724668488411009236204752635484836069405130537493873306081619732566931132657018430405188619530823697560258607567354730644248895177876312717762017453771491279981196493239610153964631340972548380791754714492087748680077129552427291084774760735018079652200944235937738478382307639394096121482149770134002865582701152369993907849542799807790743546655168709467654561828881209453903385244858995402945869370622963595747439649568151683264237223411715684143573635212872875119348975719069029835446981597159001749398938389643308110616462251672529471184525702963198455100853928494928094897644033209397617147511068528600996299454213609240055405584284795558488700086748032260462555908808530327752619713622300554895632099747323572338513326885084391647383869216834836198838953565015063213733835793323059561061325905951640938294125516548011401519052763925710496401230147789189746149163107236667510019084655159889868827880068268121985651290402642093793926480846606891686221637909893653852402418530799498545780073969471919562350331087599228417831876606959896295697725569648751548217696999674193916752839945898411563942425440665384281902550385745546864218990882705555156715601487440453150998202239277144455120255742945506259663641889142341970797835079378381669594464696132580388206239197832637867591751706924602086153627702818008144635577628447756957795812648792284303404167507167791372900789028995214512168789644850123570357192776984079372411838543301802021078097123774080424959009334856230117276692280369721512476229206593934241423403156163600193059468242858492489994287887963097936264260354747143158118571527541620808090369439122404504092431193369861618633497732291027909435048729400277537937627789749339259988119346812295721287790539776138721244661726131289319673091131073410751283328121619718347493175904110985668078236430117092197472975220454324024650554089521232770172877154793254280655332187177560981480311113548390610105618408256169246961549125280908543172270819135111512894209517142885888715181788658948523900360512189649677224784527099505599627110778410664022117361593987581959619569949998276986326928337154238480928205403417571389844111931084949448633949312445978331705369070306737431110358180792473063262721387882618672036389761308831794584653107781906830192662362515068594991229687049892175929382615520124377712125319896473138464616315163494777596539931159403171703577539389062705943258718342373050243884575290841895140654796067691718762490157371811531295968365692466993577070610246174047892808203690121987150687106361156674242993499969710848269279071245438467479997559787006356954204800960184908764565774857001917343206086481022112575587223960871131881578204700814693534374247060464549636348543112495598598878805828290397676086221566052777987122313409087152826668996217881762315929508589257453486356095499961555668277694477890220919638231727336824696537967790765983148832799677265839722215327440563963887786628857395493057734678724887094270535407989097673450441968265210834249472373203449865593513922689031249408821393365800241838056092165817512962098029807688466558655134686034733423002326773463293318367647772803179048975059296175705792054166520319658663873589707635648916105483203659053865034753199575804352280048977784820907291251404327166793022194072028033317504002198438066199435791803032695840719810969640198451924161476113771138556887453560957698251981548974641459371829854117806698121504722075167894348123465673712350734119586720367068541594830336005886512259953376935605789076386016405872838736459983324103998949759390994130638611071576759846648458483695676470795933446370958869146121009966420555229045464723767491855034658646032427642870223628068807408775487079297503125294732668861733523412091314325316845465897689160730179901536908801841294630867681886639365444275859138275236143177908905044707641048559121279119029449847210128526539029848936407130869660477395038837014138441311160818588560830525798837013865120773399089392478171242226801324456667849002202400101406153734896084374090360195586795937852049402099385016135326807050221197435562333526293270591938728775611944138446564961091041392251564171077967511913924355045056297356734667683459901006132876950594396012029282568329923069095693268878206566429714173789261430653819834326733351449895036697585639222539970328379606291179458391100345383048215613653598309459869923234826528097086770456243945246377900437647251459771898652269445261243534653358113380559226974464599166006017532242699027870936687199128524490005446905520328221486872585675136506495539806521595509797025058413382549326872898157398298673288816211144894090161726335388907544797864360667029343974172341977710264657718605364336981531658657747712801693613422836662841267156950965410981920240499278126614628469786095152334917910389764706908104569031506374149963922407984770308080958547134542501392924477164201017128411722087404353348985411010572360030635869466772961979556774750403413782193587081134333087538151566079403985928397081147560466084328417479844057083820908919811742998015449679430030480305715149849355513108600993295784890961764112158543802263132316297330895441156416195667409312673033730304837320622543944288924724142257990906404705032594498846797954009968911251714618431699970172708370795741659195428010853473356115057665590830870357229378408523134392237939599367384715934290117804971136373825907768062202982846847013540119682685412683656377201148407463253156381190281086661790805868260504391910507601080129592603778197633217892795505786300565249874634845452460494409214165863113640875312718531729826291519718082944919092194691486823951280581682566497864530322991725658050280666731111106750547574362450870858335335095229658083312558945790089419526527926697789353201465452307998301638523605547077218435801905640610723146754257280971412225923186920142734288113425824066385499961314301705001355229001257353432712295559508939705105208076680631678866510309990630385807369055345343455948602951633494197137752471165614186151483208860863659850811512535681889637383295677612799484029379232890102276491522753895110085413043434630959598253538575638729863757689788355295447044686583370935222016609018986374808056004091827088541466036776359525375647837335417706630709058918624164151114872207448845666623022036682680805077627408015736702213448485751045776783251666976576188571865637326337565148344769263415520886780396545541784431751866937422224109557442971153266846085653548533036220166660473063499062128559501730171246589406789079201997383148945890909587503956661357277707461158793354042321666464531564315848720237815698445301760772577161970888628627747850502853620285155202190736155812983800425208882385865166990141059742742534681532866177256081615836783761509260658974819766821561550656283030739936218653381091973373179522082090366953048518746374596696016022167074861092704827815719374191303920451109916396271042163345149597165717115729627059689762846785253581796140802113552118360046083272459101475129012840086344182608253708842766629070769948825254792207661575300972190199756400824977299731673512965112457577176651855506319370006410179402136424551916588246268917570245715179416100695261715089413486113610387756002980095999376665186777989777397224339671817903734655450133535466793251189581665726046928226240363400562002176447474832275957352141949156022321773316019999434878886546622252227400373897619803561501616809843104096930889388548768435828846198720729689969871864714045745684078898147042898184122662461274506239320578888294070898950950179281894698334236433084465452190904784148614080831085035245522296525081210066765424979238098676964338668590287958038299638758431506659658718850460913640856591409988007925773045449035312841094694539069240570978413971271425682530365631181410595344438313684331988146327039240418296477187842098265350110739567444769275075582888521670810243618093514034388703342081771896427682703257289923277061145749070034089091906625535998778284354594234382777455554179916688296641150567250091716688880792204249889426352178047797012340144825265870170334418505339257218357359942960552029528084058860777242179023511567109760620713407177223363776963851191475748566987882874638561768494499449742769186948560650243213067562835869831890132528925628309423764800431604924287489640369051944438171908171657070228295551275612217533076041679342947508255638520787440289463844536758407812513230460543707415325853717130967434981988325461358867759355138201347693699357234247555024079479013900948670618809779086251634898027317208075402307644339407260213767322494588469369284246733952894718963924154834498423902590344009092435145005143890620894224782375921084687353938371941530625834321025173459751266863400063968528979593271268489785821787474522169026750464157496435665028394886536171781001731747234240587287156137329975096032187181436718027166056766999343063966740322635486376947253820998156985889036505886986795351377467751431207997559783389487748449820391310448158232989372244452641434695030743465824324780409585125190078738268253379296718892015829606878330870207578491764830009065729144962366507282809663806800193082326986913531452381145493576618596920338057139884740374155683263955306798326105883031899946285778083142691304963646080985608617320724427314570203194578841990661989538897754822308675242451804623263505724909002723279174916929650657693668223164977111966977165170764371824388569434655605515251172131248371840102408074000236149295496066389255059254222380739906738502539002658063319896176994747143994697540417223773100269674727572813149989125594008763227816389487363570572667251581769984819488710342941996691053078955479678799414011256057981396881233462697954112831465930361745529222340393640725019989835729062721787797933390536150304058125310661648095001453638703610694408002050450483088179233326002832091649418276172751416516268087499843525200744283126005752188706482250278230902808365852422847897037697251425223460855617963686267995996288675545989994452235005647499205031159393537774598198805827167525677105144511829511592992564964882538534443123996906864040599496680268689380742189846573776932080365597625927898406061860655388957155547521784139345594052831507350408117661697995917793275731619335813857220764647574274133317764741688384508047254090079968346416198463105926075900987367185989256800376854346627635403353613292465670501064070783755034612648495855590434720399444579020419802241452495285091789389354579536830809924569612831570846367230532018748848272953548034886261536295864679561090655677329804223487504565599424939426334619797558009490877094942800618582887330964573649036518033479578019835741461079687267876693480379699827429505333223654149105876639850956945576578457831835608173075241334123108487616806232926911270820061346847807823316359848350169316958962422594056940263953061345853926802401691429972635123741176785081896185666099204837056533899778252872849534031953112922520121105001275019454281785621555208204247365876490455674782053547877969896148640748057998690623515456615675621983735329592077440747474680483754590852714979579570283002203491054701461360855610400760151197098326037682417552763612081560876651522674602807185991872147572493722898046873111535051519958414823908421400998481818392920615844781708462938086156796170954984004310786874224439874386331461615739907558921456739208451260045560525971825570375276907253722997336389314256088531248954596256960370183064108879149658283393926610962695604987570168674565354190575572384229726118556079467951135791459082179459413379845126552477919834017230762797726831884380906453981305630166974282880870093147350074290607222368305070351563091351467466994113000740743269273153771426852410622352387435679517760682833303225340544705821258716087165748982133599682529249916976642627408033832874834211606485495298233355106133265591498057152997879508838308126505405689962891380741694492831971360655739604166477939070219504195825258655311836170352794576379307985241761495013656343277060950176923905202571637841976551617205341275240653578527516310660352573949660871460002438181684207679680608268779172210495238041484920426729288670879519619676230287758792066503932938510333921811377250829407006558917126474095175469050508346957424043085359557030175601341663931703875325619208512631490022875422220692129215146922064343941004790956956408005479519163373674843549565545159134977429142112718579141427953731501092121609065967468097458152575287118706158443456062633691881710510086890513495210000386070945895549090592115616848925313021653931463288896669320553885478776297973031042574163623128947701513746795877421745266556904704872989929964282653370991439133624198682246976841895921784826274788765139303811875388067548677127555780304829807881195136993671361707114902394302233463658905336500676345104776413730741035834342094406307796909248731820904098023031778632896967964386736483457735927097472333563054700405890495501581270352968326627123789340165894460599207210250128012930697255215679133196632280457646392724802977494820525682525876888137584762370215363232581384813513932982956097327329794393603772762698059217313684183931222748569708892616002743488717631030426242245447395015691269784646168686875555726823948369674217340372740540709022933747013644521183627534889322168774091034449831047489867853447493396939104295966509458925057619138444085591139074423627535852907044476484259855849302646229029318751557049934915209325388129069013955083378971059574448994350940457996718853922285830620831713375086834825361221830272231933666122871488547617402750793721441538954497297619175570322156875528124433243393623618650168024910680841620752352023192868428970490377149622395944603827963574214026103289202220075469285875776624101637470033376776132995802440184686157966762044904159616924993432511079955813187168729649146611751618401079329986248519671200841691272946064860788204203686777794279653838229826044985492276082962847634883134108232246524260661415509197968932176058908118508102657706997177267303944546915117586409168111120715102697663517221969845417909937125627605828241729628534735509265453298838605710613730642292905399561084954197165297701926984698323848987646929720772483851786571619968031284335460157634427486448643194851963024226848085558377957228636656114034515058225321133561596696863079537903405014807451644037553408680755753040512417186706028640153555862353456543443697572255907943304702224849046006640338680229101472889762163557118517571862615744568613415643686961285185649070592597325407343023328601252985717043375687290556732981738507100059124209478014245955625107728629288669983680851508994821690862174573617036756186683575604042099641839212830504921395696326227643604570241166350765554855440880560043270623908750708778537860484649002028591507277613607981816969791294239209955664870390681394433123406334242763624992602422984673923909568156376336255925289749319482681498387240459647448727770989128545083786733498385647765764094097000236549053724767316297252512326339141560955164069926552014449035842863970044017998507796917036161257325471031453173928186103126530262542427037037545814285561967359259100558223039739999841987018902729554021867577188879936020352283575752390670371801367820744105622041677042673076709166191762636034740676307961277114929338145576915027944833556173717390304943568719680004805860102952236263403451851448934386086696254124639675431397168088866392306362189933171712893287732594603834631204916740366789095361757496829508806473529967038310721712473320781525151846142702989999368749636393433637123673697232486478496080695694803261130233391453305726475288069839700385192615724306317159694382933261951094204424297139938671595942750173984731634329227530722283255973727393270242996993297871257250797683871557065016753977878858320539447725129582397050457986195232280168849484066592177547539077181850090519077511627888885787403698408447185559736630533016476932254255782167458676752883810972766420858138743951573641172106880415812795284206700000598035019875407909377755984052033478186950929477062275050617508571924825710652006960863709012601561519439126851521413449025190797783911405500073309477199080648571641161570969264384125117360888797068110586684093923501337392427928249676379525972488943780666790659504268339630257462401410333925103528648042039552424017706569028440470977074341334304179417498416279212838700571604530896976632085541622711090044327765976821811261058741253725079961729269841434338948896120352748978437595614899793363139418719463405930681956503778245714644428817238201271680979210810354758848943893779883804945547155826048458358942152847336643155401436335225462878943122044987761239447715242070292959692404538977951257989429088460802160605860325970018939188454629211727397575644432786575008197079232091786720987205697038957556078882555799517762600435744015227223512524923290860103738548408019601675882625947215703951301715235187330522323605435807581478232773250416692876568840196649938332898834883271134417491232808184138886544854147413779873430604171993301022717297978614903007153733769910482610707689388501053646211164446827087746938386683507064850088723252527832649703545540710896576233247783598437581176109177556235778464505930425074424161392848475836268456384507487324366444950568235258238755421553906630429884414230055096142466004566096517931198110501398255307965533453707898966445999558419961848672202156903803119970415911775565359562743996461299651491219377054437101974921526070325740959553624613479704957666845313548856270346110703607491736006268173992456795894119620987219470327564525037859705091280129309124874290883818703825286844121710401896594868991824665526549108395002381133837031988010211977069134748308019937314622021929339923420305774462087771732887411129670606941510408115000582243175652393403964171931200125418814978741835583196435665621347755736963038277863887709146268629463536281222651372260995119903620295316133157906199957076971076017705606896836991018259118074774697748612658999333516435881933446991953526041137330265272069939397899303224639046648758507963133997799257283376964311509069133644380851188477147526787326768567482945621577395685581006433795218294153823285028387370884373674983887418440270018909004662427540351726122796787834103571494146674338593455291525272661967960108032929629578828847778312610744764632707261893030868689428699383412695554894278684191392164498296922946934115132009205418355293200832440758518371566890708567918599723418236679164759847223598537805560453257676003978610393565848955234644690592260231920037662843509685331273847120085305127822462921952974589138465630141202566272014231561283955318233714231027653841378540125186802359621763875717905746822819171988722370406056575215237282129590984456841468228135178794064812276673667627142652095829396365286258738101033570248405515757028221366225721332571319758808417979114396444368534912351869912552776866331776177465069349286610574278042346986111241742111972340093191026337893702966106305783749698369270080811686333467108996833218800683002830495482597400802933993915429177470801512518533293337157591477141688449273838379186156442482567213288480886470835382639706376312842743232490292435675084841743012733188855261356682532861268218473330922830182259471193736149013966094266777498368482589972262350610325114705550285015357668421274505636399702104407278804622601507208545811201222842392158055401484246019341456252227482723011296847016523970729377767001688501281594496830392351542249161457385560330258040700145697554367937765102291696097827607540989627172798086340273936835756086839545267826477002863677019117344808909717559295932630231413423920599773072910132972339904686940396025686045793166719619120776024550558971932283493103489425556451798001822959056090816573582031120050521281020719834400919347432181662772383100619357781347636520627787191666753659924477953359293292261387812208199786332024516111873822375947152856130755320786119462719874174750162152758518449470964138533463457366970533979981910720141567801428536337575337393756599483523759382447778288775043260109152245589036224331840540635024462321776804100643329610727388171547178085922838386735910872952432151445635379445280127615690466343377369206107020549023665168216627040219969437890610659568920439155131303435479268708289925125301581111471399654434985927046710264716467084352651167545161019740326355648728114045040733464398997740726199785756551507980122643792923167951824109245182430975789153035854360929058475051003107308478557494365355112806377187637841390320305343207793202888443577996083206478572295602930571698262698277348699748401616635995065844755346378147179894108847702730517680542284209764511176529110163646405399932226554423080441157724163993351088683360335301662111472673307626405201030928352000687209579184126797577883676149460155070524388030595062863813908771046600483513513725020155939470382588828550446178364552233018611894728362957706748660783335905641664911867706367985938871576528842308721719494192126941353465735485009286641249396677383699639306950978507394373274264845286517831105027085276962514964026304915521624399768886826287617890536273654369588425514388836651358075711960741067006311923055827548352430528552835915399077919676610396448816705820849986780768707298643504904670667159715870153725200667891891488040447263312998484466427302365268288647616794109632793932075198132935726704535854726424373052921110951163396806283383626298570824974025955851802998914976228663003769073261086735134777759667148363773459996151690396623614038725482843410639495983384298594248734820865307880179032648579660267658733429116855626884656656805944072751081723938834158900176534534088055787108108260695896939960641829831125299627445648967679273267481282632286614380733630583785941595543397676086987660994652494144427911528211242892166404708370678889116892377760717090594817400344347343533773819756626025188701955728077238278915071426966859384703941007438865635492131696856561552799313328195739601497467549657422465635809348244916026347820405994262058794314136460530638887992177293195693995288491673412980714868665121839581806614375672761684667145965094883536565014066601987138029147376688147241697521889735152457136131210303082752320546109625200977177131992805833460497868398747851537228282853471013282759996859147613633640681896081754967528259978692401547452258023691854133907382631680383715940308361404446102863042868496727464947855942333686268890592681101726406336588921871717882868903287643214240217210799992538948523191353618956487507536693809090345232952296322096730856145410748248394048456989516032308377971166853769852639930828736191599740817234549075311843864851918816529559738519773667737133632189888414256264719538941119004197023211097644767018183820425903805375275822739202316511722530704700048291858242000022425592104678116938598644008888475908090493714928585192892779861181874573303346549609450774226460528264897839852889076069298278352901225554021010621490202846317371859376220971458159644127691873790398456028716846852811930086191964683384631250901355921608202127977528946130020985335095740672025135944256849358008364701914288615887144844875285805915729840040605778914222084308065429368269519363889487837180368397827614720795963837129394644973265466632300966509483457526306591497341666109815190118662567299780146563082553186099975669418281539261266953295235863738695513958907974487005386557308177529108668721211709663168352793321904455790231522233480857788168685845827818274092060905196410870409574820995409028378302875508438997363178524603888093726468819866664965834567933912534760716682061035457659680616799971479033155270484514515278738692183411964855154219124462345143441126880993166682813243998305634875086197675996647464074119248362751076839653967769908105086097377482061179405187965480352539734096038648246455001606359486049770493438282281015681234316802364560848748799239169733409195839538256914800982936405373402938121926720257336248616836966432213106624070520525715839090620676204923210455749141665740439494483654533453711447989198825840580885551017156310451907755073434426338610698725791858375733659747471261461794011985659253749166026305925136696490842352601797771325005682112216635231676697724985983753411024056088731790747174107963118707364852549910087641504719095756159349639971825270295810677902387940924329046424551293576454536636496789518002294709741949622881624092653169360039850553838383284006642070510368059955619913816304664613305878601060665425000086509880062120687378055814654887290104607577408225440406782028465555472236228448581791759906400187929554054901035753469822913746610430196092683543729987289834311343156712911525657689872144076814698980118100825110994879212005614671686593280940992591948815939657652668379108609477530774152989404594750149684893623228555481363594593083387053248578614905752598502599076344015550292576906818361735229307679336540321780211718896639610258653129741396439651166936572770125023703977352162235323762129332366217347655894416913339142528103356533515993569093975854116324382187994837701918226058184640321726114718139006699569611142185315498873847722485623643103656971020596711580477186506518044611357799918246511695795814197630419741078832621968978228052177812419698748068640075814009145517698856523188742297762680066922166759620212560644785144790985087174121367673118226713850028852652939078191133889214961276777537722460386670416742567925677418072802809469479798734850571380522645500354302754765489594873124991943303420630386354270337963873658936700529419909416387468159100634311238505662200169447223795398269866658549165398983094902489868689186025181812764785933080303582840870086689460097677223586911397714237099459625728465217845722203531250503736542586359865726993389998211139801694391877699209370166208770958947359074034938356330243147767480857859910710902503036723693381925340946736053761835740590407251405416644146105487015477223459336688693944657457652399925529910799462121731581666627920730372202981656800452486378740327592078974272951208127093552572007217625271568008369645289487022877695504274999984255672130069273843006966578881316567007423221213512568885437069163548952502074834220443216910225539564858116931706509575785222771301119561185790076364385654276918488012134368310648748781714082372827304953832939522762504813954002298973388249100961993331089011033950295003862073611496586536939078212588074105969819623351170700456894022574198603923366178063236549735771810440989750177827664224644147505106110408555762368393649482057619381953815469407420929491359119047942753750818936595505214134892949249194964992634694967032141348635813414822202164611500081606709022031967836679959594117936642089632044491408449152549595033790882550908606096236615888922498844674059692701692849886185591202358529839478907758784004065211618022137854030235981298978303681818232380786880364101120886018267415132814124196119680686776334646389154101388915551752858227704243367831647913159208042881691162592985397299827766601257267304322638059071755083878006054130208567527788816171315194178305396843034855927532281324259240097096982507650795367542870569398658818209163161298794819415263534632017867939746479568172033339954131502871434298814440593903992817212452878278675946391079089883805364049284874632218931085972663659834842361399315775855271641026533182950790393396072831379655939721538107474144309427158851958320492375433027007785643216261944813316144796437294158430363817491599496282858798523279557894741000480113414090959407282695545999321180355094190206849302769002923155517776923722696615628190151351122277952638956339635398490612532442995348963892774132244403948415401653366154055120878065660438389464962790860328682931401020682979949728206478898237138814689073731033097250328257518469176149269132271195357624552573926396805052378088965872821121313853708014608159548156703035568642030143623063852988474082490205555723228697326013582344699832918164734455279366607123805609886084428511990239637141150005468427206434617491689098142005233089317092578007328191790722460749747604598604181705315393359073495194729042458655110082571696106687644656427578775376070294729770629025301129629262885148837282664792538142196123851200285732186654828666250656261999996255033967987525316549344151102463889456409364520372000874350317835480615622355734102806211494593385516320651468608829913590511673010139562829738551462324879701407546247721507704841157221521431637138274468906970907464690127243716682273091451582823195098734048226478679445958461563387555001221835475779304163298293521739509971775561233012838877156515577062161902026711700813051953689547954179017461325083175324419435692200466559680693925021643784756084663422608967752363811213489033559445127642880664090531094565885758754199320213093131385039078367518210744471242377166459813694890884240073588074306965411641274690685556807191329307961437237262631422836652084882963912241218960484518369112091410493961454158924375416504775945143944633799357034622715616478768601291731598927719108732248308847075154174527153408166530663390296830029093678099195549117631859016747104540591407674247742151778594965950263328625522240082529241749361320575478369311860939637444874564804829244438463159125507782295362786836615759849911715974386190690546932935938944820586718306401571384938663478664351957042920481289857369290640254046706830375323740413149096752510965215755151263671760801658195262553712761967633307337585597631952885742654089675159881363220665480149732762696893817006158115004350502970646323661198222499465028546513454173858856033867851520034752275272902321870494726061422750596565607985920695613965813983422102869334148901167456242625374503053089173160863366834741787058437613451237505252194034100193569325732920051991196882630575644912929583326899936592837202096665942173782131494250989958145877821286977104630397589271113503929888774591936933294885115464485841158550248183926114679447084924690023199697826829001013587432733405030621486444605466086095610125279537407788363697229302475347582916401396710227889376569341346824686598986971317556003282274421417861518020760161327887747567216124676207131218072108543685676379960104388271784727292255273523307243781268488937917996904141223249963369320354954107624378873593637239212369965684274435652640700496411067950621459955989296795400895257272755616089811023364349456322396920586292515199463323243081890175364764063829552485365597091146622806872327429597665507932784470442503214922501821555885518521957036597748859935518215814155676963904393500088860846153473875370517737093502321996455346385316435279273358730694269173418422373703343155604868130958297085136699780834667491577427935801331606467982915308123412293202437436985255902363662534644301636934815220497477644259976723326248929184797975138232378779043330762357594352192712176600904804395988675553123580855565736902359121427368789359684958822758309513138274992736145215307820958648002103119807516413585572303106196399352368282023543025042827026980954483414740087910117993317538215369709338598023134120081012536144761422681246272289477559096325489432660730153115704114136296133975280725270759977956570010214075522393736312395920449873606892835711011110664909154908945625407845825835017837277358764434188381387140021604349625442733621969358673408062438608824785316419109933910857380277919241614870928714677722855829354380460472184965919328383834963206398949722614223534764752893800553094465770875765122491409853602764202712761848513439603813633018308901247410505299058678796966414263414529357181676904966276067191326876408256311416131055363427148051731572402315527525410305570258798088686531505724882312702615092116880295686031560702239961413335808975848674496205653875716208966026517904769628759060497777550030853072787035766437395328271073820771137564270460104404805870115751392507708871669782236949032641881731189841866938582946592029019804680361265283346067966477050079166090991950019312748280315841998810896714302401714119064690325668841981681592235993124564293817455086175496704196882990011097158277692591303489401742433069169615881307446034190228468149991722825171523398742173859760755482553450626912933112843247156584034813845758768545389648785117814732530504360362520186995389727102479975404881045398597545707220259286600359767098964390528895511988069386209942356021938826258431072686486866492613422094591953434182687608095087489796845032312546410445015002587157422909835970449495232433049744053030338238574617573409069038815943470663251738461630334463415668389666759690957147546979818231830616188953386577159705047340267235193792427171683100858308595105825540323378282505520497077723273359825818527946305672176509314160942884218239579715964257914125717258707377816006541722510594171218630346047866343706983959816922630227869526021889904946080750624433124483188211338044900779197341850054341926405456196318159594322085482505793743604500543682868177364336130057722592734091395956587412250132087185386586986022855674088707401446281297326638156730414298736167671905309369504880306113415382243004696447508986714745580229237434746219576414823091353369202858469998327436358225282724306091562682575196404881140321499460618488764879364363685465146879727600123338008143823255081999195080634525954000050832928139610096837273550854746502175182672413939993482849939395249531590068841558237030293917346257489165101590154421723498067086842665081033116125689091032435438653902143789707560401639512152808161137191471441756433850144188533489054661169227557576641822431831710631359248586468830790135698079066419764635809836247979266965696244527977093368378848115675904319455344560479592886247999039489675624162929624763339457770839303268790702719899085144731741706204900593849122316021759657876123758131331735204827524843591241212918154992222163709047155858529056699166555376309734992609565725114777553335252716817008307293466990234515343102122189823239090823372101884304980471178404238854672129450736232086774633528825411037288375625825188734262605837514604885714508779748942700922576330418739852579364965087358329026468289827050123012326943659062368328075418392979950670477916264734659546566205241731258279224738463149880512812037562025457063207925666214573596381823715450693114718182605312511762919072259993194506688506435880863332458329934155881967116698510610257851690354705040868329508584566728911246854399707884462742140856941785771280235654615176895277417650332352263574918976651251982102239559373090990025504819991027297415815876149563906781002992059880730583725576953226985669267289298079084234964245624206018611130996300083118800081752864497143382758575054231295532518021718143625360777449299809440487106490782536410431130197387704121275355639557709581596328421952368314464097103181750843116922358340596045403685521019264843406785293028963525693399431729539841223571629056915361881442604730167354809045632693588118029157825384382731392510382002925287837138242712770232639661197471148878881371417713114931978421839807848994937280663322163487892142396818129340321009218761509911433782674936587877215812926577661483308610744331069870658378740026488480228542034773453621431743423988200294366314140773921201598010979323799748048357554237499837328326419021027172178917721657088863790063039426180375759081273127423976161130262600023782760123726353169454902399773225313772220780797340960796849206289531510985608128875640879599034319305185758034912885178852269633479432361029892939168375916405512039297455430152643638986790981223953341882272489576068919754271524690690617939468724458330692476255787080408799217036464866749343321383119492560394257715671752683110978639677215254643641938040647996862618609268382964259025324371252213995631476371026643909229920823675481494663342894576603469265614366278784808302023977483146636768640247968756227732776636079409363554737898726630164549869715610775283702549991706801117170744836601320346700955488729113563140281766288621924185325378683360711054594623920448636668340858776147318853456393429367840637748503254884079418187342353679756958357908108607537251645985379003777111053777302218022765328475216519470998481860263841119125593222511933657283274051619949681389446015064830691357616677665741010880522276409766198479859372199861965515690468057206041952158914790824811354187739847090646604899739505560721416480936606564119284452872943892219156933605077127785795473382715806459557542963725169865393453998243936096902232766554746803954150496359123293820895531063704355366104951310037403184613739104201872850384678119910741839881504062231261776225905872816724760479105628795827673537306445250321414500473106811684799507233526768810637807721276932601122390509090438591567342351389993580925674595192480375015956160286374803661733691070315649448402778694102276224813045378421815411811615100802291173442191915893667678398792707854052914065380577528877072531196777975614223491577323408203053497156257532955684000497810921698878775830573874838766075589904045278626294570353558030332634102528022515375037901003579927603208390546888445906411901668754942726697849448202776434469882187086169691296021049322175733772973759014154677202036242835219317844959805906645005656050627238875582117512775968507568143053728962880407086804727198007667320894835322170658291228029437155724816231745676677132912379935462039774330728691889929654196822658870466027934020977597329058568022762366152552827935534550723812318701201624106515172368966680651004439128133797602742530505802281165562251159972653639231410481173318352392550245493201174264362184861325770295700403841242692467099350168459068686044050410654657940334157108366579173162985899250908694209952163796882142626942307964241235045198084384960440218782590750089831711024695718859752682963489154064237770776035257399523938659711025592394495134022583654766545971677070901676024957069528486309837320800183702709354758730895081577460046175690990530928307656561803177628816425044600536641813561355582568148026486497998594330868490262530952801020757490835097780278190622577916380421466956861634401959649889668837830042908330356496478545971710684699922149490956485058113155196751887720040431890319428362641019511510592415343250300602892660759076969688324330459328096076625475495821759280663943367051510670502720046057897664445783732172008586810842081185033792463527513370732371233508278025634074695941521581102221846125742207161727714649765160331773071093644454567259453456627584620878607956940266367538983489905274231316176465880568326226723201022989759600229664619895469518888636085861837357587044529863555564271253703227726256348572103220711109034422692405063604441006187440061893102423548544222170112448026574625042386587678011487978308525951764705283242482473146310538119413428626429998448078491749219899365341913158064245106149272870267110503604450619975858034546489632876924045583658136981099968916179073206213905629889543340043198196348908170007620532188133059435780787206983342152688483531346367691403046558481364682928265322739557367566224042566754419738468119514956671827248079418465139388180117203842152438598357218603637958312103962525376946925254116228146828418428059864103196499373676258914416935124786672673140828748643450158412611269209537658182277987417957190689667993141768136285270625807298069184611066768849408182115199302846269332235522525883490048190383056115708304707849719586448927932159634724482443007657215186851733365845865030691158408800539915710978275843593443760215579919779733612390131064937572240426707036669400840854687174366494911761640027987461220410368067066250228227730303606157463000349429704984146201596092090044308454740624686240520151477752654709029436156420005281950797932613655124086666518513837287757883965918471272948072492030164689858360732608140935255092172287396467166346230988271664794215656195498971122654940871744144273355605632429238586443445334411654516950135910048398404478285199730539714962193961602344170875403879640537854791210361361449689631762237430975104279300033541709719138094724571375446083299839350089114346974813142899231456861187711345190232659032600018141045303106451904685720144130287967349243721674414108176378776013014867686835978808369573033435670393624714282015778784369559656775389783703724613362477166824114269539727345404157264748761097735498361243299294278415644261078311536065922451577226416242681667179647414799317955746519855766299749272414543350469480692994818741111259447119168411383325376667040949943932328490484582759762971645689280875574840769149744942518651729940759545187314638980915774019750336840001959303901190204768004296426129114580763065689945215223163696786870531765789518809217006158396815481320290581863443828434918960497893901767633290206512091381037845297347559473912314759667424056094829624559943850545920216471234414174496749327878767585543544516231872925778279023553262165980521217826775356984583919096789495393597654731267256367633325505512363090193883711155638628478382024372330773854754631668969704187227569468862159900932916549812494813774346251806738971621449105769672910114498470030984221252173463288347268846581109348071815685648227052409712429229774004458189762862952066186470287191809312453358274980394185479875472154331998319709652297100929329363950775181969765756381730478833729928935818162572514713368148879251701811326853716336466223480153038464724541515523964223377828316151892284306752782128134957246704170272157038990429536164078668934872995078798171017822571266578380967316711521575224241174877965300391598158341319593615217298824227628484660101321820328783507643992898306486643047531159326933002908941557221727429762258795144305704011993603345979933646150761907546494984273783443467491623198186804270290808914168316439226210915027320496307662904355234160330381037830176517521831395851852980828679894304315419374264838059373412661816837491825537930747613571291985196353021639803954566739429544557878929272451935307305129110737149043356476871329198496649888057658929162361669948900737384000645382317642771647756124201557485249263297168820310417276970310174031057690558488216382243141692144742566107206920395500624307641662535885212018161534348383327518595144217652375598373136543469555083392265361224676734931762960352380825440284834253275520812569474341987928221603466639137956200092927026673330914446173909447276849609542795007972015140176485975083510539319283674992482947902831482683932636252102155575642868474219701683749547086392651228494197424041722063757500430579318037025934329657984950392395146911990815019419037049155116230955383463382013109491853326062190308627828356764218149324603909716465509502269165257585532184375255662170186537380334312554073248043970589952637147267970726284213427748529211233547434722263670583528147967785543756645171441976933432291204745403674356989472377616366910155121267094592141707256152543976965257815682069355447512086096803252103978957128235007526996443898240515069420325960996255121865676481307140754469203924130173610206412165230120187414094368004785155319511543029612653859184089637698869079637756012311906267404159866263982101476348087148368971827437259078802713687219832731042538473663532246424704857224646481887136935581317087117467176729820728359582123177621754672011050482636823132479779358879148678735869517547747151647550883346459520937187172326343126876923077113714006101270898725186168272200178509810012887912071442949975947290511924437344448670063604561203174592199123894830469905763512138954463471346314873011389164349662560750684345649034358482119334380518883012045878442932671642650224269596703873407747324200989745584580239194377536937575673023043719852611726242514478082928374599257784592153151350151713986000136639114305175309230388547056275914534756357640614687597690431834570351750637745772546733242369820134285710951505230149891689311344203333123383708426196680961691847160750300178363792513193715478488232163018537560546786378433820192568524434727536959743225924861575157940606764761830497812351080611912088931418046127151034276498828788510061506877897651776403691402466988244650281386478147401576953720692297010494562532123017835141531077680921522332821471242407039048200549718228885961717194010036353968648262186659808975144077528309250838294386381176956288604888788029087753735008248669694752306939984411899741852848676698684402006502014647526298237009551769350946177800317444326177484488559721279881799270412491628661334662900622970947432929595578602154459439353293567531896029955542386007873546198536042502331609240766808398121841734769374265536705955456632978470092817379765251736488143912420785113525944766167040440638534540431290535235213054441714836116067855550362484085170557234652772324416264451496771435117745184408576947822279221949047828697268838069658333080570054876015557339640250022442489404644667189506112974501798952777765355118480192319966991792131538137197013497999261884811375110462002693361892485971487061332521953857986084303926848702784231655498385197100546302524498325489658044408787514773424854086744526978603119082559598084197047621129772997784233658347012104413966993038011061612878132273293378981816086058646117708090954549395633960044353250361214225276207088001306569885587131217272800544556939193398726979077275767668847718011923666191282259516768836474542980994261572319324635020515321357301377982725922845366792060370043429851987257629840237522885147617541566330912336714138158576862142236228642265350438387412450420527411757404573301515450892426825608287787850131129869186967824412682956906845746926613373046712316942625565978359372541479035455401176458070757270904500187910352323428844673990151243170206592159246534907889850775234371294049161370762623219050527434928731975157955592208162655693290093099633588070112573375878466527795691107028793261402454597039425059658509418149014371472581637831798316852077056302265924541610919175503712882631790375635183899017141068893525832578579270428124221805175103142703165471092105952569804011819936600984627347638231772669778737575166681506794788480685788737233914522311444799919394173086634992431275822156003147847602032940293587193247235840379762797950338782574760634293978647477189143419534992155949885347996739576530620234622939945682161648083176203381628375133145766431268491619649204562843434685592041664178868764076274183377200594651741240610223707299424016035756157883647568037272302271413208912910909243121804288109764303607007148274857469228643760618007916906037683466043662918422606504535022797173996384845437053780918339907596031281364594779840662850014539444354262454455793074439611841189314907348914382770452828661258472305698916039140367713171169122251649413273893580214401541305636393929469515165438787634530204627220307141136158876660106343179612204019453409860971590187131973425341495451698431476507557874922490078165544490705533161721646623074587762260982268698673720581430118824628542830299653311179793492539146326065612718840077434128612200131356526030688064925392176574658271700662028205205664652922359979579125528182426888837401234000029507085364261838564721626911445993664281649169058912548692920099397351433962084567017371910944217634338886795103106614447465091709871559442650883287174596980181199597840669893057285123777694120141230879516096966594987692320675181386801762762260445542364041815177184276679114627864973216234678551902050418744797023684042359550278998290107081172829971626442949626816979010251883757118001516535872292656284693106205127528116081066788257604762098785876948053243002887422855791793838666094461170036266745555586596022536427216359724343058213703914936621551986163023055267268484025002635886480494563099955177585148222440548113913162003409675327095271591785452957432126918676107968597028293131515285823569206664537461405427173983706766407010617734141739922636474926700603655957244383260460370124516745860870487936913955814115362760575915120425514803249685645002160383230082389603271151273677324838768654355238093955278135377284013238055970715669691565116307727474038981164836935759234306597669644614865978952186531440828834812860214749912569209220116686668645409140792268038865612754629708561275763145983395724701874213936217172607604752574367936492143413865167774351566700912759389521251657442078980179925058485997789280623609368513297603881043893431907096887951040761538065647743136455623401251944803203689464304047689225275956525178813173049440441864382223674983141889709665659930813348938576572816686082815610398831355753273581716380749011922539447469127664770673003411378690200669571264051542573837224374361878268955565662448392408042803085283939032095431774249909301261756900974249550076380062029790744261471203755262395365447903434813823138750499856376831040838346484788438932418535309747203976218187957654662729952430324006807567474544254475433344123755475486576545937967291898147427215140618200417371401312104007645792257420867874658006667558763467117973410641830200781243986103952029576762020533312088226207198125627203259308638324035152999399753061794734041571961130012722639988748623086813946333086665704350402375358622959569382608807811335898420746314275893717387659748573071098243022862352311774049751844917967938242670545002580137398591218216690389437795356203426235135241956971231212748638493791100218553950321955746422344767402179381499631496650464180728793705143740610706158616801286414904244286785854309620800330119692965102589122696779799558991073965273411692983084627202076394877591999951256634698095014296730056358918044480731779664676626318202088245768533925427173923906262977704187913485187448605012677682908131549710221557796431548783646248130429411363484336351681429003912154148794850514008271043623729467214280779305774206447533336227693367142871110791587814400087232432165946017443331978986159235150131128596637720174949162759255246377552497619691449498336003017255779344123223868451345476660266492277499224969570274338108424237204558347786811676898406203288329382787577227357069409050460803136084996682874013580488768053776632482862954916321109766297838926366934615120681627450849690356279799203512623828359163733669097718317388264691352107781765751896049571302316536702965230482682691368393912214447337730322521715977311885425818948801866859759482260601618616793240420185496119894766113410228929842916799121653974402110830485367743138932004742942300860836878204489328628989760852351629324296544117051495543704480639996547680464819646592385044003734449463798311884057495086829970312850157158854993057061048522183880928201401385325193059961039084237527308305221370052829396972343022224765127474082374294353923534659457437715039784495669696712854433515098267457669716204637209670606540688211244071979885073625501838530483356079929365561328134523596791933455242732219456941252269899039765690691845335770140400974387900241940583622061319023070917395723982766768828406088784556872098514854570520741961927490746732556674297743887378892173241462595922157713792703802456909802922758341113009589575435183537027662164917939185054934163237598474307783218585377014078966100889920166046594280871974351782410095017998142128921733833958140696916589121890390718700626924516741263269941185371753331437942970180087321001604722166537959787818089957579917420515239796475698796696234370559284984391192206712991113867529133051225199311060741237264348695056566526987154670039821325383592140126285524810572776497395363688332256462218245405647184252760837665707669227557482267897556861020402054196145843175396120222446977817252370441866333483264667404624569500050038023560563055590192645851863160771720032876200182961936019572723863081622479423427940955621612463619982430444483424381154976395665742172661996758064886857507585258908275421915365245600941244956586915449896913517486281735293811475501713709188585783956349721550655991656577512730326482274527291436407061023931945831191842538350491303400613689155490405151412302473916874557567178598701524979364208171255670169364149692013113892129936866896434563576516189487152508492516671533785485027759019036980892339791762717863312990161366556131374690992579298809582794882333605855139926963595648003370490243410177959740951740518303454400365129005821281545379766888135577250148814706601436146738981299003136836418643907409069137484893413297921697774769742319965033770962144896859019183428992062341083569106441241948503549038516744906873707893890412869561101351430335156772209785387841109187698080559713146979131679436809790115908302371336372464902858596434376238193470430477127511509856621300465868393020989713291691132065742172610018310684175933681040249333228904910928034924453670191947423806916175622831985059446834251553361071109592764699924528391661215568236203610742046797722622768276549486238466316494247777286759435375996433539518702213847995306309969170298897730795475482310151060019241252562791187953929670337006091228386013762346946019284003283216962539295317354659961528354717637808736346548973828904430322909019124924783448322471540930563610058339032359710285559905662081849755965552073604272196395063771857299965735284688377876446716883480503781563460514816044774616929857361052446449366832140444433081473017278751597154603669263208244584959052552502654363275432230352460066710274380111226007733033298622695271462007626350567213495540992019208678231388841113181070551961595117490374697375200214656500053737633233040248942969941312732967504140566687114744245856567026556604991428710436903106077733922164119086600344927088667374099905833684485417476318480013814543064647189679256892995294211342060571900511990515639803306169728015186087379275558662071652920335335064687895454018989512220905438709575150219471207337467144493861343776657691005744859149821954452185957242799128105056885752565271480759196861483075099203464994601625281387659285136231087992568130167934714938613693563805337792263402484460742724892591987744035496014327810889587222385533135787417648361626070683599292358162598259475243591055398990063622817763406767664290804290868053762040178346817267798828127011759672630628649474925866506301449437452117749767328235213153841035050375337057266285468130659558152299472707995378691261553267327453175082558099661114310682386126744111964961481037518906833032992463240076155671669421756558768075308603079169813894009339932118755155812459690689890073786025752572390467895283550017025120063401028017009459331790250229029579315507175890249925842465228813317749879079246319352998291688734815019653574014697124606068801352653110935546439365905626348567734018797708792360488743636756962675501050968319177639454455256710325724572920076062645040691758989905363549313531612083748724291099117262847828901507551443616383116243610930427244727675713632380251901267752052372858911404053705138270723591367323086070740246542757671083573791848639324634196784646064181027122692852220326122278136082808572891830514326412635589859774067673918049702636220818383480048787189441973954065153877416119591145436844084404549002191221994047708289234949301584750748217152071068562551316250992337406247219410619465615336176611259979369147073352674817364516012750246046861911688787928401762662404102588849261151351243393744080893937379305588657762026760684489114207188627234823054111214441942368338929623819129516123763724616929169603576059679333197998105470445990182141375011841689135167991351932486985664151959303877296452842388096999770015135132973886462408509759851218799132067181037501323548009632383532463995258522360839456206859270939666292258064022069782027073529589230543670143223025048753716463866055974106071970916085552326331496450571748578152257447554411769978070296452828090606577612672421407748645620542195953766570468687835228702087350103977919283363811357237121654381417286639462467054071385437950918068896849939557461002064987873721170729787099655461496148630609889703896322591798073923426729964021508221935365550052329609610996800132023097482721368349460379466777777035383447777675496524347647399058423119647855924692812344257032355738312728442402273097787322132583074728236946916613226333068887245499303773333495639889583472522224969139026859024250375356811054616599128610848487776311947728437787309932944821228959472152958985646763640852104312932157105492442222749490261882783922304134282568620609044773839944276590733736674655110557043572024471395581314817939163630731204757842476381955504785495165771372608181228575025566885551376810223917472692108044651013466658877879701798508599489830860952515648199895321980984410358689255748516665836369934863802586003923304561821606644407174669866826280733397882692125435562878784429704006281366777869284721212869932866695059164926948326952860725350439196344541514581083723565509189434096620736385366576875013564941162044799020334582170703580150276048557575245919532333912472721928601377836685795705997171058396683696621999536506942381601684372570257054445447159576933988856522725040012163627579633087527683609414799628312939137265387449666510527339472760288900691514560282929377933539228327718961184765876408041650797975299683595347971151966924144190244184266498500897814664904920916898515232768101171736273798479073118505545731654057705885167067066973045442683569749783323435301932069802527187185109421451081053904884394593193698751934091439827070048790664468772255949398313443728207839626742180965264953244207116301133364100632485926665167856895746333595256129713144970658790065485327044235268725675623537186886407772476536893062087817685094156774277122426522550545216540280012885782218571336027648573924736236954785790058937187365103711337667935031712571326516081596776881522335935494186680075327400578688821628309428475935672015462746449616836059128142863487332650755176868254858917470345471646307942603032544386125185733246099402753710606394352591961530954023625791729782775551037699838432729997450040581514279644574729264191521221139807038459599906265022092188735924726990512136910094987838842472466549542121836150170626373187950350603798055352851036508585536678489559343231048346319303641995616142069059999333909204108112919310630131988131286416958995702671969554714968821528911704806490168781820566869987014245604834020160782415642846969212369426612488047776416445925588697478472484531666237870740797563589173020661326324376355338466215862185512585166385257981029805582874638244342043006708574419401998211298834891353847281713748563515417673940712240484082677506958203245785533635943370070651656348714309872085390573489979812005876503640462949992728953735898912935374859727036982923627176557454049561504658469339995366408215714239613699739068046545831866045122977076377314624217762528664446397228461573388279262528995857554546479977284099913695082606885262871905716501144097338060851801708755726015203506964442317778337733018287175791893012445213358059553656291071500655041810937293755510107010643762412774053807980550192638244449532521217208067147325049189050804528298272853126088115525423386352868269195372222292174220097358346611472337415848085079900779937243817044912080837540500614931349761519062427584086206837395969639659627964800423209594735515316054060511200907327114735010309587506218633467922309437749604907051834009632156603866650430989456752955698079204837267097501373917422519703218086592281153723843629194703327799383315724071330101825380419601000370474334470929881271438492968939876652354543982863212416071400695480812030506263414339369484490273305424584872272767375762555663251375845863913021431939714022759470990376563281517569203918568290262067932670405173866488132912216018448640726509744393576415634816803156024648327101681764473452928759666001748488084175907532967434581644015540779822120518288838507799944981677592796865523561332434331128067324898834752043326602899928011013883013631852242936806284547508101298022293345245919189502719334622954813180291384636151900284365937964161029463480134688896459937821582654301945653625804512725396304839184552797875978747752414112088604849420743236330653919510739471315571298744307343553386556630695182520314432227241529673771783623612949681045293780499759830420878755640616956339682986364062057673210194629504385708874913792912178109105121674437730366667959986289805121182408986305274142795368574253134493508263141404761797932224619562614349773834734779917465628682523115553460821900842406344693633122226717523609678613890318527234419218498800236303663307416820010762164778718208263931601794083456168652518987643169986320136534336685484401764298268757026599567553234332430021818778237492417905073909652153696560179194381971869500004920049044346279165647537636429408772666551013688256906438196699710257001730877609773849994045378441394557362461192382429282853213073321040224564587097409112228500649485297133075468003997026793286805887398817767235347720355759611973236887044029715280134074011633026533760611240490667822533250259404236338505416309135501242147572999283279155746736238662397492705165770140450189600980730577950109573548053134426812795974613457238992367665601292709877775080221979374606618927173026805625914338035621756792033861950863444009779665599369562052980871818707501012565615795592492850253832408153019728075665723290311280156888995426597960335229221559621606725861276650461311765603457285997388051669539964972682679522215409377816928002081607961050361784306501400371173835988029514855864576929686476381667281741498442396277148922935614977986654731357158976942445154863683254012225600807240032217753574503355837375650175725448231424679216901365331037471825163375683295733572170565932278498103092017158062857789989900359545111099643320936627896774755729109286396079871860032339789826078295833907059325907385121741674532370619652105407602141225376669000698475140821052509744282612821984660816700757317157064022897621964672291880000618027876671244930222961791122830822184246326273998776361419165827035583735408237783106016092175073372201859003306019430260853186467462470869939665398494234363633413693625665481588572174627155953304289590610591310134827292612763083446033442331553146987614276910675505741312401711394455534396551805261295988801934309810497547274846563990320065494290703850895379715949805798521599742697932582018992115157664925125840290682262236817899451796635020719130497067268800357143019253575014697979557151959677445633496005469484704240057736800690125321965966922632887663022837385252950453780333472603591066582294185936037900504188399815637874127578563415266827910594899276036871399196298029147925741588209056177678962254369836759475063716098289622473962635162443880459933651158258131058815802235089314713585997271937850814131109684203686673531232002956983107403888415149071948944821710663291292834273387847337385864124162263620944468652165331931033133170395239354360433804709014257679568438372684772398733470965458655659453545057941023945766841280637162327372736685526619790236817756241441807367826543457691869019604823344992745228153318166849653840640137842660673935446430896197078814951303916473328927804725297899298613882603951954379877845662700494063313985165356981094223295984012152433169216196418849475407864012113040933041050995925855629781005671497145659233610928759005627672279274341574154551222073987843636409553375593735629559377668877413520874892200531919956256190779309286118382248456133329133587344835661924313228162384470748578493920790021925899514051890072102358955698331471292442332241484366098574026075738707575049750259063734446465484350606726365930456308022096652260766266106058321001456844083254152617407558337011549808708793326821444420004436967696405416878760756795938561777121495486654671129606450658950544634074187714483890164882572192338268604040301255393153340736045681972279916695654961006846970480058642188225849941457249207040184280982641627359365146687266101825833648827894388183260583286050686296821630736122177471770856800791489674814182927429960655286565620757356017234826325510819868293410989408613986212599274854515359097604156199510528735226898424310031436286251486343431452299395337451081785337955096823659799238394626330404214089551015084557508283485307325292766189763302499352747764482162335737909148588659099380689451211805618684090981036295438107262535850137403927052223080371470635963578246214933079938443451793461542108794534804589177460225350019727483011084249982870850895130587715361806565818941000686127151968006834987162904405738227345685252816670100516702132701366161844611984016596824668982367348042288449658483465893269794745197626793362349825731338878122408316512870719809161051030968175304638413091434645882256920075964731665871361287762517505413224726386759781895840846281535839327976646269693105353691581052237791921952869492248568361316816871131381170143169386700846670061894578385831071776113262814162747664838707079697310134711567447975125289084202884668325083123807949318664194929436579549887866732611725693050488645492278629647250334126078517319757798169734947967894938965851399969370002793098650032365992133145870490010661026824658199706586133603159794440943117233397408078091305977915959666378826328461141902749616865983393483320789517480870454672468428394803543964564201508575314843642331259943231973025542534725059572909563726818381961743380556214963448556063603199528723390426442550800773112740368559469688449417440960472899630434610161406223341994883258174892103451704018809736732336389972902524989723747707504596691861022258634425063645715776642587676383447616314725676848925899310450287141200960628195355431042557556282603247208609638980574978648858998728717139437611162354365501297297651217905709795465368581278451340065781039861597890097482157282049322832249572412481537999171087873214754584923526461369463822316455722773642282599441042649220027855006742365870230935192597317617337769177387762481284972756322472010194430097103997809431609945616099844541019921955476949820453361184311265354820031105768518149229211165604283007439747806260555179996190668789651259512069046779876374479565516242538701582964538842873822486979296934788295673021135699447472833181420883689600965885591147058475162473795486512934166488530014160169689789957214551370543358917166199489275038809297120970263203990742391263221890521076075860430479411039542638658038946748949345478605069402226078118076712486899768328058971349425095613097572234257644205153222093362721404794838190391306910590890326782065839082220397308169701056387602706143414595756912614687244679567926357176464302603683157998129011424495943322787767415293551313903800949566132574197208186661477963806817758584872073681589841400813648442888153660227367038773213490470966333077158555240978087735613566728526517170562036058730909064025053622644977949200700325753404609645367852876403066843716881983026688117326484341027788260942767623558371963146463594588723446666533676847982135445733832689069306836014221557866882437638116032909565702932236756570085913528674664349766475015025324115982199513411724814114032441878707461855998450595905833722778415863570424784235815641503353105764286350739914721695445893438277142264842488466866841569061254581789770239663211229304180150688724318480467238072293368856162520598119970118434507228333577694947887750532825043076332770373021244728323311195370159354119363472150880694707089956996832167629582583366716805267326319628265946684932933544405172742336103139316501231592244726808338608813918737972076513628207578182555229220636216637109799030596156340846357030601028000841884209573816734262054150640023150096704434240760137425027484301062162668980224645037489217576455653245314713064078937702843380503055148187536917853638363772872143653780726947537031053077584408532474141756053867304694856040088644872615420634564331852389939739405224759209969197452908355013628268462677457639606803810907095317590933072510717302795955202782419581688934852383359280195898708209538222950556669664932536823096795484708919396161039908709673870259293345775005199610160763594626730838932173552300929134580346860842407359635001791296985038100718054350876900625944922863103838442511164980134844835544809796673049980508586355030442959806404628596225162188921150131114911923536849287591000516568050383021062538230147009906783672261225336625475470812529880762849626034456116689129262868690827804900612271437680487305558660275148841827247627752457912491355430908970140036228840124526191847890489099928691830795812841987305275911747546018480061306394244700676924760153125215587569100909605360579909624741278861871323738137021734034512941297150044638667559077969375137867923305657666390473971024018881612936119519777921071417936104181939120874235058942079720204477999178931952297899836743427416576273928939826483224537342596658323809627583330188412440482347368122821672563546873671933482408609597730652755134582524230573852326321017818424187658457406438131979994117442783852002071505535248729998062973443284026090134358004677597318936652559290428068147861840089385286726795980969162159109924872301040289311412714565094112786624020504382955921423018868258629036696002840810967922611796295590869494569380528405987589625247835576777840994663032727155975794337055091602449179275825651817293675731112511363820489844195268357095583024055696470218214568542802309575725225312423290925691990160522009659061054511988238961426398545903260634857543778147652494487423455102717211450955450885177484957240923166576403729406602919674281922965108865763095975926722085614339200044397712779439086358280045339259363378955823159395763303885238152834506055137341374859539730420421896606933771784875428294622227085501471977940442177688234924227556703398025273442259839306925166338746680599740778879438447308178571067299507784996921769359137195078003479283303964239255364041212101549702648884247572216101340668100565687751208160175308417515388408736600789560068769790894381507750874988164228220183664477216256437484055022394073865652927415805135995661533528541942181580828045400111403488097768112696031730267298661943256647991839539001900376980066010584595253116586868773748367292280885243579166184999663626037805410592268121303475778016177501790563111662589159887362276718698855023496539387870405124349849826968302184875336464347377490661621431130100771416131070981389045609145798508956630862393561111822893632306656981704168686661298489355141403302718659104015880528418542462594476643258412321094260614303822725728053427978682460612399349918400644473254730449013299087955778670773927418002057993745418524169146847060431694713286951780973307144571825206755266953106126558807080865811627902068040746543818330593448239832649685408712986266504263841670530579566324678212300821778353288941347511599566126265138173071108182955066842475135534813346340131568982491142310390723914178807252251055281697762645458964830275885337862147003797282655442227277415582516645685555050986012640611865651437124057812116667343613088798737638348025860660987151737254966567524128642570038860230026678181158029268512717873222063919735180166301216303973649652778481007408428558900004002511968326292452405702139301757352897249334500602466420655096740845596442809526383699545223823028619102181912233422387115073338284702794561360808538951648322834078099234331398879332030568482763445174257790233356471736823422054523926699591034490393575000821256502092386867743147721623487329701872455188809149385781872752100914411811559767071165873032378873030452864896214950389177537714149986011100376293461604925107394698625952178225629416225313726532445709169070206658620458175907410677838872188783756143923394703668369740732981593447554208036888740162042563879344205758855528847384413103866218077665422034122787431615712972355832586800667649821050832487637462399579675521068115393236333984693908474469254740238607029977465012826866923344923446369896870103131077640420588279369949031655511584933976414626023347351916143448532115388071652724625460456500780818016382634880428528143939522790988964374822191921543696064416506875447397684865971215501913795885087273792868536415767258982524300238022962163388437022274462443775384670796078211382759040305344667355036721885442662720452841870490857859260896863382038474647294414841870519617601966720898420780086414579793233963544341655823024819783681923284917338343300930802432252035428944976478359240978735101497328414578941425825729702993839729106554969610199162667416953379631724161801134299476668168029412173236911338234481442076354109119540747130080336695294284553850428300714344990091194927380353914864823438329472292845858481073626014654792104380678857669826630355819051071466594957665116815294735408962488320836215377060908643099730359502101384093460474807931126080422091743667137081012072099387659441857469312672131883352112661366832174282554312669706705856182484705616261853944011205234072836526643423689241838497624828051182890241881030317848038489773931893591568672556753136023967185098352150027796783537876907892476299530697123286757146320275240125826556993728754742871250266608796715305806045155186896263205471183600176351466569729977741043313287506769957303703909717463964369126898737856712247373287162912255812715969555155927566488338432730288098350607954841080700582296063083403684572980835599199949118840584852431528054348823589805428811631716737457753027297046644573406464517599580281117671748149924105477564623445602800357133136337196784574169037567791203350761169072092777277360376600606373854831158244666914122429110817368672135728802032585930546825089536223545467895473891621109066744105708183948234326848189342805631878390942040704510191739097784375990839275954008235124243618731883608919451486037458062417285913784482188927596059608668293252584812407833751531483043478302966696515887872561754421158678505076861818417883882433380441398726298604489039394350387055815004148894365874168930116894612014592878454907157099503875701312521276631125847823690967565892018083443005397813362624928301750487008525465076867186601581694470165004208110868112630605281205798981568614210760386072809208967750174427931825905510929853198781896199472514833013377202581647304507096885531412876451207767174050439050107576813465236618370683290258270933839831843740633270669795433415913294788073981084130927623159499368071413445679516237234701700497323881163997871602265069014938256896104248975800901500261753892573035671226940658420987106904492640236014175170819679672639206503050411004261426657218800600350509638937405796099745436246914903813221465109867683608072166925514331587400134969866054313975213735751107851344779632555290273308109056696424648199724578404373314717302041210212156610981517881770277771921650583353986641635254013846694701736818104966225160165518638382511436080309918017655961121829470100719738724728048594326656028710039344939406035218296770964790087701143255840529980279059302833291538300183589311694190633734035358536569133387950880119795787562520536523813074314781317474688884397377850340200484781498647322534032599272690504606898451464759270956257780414624317687500093708907268066540757381689854190347263285210674941016269816679079617334521474395041054380951404577531309241343893673960867302192181373835118597135871782127506665998047648580521918524407670357606031579666670215627953436788552406133568433611989396655608778086342906694391420092516657048205698416804379656566095048389231922999083326341720476351485975710428509089019352884347055184632652488422208153609267138316812574032756109641965803505593456121116722584562415702013127270459184436552843344465314941498615237474664072117444591751601247910286692628162986821271914010292869177572632125539768508252963903373544810466172780590235975563038648777820659436543236913198012406194194316616832592345818283172212547226458323128386136549860007539143017156085423903218643346018190816874802546765825926344038878885500977829017091348451674356212972600393274395094249732668157167884429437393083337279422583818732396375671429386575740904452834070418385396897546690887619191099780825332944103708302707800257026275160989746716789807870214766844508239242284125889869630851940382601855999124084250399892678962070533227910230254111096031469298769029586835760192467563942343652154617467073035885213884582288611171605578308422647398228534543602032178576132462014142851020028769593710358731433251578072018423477906427968327642424452832908047153311145209383740248408965368674953236740372124708504486170453482997883046386463946233023080571468531050927809513839655632001863558284814686768379753999780648574124132343110245279795522126637885400580171396326932407978565693522425742654768235019643400221411368799283080769388586676574595970143998064416929054609049350689242774363643420526515398959634370211051067771091959842107257528678025082980417688761518943776593182780912227740906480070167431872568346848463908655870998353943538005111900229219599694115221047905536027903608562658402909726538056231271077515203277328017730544695942372353750117476100011052786576677113618087175457786239244809306428461908283340485113468675092686702748809449255684223103125550077782450543077008324217588821201865345149462706242529240064828804695163807008404544558039841284301891427301113726149515433889411377705752378416315401286178890792128523270598308238148316855831731272700853411116806222167081368690841119091176761700914382510853364665078140113394794958280784093559743870822299047463328022129150789267765395847392210774337654670371788356540792127420501856974045405659555820125246859893025651091343184319600021907092662453901285356376241561498212555398478677116726848258326519714044311144939250091877237266960940876941275762611647357987938187560744923382989971118858520393723285281113820169884118638727584588803538716078066923291041667052335313240923554785803346677497636337981448369543533165884642920194384399671860928679472934345420664305917646880777022321399714274772059046709005455118515822105751832259787144337399293143603403773557118921674670522500519428250212034178422232277950239626724329026310145599704320852071666318494434181685352569212521357722915350859967043370550082036872190011935357752690517709730343879558915311372674565705380586650422052799848557707122562127499480251053235631715968505749352512165828642579836648803732920080766949590850908596736853039555579294027552335306772780742596592279531172735918876577533575766817232441788374021864863878271412033173989324791012822801898115208527339188820293736281813521588664600269838255299994001276537744121305021738680075382730417511167801974443506314163339750398406266078721749296685475858024057035136390965930104235187626334686450769223284653119473193873617186919286458979138598065722330643375673937844200607091375498933833669936939578173328312278095467430410654412408206416566396269732050845317928767806952319263832053384657508778270791712327978500965116934253959205758614093455426211639135737800177122993660631732944140429189734158724122725952829456526235565897206138186185962367331414165617225843406381134799659784785709053581649803190685561420327987974563997036580840666897155027669276194504004169290829908102434712707514080380264455829758780333119590909267654782118929757721972841574823741570949594249019282983532692053641955314279028889027243438762119809917725215273665390947244016476737339767521587293197306065431314525531226249671816425045538200033721720759200496703398099533462835460587903332643815460585624853024817347795889360520734135915857597621464734933958123702740245586823672419294178447625526158587578558865890048752943620562691005985565861834676568519982856481900282030072304676230542697567587375577815402616949844756483640127195142610231321481459380050516174612110245436927925585560549915793698518352981588316895898452423955938812587100900444756109629616197727962300138589251246972325866778894070173446380494609937329913355772641193864794501849265418641156131788268207792733375775866703121637519427302690832012396500790985382911927317042432850589603260037506995199807365292166327880910914449426762881406309396443405987413298027215421734394815144249960032015673592143208465037196599047801434174981594108470971498937501547025453224600705212669666465048024765854302992429261726021661430965613376194367422686963029552568137234992546773424586299637471225838992977834620065434139546242661866246044690068532151851827999684434222680143359903817629004043078882516481446143228392824255969730476502841056164326239743468346648151031940346234037245318045240619402044264789285840303486810646918046421561474847578500881740305101421153208180897653268334346812831056067217849924594730636389620020818517783987073505064620650619128495798335162308057692846624720175236940099553388660561351352715830151724408983402685839162353242352408759513183870829147420059917832196894332653178522181237403706149546491238621777188883126422151842769467662569508644904128909752025528433872729291639692105051326327482586142371541834644684266911669802205529555000941084103318218049770927910813484551405304474279760892024218787056981121933051986089102523998086154848692959535695527031274977410099976236343157931167038395695242216475257311897755967256767476793606349042776166700159010503234673658716208523278401552822327765899391643898384358382188312181528562845903732889521921907355359962537269827744490645989773506256327565204987229299990388330952658417651639930292975500617774823745592647286802071094729529974672050644198121368914626416386259159836067389345004726486449949263939422148468207061819791941418784458804144406471769874006662241853831712607526067093623402328668064359043058443185520993536127323881761641932433942351175568724698250715800664662952665712202160286165693186958234218246020317762021038987952841289937760084572360034976544105289235666953649620600609040606757732425365117008560422713048844927955591733645153812822043840299561933281506060618851003275616026400823272919718187051497061518103016226722320161747687423110453979767429524952426817256217617337319697032143886702536338824360195404776741285434117641109591446462994073182731618121547049735961106394758901319811492864121221842029101077604301346831879521249363585669106834575169430028288937950167036446584841997658292052140437026278141836361819244474659720280706139886375072909893858116356584229653492461036038672705486006778356639624426241429860736327890333334746076156971041977736857499427044809494055120832215405065778173981229945980600269977147099717767135154913803949975478775102523183781999057832712688442306257385558393324743347443666609992688912063945733187265228574890176706652967789807132713612822740733676975978593039880843158061029374753511996606580419566722743616447971643032180716893237929412987407376921652064868566496500708355666933054035504158226554786550342043913060961959252861321335630370467453061904272318299268139688184470136360040875205743399880487470373357472397698005947964223964898573986145015485601565975757994333198100078250283496872965609432204023491698937135126363689443796361983418910791980129175618317652798967424664852385147057222436477535068988139042730145886368112647509468429005014284708687985031821726449023509285164875439257930867309826108763233921061028237473540433810531025214750701547557146166462733314684759106085526298696232529639727058214570252163539773542884380414662039699528632786558745929262886105455465200054952583657680961257581093741943045254349508698649005116262213029626125238558200774891558721488666094512725058440369538048955546552215078315638322414817761876396051542944123044655876022484420960902959098091830664601866753932802889084352844056503340518519407513902325016088004885297033605622733761748113509638081082634665674859119929097054749800937463752291844994833001307781664903086142298490922145850579617200612890913500548547569519624742570143776962214316045968840869468061167420938283993947318056816663982803872687181023134606425782059724424452701340927223977300737342415958597847800635646392830888170108126878272436325661487669196214524493605154878179944349242758422104595367806784779401756878874994589680145288203992591401989428200737957911111373349920574611600290114549349006384341637002624226529785182982333376608101072541595873086150901843646474771487607115107740821230830754756980784790186536654973737963848801234393392516943276617664550218825597024112058054831314106909558966762920518739225706203115369654352038734536549092162894749694073188034859827288754606145825273619910797931805997344052772275018676335097068133197442520061937024211177049396817448461530090480271123455776892803717995991190160995269876263940495358100217990730732954547841331539418063497557264769212461823015009877136066580847876863945833745117160084650061606461449056187618506197763478252495289396702738945426943592525794501870102531267975254079748101920923783358140423687454623560242741796421098738114038560545361506854815025357746777891834428589432256621596480150241026004197936851061830458013832450764159617259576366466506063477180344242677764917342373521152595475066971833212796088074431957246133899051324306825350457165248592932864151176481603067873558663057298345923036168753122646572613775817089147603753225772765371902012633204359715165124969456946322254397397598051553758861806144360329464803902791812061781388115819170929432147649880324672212415003460069188728326066613879806960854603792404335540027088241401776648132730378199160438228015011393981857587713542165825551446066472585472777474678027840185317762103847582564726853212338072272505676918522731877206984736984949144616125434643387413190838756099163853186371822330319570002649975693236466400487326332234688856264443776715219676143509109607850764042291941128885095998831531457032358348546703137938412480196436904999075939468711197856802808656696792817805392408193233512883658194949644055181710275663424921997952829618357065757949162294567650985414242723764882610965022283510405111671468318136109473290952334223737033800408479534041975069146794515625129225828127812560081263059863678941354758670798467515072204048777992271196828566436978481501627422479909022789011848406774090639630933684812205464878616931751881918717424048512501394994598662702035643830820354900656096643328619966613397011707252198680719708770608599480596702419381333070575184999907082828829651557044393246302922586297923151475714836655021109980066230177850082129408806154367960845220599349795985770649954142509175170487789583127555612934483533415428508524175558875924068307481361525878199299117334418655041913962689018930259932906240617410851914535409647150436483628851998939711970246076115422328302316266677031103710767381198316526330699074105546194145474106688064936728961484334846437100906968667683001955732305200428262894631948587087738972069973760934351143700284875409681009690987016073017793013779725570269878846776518274981391331068776204358198420675670028231878122112267940989610806375823011769889196657601668633550365058359666931760617707667706997118484678244615216254729533457643061136432683346912458670105951931616873044326165728277444782434568542545254301381352279007358370762765561681694399298856599744689092402506603975024420992343819333391349208599147699835686328157956062970891049334003453270763431854772855766551763294934821518766001798974322035367893300569185183312040367314452554690093630159809052823471940649969418420272215630954195367209712467357300442284311467465145555985834500530600795688494299355340567879351270362244345037064780400568545649735098547581248392956315174316963678004361571333638695631104807473283849664695565175510575666494076219003454842455306032972532282182752993496803131563958629222895855916208196935492758719892818176235195797352745967556070861529323503332211524607162255067677559805621515240316887375920672785236955075914295957000342914362770201268863610219815907389050947975379709587806786125993908209499657845496642078886137279431549086497979914285861598227958056919290564306304677282994327538484758739104257536111667558081272335604709730484523762478831326650034517312320727932504964981617877145104698057911560352234492982176313124347500448762466013842600120134963295831651360235463986678804840046417165207461577498428378530801913662311130208822659294607723007746570605640806876699978378897589779029525891278169518057553307369491836740876281163951850303687016791169220202344003823102458058175408747662897243962120123399505285263315306373785044691998954283875571460920979696915187186406200811896139107192616927624154203902893578188191565388616603942231038513326959047589663510291954953661884094229943760497181881702180741838710449042023795091690408635222151353047738124307679507958317231539080866631925711260062753848441583308177014667530053949175943795789939451054872093312392420262404082092357137376526596615601365056553073641863511180189825547593532441034834297629595127261759166087806522604605899155348322451109540784118642174256371232059389075151717363919042264752137026234612330960437853848647297449821853768777551805308091741050223555422818523455001125369769500299433430841896595866570270802800629753758013712117087277154829846223110618942598619867603130129408439815113582530644409574680774332420017469349233437382505256385890416036101531988385710807146428415905901561069697266868132285876945499009593988432305857344108434648472311875123245384434883499413075357791630044549608646530047618402444221582853580130106176082369738372615611187645551554485077544634933595950284388846522418109842265503103661237563441581577732353564318014878152059912874810890003607785369881195438980454036831064358526389869577389161505083236244282935572813554106127934626133348245659773923165639833671894663937932727185742885389228573291904492287202713584906655655591105598663415690375010748738014856878602452642388663293056801292755004953708293515013330294089368217952932096056215585126916363071852253612387229379046016407291969614627577267644091874334722187529051599152915076314287731262426222267955360286576256394153535552493053809361085772161370757073635656662759266285872102040698700544384805762482103451368833593281558389000356662168815845662918620410739901559990083868784459082150887437137697266548189303971125816313985145214181748589342447360362445325591447772037111034437121091437948124979112890417124181199661780672973978966825036919460322984549132863559484969198188372628173750837398455422367960164798605905619708565582774615096429044119974702733560361938960857903691896930310793266837860348755889124036507182579698165903356081638695797067659604516708962583445194771057073118550549385280865506332984463142147855806123923852402369092342399660458449577373533624606793857490704513536259910777496901017226928810786376169047663649884374566381840437217348106155272777842938192356702694029549771894765320601227410884700092104468908957241398272746048689474358755437877017760712328065305145049826168932714908087032161131890636802376074707677907823823859096103124448364012455542178231552852014029417027170689618387100409307316050405436403010617752272098311193722386286453733186890410521437525911316413635177682962535172267248372525508089912144876737946431749883729203144947517166566885495894886100564637540176732433420252212034174327928704457089901965473401327517772115054216079338656573998484187297442856001493845383143009979173011505193042660188691567341281168309425418693403768988906908244626628566481046043889751266667722947593517300870952066725617465013224965998518707491364367235619679842208247935332088371700586630839934552224429786307121148654441844408138541967442340124509026196227337806458364539725197384256534537094061484354549754809158505831772464715320337440519713582578066686199553394610702088028074084307189788673813044658570899546149180730382219603084807793518778400262489482996027727494202470203059594016008433699522859484607694023925175589510853140416985282114789055622773490646912742684859243323515283903245985767508247505138618829616788750129558209050917886900859093324840998994054735826851018547902588311570695175128658292474204924582300194939056587314637723607687744390994285533453894333993131688615452525122802967009921897828089556268492595524097995023190234808085563842433939127580213950404317927348667180845566747457701103971292571654305960072120556875983218161298224228670740215821598363321803230666811823492544226765713618345875520722002574939011706939447578374147654154103814861485538032198596095049123335849854680443210741739291459698690040264221641453961420782111803309076105379988612043847180917414837692577680936646096132548294768277701782871196046192570314448096145164417866468132390935700536136819942589479649232294940738783405084367313519286434940380224350520672901196452715254190563554708865882444551746094221754544731888993835346918173508048483927016124462064709083454128873075696252094861281563064227118340689918009513934282656597002222524375808287028657424821619685008473772371506702253893608011215610839566323287505445590972993653430213029188657436758775158368180515090279228825167056008956630420889768785870672322392020288737039615785708437622008816521027272644007445800183639998054064699830647985674110037315118105722139943863621505263599144019517098697663442958978717925125175279781421660765343486951614537882500204569666557424550404127026885713276711697737233432015310829566449315804635716906567470790288239470461984207680743044408125684609010674377503244958660298643399941869851932023907898749760041507463093489920530726101147764962725056733642482549409781127999023581399469409913359468190928273019189466357200225793655752002709089587314610223324267200884671957980166533446337982381908385275482524792660233584891702147586421395026059529144721618447495935064619285414338501204263410235757693108518202897080872812920902380168042041720881668282091104209871533094607654117269413474897021738218638612337366416408566924515560779818130937909192409049946738261339854673520051947078278291778512455649754418827954962455643849538143206654635015045605631484294025476215346950273590372991879099842444190465896800261791061208330753443326577392582730442667126578596656609686890895391627644791473709495314013908020170681771343774193726357055190181897764355365667063551966816781741612508402421917757863132374263934900098462984512179945544848442059651238584792901188872084069899268058189055112126107281154392425104374973904074805133661116053951760460744401156494448939163374013391682772006803279968266765764773685437409548864143882903172108308320481730032100825691132271146950286680956144259053474978924787751381977712676201958927367985723047012082762543865890720032901850963987252335349173002098154367333080780010989935200629972788452005520272899038076791799189029319849383203724397875346437754106682086946773284174138022613289448320352653670416879736223103645233167369505201080063080001529237486223685455512199243678413840141903499144126517756922451278198601163069832534232326883925976096188386614147345109125179497924233511007827745034530310229468724284334705038736695993009879754653032049751694599096194540167550215841371213519829416350780391907792283758606603449951899178406913452865108315662460804942215292356326638861581535183548304669146435484982664003005899928113857743083457913313376512099635654996365359773490091719831707484037593049798798354679556424691437631277588495980965618830759763351579336426171052348902077729398965668797368197875287447771533375904162571688285784056660954479362787374688614288636467020730007251990953538673360692099607159383034643966903243263952799317255054734872619052942937283653900843059923180935970054394584765239514474412043209743309154261071710084079787374323479613347875862388998048496630318149275748083930351851314888145034051197925671391400065954003133181716175475618229504806110234021588915182298992707019710604212604901582434673875758194349114005458878929824586299075154504658851010865168247797747558504562802399381183862908763000330998400894118853914790825898898740610711060073743070876007520078483381507177038911694741384538542455109555898574142070408524856127015268940848134153209923853701928418009619286078825366831718875774733288627565317997482390517156276683126622168790470061091019140581354709422288876136456869410069668654244141816458257950274154459191198355696340839729613306735854759978923634011830065966174994820844459061764466632564583389624448911464175685446994009553478399868778250209607884473627693504608664367720060182565213131534409496317391619307605755349544225893662794616750475435640045775139199570072258934547380199170885130167503494261213300752597475524571236009989376791702977836529189631322527954018646114062847428469564013499635065232475539089918077485018326051422271949957751471708672232659942067223199561902084942696805575362604891120150434934602164261661700759517261436549787867113210818647381740616019753323683175500649703661524881172149333780390178699966124920055415303621458489192119378139332174281826558158770797706660608877643366464532988357923626331555238364057347468628454202382760751236704910908844540269163551215598623036175316194838780272599108261750080430982395811069513218647651981229108518949141096688718153714169490128661396810918433865835481296042614432018812409080152112883226685697152210830964078526725887091592323822004494933546660341069287617049895477411664995730187613677654318337513643053162909981636443995361243633408935471718252456531547184183316508215678744246341692019565157414273997672056180714854896459044537555172971363737091589890944226439975662231486624044532717612547440115668280369909985335039043056312232788609971290441211458470125900054316969221352191419845528371224538020824686916326620398223327809396877658840935561897088281827532757999121867293550081668709695345981742520008348922510266894317931887629235265460396619872644981042976067664933667012696657075595810347276605069303771857997077634552704339690071907475364282687413449086373968210499686203224186965857199558809973570335706338734647049018871416314857498679919804334121530010934961769208242750623392727957886822907119123930745933171430027554385686077341384808696065465849968886537766485389329739827260392610450510566417075831953274582475278033614637066617358427497863473286758145218233963267645940563083676302073619624379215686978643674740413961130786795062578924713886968525907890699483786522662548254219589340342219741720749148622669743402924338999632922621790224511864932053543426543788157408969713261635971469002806710463221902023380726880100063052946815521813979641930845760540046855882109270392088955923174583788609055823598764429222934896368520338032483349500381019477318849679258365149899606386633232841345896417609926500671767559898347884777016987023756562705669794685056302189515020559423915658510383790529156991030306525322634694469854087589039808102164360115142417810622634888138865956156261683153245892837994745036128658317291560810619489895627712908676048564064592279222835087484638632731348590486591000423092482675989443586663739381338428349571708393421130587465905080378795496728607239886142238268964997217767386286551785694209556350895747059568506243470022458607309164123925429420410506028754788147707003987597258337463864998669083853404866454763498475698762140418960151034915032959154198413312814736086928075137540683130262713107780108515028546460638124864581300161662628467051467483576195144950235058534170756927426728884858689240053382827806515908895389754231559853597783210908956768030897109600061227073572708719241455211179560363276613939450720750484720788474628810889016946786609706143162179801411456604397130063918325035064292561550579949361467561135353603876834444741748515018072522071792620568683250158836584420193219714062256484117735488621089740776482862476650786409652890249052935547210659487425340329772493068235853724096122153981529780546122805605403686100561159691978645948356797286440242581502042399338489533991859726264237569283891032531227853814816399799887274658468762510086107102967692072873754211791066218664668451148578154754779009293862327849389523310879467678372528826702263382645760359626554474832096130643080114158684464436159478443633491846754489402657244657735977953370984625637866793077770810412902747586169441346743700415552182846963506960960525153553266186475317456711510678356780455321752547761218477643941223093104284431104479092223676069691014729097364154062592916464610127926907520478385121844575600435973948510304886656578234801007799324575135458457158810103855474411544790807347293474323598331082511405847224849467457803869432693046219285549060218599193781093012770540664955335232195271990328840359272705541786571392931217980619696118575434811613508543880740489632518519687728414059129706590825896933816220910865162567580034969471553529538230288768173040335671542228997929253073036801755649540305865666849454648627767339342986771740301628398047012088671237095821947048858813137563064626224448628535389111634475355946806045184851765977056700158513930663028699658613486004058400817347408623867709071779087137600289478402124297416898220096289029078857949509084057370078822619450882164445155762057573415085836620527716555069036411989943284871953940139299764818932961432646186108324778909764885478501420982723767301062045675873004551954969882363755499167498395228910814818161591119418731920852640074383631745393820552364871933044986475393309621656322005030963998592941697193101967933712813798512992439007737125756492873894641849568266476190036658470384840448178604272872492491958922244877236890021884805376813517263434653889166941537156187611697679606730654860792107675294821931289106287371157545462788173543557282322311316042027762684359858013270174128396914514306723403394716292400308899127682897832512719113571960989166126314332803259237416420667475663540794368152628948223643937908371016110817287624230813506735105574700491616566093734968464617241901770276283273814265849309589509164080614544019601845529822981954740827645298915501548689457925230037451459760016573615629456445343976952789113005982158959117812517047997686561771119163336177245428893296928165149209630037537738681474150484786378890737032788198728736299750033199807409777993188174414998638451291560891534125492035429019641012818442964926364050666849708156314656074232356364826256210078617248137067509862001774662391414239839642301787061985133983236420838738163074779561567745710651144098218668251252999425027342436267707068475004437618449180963249438009940530542846218437694264555093324774759742582307990532041421538319041719273171333843037461214133151985522728901394232893886782011536842533185789504545833276324478015588936445047687554176131832107334181965583791849105508462880770446544608895581700551514102262580284413325277486441567685564228350096164021563862758462657303432272123456182069225873926381518671194437172697280043179906597806532098439390868087682324797601898673051021792537097647139386475691521019070669658719061430730401484015061319352994081717143948745901919644802508935987166962707568054066449198065938885968378365340387148532885394203298296516476996331783176808826623023779736362119085650970427907706082080312438715306447592869307049631100942075209623997351713761672157743650383118146847064855714762929834867688314017223115673494144724655803645131780201142377551159223447585863766517552940090707196122389021121567232767125710879816435174909617594461091102544220709774056102241657369001066536724591585482410638683770334521232629580886046062507826219856278928350944412049915426109571450373771016158545237682306715415589577116863352738601909625181913889457187433278693940171681255511411197765992632474677930263823397872549260327400726147252584927712693386183626690703861479934946501518554137272530649784575659710767955872695784502126521723074962094177787542681402270279282426517244073488316364154058348795302031221795277901434542907844978648953130589988791838470990979483542635409750489396736982587632010279740758373867857328693636251627938263505851460073801123241623304422489277135617042216859032278852590935574464743524093856868766692542832995281808126148108259328373358620529622909676459777246716587306077364162671951018116793457473483397506352378572201526340094255733295495338485099870947947099451176357289794607952408298686405783451694530406102348399830543590212103013329630693975057068565187217363826865809300807558542027248497732456055598048079637976037704189962147655253582759046636605884953716462336188260517968920658330289649915689216977443279812800103042704410214474775684308468197590531579925142866941512899677742454767131194602437029532438446859346491525999658626130462098127738322906658552153540653231443483878442429740088327294814296011507126713574005182722244845508228051177569473663309753853601843878983048601988912902285684360847494917963471774722674292254353445825966705575728538181420759877628272193807955676129441963234406217926743876078326525703804645034348657115432579345499671945449689080656916739037279534173997589779608330585817857256116983534548204229340216198389838786386544001941792366982722461202723987933672582908645097262363940445408210393583808694851634679815552057609289132921654023819380960288435803323660144742183339698933409097262291220649683793826010192256956997515618756043456827821730051411654385694067529807048762745098971112979616731170139560368949766990000364034439861186081996790327425748444008329204197925377725531938115182015520520936119728478193466524723372737492994453645559022916368594149934318611942784067971537818377455454339258968099884937605308262890119946290007835961561952631623099611871226588400844691298166274509729470327488672113506429708943362980485900953769967926860624415436029983141058099750228916437622272846017052195843540741863280797367930454826931832729270193454294814774255726288650202510345166820388235571193763296673662329582682560892854502953658186324984877823785127888099848808528880830756268168188156094482219975884163142391560858588919435048765082841176773061337865384181209417785108361527935301862662414087827025790751763062767752189521516002693470071438524049425842900839502505343964586192362010300908212599862531007490721581910112158419578430600317089319071778731350472696443768745413217963172611801352495088304767844392832230976451432779866182069414302896180514202288515515215474029574231183687794134093074624141032688163813670604123660215318869879906479058720472008117247321345124493060641219535918513496899983212547030403366417911008267452092607186290284862263457245236602206499510712040563348810528666537590854944610737502208517523083616415585364628474710234507262346528168584977046185568133677670549852276130107985630698165841591173569136730717314257242320202085080228704809444846581690520436342292493344929482159707512403553554111054106241992172201517577365707190768773284075713592746354097050973426557792579147747718098038675016969095153495761055684944913710024126218169325620871036879338727493096109417723961894136469314800098093319195288959395601027493764884709735231934136512661128118312082132606926432649668528115122506005041083373235155795697164239632768361724841052347349947848464898177794759830562722840407084398469326609975655432356043468759291232563105990758782908372048705738785780839084588348291179135895532350203257920550146253101261631995317755981813312101178997514925626854124368354115967441787424998424492753357124800587569034602399794107479526129250924469844529560768105209627729658149521021701374732981583064045824622483165766445023795895584275386922617379707365137846356605402207077462598892877968261429688642160925576183608981604875210646287284627169911675305191885835485068575217032347231880067100207837572836076956144906273379054008149012782993597944704996410591919616076566872116040975121541337739497444424185756259674475731178854640432735035967470318705533993348723934577644301494080470874943876001145612009667416756399849670951585835390643677120697901643096095735678620118813320167836780757883453435998152805674777760549554394113988781620781018872782429497798678532284725326195377233585380951781208727892654948062610755002576327398705562886973591880508159223071855396513692538808508024130440453012207810244557052721404142207499786363442854160526490634240699546625051039159460051775282104508397465261836731496244996265393899035721352958522226242233239121962212564476085440014576264941042761854348351136657893087836690617527909844293439358315148106092775669090130341913892870377496623924742724184304109753566813988846556962721767564284405918773508913683889361337196726492232034995314498073916697680974070497110458758777854908340886882864511342571006596557064169768203080789034813009885802191013399551261337843645250495881746749743307489111849330352946152602229679277098945203051215091202343841371410865842363873742361323934460232035363423738392630897979061351430572286854906820177005717962808347393623359606708634731183351706881370032059981523091999999836986655015276032561328942144043527991231818028870168448462106980615359718351726057208576563926398154395163735660875739048430013480555046189583282838289815093831787025009983469436806214029074326478521627684230869310260019634576914670533374686467162292408728059426343337176917831896180707678603426572304818083007748187995563546720353179619528394928973372940200701869852121244430258428713666903143072529642616489795288452935589098854992368368860697357349934654982954580834392647742744149531730971287586886662712582867427945184751954970052448553156566846414222378021015073299492735098236900416867225851080069453052110343407918329291852817284859298835012131788680574403751590304169831129583712463476069862062915596138190586743794952803233569782828625454422776257361162926992616151472106862690428310370282528639297550679045779449383285563439875904667733709314461859657311595364223858957608440106260802441506219789801587157115188796346472955912560040809645780509341264502328378948938134424286066796379807421801234834125523339020226138005156454993551936461087751459601471903537306393984679247931265106660944241965948076382776325098399707398475975228176521865856253610119146391298266587046237290218451907688150795533546287465808873875349858490337559521220149843154918369785795767143738600816687849520351154314145727396776360376236330072548900650573895697805363401943317294703042882523811812655560314324359455019056402597027884996490739198118956955469426279642960277083440875224699481648164619881360840868679853989842395531640866311690676703990341211751538422255147168505726493660307048255983568774021099291168084434511300291731289441568713123364180991594529469968801409242216780658835989848618610902185375046988117707524715941212302843634990410497263492951918752804892509793620540165162916148262655560664897392890662242770143994594216861013012600000141286475341990842032671354794631804120057395665196405619977850119031105068340349931922451988957120984050301672649502947820215894299897229096428984028577951383855504214324733565722206143991395183522985925452397549542805572167786354646939277405901031399337439358515692599977757456721790795990082905877686002816567196840433745983086945904993758255629100457773127091410006325518530488879892110930753293666213118837238837202894896196943145677869101655607727942141287705961495969222624341183597007354356812310669539943332060623671411135797218253301333642566084783493023844125684766928248808599746527163912021534401657872365301824165051863639370229434141447572345426120675118994914595726961300292185913341738324856689712213435926810341677404393985599600628721767830225258181267268031890269638250547953022359386150042415116437474609277635615032798903845654541704082675042998364881117647482069186309653226223005872701502618026200367400561917281937421232151969870301933828700439914356435385812675048814825701977718506909574245922974006675063177848175022664692400958305136056537002071559370012363271069501905173231763458668288076795482793789234372729454489149560733370665631746044089946398416135516662390917767425920985651654159912978531808417099987176726721593769717056671665973378062481644308479032098816502743396458928339527063194345281322909459216763805277330078523354672909479622392545043256726020875024978626673598071285811379309546334424068236244182322548277619294137731863597608516789858689284803468273817377561707367342304230014785068313020781373106039926285464991147817756517555609247856765725323789263378174757782703087854901596692629856510460429135915385318577754948130909767631693930918166348152628950377850687648448794950272214978666057453659143261902345886244211901789100196879156986651661229495845707225818121857602687290583864563898690312591264209614047289304649359411853760693995952916657031900816709789205657662506862772014500441219858332543828123666832147543010026717405917017971565739766961813075409166803928298987548332929973375216037323598802403845901424259851335477717305271322284419873723741258643906931624408528090823601736691190041466905101226669882844756740246520512947782996642128653324886773903550820327269002987392267526970300035925976052281123365516616779698130134964062668221328414174109027649578086366846309396538245250129113693788451625629592711259217524288810018653754400005195477645855248578318185866189080298924294953220872436061831548656383759932923303838134430061674358165013118899580404000481242643814683980670465253607087601321620169839927351890306197735775200070227523729315515241724781709514697883992356951583240896829114188710478733178272414552153474608178187136073065451347576332500148133099149521523834187825288585203112511339530930632968225553807074413068604280844968189418152390960413697734510152943253583731111195704446647512252796545924944162297518436615982709134084300753968088926619256234749682485303968065066771756392514498511240902326752232629276960326859215589025194598225342047539549852663171658673823879291770616277684938957974982723432534088317657193586492045088572641541112611204886849478857128088020271814953451913524350605241919660013751087249655106774495058019300019050374314238276925766886329935223176305240217225773867204719356013461841619961060094810665477967198863011124383624373991814434478207352440556632718630473440665846437892785047224103193892094501111915827523659098156168553684568339890232066575619765838363968540609307227733486283924399428891992137598979677626873399018476155996566831654804446140006050286799279692274634233917823834798454455006647863056329043973690374388531911563778995536546489342842015300764984635865431836259707386032890245563417360237113106768035873628381464035378563062950289840850819058438280575765264440230583784635226945815479150190766300901442099168486976621325175105015445726182019656722727927714632708009754930379045691943210531177598142260389342002195693593133320439219817537191738417371635833096249404171536638805411385605243635929691969931528080992601969558871582277279498688029106380415362621933195610531333090866164081743454922808108766149952728059257747037182340225262311678611330178527373470389801675328839502137177587206565241509578556784679420153809617262169639438661946154555090860309011563193745517807037611163216159426785641257042602721012306242057018490558277787348909840912183475894387683631084284281153637412685818872174956226444465509219833692840337937870952360273602392726917980630099374466466556530951461115602636734746432557562886442521886471995867035272457949662523551747873089055088348775161158200543251324996526581470945162641047130579292487654943788922867954111025953493126197536770600930917385032895139330973564466770143274993630001244813096391325824146808102809390195025631869585129093771506493415545913967970950334847571635013747685154303980408250204204579237643078588188745118568286487481180139012817475707287164541391252728822973251001035468411168525187624615592455820719363624475195594891773167580118550403151471421446245508573120056380198873492463100193163994594997318736574520969648364429681454481330074985086880596864119872692935639887735966129110122189305193608060914238297398067496499359179669607277488302752509091073286505133206773427506626401195635894088868106986708950871099297066042713166565561410276208222287670372787515130113904253594980967867468617988718510899448853437799421583506057255252941885566413924468170604631677943567684441941284538322567002769940191202948108658437206421308445561338028884516701581941152847964481189758723962430995826081600452862405655352870233483848676185678447829435954179055364867771602144570964847208815311101287318527253051146357101806862764235198648994073255390964486974116096990465146223853932700699562794286088943391106869294328909969440460863773062982683117864009922478833750204810676798319268919761355045059892077189383360320820094428202366362248025236636666112122516794912517851088196839147405510950962721385190960154190132000311922739197846327958517832076164882574979460884657178780548259229256587361142170802890826386454460036281372897006916041686917688941840773724843110548209203234840729633936434331548836098287484631146466096653570237454923911506620781983436037678352865426898315850240725689235895306458996942666280007882618619838456718879824524005612723509675958477995269827551545103018443798511423780648724860117116912515989503726602856426829702647181960062329414249663665484852311236402947812132223042334936694308263558782122789047275510470703814527953433016152036424192386151001082979762016838911265834774773444802016210528954223349890769401069637076434329040706540888952349827369575758957191354734758022424136163160833227952012134945718502007372853719839655485711228749079410078942480413322348613803680250259861635156850197843461211293994757183460379697234013718682070843838424038606750129705974281946814007333099674787398418669827384458276307506843778238885992848788114992809487019366390943344118010136243003580815378336538222414949161726668048232795933606139996581459584943944244054000132790453429001061991278082014486569487665239655793616039162079382813708688568381299320401404158012477499296722550408410699862735350809697289929845324638891589429283404215989033853633295530835344319562112213129807532201816158399939597925746143214151854738700168627597355054153719893017873673423881973508995302901480949935580851787978855077374122956886378229663665651238426862569229740444478291540741137983441568392685916227404153090328664761230428188741987850786333945127824469684965361966197951289617043847206456648815668493063512534325484816192130858427640452712147759510154730529679104980776109924045328425697922442473882884678789039307017235206509376802224498582365620731070934700965055730703286918271036148933800721273839068662773481167476881444226268944975661840581321399031916280672837220262260298649305043681213524871535179865747189343739932159037150209931018631259655149165766698145694961638601841443705214420237941293605100382683835485242764452016690169785729254126287277714114270051988066841464258962966944846505433048823581393444398847771097763944467797077439815065623071296059267387932540182811663163088860621861564760898719146559208139627292668039620146949113985880395286723729885285017121357609023214551331391917842009817142707434663370795125487000847843718681222395981547611573932949763999903294696322195982704219887525956727647592995153803585988207106797357489672212709037884960531298034164926487280385464124780559077004314513202844858185068368990785645542512091137370184065917867485759056236096187792850834131627554439009778002761072374938183306221973349904981395751495040376978199362400312514237133410949697088279379302742985792155609643516731309269517829739392865709110977203170021556452363358015046612571591548041320707945645052008392986148276044713913110953273913339853948027892520014019158342381525713829954928993911392289474768054798121619525194084386964458869036808523442769052543166432552596373612229361632045220323095279694629491109934823340732332089585220659138410784699737797913784965784003910107591906607138447939748235565612022690561825802200362428257849681716860641602929512267225533563049258235327699862178025743851417460607640585546542673649310061778138714784476807976872163065573910562080183753336899168481580319163824155730351037944934984573849922820168500881610941460043915937014590426760164079445626878364474088472711446544523309574192749818809150017258932396683904149064259423922022277194339738822413245220206646116484582849387609071598829179570994470068592329884910537458673774050138632437704441459604654852990367483082904187723122451109731211215805042839696612620665241746573006993059964507659680915765533391349654682037510271367532589996358117674391710173265743547298586932351335692363251676673202210685044010289783284281786226501020378737770563197210946507818302023312286810014250703118185291741833598160540984542654585177915427574069510256627122927398416545468198603686861352659781736842240414565225375362823974746291189181436158093714127132814978326043058343695090430791639595857358434630164669929291655034966871662440860499474021296122109173454212990569259971622033665001875521669866657386794907855810842592301451279650731034182565066025584556244473254636816713471233653845022423269157648411162395881046327972949423418590889885031285000268089589970188487015443163386025850292317763952596512225613806221469496148009050105527224570710464624900428480176028933951479666703543410641249736021334526123235581178896512073403986138683428620886663789647770480754913340076186597058673400663545256653460531900797031793078429015010302140113410571332557060137132538377866186881668849375646171051072375158344717588078139121211499371980835012678371454039063494393042832339286100054116199711200413591129699885112883020905039685706740824546887202756263733351588259588983522426368876176991439445993087411180138296045194985633747108082547712849110809476445950404279477063510868091701228137432323116551437408783844011633849499452862998281096370784821279733995403149946140703439225278064838413879033466046722221354097267408321018143713196577727349942995269040803638027110386350218348005652272329491902619843821977861356686091761630759538990667148729907645999066332346134532664602136395129457215317144585223680563562798806910692233025607358065862475024218380059785068858580845624141265985501739834449745275918316275754471663636479005768993651063218721354251350356625168956419327813294817636902700178496187822160385155210719316413698820586086546330978941410300644107918892019461061675040626239730382932816009681494152321934238430137015810765037591945814016082186052526709790393652315975135934458931952585783573881838417173143033624466670150557682137280470313101906017559407310670142892535725928497223806903604585757906410197455472724070123936105626750095286143065409082879186463839705860354715396927732189282007457397994162594022133867102311576859336197754642319935895743494626388477125342672056877861630524131545401883867025340258170794911085171511351969065149806221689918684040315905686789205536159253741134745562681888425040924572380457430033742567821746839880734157748717129010727898250602216000552115750121047183021771650437136965284928559567969808207060809905532717235738163108761067253374613598375653851962237664487345852800630066925615258306856373730993647544717162945574210751357818266430537360130761927981508775581125211766807512274276857142624766579901852741421244411603396936037482216449699753398080238747019880313415976653083615685109776135450465344736590195657874046003462190355377328216271163215513222070404902207732985378005892832668350816942851287245333337032708447352156847262015715239079459424705219956268834780425744736670586218285771733598528828413076317916191801502452664636872081198016937981667627202787516501017637529137088157597785618896801976928077632440569719727666859260434918288685338237192954638940377059607317324351476138700825101040782469959122137039252434276633032995573125439052908573270457380793262969094822560744667316767654817385338432265360242262437930397344255320925041044496076447504268685343478929644068536420452177873273699725454714089653192511791264240646048083486077504880254488792831734964511976073488277652794603653853707791906786052208664309782946822834643431964122037021446012940264275195256152337337717594045489219934921174326996343733468479838162269030030097256387162892843642437939777750414428923754948281141611858368226608100904644138106260912594261605517877367240943068911113896620492883286007502253371330136493807762120892786552036008663729391123153758424507288689142018873833088230238482313614390507939192544069097273381023397901850466849849276988622613847180130912108252245606937924306395664472878136893864537735405048147361956377389568180849930469999050434553685523091803841179203919103666004737319772269176020407881904467285804778478934076101922799162282904794887195787761427313886900831290948054719189065730865850754643250002947632246946463092094690546608850486710314288479027775329831880594524695244556792620259900313440799413375319154750459525619286449412218671375745694336896398139540724457027850587038218545805292241026071418967854432004379723138626891277128974533653316786922094773168310537409836481395774330579932256886422439524114023438701291424450622045087904628786639164700330299998661268447372045995356721794312887330409899578016757758273739306211116196507051199938141228580558300609132900925183724924355135912709837745664715104578605133522463131117309592488596900998888755405874475348598378111257712707791854055185552187031492939134688133553590415715244963777102083568094227190283683879331636713184490402443270392425147164116269993818924602812195885000728675308251138008240595895604293791974484228706366703058120868498342552155276580235631325475878715001232146277009489819352723411315757122686527352911716085978190416125956318010585047312020752782157384843090625237462361406712403590528185896343952622216931264911849754595451608578509411173679313103410999679121055131319213669077552090638202198941932349254941094814027779740789638490617211563568172794363518018240443609054119098439898289791780346296974450737024187576009194264074920464550547063965772293877597553604169449097623768178975277838359783784895624080046033402377362690507120863215022833821007777195308956808059996431883333693448578780424085800405377692756031685029655892134054412558199696563291687311303651553072434829572070047625047962636375841871325049637354541274068438401913547994218401763881254624809258216898193178094307049015940321733974553745224370645045718616521230708907241671251012733440938426502123342991552831921180585203934384743418621868138930565251039015696993326888337789051520247207323740598973725580563180791740387252535583007290711775697363524259103542340616372463029304656432602193071597252875729598609662883406383331397280474301193144826462810278154743770831715254429993763797524065548393406345429360884762681723646217905339821424590448516966851901017362278821842760416761820840588192471660243823357712293926999313228984894707933711947332422955060043889792270693588368985498309822037201846938405097123966873619003438104905407621954496549285861057348806227794800027574046276206829154319161013288112386112049540885364400766118024309440691883526195829117861724650070427899452873622326617100090055453896019165380288832513685941678066840109689503286844844879602787367600047069770821993887434790473732247200803801669214904831210218852751097540673527911399772429411247329852867605102616987087265557307879080931275287419369568386022878157685535961980943969934594364090049088548957308801239952513278610711101347118583811262671038613155495973211647565730816348096495416313588200361999408568176797725292701683008699120430899733278471621736108607999118124946942578907004262873569739083115127721725460411498180774939426260413802557932116183923663202635863081597004421138813452655486518765163490570908241569974117087870220246581119070801207257552236157810055454056632111842306733358021020425690252446281261307133147769305716288189869863393065924167771963082845376207295757172420780172252003872965727638767599516097770216350979346518321462953511586453699548890079637879150052429108642245328715360441764548565150549236806950008917325619054684186633417929189680628375124057654591662742547787461907371179715502917377887467367239425919753368623760932100244986492230793033116286690512407440120941421943524824840005684224506215610837542553934277668404577366397785447900855415007772536952066606814913689996726711172445620512072613118530025986380307920623238742276141532047980826236009838035272919201176657909713409282595089833772015374136714029801118274585424531847725911995255546588281507248422419309206352011054799186855053197270997301111813431537485891390752363339344850736392317863751923026495291215480697760273170157118207287433300425046573220457959349779568153645483230884471799110393779271532914553263913365040306001360201600227457344045491948261258401929301775341165078652519307488588852714102121950958508200476031661222911415553781390838237154717303213302219583493406229229701629191196494454004164637474775405765347009798739492402223791979569788627758377453256383468907054027670430321621546235342829208577651006129636190897351574231289520986841944831398512352504471236006959611850150859087120826402950756934468260812916124383225729077468898497919223052476196534656685012625545352886431792607750408854656358951297637527370587338044504348265596809335354181238983314713097403283185680198445666935887890312045909316530752517133233978822561003592125220408334260961692472552524711955397202556049704270550006402849535147441468154313283390011062223527886193360698207646869925008542455073266195573393203056502167522241543158611035857833345409547724637124975528681296614329716753979088868152645834008547895633342978805650915892828366672454960836254148063613765003117736882315161250175084970364933146473243110377666686928425957918956649312447664052549368187279343182347770727586263167249013636635426807176914047634062840657398425639977366804525670635214730600368414505447002658295682711487328391537734276676228462687168373584263690857165792905914812100767129817848509149942867321194989553928393708447373402643228913296492997879628461185331307359742510724098545424747354117755473120930597132938608528599426234882909828486362301823436666305702986843705941298513444535972910148004694068199566688814110222718760705129973222088029761831728875669567542210400053463534682026849501484507626655633158549641984950345718787122910896269567683020647559079479157284367370384095652407585221476103583497613203380501443169771200621287793707611751604788797338377123400159175241968927361185675711573595724353580013070799221175077799335953784341937071128774680256370449267365703260728810356015305261790731853530286892946783473761221855956110314903661592282728937245676240314337047236098791663653275059309413978369830161584809968067090668060479579572884725635694763829644963195712868872135858358887641304545279770678001276924112355058327507456326006638906621839243531401458039373508622996295218729730970557692451070229647464344192668360585041381178995669345902279492306614770140987722446203600466176628370306058353458135485510142340131153702425689728204654660001173267313864450795685654846065652859236543738413280776906886549198786846753697953944013690725829821015143019596027086214054173146963931627462410496059765234066428537004846099544074570709329763678358166058782290430266078690373594292906325045592430460954837734870774750278007102226186608789969124350522883923926435679114392450633893138651243655368705900175810625299262901207151319866488835955626888236258109680605282089883075978718350109658672723878294736898899886169280503520608312886565051269571704782100660264493449444759787450962057171739886138877065538302613465736490094116723117626494327924575751590695193160785541548259104137352169580397799680015926974713444915677628529896268285846688073061216851051661143611815122375174273711539927410437087614364819167100250673332015985445397620410826932685660626250967018447885937600913117420615951616279764082614268272131327054516653616488890959461732029935649904843873166225463669672724184663833838970544056055643164903042151282265621720112925357258199055218745042572555907537859883690488697085110146226668988057260189953490004548762465701836099621126119417410301348762100605351167873735501181187341408177409505352785011123765470414306251720762133539537475539549572937318455102338220984115262934810906088822043245812889167403948224986835392614470866742967912696617264164914666890715546041663089176247439144231484471573929652606404448513280296991690997898865323637973136837021887453224626874497570912933491649973675966514854710464135564181343068785788644608812241369535766857334945647357462770208970999288454276972327762461240215706653731720446773266425716177456073197966581468590208118802557989823040766899426134278730750712212729309232944762622170337819951554658881688402664073728092985624683381550802442404524572275740113240046187913391566909608116961063280120990994676294730463577521488205717795016726706151633909523220544029078131086694316548239810539466637494387129911202534937912311115999515054521448658582065756398865980788636830434714843195884389573090899950921419817702675860492892650061473983982893356526524354763307940645021145899337999247310153979856807143936696930223511180474656308079653639456530207051626658807219164199795856744752532320757617001916103460430311881633172221389056913320443234423514860671271725385423496992888808069280147538276608820030246874088491624439490944760596170407827476757540728670312700225762541839997742590924893440229218950093013812712736830080166225420816874608370861493821042304524422801219921080956863406449743793967390199167103651834084518428935930162964546254984126368514334477037905647466547109996452111266338752075688095419343274407416028872318628432433922739857548627166457986893855562129855655913509773424665847240305683853715524479451704007694659323621374710044482126152316960401054637502638892388344075650969203380737782979488789196896353342020732417394548541954302332647783902596796625130778094954356283418079473138737894929431802501304164052413927332000349694780038003129495404087787858700261458711298428503220911119398431616225196284436367011797313349634374138919179596796735362249324809316443539671834870526085877438021134571179991096912800623409489498790896672419266380550184222005324387800099124619299754359110746166997980577905577487301073745499159998705635491401479020772993616977489259818404789135036291987676194333339811832382372912760978988217667209136496831984505835788078340389574539004534369299140563503353275602971785304815880832948859307289788400692875485461625485596289087288833208557613654123884839219315087546598416497412860882783655047762854691227713916509420778838479445428582836595614032309862040406991955098431093897440801110121223202060621426076062539296721142960262960883853125529281388566377426497672772825185271519802061253585241427345424077670884296777903606485638372446247205097638220179785290895840290621169090977091478467726043917044263991250237254384685295665252855141116552706553504203793421192408335694952057823625034709820567766942746812636342764178361758772872083201448704626942535980212725904501634706739748475706061338423997561757281582284059101948708063283505887668604327323737641975973892772745302471637686207927355307758158056274607242113845932612405052025358913102276186051919544195338873398399276346194209480147007948221223566550058583390112630614864901981272661069902440086848585568625036444584785675090568835741743128892405916979211475402781804495985570462077520136517543739662590220113437281578104195568267553946336655563053695836038514783137430200640140471361667688905243634874054263394052941413610080665709975443128027992645762998225174685349883336680993710142467284918846634846571799331607121740707465663710202292512068680472899786955865411762748563684947677614566172606549796786097530123027640150461141118510764721281621881929902571468774264456500165739125293231193646372058453392551509084485611414401836153944707898118909111617074048552317257742844251406063969743683364810909185695717672619756286290275210336147852246106525016171194040230829210508246505975556537110296302719058761966386111294964635700610954064404347675693895408642864080887408510208246039340121859440712492636212526833029030126808941702345451529070907037407527508499532390575403168377195507957552349075286065994404144220020538965261286352009992051969515787601075204958905899907656882654378812300433987187923319061869453062781685168706919331629103868437908980674080202847565408905777406738530142405340158463226157449555019234824186259944101824627046591420563312040455430610328785396961987022145023715108377174191682760201748706623361037167469485846349543094441590636499190052444074357481657361155739421767611370917814610411688573462855808210113450131713455723826401322182042903222103377865074966119399170757248524640700953315317071227477761845834288837715399799055605318348666978976653788825455248826321322108373489006307181160386884224455464693750625964555714123483017345125492262453108626510582086206784838411239086732448116835810074554016613997299652505344581067817438605902619143631302987118352352394900857376125311857382576947697648956185617144293237941031371145462465351188429095674216964051007857363399045461442635278319169510870080710036852749413583525043038495845205101167691893562688984864963223041693165487576813940392885671591647499141245561547495350939603589621716960316422084758044756852666727026243041215153283859475436340817172083212449793215761765183771829323412397560877854675301012222424958768576574564153209136254775203575319161609634712441839615896938777122630886494963380344979209386970233870824606070621201241900909338366596073194966180089501532733763612551583595011277168309025099289090890943203691056206965460169561815321101224574740700799914222902177021749158178675048398399023435017997334985199702182304064141784087319054559480299793290290495054663254337240274872084394027993408841423680546955594326619061792620596875154263541978853597722609431807827879409539412484457638209967669018034533643941378356174405684170354604630060691777078258914411398326415879702633364338369408751299891013296120578202576884457063924315013443651643213134287832969101009230187580772351719302548597466141947480811688867586269679132434782154394682990286001280169964051030677187984839439078564419020576512505010471886413060811982772049199962926130795423340273735924586403545462321789989465688646154942215395897100851101152332632641636326540135695002219587092169833177663351267695629313162559092983556152063330486149109186381960710593669303565222226875309120315587512863985441060954174624892766334449388768281699440928268933273594978864595039290450733178562985764431670930427827136064612150304548938391461205425507385560967938891954631595403481165179220516442516356233759779767438362870337191918924191145748964522073756974107066027157763389763717948047966279137318047136061273405892930716180978568616866470805507675123197153471797873598559932311344664066990981671455508874494618165145706799375377854204426835646762467815227105515177516622836914892044680754603854925670769642742704372203610750123539037619330602655143683203988797665358169042541334119972153587265294064678948775370700420445932052557326338303361825632606005170935869453080551932878881619407387083115913721134807594175573116631507205532237962900398316176351412768315530176642331694394955389000906689364746988267295651115852055502694170764304204053479687808151272609018333671481037707913154714810973218544240929360474335051321232382884648806602382145641393140098624428626431227819174011858093090843416680669147949724982157877767186006877777681412112661047991160582543046395045646869742287243625125266503496340077400204423267645558221765093955485538354765186481602215204365831760973319193099686742056398736148092302592251350964685746769324660224320021717619461547901254623718245903710253210422001612592044567578370348441667219122753427344596289181991452366491101768971235562571406383660396500788580395861670918503525785903466243338848585967923504642407127819255877298702618196926403676886892591045307988614916155339839463384035153851123868247287416050210726689072951811046195443014347941716004727170160251481692707295486893502677996166330285910168523170055213631519805282942114523827310329642173597230431798638402323335735249609273968703236736409484438229668301538651206824131354630919661356061828277767526668570052161179086527934226407454473032007451305477994377742457333422454579036232315586019511236632939654665725935502092602593244974828728777269551464007353445721209016879965597009569402256529479631764093192575217161383358133231801594330241201542501242597293302403591811862388697340855239290148232000869782551220104552157606911048693938439861949820445082548917096028526900035253432873885736471912775616305798012029635177544941688021322432918107762873781589498570912148045654928832970906041900767641842381774294516457862261919103638144884284537122809132193652537278502779921431042199276310296370800170750722793121274827433083844635337943145957360756619840080433296256873674228572567731481697003071062450666125002784302784651547823363629924409706566598744502022531109984928505950770548184464267024564105322126765740290227801325864865722975959281723066541850910869871962531295242893815592500331952784110938455290610492704563839839899067396939844293799286408032339234630356239754296018519813424679845355356008491081397166346430700746748322007378797617006645146305430468487868984955617011054810477076888342785858554173227386112196320766279084677222291450742434231927332424772766098806833222657072681099259227079790087159267389644500116777685102617483378881770404877165012622827697084577073448189922024687117866909339202359762677339948420921151808275509846644634504332528320226252987147188497133464450400372545390769055852634402694016759958432323235564637266762351343182091401914841800835724183193353025018296608986042478520844521312880295915444150291797964017484721360853711596383064132294254304756851689622924301440967721605346438821891022030360754512495782742325205571684830157317580579031022063099514710466943524321912029354549843194005085934808970463600402832765656928658558553551727736912918022325477439306701186576062790220678229103548108370292058989778381387562730384220158605748044344256188146800360630007071096821038597871996663669319870116325250567480997999517149580655620896836954546997623199681288122438736249872437699249891951049113924011194115876572023087453603870032010849728218977131290081937738970909425678612737113715401146710689896639792836386537552465152284720528246617924357385679361076419807805215536201798564763090037746420498200007161181601838886373729271507404888376561166998202847036773090106504522215846843742020302089256203830095571559970184571931694041000525837111107865490297312798738737972843290817818301864772113112659465190623670750595757490031763044240060973294352740121351446232453845142829273182168272818699134954038795456866857656132094776773918678544700741105979782740414341146542056875352727588072518522494769418743181201881674411576675644698551366430194753341880102414954134720482438283130766644421603031208279568248002124084365706171324615065361231386402548115111123361862843710426469815037766475612271936207046570007236524960385217837862222738669976885018583463878870941511763459473397725313832549425167649239397983375644345324562455280442733417305182357050913354548378039275861233252435977071889554525917227578143518990525845039703678204882661745666089744571037710743485253211560986684178722428518895566560187420421298158724408697001549182728974882157076729232157403858457100490504805988222008471307780022008909905139174113456712255698678210788636337525658176842191092899173468353813532502532861746039419526996578844534939677994382295042086653165006989978985267439304530852320867732639909118017355402185103068654247881096591208067960930616047528066556966540165228410135444501328845123560399603964632558999899048407285316677831939371002705347192517264691080014990397530872027230224425176277074960868994529048185281307943468195922529777471662855404303893522110190034770770957897180114782622411024095663791674875234671785461245557973805946711673720305947637387653379808211131498335588653077209420135152104560803165929068822049697149712129941046583476353808333466608787825582838673230328131198564567043244876161453979888310836952410513396334991768852851541525839864893148579219873940596843250883578175572410183015126709747272529016122628255712273781750687489296385095544025606714893532920190068463965578181663303282221548088903414251779592488233600832684761769276328765057215327416094262514575926459733762917156302899782574680221411672526639279176813945143105208848409840807283859011679072268101696657548735772507648071176962395635229317412336192096581733537683251868197214443834775833332614378093429848922390616110308882777568561510260974307758379913712003565120977216101163957500671688411407073178882545389010462292546257900540137752658079671680651473828252503619187922490792986827415136014039756954458694812224357429484403659493680386834936052153572035873091182496433178034504739211176078212662768517767028691371992340407921074910679298469606135611191428277800179093498684589008219185100697915671282871505747733930643890744579665173739531239328306455689778207533081560319750105828200651290428927382445427442941687943805277156800466708287338814664560176469992351256632297103815732431036245459382515422878502911363572263394556729931153005024244548471600757759077054316987366796653777155512511326795497925426198613064211400875758406068206871875164520205246945487909428636795876693486088572763520018298655254519837537953373535164508135671993521083388883160370010004012560582775798412568630414164197231877267852114383714642817869674593425409139626409390917897592276087443788071512371841943446359755336388181338360841869998758820886619130475733272786627029346790372503765182346612451701113717448853977386753951620931266157414341628871037526445254910217956453353218215385727030350709814586849155478060036283724463259746240378472042398755625455427139551962400002900318045942308838296045890218902584092894534534757705452610034849225271357221390748876508911954290296423259582741576198111429889160031338496721209015562610375024675304426098138013401630214911177915553819129425472679384296170321719836527534662254930202943290618462835273434569770154458508846177174763165329191173701830818593272300908839306087962886832371948768931645750899109955902814557917652977645145725515249619713731198413968761704134527078808552195850184285435206688388397201484868274180587109071778989313955215006115654055200668027357462795707764361807487108639706905406701272749695174719296181836910971399499892350109138566846307283671108618478997010508186981503366453851532012425043042617053399004990019335299525223371408301939247267826098614435334431351325446368781621858677892633689209431872669315709041051485355304682276899268769092404651630554224222932673554439961002645671233228566409028045485928800531354984286283566357176241305090647034530778614260734658559290948642244665451810586672420211839657693560324343909124044747817860067131250368409397180088070197874822631613584500215401187375102832080140206326162758803897873326215248075843928982032067144179479861448724187422102918989846608421141617572336810555819809571534359114257482801687398889945070038823669136549624683024745759248670295828505075155026946514979802235097453931110418204369201098305579935072120722980407909383648367141664209810447699213078704783343474987153467092660271671776672398301931670255750344456905861267846620971871236879304518500107741700161091804922173430777274497692055545119187463129778722929117842738400096401089715283374059933693826364503684613211187647030630780164602050727756197728998419749766032442013570724292207297477397216292593573090823026887083660771718729274284232407729562238940540011614291425602637577984282543962026460660848044900727150594863833847991763909002312451605183089586551125369620669367335317882609693276866253504510360620506698347053798841724870393267419237901915956376546168267266037535620481031331317905604217332156036744643845181661218879672956158620579650040175417777882936622275183951174173488438333707558790862016907310372937822218355174970949547615876430120380207742911039179980558936148698331540354052922846469293292069696534221796296634587272639670522852472235225826237204785729547472932721852387665998951329468646643025242913321281061450970098953321336786204381027802579803103411304089923468835962526514515393227373127882548434463354934256289157499035806903805790193368666457217452273576079637372958067364611147318834643943029310065092119368543080315114265894539204632855577663513067424451609534202454130121333187938317615718636875784881404466640265983087876114352475755033663993716866077649406782817723089211443307720094328839585503179031100168529146539286767682913968287881745877603054246970108601246284310178794872925682082729240995849222238894925284192813715070469825905698157630485886617018549155585804065742111468380088770801352938306176592457423229639055225554975412898148694200196648944227640306083437987170706606379169515757485116422790486719538680686364523159072762226389229478027142866775625906663345085747846922506322385324046212704778395839719810494393719452314507478647548511670058088698573434320164372209662530652744372827023142069048080793885269290112707486854212601882351053532306574780834274265734011389523730518111894660804998905935200444441017910332989505978681355183637036684708541457272926812018377527034659221547824180736042887519598072428094115948374155773104335741480852104290657199426459959312882710006100199699014387764935791250861469106009231446807619980241434624725730778416899020177562165344438719101156949169322629883837801742170074526989881294001570199760217007995139392954988970942728749999402046695557220294502406237186341446077469974964254719093179229217270242552272449552959015575053883757366915762916532615378051819272359138994280291864319670990217396074097549803086331081995720924083110962906569572547894901197694850186134255147801882927146247360961112356260796205784241749800754059725602323188447845160312889454792850887651412757599897560899085715383655448679436569951350321954386497864705524096429521722114407533712537900327168752452950500842888640300341322646478761560036437214125822223852054339475273257702323903798978795161773611753050450602933205114256331887228613033065500952072181695027267164650477737435097959876683511456566618890939926677149168881335969205090090918722842330847885335854785212634870226597344047931936191976142291639794288211180141745588103033003924081373142716820965624182622736328709052162570742109346929551922766944410687941822665729301357561357087643198076738948092260557635524356615125662825929997543916209946580658268964993002647014788433874308769820611593493952381836086791072769839668550764934404645548346049061029869163839288734593385965607869188830407338621089589188692697686424585882076759575726776340489980085478076339705710673860741866886758420232136624013336447973192102157668070074741449059289626982933231451640103835671622695367487869736322741294745110609553951822459441993037220181452643943975758526514534724044984239014672462628776621172868666630310633065520402168327463209003474823986355751249170419571582460901691514457945064578345070570245370790904818966860286752741400828140834269375469870543611074460835021219417019018159761071531583022857124525410002370762101738033937091311699240020961331557274852128228422800807684301717489600394240723695722104138659190404454742582095673613978198858933464288285055394358411221921707587281263446182372606166070474993048218666638490290497526079245153669075571209602049134262747564874726353561583803068198089602099840472304326482636975328409436303048130317986757808213848319428209454663706167614170277418866812161063448349154749410484317971423880222790053381809000938223579450761304861268984319386837979258835788796100849415402225394813823603282742948915584531759116647677701304289257209619430406613543168188334814490622261326952200992155034677023590730070098896243680174982337121189184895803859448447101205484107379212737130385818992609701711070758959987857849720712296453995354303435252940260443829641603713530231140982205256787355591035840039581490814144609046492390390432363772955054922311825786701324588503596187478083225494594975099188306962583073779808365471759316297386515797755359995848185946962083987212253325872477372559359245000651419643477989876251820866088952811977040224000747397385216260571905464124242366397780596183211536494654247107774172087837465144301935035559795406872238721155878147257647400315549512706414644708692245230983237561643098585377885892744689645846883801813035252038755222638407148939916151425529938244886795314623170008722513843566312472628646418042347168407946570583202221048053794599903826561017256979756360842375183354813127162026584147124478745878003000366495810674417417926433377499526065133492058319340368851677923373099701707358361835748454832190615178027358437978306190091503045703212461657487463624592867609797846358761248992872242020746714702614596922620646543811007128245743120376947841122026228415131737537910787767810282885436421080206551414175202596658433035895975254305015948941117637431787131905420169575354754923455165151338064417456136264983835690705460559065086781471648463802644717721061183763022139121947133580340958385465525191993652774945848363800765632448743666672916213729685239893737667579114221030651604717970636865735196943815189454004121284058633681506610270485801163876921553173590904120526277622703245362480651346066484929217083510515697523847329882870241072691260588619644098426336012252882412826785897521166372386206004816736703064836988154322428061860049250989506077491359367832799302021283026068205460989616986916302714941980730536201022321003848324169509177746792131344347634366066985826250208958357028603826377440542081212446369417719537877004571327723232217814243851456446690417049429141167522266572953623426683096586946998367421458711060254512515182422527643558174869889778708365303345015286353294202143522427729950508687638238207089571149448158852337973187107038998879854974087523931314669493657252970454886262298309006778284389490793590843568334164736979519344627673955617701793156215108468912218928559036784774759621702304032978443101357706626521610145526220629976393892345462300661650265493496639269360806842992875339101638667659548972564402471674501867083136939242223405116554667607934299431033247228981007014435111854553071102985869699952406780310397973615914964425735215142476550277182633525442352404247103406991867377500147761550027041554728330342263417188850417458129045254619368514994193039676523280070744734456100143405536376535278466981662341609770371171123209046518870787184936627037698410225845816971469777648046176165198644902032631882050355702359700440919120342162535769519426098151652603263836807317886327382500451803230968915250439396000724914275585798633420602860043624988253137588402295254708222517356249621661883961438535949281828701132038233431380791977497353894541369114248206532368293081198474889976230313223700593431780956523015721148599750367781502837250587018448633389223102498084207386260747297647293679130852496714474372899829245344046607451048295515648521470416941143355731880414149126061820104384622837883704200169613438074803604157650727926665521062296031512861595347637764964819327235785711019827092776848809979070571133406643064695501207779311702370915142284880803998964112178058531258716376707357349291112829583921615709686507941371993831468636489609500284308885552319594259954325026459746174025730868248353467620482190501520648000380577152926949773286638258057410669743404046180033596544710668594444319680293199690095692087339122399614106788011894013448518575156623591233447689544132450305017942815922098908683893990676938232415029301137200363767825919510749510099982775010743839211292015163493806239619749156145665018377411643689112658506970571925572931983244097667789693549560757752076637846504389289697076226098086437095063127054913765748791650997725945780848218357495684427836885260708917487857937054408912827968667057594070351474799816066365484068847184797209300295108225963852097372662048290522128636910659203603405741934005556281667761063798096491150417835946264515859459226003094993302666281527735489001645825668586094250824129202585331566757239301730777107182875063904693405348131432835144407435335958789570127666791485428778859680499881101079221100786750482405181919695928191437127776513195794678794543728283352483004014416882450259249358876493431933543574492239811253088248438066486534657931753319385405190733380370294021985894697841313262547087366956591618740711716875303795324677323332756792579258657944914118536905830909084865421059971771679968865187134647983811770405869211172523283578973068761390034281959953713642451873870991320612010837503799593253044960808578034886804560697934772408852835092826092682409581877477315816218835100649868650647365044785856845176825484384799070136015560426866755782533111919730762236965706640621973655940199003947748672920608072518224181303375274050657832554651506774127979880456715892940950000062041960892132219213377402763660704156409000402521978620463742140262828638913976514709942971315610818566426731337740008558292778994615817690059729295207289292352866104864880382148793657730115270813621222846870045085065773760228193081917203458314882465093120384283202464443899235712223118763387177004967886187465860493866209908144670599823365753822548639983161252195715320024045832402269615726083550438820440335580681899172738540065670289393037010075246364488940402876896856767626287794211914401160352521941220402167639820069724130688973973061452874000196815849153971207616845378386439052115442027273702287894080823399506257875028150003204539067698922733992416881037650915396910193856622113890036272885221790437026695372496879290991610838862991227496943548019809786528827422258306434762306991125584927071135106735576536431146770044335512504551411494082330809119028402531933427238176873451902838815793085786889388687574850616294868463855549927771382278170707163699529926843908693489474516489241994031157606843732363187678840969517771180037684617625369763987208379868183008264287533839289403716230680342929960534421153020817528210080432254788432102614088495338954579842129928406494091902208727562996737770617171481575538541269120380714949503279563655405291204372756888112577947671944442044472371882833895191202639803421076054749150202490879243722704159903371496740441129228805274464914598351929369698749611980670172864725852608114019122933995914457015097150481000822290199166909615779999311910645480582310210705780610478958623760298431137325490059563204626410191355967261561301035297502376994156310717017003217395294160958023502919513042374231780592015396128393304088541474257299475431409464418515483899069819231080995124809587619364164888740878716392873307546172686627683454745461447935554300880753495163740806366073866256773565097338939896933176773813770341915414778000043154247635258986272639179309200356061392532577019183516364197419901747422857137221890671549735411385541422831943454111400165209386874192670432913098662932721208247100813671265224841377050175581971598963429075502618870682816665950099984975558512005911198554531317925035453519386027038848050385558021098295361354277705356299620167913686040564652622967634657000326669254411773222305143028621033801121013972932217372362803395497966193453914021695863502465794570504339264652044778438013657191230865418562885525777614180853052438535384989653427565531517402820868711711472787081906446946800956693811035255811222900690970645519514014659177138088310335706179893763840770510345633264645369672720827258840417369574875513572205003874049574507119048134608179316208955557953917638397451742647931300003312027367335462348018565802622476986924655203383552375894913908471216556903517206952992105572132126709935875990760044266585917355024018349999256972503825156120215972665533534226765453290203390445878673120369380066441843506737217188066301164533918142230146079307969444112409903105112310730778444426264997420722524236167063131805174314385472364595874820937117923704207938155104545772403442307285438438755487611770695270806421519401497762822894288771073262816428975304017026472396418893341061252953096990956793179823622637770847921444392515269984047458184364828591424451185466393235980934752143711770263659956880654788017430164891427313127594389671793088318892515474785247425874467069056577456029208486056099007442703237880934348160744613265489670319476193862944697383392705649357436415371419383399805629613090888518059011516271734792505303380329082873113690131341101712571027686446614422383342303053831745534400084589207561260758852974799280637853530469695826193422765796600933816164169561158198604885823195041488386557488111353389125486851688449105873789230914426946157612643330285141131411897815558041807803666968734715525726300763896144965917435187115028679927696712304326530312945280063117979938857115415661364257433996075699560064204407076914939321213620237179902032798936283594474296586503485935395673604460859230319942623041638780386283827070239625259026932458989921442049927450883217725874821688983688875226175712769115320505789166542340415108709833151950789764073042106914668385101455609374469295455001987841245718741631170777137390192452631524299430454046325571595578381678712893302653913600487844081889633298269307130512720360920023149219583886832620966903820135122262302157895653441620899626803232377748728277183731828043960478631083379568737066479518382210718591264562316724122520377448318451828522518075626315855217541524724651871230275448915739866270346401181901886492718488305531471168945941199413018321200658320530192530251464466201116656173993752167463244908564748036913491098291019014656748498690668322807372688645212627468198747073974054040248965680893572385032416001663603773979161797857164707274565880314604946028954637966923055771220020305539255673942872313495102337583115316834047868499203420618375850813104261739206880629403796633511821317186530232592596336809314921111662439341230109494133476053172161099712929175261313512991068736416745144447730187809315818775799129527952092762945029283717919390034794991245882887828326329643612329880016329212370840942913555418389025007622688767678084939720417164126255101031299004645157023567427505549092388087048447843305259877549515790026693374642635359860816314958660025625385778985638870448181093349960755870673625388810159499008916860969664558073329815605127079988214979012334630844974647553747770937039368923021030082971146968049369507396744151751070909983553618556290205314030598344043918849710153743096907004621858610856607880022283982970507268279862159719416408511473389631036619672963444718070122753165683571466242636798931319815772353990561943763816201188984917430975105859062027931275506857036306048191405213039374184571447460453519766617431315019902416237277901334556148228958943809368503369621939414299552568771678810095816058411272508464065474295281156387505974770716703083892690521949261703137640731172872835486308421204343370196692485917744523302270670093501175982874785340374793531254436201153071203487682246047572261178795545352745656916002014012767723489392865780808954997802327163392289973363657657748312792659749135723855734283979619204636591822713654507161869646090124884266210815059474702478974643069152958832901710268588585712119631325346680325212509551796864754450644589476362367299669372797617720329411243140027147163140531054411691928003596592544433928897316204913708755630407019672834328508486709436716663560077236833994050691927948640672884661048135450217439953973096711522764676670868594051514522841151353341274857384142201718453936202978242840069349381305015589923053712390533284474421911917140263720867749672482214620121209194190383913274565841120231094902833896376235361936607053417421203336539051909752911883280632443313719609043452492256478302642468791627680064924718991845777329205997333589609596775139068949749978588934618115209387244210621862065357272274691338904336337744694687100677455251458054260841903080721148147360637236665575603192451758654878719938927022530488764565756747524222543651321903031243602166113305333524061283394373250995153704642116193891569667284356013435312441491577967129640800305052801907294333308870600202942674480983742269715634971448026272777473452538596346300079350906532444213202255924594340242516897004509405928046317111431461097129881882934875220220574042306543593020295652239359230678028320649011942464678906950887565181667319990082381527324741893460973711626660979420520977670138490779933841351009548374792747183363385761594470872491410983308576269908732426243444871502079434653162780114080864174931244559096325034328712918188630280106487103432208111187311471540696413324801406556298782938520605871698330247153733989071977114997412878406773701191680178458150901267047182943660742137994031249056722598105500070945321453363216722273700285164555283097958642439852153272671024419344508034101175783216303870238676612871853204695762866604355706445727190092046049190057063123174868842016826384405731124704133084627646390225544714604121950655920030745961418068948800983206765346909927590819493341601227070464052082286701559711398472834591647495926119715740997614164981902780504283880820817340042436772173107542566764714409567103572386394945421242738079967282299191977155753611698542867121216795444465953665017704234209788527931534758657816570005707719910511788387780325176335232046830454174940060755027201033953833913576052393723930344885393263455923129693053031408661204310398744571995220545315640512025725787348488592820019348719987369123352047779865180145311213420445705370421047630254733248090587581404242514046366507747455226298747581862653416658016321680377049933088576009648513550299531984980508412550920437665272148211170256303867008524034934333879655323190570180668759738621515681265712311428928212053568349696101515370706564904552674858085287494906127262054558311970272141313005456224789028453595672787117252422216534084664841077605848647176749172108150915272919087765126433705772930895227376006930702721979118746426165713641980745442516958518047725893067866339587468021602550893851238662906256781713199641847876493627979066917639958099858859144954477654410844350672722848146912894109553936527895744563313809096275508408750460935574167983173108364844396973534340919923748085869024658522195607741291897301906964795235381194912809278134977034470315214429834902104529585168841441899964203902929570404334466683022261720267130048513795959909299679539541522288408569717017532224263438409676327760192368040748416270266241355332772781358055986230502950865003711064438081196764879003596695738210828449549702639341741158496322677601278183938205031091843202124887197771180257806578290639553633456758085078623265762941491376928897821538577344662005908522473830838548467663723833023842007818732235645998219483770433427083916850216232864531210756533368319992891067870525482364284495464045183433792178548625431858412662986821709084987252862364490039224397278296174335635527508286866553539814217809651111761831525741685783178605004328237194541391581710785275803256656817928458145206191095476964435318871537151219455486335358433451971846808239059640052824327651165073884513671619976354557883316382911822375091924316287714434414011650767580146146934029234023713331376625023521079830375098198907756978369169776796088715183652809446176227314355269995508010546768675077525579602652697619258196616951285409218437511626865772683601899800121421026042089469419411568399388581279596450415317765278472578122216339834914349969673461107801628838443494976669523499264429965064407162601686939238002676471241276831001303860643965366088493392211082511081229910901573453213424932895553650400049961679716107056889766715615792015144753530606082613110374169414340533487229876288962077472070258848160723520036571081022416464771570921248620064161742840723395272879376151174636200215037942657358789187468698335802092605223860061341695571159854954892460504263237534216687392952625554026439695928899623669166436689488333873329845147952932248181763062406561880996267211762291154736478137062140022825841475272692442329195290524821280390727879873048037081023019061515930976449028352394521759785542026347019251086072011814605780029112376454485568165324243041453450682035460513450912239780852137049272836416066526799755700916821781502526125796825570669888504468225330927628674216923681143521261359538082352573382552786673328858959274201530200905436360907436484909802041651315652291673815533479410100147995954912759352295933417405282079306003681753075475627732435636755578772721811651057761742564634351787686557601676957074040216585307486991779023422861773790648529329882109089485643041240858235607281040562673827603472600572137875136173287644605698428975880873008991027057359891478636663927717516797409547793940792392698517215413043386358112243294179587735417458476621625162558522784905926694754810414919945407803873309107366366787196815089228562310103250673212996687933941469736304981245736907433859349297796684076586011068557831718810970853048978844222431943786253079300190340144796906033044159708392325526431458410380419374927959217380546421736684645422349245192437453643027426906387389967692414247590515383143002538525757950732182092558516273638020663420095486350456217734679284268293536897451892337790452692651714498849905014710301889647430923899469922188983167532469706798916212738790669922583150706875576053144404658264625478600276224818588336743874141009387447951205789782252920761766675376824469099355940251855254393915896797950161368749474471086458591061192020616460310540817418013274642836306259275329496258008939021761204679417747992495656134915052708679221936908679866980782072746472685574723201897490730076502630211106946511008770545057573285518621710765805312968484686586502611685487770937281688424787611901193773118023404691073132733500664000063383838288656234725128489981909588505549076751164421433004975366605233567085128193851101839987642669390096000769811717196998514462732437313611899785159004179077876606576493522331136412601860377586491075120769667122525557040402350278921196054588451742010726247253037027776467769012035049653864120527348317429605888698407526698527564685274834679852384949285736324434670982052707788336754373245404587354101785929304492776258124627937373375398255853687291617679859758380943700286120952707342922767084134718143528688770890680971648146633751639031086393379952757465425673889287964996496368350351222236231726313819093820819586381893117409863142390123420369209977642864308476007621663557183667590940195664815123094236567353064292579835555517361377095165103439312274820249307315812962650192895904379521203122973775767097758102504108914738081619350709571451121228661959834517710004633305428780794123830671856349952626735376229488161906085050131421667024348879514991840941446945442489885912439987984131031197283148780039544401885788153808204063380544682759487112207948121538376601614373202487028471805761100136878000239076382445340766418961708297640734679707045296087579084272025740347504936647931262808898741038481525698972798016576187169010882903257662704290192485060113325289622500926848282334837628090981316987298432958273552350112705481435374071265967003956663628128499840780594407940190183556194070682866227450997565361697827721667311419991434827824832724330217173604772227108614402803877046429364657815198211735664102918531859274849044824299695873696033312344638199981042817561160677195292086922148546437160551313709972115487043671279968461246338395593186356178434591087070508709467666707341358986763347992993998982109034909651098656889303384666131043017033790519228650869898935151478968327854320156393647344768680082226809978781950008239747455901553855072934748895085081577210150045882185452812192255801110353316587484386921249637298107710627739860262626995098026559032258283161873224974206751496144778700821095421473532936353703471946900495497592845680680331151144616918265864747708626100206401563149827176646366721572985301570608386220320970534476979546021514173950328572190541214966290121412433952330733002804686914731756570040363067730373708575791526345097209408700499581786200081705197293974629399680573258552418156649658899728163452919638369622074548515233217594352994498076737754579107692985185790268844339164028318240325828631623945213055552628826174466577651520459168191662549739940951090512568804773829576106525167599883116509817844961764658077865924592851227995825799910734302063857939181449920026351917878115366775863101663291797981465858483158284335609662285686899833377621198183757818818587363280295069117635544171301491452850426534378689497437214573659750466512173227378936955690133462566172104379019401680352885787843443530374863461079403145487977027272106494725274375902205510886235068193330940465094784475178048026261482435369711253005523956257119869318830220317792099243678544675282321667737516216615161096940313573592978671253198578457644198737260659675400718616344075223531689815362662926973247559208569545036105552895612853150827025629499786042844269262978009746236202975344772920413038770808394361140703925029302214087551442272503886174191971401391746253603340405328648788769405944797270090222367836121387031885084784867810817730066349007686374462074843113375292761852677265860468133354639887761657935561027419166148521674720388575848211734017977026032936591126083095687245693404302343438447511443576302836394080371509728177276419727609623130833504381694118161497553729960384700710735399804821959027529087486470954462346795497961991727396339470947077810170589578111872240468331817859160725777539277900781355349479538011090975084969335697497717912472739327338728463211511002308744076186630187068405021642649100417584154669216263099420465857767853342299091497627380584972137968684374593829725568874622956018355739532612943187246343431706885623575192359035560047836656983578171373831490407779727505447514716501731400457035400201197355076037014793912851039108320413801470741843128491640043358878730173161813515287959422629084583078146093501245742228355162416216208079575811947081219652027775253355925810207724585768668352137318830194293616103423325040910572034489871586494704460973639991589674788345006947378662239364732764007861041452194494415048942458024582112665577886668573554069224816425464558611090841404108745792571865826875403155371944634234145993218013218295810420131486818303219879361626432010778059229641878106451046305466451057900922269437192674335936715585345837597110243263889812449206291625794907570155590490625302516185941628510187413224453794491035937513639754663375090304848424251301509793105926074376572821147152715484656916611331609230140201009254056090627454139946641659814993900564735460576101246794320096670166499371501842563256170004112163309076923872696953082453616995093447406546767986671704265248249081909152757615751649287138525016137591454291642046706392700863026956564219072822718584843922841944894228053293515698629637572155962804085384071788847699870767974696301515351580735797483272694579973515697939507028739152846805872970030089395902296470395861489938890419667599479362278789932009710856905657532108499586071512664012079925805123060293036418391633787052777995423927612531048775846283015809020589543322644111706358975700393771986868378012212454848807790790976243915303203420422280690932880673740429816886307969959035527888495803125821027112818018133273178628960467421484914129730350085412670432262989456523614925939697588407021055200903647779662839906692335902503292900407783091325999001325228856295866771229023571730700026483768340125107156220168081622557649099380650445538140359982124665889791901167510722954282038458654056412229085233672667792217026486431110358719031667666313732330958242436449195305391008177561346402674034148452825232554392213735411080865718738889967583241233526418528960191167936757287669287846328784090967789588974759035321915526020766327234876589760858540084743280652234529638357888721152778286193270196619331086916047438371311658606506666200670859186186040432848332669902830858059876853346906454271382062141978291791877293105965015323800581107617910445312794404443102094955780520844836930687557767055687211737352717359942253036743019772674535965207325301925988909509942309948399023946759095045108903197086133147871522438882237075876577385641724086179450338334476981454396404290219173824150031705894023346630112797196663671618172500142168078372519612866394050471355856543979557036817062764399917973540059105108797400464435816253063336220097961466318861674695353315715633127005456999842312682118736011151814527591399411977122944504654723947152209262681421385764397498234915898277309101088153493122013733090164537229742916698644217089125296100258536867321355987677751917720835405360095171737034778506085393393069268251521921035649695083525765333117039213499399367066074636926480371103292578526891551968146042845512287937572875239328398882767693830180991157212185982988556692843933008192843365064196227823363941459259173784406670535794481908510556956105463059303203354409472813280299833372777848472312350410645455804084752738705927089614574747859007288447504237277764199858959043963165815687591036183183270524478809284095535268416279041090746186625616257734940505119344031215192607759447297896359738694287750361719409027730418636985391782651896990278207661457234540456869260666584701133391690564749748489711660824836540175862279105624977097161007635906437163249255722748446141375718882722360509890515880741831270847958978377050282729298502104927808618779326187371647195857591556682512143752969981148326582569488638595377434784492849832552641455238547295015436930509395020598376404923581158025003877762698996291483995815914569423655019314621041208441822157643655651695970528615275188031804617642919027224230375757651781209142413643071330031813394191373042730708950221330502154335559142906716320972220022511303446145862057018164677391398732701382424357804586110743338285163382834450247976683143850701899613733575719029663150777036718763514169911999633361281774427074871733801112053580922343244176107008646218375986709692552905591918031507174543472564198672774264569442628826678447783515334363927248313991777869811770374171831342800969051033922909465378134128731223433796430586990886894693012683359883829042485709390279178989779677650822602213185655870506677162300963662471400276593998165141138658445409402989030267082310628817036956960664111396471105065121265782470480857091740203114903045651173530223394785957107972021867255212865371692207348212827098764025876242322305027609856251397774012223886278713472153819999689746179106148563997072376066749683214299061452245069567660731518335962858266935467802588444418150665355736238230633269568125209400368339677289180254380977833594804523490301725834938280912040324001964792100288520532782610098101165288670401451096107031395552867167798422598153569994080996903330312124546782046627771591712223476376304822423577651041360484007145764099777789975313386589011136320599021869174486766824094749086803043792849425891634915413043605064396580527933651048003386257368955802615275814618030797393338818513003062756945160490794516623438957229400842794505986358988975432607371879213207116337387755023637394253997795313296445752625093476277559649927968253723101741731774327168056442949588217013739607632448587371490386955308272705591488492313061771435508003396563133205835668319315314663318258172776294106797340411015129889667154424411082831065625005025070992201644191639346014087889594270678488543179477532790498387910679303523880259359438450940180059994374331537079586479979308875201354234932583425077308141042236713779978436057231822114324615092363607597808957675305803065380358913762287701099761758428148473461592948659582628942531297195805161131397697029654271930416923087947724240950447008625652771820507290015538830649993276871875113150313904468564647754084851271460966278147813690916444111329881560470016067344388176395269679347152738996075367599740742275172724240930973031392582737423967249524381022965377166416489083922114774758017308312638481153691731156830715843475464507201669380964635534093715668763273647831729721114909591433960335883775281314165621828236774819640989364410649854163537782573402981040187669464985022802508314835045855006149882334237623249816996118441127489921733627634198450010469262096451996029308943203550734394132634430612491625944864958884516778484564253458645817532620841798337192918282268360446715259291338012413769069224094061681464394214982086291088243613818587165318565408787591368236106655390383608485585966859157199323747312239688619767451453127361314602666193425017292909553875103821986151675394612457512199061469126088079240956527202951598681673880866111461963806134097280841301607339444763765538271201665920254878866515497425739759017562602518988515402775360046035674451922089235506390172019675080974898357393136243274044116476137145259503256464081242244744021738432896807364941748146904959476695496871584583297882015168355935791650930280858536277691723735205384637682537181613582457484274764625050420849831252583489472504492323337184711228641167407845606825275976174330463505268482839466953023073901977749676085940467499679863895909242152991722954203312905221538211742885022350911929138654376069657769596013872774906668773369229901766970164401696287729899709264850850376417105398090834318217363572961484580730707489177889021514214300564899425795230469674360194645789180348552253740790466346674849465421170156238238830985559549717530711379809523909411823748291299937336857532191939163753333653465778966335881651873623190610570595951166628585945238226860502595963581544153683581452731290002320440403647400079631751758002543502533509738726524176746781707589623464542988155783805977556202504337836613776208418753318510041886727744888587930996160006447955972676073856819851364662097184592323679956687157295385825668464695453328662185563811345652741543082673350224979673870713450088326973550005760860907957444922437127461138952673548069008325328595690732866532517017881124478553565979858522085352995628661412747903645670331377543708513684184593801585337722548972422047734763661609169010975821605434931849113190542345579551383543886906143694469743931925607409546995729922923658234314539228019658093080562086602187325213508012278276820444404633799168989179895743669065705862238149746461161556150228758670492836431213147417310655417533072744849025636718023327846378229794880711423744675913188469679607310066223773716742408223786327677651395161663648339335719597210405768638547147800491461576835057809666286138839779115865457352830865362741891126536982277559380081543314029873028421562847894671692157383482460177737150294520227539962077221004867341251728247505241871825161580727004120080992963493120300161196877926395267747786901581031198945264492793974697312286136352974865314013649878372814419681569993273018685221731031675408409405148622209814400808533500736776231231849280651762870422597137116468367607201273009569763958695621073905469166453965650515070170684914106404186873407035273063017953761585226453202667304694412661087237882980531763467709576042599075589266166271467302560679006494608854054776377326485979243621476087186210099892458247491460345636926844556861605552151558045030996195940821067750993547069936085809769345503393991791326305338988590029758365823681367669999525146142682457756460897738742979204674117395041651437238916233890779663807699173246336837888734548122752399554359327762772560080285486724120022050310610409168602599084468131449476195606967156725263042266228714286778840279309128894740782279083233507780142643754801114423041841282248593504415162285081902513437885051793411032174369993866129329734866621441771514172749425317066785954335877993267425015769083583831907296924513863873038393533883850944786202494947052054160559721292610636082913581996194904717834814622299735875080411075474828071744172026890497581812031624549943247147885927735064990755308126181321991643133886113343364817186378986535875894865191243101943753433919170013949934431239962514625126441186861725725709677216832880481763004259002139355306412902942469678358415163798049267915586681254155333184237381449222194160598605461016611551998125321277957177275634674276769003121351757806841881288339952607754748062132326488036521991195208060838204077725785951468830753950598608541785953959756065690021429977960939919334874959890134778481933188799473699060967744718445258168687067088448177630813078100417577399282888897388726496142607966855323598342150947300103900343819261015582495531203369853610828946433532558149704054493088621445041116802514736165874240027491642536386665459677230545800976099456613739959676788234203849741059510230462484653036266276313004969770508241586403729009063840482823365143422125325193687453950278686101323522603242897012236850385937019445634396105072621266750838993003757296046293943416182272211016862475316582884600630426687370416548357399921007639214542777013455093286508970782162695318365769540654733424007116699593863135919504432638995002486162119089333591285194816255872114732249366781147267080581669778922547721171660750931937790288333960256086497510901362446893191459770766710287404980823446887148524231346224346383609867175803061297285589769851193160096127837840583057141060802942446715313314493353042644727585925470661225174075642669540669313067164622209030885985740475460651745623474739290693448005655021222898744563268730219608462966819755624407235663316971857835056239742916049534061655716873177815054055041660956083202908867152860125930914914306451249928076830273763059074615591562340326351870735443880441390114247006999991697041408392142303396045240311980992530156292771834069794591476257162550804705334991075413225271078943943369767199699525221095597788295781280575913450406337376230114063797800711200884118586339849894391740480266159733086747293213530612366503603974994044328174652237629926480722424576366831760881668592092219870811728850790092115981327088887043213420337769245271045869890833737822808039292699498647160698201893471255443106002721979982982937451857197190550627293072594398088040933381981952729880564817089870332482680909912556839654517129698248237564330275446573813394190227071626444389835411949395733825150099234203103056264471975981568550944585899263651793767039514736456707726939101770444363188965525336672673824294775596479839666356850591752665408058712519293433975795647065152066076417127397858490059521548656582475186019546156893588277853525789696074071506509764701663196633581963869230250024013800204020458110224696085004129408184363065666480432062603359222332118895285353488393886614844581472454546485611725804847944576543414365480461144047503371402921858487562567178959939840650089820586818186436357998520650946462199346226409397580936910844177247442313165119399521084827372568773963114276220039312573399645352004224769897748137493497643017675074652958803680236820736750005519639051814690888600168512875509251890135267448301884050153149524392542400508500556098885741532539676984270367121389005101018238496005755989853963965321753975667378430774897920368396101807206554931394929047708821435624635314983156027874786003837083146588381141323619205197205366085082224853397767408200551291402514819013606477446015599145104838937415054924585526006796848432959417184963080470471622310487861631712255993592199654314796132876932173847039021564340536515025175343080272917121590728706825824328281219516018302041194455648119739220601032563529831208747993580959120740048281218915716809105408078082836218271882882595150692166625389062467343862747031056080860678994483159331973358802169952545333386718770369368715664162903949658449493197370680023927129730504983213666648112214171691649242070023932002713655886286777153120693417367331080413425499294591852457866541233655099554420882054917254806793163213365038068482122279663585189398308865301195860284985122466414104253812009260627430729986818393402670533831744195975999132930186710286839545878965224450267024975650241066096959917163936233794111620618008169233865294007215243001281348287362142593199221149087617637060760760640422410808098970677129315391485110379618379771899059264335027932613671451275960722335813311818007200900240141947281807740977755113404811846269420969361151486427041773714848514734994938472408779242323917337340357145257725146964408103384961386583558289451424538778452797981464746749044901095168120776874598374263455931940026733573415969283111951716312863206931802256056622882024119682798531712914625179732286461610553978924124029696361246930591369416136791946717783933261515035386373616156671616125439409006974256928160281446745037710476044854722737782593676719066394698149549419882954995433231000203191945639686145085157901771232054881656479276214082168711496687059724721847927471355888464535555789973503059217568657826795151188701942885300670006708367250846429735436330014358556727668334970316195066682769733821921466910493728133172226397757525927845913577788852166000870878450128302861774167664191358309177119961946043947002854694628851821444744389104212280698812004025914801139697760149646980115242765848386690434539807626044266301696958892765948819536723056530246105870599431954968486634554535090909890095021687272500643044732224108717938632517621159722970868017029009756159600381748539411430444740222466019869977487066976611551149012574841962291308985642580932471814452119117075891012796343854277373036407684415083885751843007312806565791692372004606368368022721284272621289504488676313041048918317061810127113676960013294864821867957154950911309987871377293306988350319451135016639099646302570542328795179770039740616990085116746871377837715232067638969847771203992856792404643618162107437489723369812615922075510104283564767983621924280490064219573466548545360526724909866982772436803808446702465215418143312113444199772250771471300965154472944726839134267816736148266519002572912675854956941813633765964569638346742911831406295633040352254316195213926459461966707561036357106301420816660887903733239839924217866295794249212507293763924556136429598720279576195280778528333588202883156756641739106758929165750469570863719173587723819645122054221412759313570199170586162250414389969616353112063100841648423070621781123883448937054673048016889650867894647110501349849317163072412945428203082003977440977574726270355599954349268093923432402905867719499545387234871883200021753866232638511877456002184806264482986624298744044057220233457196086829233210815707794195747132398484268396604544088365003577060988875448180526620175819880157205023847186471288778992427344215317263044250487640053457833815914392986153082543039708755750728773610206226213576268243932885222120310649999632985171327671136650910321664620846823904427816500346614467264946339206427779622274780325290450435210385765668857007796041789001909648873531743777544484984590258006331241040733463474026083665954555745678549057431345751183079551052352677033504142669687561555808070693514756368129783696616086034663669866494447437430140657593240156098828706426485989805190078471789545549069217117029520645328158696947559028436064043735579850491732359157744996287898096919600629291819006807133418741094157074798394598351101082978812963044841519045457111015177954181514252963928004302719399759226426273834836752443280860146938677275336278375620043713376416592142309604550313845733594156926078914702787139877386524715815828384104863149678246234953923436992242187229982153908808948942222080041958949940858835383845210527846897855956935952997351242530083427289685406784838229978985182510491834364010794102057866780579892164493154278747780549032766859299285894410294827176479163434921057858709774860811988950816617840936292961819213736163741468151686874261297170826781396303591207301728005981899504652658422198421879395833793767558382374849219583133463801464711798959883561291106889154776709069148632076058313000818025936553086082348709770801200765214302103677762392018132412774207890985566996109194989753087630208093282478922153040714857128063881380520439527669378053022632199414290195396409722382569337352881133983178324493458940550671973895391377789112929174280887358243605874094861889944111271495808167602370396270237670645826507173300863163542111206686593496274662128503984254734176133491674708647443706888764413247807494648673120573205068810289118999702338963816494488791431247302257859903408241662239954939184139996877468302800025934173551444796694171154492752712423836427396367599459648226613830207334218429152430781833548035426240392553326640950979945741508556486336753629711051178873741519366938529214968709487711575294701417734539159736853743007865717686839080729854105959794595175033893659141257920528469908549103275026390758670756462578213731314113397573487783348528380932575978784809626627689505725346096102351058679265461175600197708290080979877510191721933934198866298405668614182436470061607974480198798331948556013127105060170674031282281609549318294408308858500301125937870441465024388970527183868333704087002098367801684288118495051729429436868389069725618915104962339578387920141249985247462767834242983516465079796976535118062306372797598682748385655630835467473498434905445405970125774458703934759469668566311218094731364007347891936447577769965935491274128783942010145176409885939251231635115584940093188566622098499703058235404610444573515022142266272586833507872996282680854973386929867571724168861525521814299903913968697997702143316903580736517592222483764874046100027128015469291919579541549594824777382615326843499197120011480267383865120716215003795566437531893747973953166431098303717306506286254744072986899167669844601068153134997451553696281815265794737332471892862233413767558237485159025850579399548741732805918878225826534697193534978460640178250068922244778332314613353535276188785639428449607485571224433012925903929260171489352537675249266590327913745519332262615410854580809901034045833261834173570526832032299685287072703525847552649873414439472947302508811757145359980452662819593407044693328089780691690646264541592465615027573489485814293366033457389502697974369696105771397990201457566059462623234395120230723962772196099720503519536457239321203649229750485402244702343612435224902407246769484525770388691195377897005898734924663385023104595748446875636681709054735827553503383790126520109963985426248920297515668627206411602449924098353242990804360551170926426562309788271459721160772240106538859795189839392898959251032759236057505962717361830619954795035503447529828489587127574302525649087963083476036236081033619993966152727961103877527184306956363645685662374355603092311860641033493082771380174595879817300111883735337589951099216127002965721261056537690541493351895177641835544557471992323895160917099243366035182634910452081330055307006655308629549554862540590055457146469319378518559343557535125701189376607566646372742253350056011025917652177731197163043760430460305504285172245209183617478000221497805173354447140020563756157660283624658307734227394818771338792126337961772356634161422153006931101986050556452566176332244502474577707804396444892879206628053783846787287668080315979035590690329499973856278141177807931048878992732985209981599326952001407756549538152016067194570870101144939158745309308729632020138135943369114210598511114217128235770554415632682463845850709329858425993340365869762577868734963233879291176431695813852918433026775305010396895865609838690998686778083328467478372016977271390223935215739919887491450046702514186387365066949714931110341550992775315412097810270604499435483158463887136293536526479582228232437478458487755139044249527570899563489738526078547689713315738766347940709453402546750729616868286257267168982873451323194882030221014628748987487148265857110085032853968864469632061817169334931565003926838322726572476064139093670678239811033214846163183510685117305616510110766183725804259212567859819711770344259485913527397872730060542659611768988857361754355534251879758271467599410308549684688717939105245224204301339471620831951644625083543994761418977886911783936707205363453883389991692985582770233528143856733071677869973125524748628384923813482139521743111319716094470992270410113569322055016893573024519033856095874412634980465495537102926705242425738982169097368898878447755934227255280201362552571945576198623418097505798000460726882155356115750522446104157648032338725995121592591277797645582542774478057962882598138574100060403549942615172676058876290428367346643110239942064400222174060478461194974793609534620112725102411213502481399472040431294097718707339549303449465061940978601522195387262539349951508143398181974249977760554610157943463506546945890820857014618305724826564638657166966270501505919026922172897839265204506471429691155958056757298486590946341544195866670693097473905289929446829030045011554731525103384357935546519375527779268133256483295012523001251681824250720695303991620435520340443925513312327803940906767962197300799879971363413396885727497602741001975580237150220408628276975360472953655073695962698070368039468307355303803549740186238260019580243211625358565758471276968376107525350682696263836690421863409900374783464201788827504070989502286847420516743938824183789450808348638009499984236422871139757913741369091339372041227152447703664769286254962914535840650576894073039589758873326346282165367765298912007511910793426827456753904938952418629030868304665764411309949641802265899248470246207765909205733469832397783987833771920516746349238262096896667516143848194749594929824718554327748296236556085967364626954682931978253096314923259552255955395833035483794052702683955003873630159189504406895806276522430764554448409212729866544027896795914318151060016999940618893758599431097458872952966761042030172515004967083688382716552897825616012523702773919814513857331831749582277858043808917627307600787703143085394685186974380309230332245100753338878940257658291231238152443216696859954438515645921009796418299240618025099947464896783321244906906956004288649513025743801837538639434999149292332048011938231571058899962731551702399261138491163824344628286128391262570975183854797897945238594333273986184686958795770718600355574245121338817718031797967597039425063881972985943694804072969246697608009254631837028840235778801451629575786966509564622638919759694209733616219670490194699425242390653832742624395487908655777042917734356373744238037160961268389172235452875794905626272958347374404522991878750672432673642517657031199696287328844860935308416010038423328523438911057076049277163091400135255331458778232987947122478224935679665192571318631457083373240904592182801768336203827111649682353263508445591129685551299929890971634460109124960516917463641673227821812829318037726835256780111176737655394079161138434222728436319773279593420072958995456812673228953722068138880084622852213623027203512087671201947159572092002536188634743026252859232733022195358878418408497087738675923605964383753814608158024935485793783453724285180625800438287675172752640243944984353276017018042633881441055264372179057162079749206641355871789223937380151172062350956428883342908968423416282317822337011725559954473760069498004610123283964138257651653884901211357802889694752158987023517126340781347010727084033905354779093765546138244860922336233691278095739137299834332085443756814940331459713942281605229463053841238110711591240309046708467957482840946548278244576421280487997358551046746555387993824326418594581507256361553906311538186369188406595093448214298430856055765935182073099147306658004665567299985060097935148826863630067156915115402293325934479474779322365979419631500126793821034240526349255016279990289794993989788351772984162269550409047989903241390812813608814317620852595975448737814964336642672563207923938759315231540810049780540452455912014127057898981834561293606444912378748428747513506947822657003110809471121315747677050966237853630926257894519274522319850799340105157020844136368919134619748378175054579280115324917574756752501036570534167189233893326843467964181925382259366356897136154341597581126409874918940404547321063555825335059377947986001152986386389723207985415985245588599345102536844754069071932580468035273803149613414797313115200214690752247431713190197626793990529355699023880237222330006265283208606722958097545139478548161179128444010694739070550824904448486686839758643847475945202129064813312072022410983348874302411070143016708241659230483499841262959959538112715963466269036737300058187285567334660783803031299123598768114043239964687744564427745122446534341228846242973457955405069705177193695081264805048763344222316766860120130289890015278648934201338093957048078285705496515176985831309873671154084766805877980910813365834554399359407392987589093784962958618668224339989374613843465701549460180690654114878197991200469547787255199424486763377728137009658135817580886076784877498167188015112532065894237279189296076457266140252894736197847210875095386025613711057045669702805591575702326775069850440568438819451644768163549666212665525199254928773280409584977958569311916954135355643579942492993110370078418216366349025444183308893807756829801362246202065644955908689368282107713803963102577551444749474659423420832581376383255868734860195105188216342942853453522096234176377805191645131032196806069199729276726592056137399537161575377811897193140730659930257769868627839452421675100003157559239303083495355936727366950152342109461501522894704391491123889128006369760676305216081697174205335898610031078354673646231720367020393292006618151410582876398703902851072846444918932843465680908879526547294670583945607082319992418111599152273314135232668172666063857324470963224964973931683555304663863914361992598924333647543299390917361987443284418636939486811734805768724968162757314679827237428936928903504596333512096735686021400290160777520223216268050418801114360511842156034021027850630177717520758757995231209893284736090919932120044154795261868880263556972367574999973981187953504591919238939732834885262186889311408928177018828279504204310574763116027869440281038839787350488309377207185730557017395020485245693312326116920114654280915368319773892016528120740431943008303085565343877438347100517466680721032356999729385742384270650697073361923338535537216016514553322018600369439562961480032005881083957093426708118858588269103942296078474037000623682253566112690749985041311999075443730543230939178822010072388528916752133006299822789730948900822559566963724476227921132845903899133108168659528355464564659193238219559656236844194122455193695039518951185507727799044622801309397095987264426074706360510842194606946435639960691620129810460326993148928002366611522608304742869261340906675092633092159583812337835794905025311590032267902366697410353260066437906370039558790424946107072613278345961836787043099016539997581473031248690410478862653060516237258268241250848841715168749475856901897065335078772781893892857283596175520367555185928925908292278239365042961117017101167143752051080457911177944391286364597105729419946669617942901645252220228851370702267251104913619677243974842288451168930974707055904785846193454360275547020975497758020579721639326920858943128563313917448451989033063143469430588870777919413952418153453530871943568527132052640611851389847793414987856044109817026843344797424457280108566920241151881776837573534130733001756054203256451277293240256911682161841005954831255035376437053398219096732511708801482246106550658796341407552590935687781980408305329719565172403280850899361822996173028144417522810343253298703972505053110266256136446413843424783046292688680802326425531934533097385460690825653530938971169093713685282493108609228117640154300176431493266112631666753316019840471891330198837056794459819462004030223774981977048085879318821204003987043762955811600622399157435797637271870376556253426991281814078643519440659684190528062898920843208340284388198593364216593369913070958725169054003689496365818093855801951536086456002680437943620246331531742282918114578764368385277860295018987954562323048816591039570879125578606553384141714133425439755860403106669579698037433186700953782799066321573249755334029306316450543511469249757418341788878402801614598496698455928652328681781720230124720420604571412651641861969579667233890636463040364330951389104591445841426784149605602706910141458305030970256028982012657220380612212986860735722275106381839828052311821779116953439911690607265415415241801443035077409954361474803080933035798554948366881528135254811612427290082083467729068498331881534509946638822952309363920737392150059750106218402916003416093420532383901763485784621791314022348654268804709226273817001037619568002359059422790091091706475308055643901862993760434496290247806925639990793620153957697393753317358238820503472589907954897681660880700931955296982203743570061791217723726233346473696926124747391973784552041566710491264167829360501834547159018275899288408628924082688673778890577334888478049900044964114488305214467240528377870012840138475932595889120985196201208170482095617294951739505521086877521387465778844816576121837667984320929171728070371531043115971578662069246395356161256730783800169229443439307494738028324913881605940511415093844691487421047673499926429143613606380196760782225342202702593917038166659109770096686417257342254460737537681299756581440875744592327342998008761086264547138863021201850048079108909798898049067920049079102691875280106915057306041813959622857559452183121907183088679004714183433730645768843668340345392720381805347242846330627585945805871922496138925003765457964699834729806710762821551552267481671034368368793267777061912611379997006416368692198181754859663595544785689143831762277567066597592440401520751017938754947903126986067234580982248263808929735062006628974969133412901518995752699306744868703664763778575903060802371355527456262537937701304930209517837831372725825886086273417048224865483639476036679448307154261374207912439756233401209356619415813107546484936919193827811908770238533135399968406859441898659803357833507519293573793718030742379201237556048468099149250625974564165589013691588178520388078387593970953717165258629750248297610749086671586268491313550215070854825097942844557772993830427005228382189358522912697032969863187447537060914511480008462488163468298694332791984049826429784362074035005813874227285326085495046215799144270026351601642296375375847310326115409968618411493798077444470892403303473064833083261979336911857414605496618291943172947086562284651040725241154354564701503633682134158358799923121523440758700309521262501739177528663286228115126604654879582435665495530576899869166400707702989463839711514435032406409610991506109450119595082462072926810184239731408573350465088115676698171111759229654847786883205966801215316325375445604671741459174083152506827950464575393169539434362565937941836097841860669635045819725716204319305218181991818166116940227163142588338156672122589982735577051998072872035894343918508258736667880775188388774634872855966343279075314726252657015125878648533730013688861421341058993792934506710239769879376005125033382169001994833048434018294354448342122671337541695746419392857991814060510949184429560967778456722164762745775030969354482505037121683316425208071942992604213641544948352507776389253737116192791360780411363746554421027807591832395923308577000274896621477663920969182333429896383499148822387015303491217710514842015016187189929330545619713860176876486171171527154965290050195037776207667635491792881843943863400129605495222087161317234849498065386408641976549147425592720844209466427132689129912578465066227143632591885842431704708124128659585235846094302726484631679124446305559599570888794044616705918818944793355398888243402241320013864960793678875268210771269066147807704346127314930644858553774506655831131855890611704371505948220422461690213895472010046443666874752507147079331607943603836243971973451741833964194265424175706940764117431659710303363237976439550585718879913223368405266402615639685674141566144522645553641504465987065489658752572599311544837218146864629508865253269505476644709235275017071596302314837213529050650785914295802589449260769553895715236701594196078169125040077668638105429011061396618678080407569862063651382115872166932411531882106572031250002252969521099180991351845040594876073743362317573535206823643715727641026285408632472147208512535193228327235900341214888712358531741039563871610691773520809123259675643302983363139378270710778217262380968431143270739211715250187805768256842979535734537896624835484567781211812744189321793258157285152641171589503338915558291011324220268569362451428586095746768175428912965802296767281513842017641323491171356360286038992954713312105858552765933037772810327697890016845381005308433516338913189781506315584897049068435774621917786156059144415577668177096747547852866178216698016003889784659004748954936739368874289945611631849070756359419786084231359207880764192729214820299752870705741464696842126547108541026374372100143972116759325544148063311583221805504154504317043520530634224372045456095397618920869332031276287339985366173294601193038866192437033916949564152246501923855748891303162655841238712566027837051614205814251900628517834405363693815825080172810742302065109660045951531324848974209754088331577057365980913224968927709656789388094644916394383077624970179106445925500478447064131685740184279011561772166826414119592895133855710179880581503397426785091276123391924776548761667119187736221251233329549788476386677762615574891300486240047970400546161900576101966950107208248033803473260031455899307959323495357593329365992496828244856783300220881806401048234854489076502398611732591443018898839091039180101556843591903425824173867813692537302835828642180341431682266804052491865614689559119314157126464186031682280926314256045857723628545830638489448550081990063974403390851434154043911620433700678815101436375443431413089143775966104343113488653878778728522255468931979707229989897993321483608602124411511429552168850036520232550949369755592637859970146810899655980944780057846522154352183975568358491349906377929286328395049824450870105699008335708816002461290623609354663630736024956731808328100258352051285446035281697296612781972977881207960685497673405954363431100601108376341232929988369134660031540025918050265876717845464231604909647263796415984700223082009298520530969007885024604902477128979018898639518977478693010446775496297657636525855076189088865498453872165385974630538174603177341420489645519345997231585698104405526958441440050983388562617807543071994860390790351844359047923759355907466061003322011572058131851351854730648884016081778717783423501735136825028442924120971056521629730284380294927942142947406179767295130289350170491055755485186522771460726191310842045610459111442478519847962952001321836457533874472873186582409143922784064879713663011355442893648270913815160367731629009794575967701613802221120840427203543315560032140587846724825136831036540855714806602279113420057701496746599842872963953576662584583488759973966133821413550081467476367781128188894607301094400147741744955324581548759945588207797144643650651753736568568410803626245600610015540431419753047389200797930789954874066193686933968678768430724118453468613793768705921090489624865294178147759843378844261592969277665020501578228652095759608273331450179868621418555959096447466275971225898902519268113195611752272206817488461508477961788332404598645693874071558029940681158615360423398566286416177240452231690459764355241502939660988095610192975863876787184250586528178165998306186786596197535489189164017698943175925574347969980386348827870913787253009752037255426431850797072781203674972835733596637755009149301355692616180020057043530001206599994099722531030663031819580729757772066513649684062386651069981619619711344649300809794177722358425115237077582589930660823694552726699528291478119400802656676846172363080745450246279719840694571077785875589637064551954473209379687159462070355399080664248497105113401845071988971311663532537889432311652228218711213301264380896179483808796746874457708230730327454685362340382730097782918077516382156534752307218902342208707054960025694125659638622045262378623517337829056866963369900235714762920130995053459050739340229860227292631045182898512962694296377839554878167311604378099136881259436328996565059095548222481268419526582127442890133869970956492911699097990434732004345107208190420609369037250472378093051127453026502176640228568619484093525365975400683527525659276256003305234387741268579319710805829930362957606090944142690631455592668342331373654608607640525990700348452200850625419188189303208169793793853145405127165268894710290388182173857955019429623736730020850048951044429875080247081154526080337215475906639821150080134995190689128706305696129722478252214910005123505297072315785509790092702368153166101357622670393312509699895845821772319874351525654137933037574167172709898546453817199164370567882318609586372599538398692567550586506803033238970605341659196509517234262881785671956635035436632642797861748975633337666821327914218233106193888660690149365289836873534679994190716317463507259748077407628869154131647247786010595921526155935813273478060232320848675728168776713584300670575583854842225945824960485841980811597485367116023480260351307015825630953594559743527049759243420956815654301559447822998009292023422419645158566963637899041281238034374610192121264930081903148520500801829272490467334998211793369625917653526571037022385221175495827832607557140664391981802708271601950675279776707952476793536011756126177765773171120473703848845478436640916034583212839279681472147248418238596351880184935521086952810316053761130759841463322673286419610995621230429156385557086748792823073350684816809383740458732365699445864542614546080587911960941767168867494016657914077652570253505503814777805663483640722097876770701415185478354177097489802642264016202599553318188378443041543452744455319481193015164549951676101175518594589383230797302290948787273088355345017643619454941539633551530802478386980215762463882482488082464494609726760115364924201008494932324716903736457651675495791640389650906514539346781283374955075133139616266648803376389953949884016869622707517684602904654497709121386050159212123762497471457835526021700965377896166051217515543267317377193654547860603270696353798342775854983489119188703687638008935335299784379329360720089527097321389944665917350889271876420569423333836227637184665680425364579438178649602364073121097561218910282894751696308740120318628481172178262339678346477097821314079219444453042076003583249217100506299520619834490166199748763940518202027169574838181270914932984511814942644825734386338558067014954490910064924834810415942314631867012298322013557715633685303454823509050219222140437863911164449524611695244961739258252089667891350693136733706737463090663796849220971160562382868979034666094442486368905710283872397055520258683032026330953576656584005003152558821816096290890650930121744309662535056741854853669677657836994619930063957228998034061556885852323911306365814020415264596713747860412229552171621133624242513374281601873894556122236912982126414319648933737222429059891678009448322717833201141249060852521680471677738053369357693518433610286980811521973658888365421490350138093530338504991132623071830888411041422765648273918479683960143817508500667629598798997164642104996118612541855558413645901455217816248612726137918009631861559839829325219050548389190019460321279308325024447478939242399808217310733441756951911400029620997604044573658344012021332051700608314829612074186347085269644525692773247983362182376450433428247096558202219681621047289715327041461980676434282118871247169711669647284134324677363955056160542975045887768092703792451609621975197761009065898768178998113097089099781125286682147906696462935638288390966269792462667703190306097221255529262291563843470360265879582070675795010876860042680463350017238897623742743627372447821087930369221682286771715989692759277209661193351514803161123894213301431317230080092415509709903207143695777218114792095120632501294947429155866916848686349133481644372853768976645149285980789525998765424626223602897455333257718335452854256610223183504044522944998487092329823552328583817792829635208952199830803017775909992756847844666873028575791648927844442986288857540925323440213946619056634391278371128118175922284585897288982026124203247812456002112814600297140240450528627864186582984270567906079618289571600018781582394099707603771272289363452096790381554022852367683623956425165500734418991231173407111528125974002435928740813976127617685778361504863765204305993542554091239595663400938802169678429800101086731057760197557275229478809370712979444733426332329304368581788856705300283914751243982874782816666302382828204389313657610210855556553276898753530568989911083788467864335480866789527718939857918782644636866641010598502458792806028591841403884396666657071419876310135075564442120932116039791939250864667221447278178227468280564096732369480837948464443466748033497125774018736190972045404867194287965209534963023570570670378636529489984959743467927320406126708036196921643400520700982749323940546190373145567223770477720216884429937371045203786816215516660996658072008969460667377303006361186401695237867955494079853181543157876132137032852774414163667757861565949906475091306601709026902681254329953975232013020447245656835240025714041176847501043020089252343832872446831169242647332891784144618276567151215912419348146140662596236146193161031674636800200064992752477347282990357322588699848498818343552483764693954876147168349507530528510114930449105146940490806417795724662379720561544510227320995978405788923998692312924582774125809918673947522632358144749653542914022041811299974821036797501370728460339177979811112033455541116887664769143839385389228512968830138723595312887528379364362961932140326417661813053813929479947401648930843566036028573743768243887128159735951141798204829013605644050247168432100769705689142695413463336097171137060276814156422507063936599026838607590467518662196733146647445723599694412704165228008046100225286981583564861955289928975845126225268888882506471280349643878141072733368631429442555764071970397958287627371203853434011997309527925743495583037429439571579111971014085505149210931209065276363513688702454755507887080709076604608207495578247914806582294232701476740612338675433246486011148035564107003312396336710959331035242648888160234395002235300274008187924822104106248419031654303263602456141489452625864552129606592000166688460221204601693536058333688035498094752299717178844414164601230467182486843156778413970927026377166956883592884253922875578840005857506488478216626416632808148600986443864540582167344787752510558842211324628192060257348206040272480905480391373635750172324267585498813508930859045754237987953169522795729045092414079337874406980975813120905834458084079555562755411242853370720885277415502360995642728146876307341382118120279935117899850117940424054971151829283197070232813947775805514157482842043924359247344901334888192041346499062750608053055606392008662481289913062618837311273880757259222750913586345372544576568034456663932518208278977761670549370658226931930113344740670162235271292631542669566781879262070858913564767682024252668659115599388212054712194057248113946583654910420213659319062210449322416020867566877642190561298872101041063634021146758862961058506548229802054475841960799253150168409940051799474237997555993372944712140838471550417555154787032969432875059610109253587046506021813787824474614187598893133783042498274360682463260854645396967477392894821772422938439567684198843037823700439227109484032967305662186696628096367527914480919883861067950974738605096830443261243152046069514139913487148284592854168721032343484191994169417045504968351816979654781755348272743857345502915450621793248524198172392921397499423408878501113648936143152829970321616611597066295099394570581793767915923773221565336943752927804903587051540576237567679124458600403376611327561112134838309242739162695400904921176809909370737148651423289133191908575990364301359097253110166633665889393594352178088443097067719722315362756092498795086783418438254732884498785463211592921861928216189698976631847123542623987382031452416577229794641059624993858005487819901539251999867498732287571861249376270353295093272698586342684449551339279374541841332011947474409986268392974033493796939046137230612981393551571488436740467815184265979976906295862294095652948471338200467806519240694114306593002546370597379106076039077662922051207721559364759338314103729597293362138662092786097359348350494211051743122757750381026899834928923321662277135473740842824949810754259801848364498735751454159364054321132775298232329077379347587446762630607477617568178267048829621139075619197524503677291491711917198495008580568820801111003311801947250351719129039702379229706191865949452811927841911227052188073850135122857288762513915091907311235322135082512873989307165850175208790563143742617088528361787731332914410135351336382925162399835862448450395493755214860132453942022915829232548035629688994791937377728833258376812007291726011057692066731506364919124858437815922242309153056915401840910519697376967171284903082308127243116869366824935449900360887409934385603884577223962311712714650197555394609263767726408655141038412027484005132735440016885176770471033980329170619163046989628602205513210953279731218351013819902968849109872239527165762835136925200664638944625588641205411639775852038766701484828937530774514073846637734402350516637308863310874230120117402863736792510287725833326258030029093277533702402617758012331155588973519243462396578994150701482278952966000279889459375855044090492334484953938320926138144547936281714490826498621874210019803551671058062221132774766914867745163479322070551063001803010769106620396218647020298516026672453652351894808486843731918767793283768135309359755836914727376717706767714845198077291535878310322764104769762948857436113789795941802347420390339471628083170061934590467377753359230504228188960971221578519033494062963755042836181593171771995897729843212360825288260928606170954803550256981112469309055171583332878649037489046675659198515620994775830960745535156631755148007836126976574793967261041369818076078634546264119882726579796494032391866634127879891626170605846275817495568566781519022972244137283341363632430498940906254375184111126141199858323253688943485959190889192300165636381582798060047437999083316063694532120500355129495537752691438133761807652374117463638663439248925734189085334676880017437674808014178173843628825631010889260544685722134361055746508929947713775406954896094118837165661773711083562267022331833829303846930182945353682634625006667765128130590088122823428752667711468961777553832182718508168620628897781886690373103816951384706359636286308528074165296268760514696748234218057833865899925990387686119208419365538375167637308899699911810755505080633292661711706538221101805095283362167507693507001322059509414104115232460232724187256689079687829242647538773187030548424168956421068551127266714782155099659778867048214820999424772075673801925482682944257897332027176035903726527847259886105305314593635353597486917650255698530754068496665254928435821191441738315931820449779668811752220781203181112315735540761800340521218669401811411889775230853856826073454213880052081467513550561613365664046441276837733433228581425936072613930845735228055651895557278684404873962981107747587236683060029954338706951523835641824239126407203575142548410529639158430121590964541459963540408967491504172164325389483971821139301743788319266547204521205842766335898638541711279565836781951412768563401848310330504882345982324097782984205669862893337901557529927403400234493083862387206314991057561608151077189918490633433580301406285811911219001782972596261779891214681869218289822492983428619808869398803797372712495835631476256771442368084244665683019362145936050375368581322947845747831016236496901884486834641682569908725267047377671516678176257279902965808395356240033203264557556230101583105038144137359477596620445730534310890501210091999305676973152181302486472875817238824536993388724218835603776390023687425154385356935769199956254701906126915208025626206753675582819502027054359566708900904634276403553604845195972315290492212709351721347192395557954342479651226081910693479101964058664326551857565846691190915706036208464676950129532746410147311827933174823463300983713948498196836585350951741210447454242087677745926068369515759457776461364016234725608296356749731571433331580672665158943908998707091370763772639800116695752618475814896654786429791747311499883293816431825094240208477873051460065956068959860818764972654208047521322028360719924155695179997607381559830074408981511663518147494063314238477577551614572538127527383152100054962082142430215543345694147236499673929015649891492948042381378924659841914039983428755408247984713303995597634159359665395194546521345043697553814531081944639841242626653505727161916881304254166439791785759101449934297341099132080624464673164126285721575233338749169460904746672393238154379542813101293354773278468180145836637136840857177147892435971216710718868129509550900659868558654556490974635684242977453473118788185238091566911730929616665344710483477900951863428020952003368390042449892770341966999541673278330719773964115723924945658426615469269837194886800028004635428787381388391220567231691708543352143851668526044474721069307411509278605837638383404836592673867762536849139877449121495649075534256293635780385864570393428268500830466179340491820087881604106832075890410922501678376823159248147062320286042420869014678048047450286311974524405327622736436168295141195312121877464789782193641896189964118318821347447219339715390760792001333510274324908489585133815159442643995557042648892595772337540925074044009807116870551243538697918033293729155966552140760493698041577098839587179658999767757374134069478053690801662065055557394301436385969720303767345490403607145493060931260936414896195737692361796275002996889745003534509552967950243777499198893512895867333013246032001243926015753990069942651202720472879990063574642776438803735110272500541175054409477180509839844017717734059970963862046060796065782461949255981279854425742611724980177727253162875179854392028595438023436726868995176891698996270202602826523875567891210482856581086371346747462142152653075184402369123403234670832758235357346810458728662031709873921349929946348868308182096856438754537941004631971358792979501829291259234008964038961882483416106435248846882019815807705610758350785129429533666246049941557041068990598724903746415468459820300151112652166106512836063930902920552857210304452566812969486243475479666251255379494395413807351027872053508042914827450962345201734469855177239006287875928092405905997935307081986743523017672921491790269615864525183419447061477259318575665440461852289603045638585868973349963223973845078396456533642587011189694829893342476836287172973451297569895891191246258740672164553781696162811451120299476564244643468771019614508953219550997801416316130599093318399016467907686893262623082437870811635751005865803067635063236653491496452005785935338091755804744972228944762306047603047501475893742828725726747489891109205141489342409845801359107805490832126620643580455562906119403507739016782462822443066997026700633646288644138579594232026046642235301097751030704655033656914135944020429188543225791189015256207983827297734187208853535111707578657697193597665588412656966288027459238263912038311268602694290934634826991591193592003102090155853019804655988534362919920086740403397703105854954226138159183262371111736491805823901105645668798017310060788851981725930811933230031909629102303359721869007677207535286486901201598199823387839000679817894684876157394800233347515883333314742702087580721124146918025453108317893418422772499528822721482236010889250387360223238449050756298284774228292409755929843544975409952079371082896855639839137092052755910902607947747561216192297505958062008502301665342111632902320871482250736931492501403737746374978070663405231638330685442749757157840369370374107609151069868903240787186116286920830543534690662895072518010660043823301184837609289972742276206456593112163395375165208064629272428562384244103467628342655447350855085886244692758427885786599339034537678180239910099870229533162010611850355265497464992769226837268210973703385314179793875394123048484520412255922218958339792781064001055238340363888199540354667270019409531879152626719748574674869072694248399139700986634842424975753857850396355026869425560760512714411383903075404455499936888656883713023683906281157540325439502008503254050146619969693278015269532721682969978580268051722221185629634051440822367951817423843428396226828653262558872633646801779260574085600533542928797520450457594181716938745144005073371200977145567337717114574678244221316650518073996990208364232266395580434755577482736917920990240504356013750338442619134450020418274811998315540594834872779024844681392653927990333544800145309705682646152247188635310121885198686698426985408112503769565953654196893400215571011141813049922047390724245479938099445079780268326345911863951888673355926511325940477476245669270751558243325896142931401737817165950812221317977853256057781936253412740782120967566943221905032181857205521142535330159164579541053541887271798907234267270172655835734816605380583787868561750473448869598331762574536842815351714886752034014815375411136325510674255611690003529944095329577353810125118477890451228368669303108833875657326399880236287421911662312155865598090149246114176267014250617807624652085832597779822657158206268711293708315177330820407728819144759199417920265568408651181795609583300760340702004814516196523779709748608788869455422794677247848732719592466360987973987719101433532383740892687207404768762094585408280006422087531204571164120212892021009124163065634681146773594776390297013235148537219165122022543468928099988948140499797333490631481383520382640073303606273990474802278397694580581586200256260096674305629720221360943256654840038450251666348217848188552216212747912281809967586791187389563704640523680650347939669398695839851617086960501358168628721656894923289856388727826468470617389029954085041874758932885885946262202829161191343750535791997773644196845619533053445966709674844407613670032882155144421527085535443426453302579544497604213845812797138110521014486204892369179048360760948575693100281075811701013409651211984160204603744866455332764822842179683400452591512339094225702769217286299627792575365963809250097884463260698587138848699266563182555095556397857838172742918573971893825696871304360193726014282825339474848561149003944496114463055282535675553037062422859996660929517815162333124471502932400743482570394175514753928618110481313297256574080650099954142784339038421856099532098815557362103838335085250445468562597431732735250701820726604320885991243806751341956116291151501735767223964130572313108214925444611471342511914040635707351578091573672987930618007516647520871054526187990459567825537400715126602222724837697273797090524964192893397543546846856952469570172114970766132026169142331884952140895799933151141189847606027884692808860592252880648400659041029920455934350830095273403709261518356251267089054114678041862351769401157715920562003153021774042451083592299010485315860883469574472316835913877157027510670997110767435286064097065004641388394581888543736797376540960425406138899363120014527814754479326437853332716812814742391467666738679173953479163725464702531882680956921931794716263483172116851492989055905223982923109754713254683180220177543924496515466985905246445975511473877272119141707891514283708391288391359552302912524453948264388680762083240904615891856906718829944389257274574089748701263384201589295349037144263778813679567974289475134539426074319702622736779723009876437546541176954547517614920700714760153833498677560712589821229041848019760036675641156940527322811401134086195285341374340350010536109457198250032941250745608258179627410634485527651810653023259121869700538055085956950550537758592023401998150422794860359716657255944298665056445761418094940847456159092689902359314786523851081062312400190306315697303438693224926219607721284473543924506093284294239653044699151869316264570745354067961480670270505539545069149331263920714249339217124371129986731982681568490522872345368300325516565435062043752584753427254221948175948667135152050857630882747031486266978013434950415181283622609785294025456159835184798818101501203434230720790867842396148968249985569876919414996618672432175612955671914685904360971907197039601978476915888162243703389561531510792191359208401902134935046065918924316295447211285388825718533048315821806420120327545065032195379709615405471285423841454281411026509702524630488645441844701110900240872588065231217406336016465832710969952958157502700558436116731229621921117642827646475164864398719652924831139265040402344209403270041490490197651646684614717860926792623182269413877597289550258174282333001536737157655461052631224993036913483942824735359343571316918440792301636575215775216136263819381728231527709802681659963618384472773072895360631439688343173084637260631610842250601242350823244540172263760503935487044271690411354614590449072662154458527928112850772770644825395822355168192056647899903471536935612281919529361181243239654894371612450022766853084367563427308263904788924956435942229036679510680265191040932457768822330057859318851980780984312307245334905013029665346240096169523223032168344508383303415043084328784914513233189576711166007413378167457881830610378888754486432023142622551794504276167844014169618280958620011413418498494608593261320188010139909838908268287313810666094160338692076715819616069801832560878649319249727435435450480983513975688329063433040084413336700989420953141811473071575694300865281806100596293392026700721270367637445451965160053119452636138612941666855876091227938812371067629144595888783691539093327681029275957364881881188487924008505702792760529742617605258546280461535972253656225051814109358250120642916012032535495586706462539498187261450091222731247040690898622162387441595785132208745222231118186391982669258873398474943016462806280239643059670343238407280111006130627283116224024471130405445065598281978281790334010919709849609869402261367232478160199030137835981761363536432796674364586363873232245947738239309345997414684990009395457725715626178693479032639340460252422398391540654128110981974175326042142117189071584208749975980877153881080720846373959363477871854468186167860575851223960787595331615725425557417889639863671062054859825027647932317123136213400943350716563178058760962212468009873914224748184442769391807952794935607418788346566489259720651073798487140637092716639627746219521119926006192864685618637335623887929978957812531994940080813942837137907188512008956672932605099313840833965491239327308483122196879882477465534205052448481969371686411903099259739581479505726389106120459882205966308407264148973667687573769425474529177810240281949088344234739032217275951415864283522111383930214162678885114551750978450056146857885694897180243705747767825393477494256586748873596495034109101517359765044973222314259134299503607312560137347943110522452011033772405669896112194513895824253460643628043900180104540459006833740048598643524449989027573500729932368449655682732491018579916839350308385612779329008694921798227007193139175347258712354979903398005892182062593404477019039541459561212336702851390220868333318199086750856690987899739773436403184074621266761355805892126691803481177645769211323235834166705635096496399730848209984924769478709847696694881901725151773745829233191902529769026754907545627149632032894816178442500570287571507151957418192278910720429346984515126897166413519195895115046960847496307660596172273317998679305881981160276198395398627865407542925648539622247724374802993997681410046134243901487725776249330465478796481736673889121157737022600723564654622904444313008374795191828553216705094098405834913302544341382336591140866282670404296026354898788319811864088983086427925622529103073140387422303952878096561828027692369029815136779985304415370126087194626056158368607351311053930317876401945335735980686301206082894414330717272352115496953672537733546972797478474591471643434356332298335552561452307890124275534326426734191530865052614713287487521183623129195742389071312350352227014274805595852703873283836315238043485473019043333634163335027818675906928765109618208159628214836655820055796204262496355444441032847433208567510058793453882370044767448808534362758409286016134493158355032269841194164049317726615874651534723680891897536884427710176416286583120364568182511034037007268439338387182575995188500921710544511055396432105227652209629438026005530827281787441658947141036626513138359657885069565552620970193078712874341182781057130118074968113641171966672084964739913326911191992132424485111107678088997878455402835667453737674218385877282571590871470287888786024143926750836161810972380143037633992684626645283714354461065022000740187395080562666543799585606242856129380766248198500266335999460338885749934555444649802780920712275344006373424229787991480631595899540069614082380578533765727424398942999613233232438833392051692110099980378817179250319141417037329099020969556328808581559035142670016171800899866284283153988962837299439227768672812984621752937234395185497093295169287154465578589624392567907623315745874956903429075048791452612279211409491544607620164647484020842083665633314767519195156684565564617693566457131657539046408550650038096282811498576612730419466745748844674794946259458735406090980920664531034271093740269664618557301845701381135861797586276433684480270555516980833564965771575185450810563526080894636303445394983060741635771274738172168339400129204874524253567030591500349284924156017639508395296186231521004611553800381108370305431011302771446166276081325541890373939000945546063925217402069212233269833998880269070638247917950277175793046447475036664451945450438464095921049682983388433159058850204921481248482464532973962147366329685690696014576363061495223410609991759485712916523187502296006793809684953985186667333395515959725267993968596381147713385373893969600304635836020659621183569912546499153094310628006578769357464152298324575269820951915506560500309546931962285071048217892024183791188005922424261179742976523223097474388338762115648322370240399216072555283410864465566036361115948750604889351701356948889802205298149953806572720094496759395574160190715326686444557745751020758703809378057343397320084189871154042215206767919265665150753116778626780453708175228432062344600746032796029175742313163467004213277359082050665034767939756496469882817659160689870533075854015627691046344536252135163992162334162933640455140882696496921690274041813709649257628569010146927273844629727352059892552769399394051698242806261207243427717353016923316687102151819499880070011199560051354472404433801757927891015987235993844046655579872551927128962098428457822173989229598920401008572387037018664026713292105654254065753759218679100794866052964407865301758505289789422890316258474826886988774581373660292930071907574202861953398812682199857334497829615759632524141243846477175005258039422049076621704259366995550411643788404831907270336447858776151972381617492711524752150312709190441615902747447100056543356419725251493255705733640582772356339886663380792254712721900173530160515858970314385574683402941015132750256236399149387338897275492602092145914372268397006992461284851595593543978755137573060458011146562246806239952979033489840840016465857717055248952569618733709597432866925835807654303292280198281882507887397212819499210184179169310398928439381861947802328990623978148128926999211072594084385360860415794190394724415907776963884704925173597046301694963538512150416106818004279467299095337093368760244394355598210519610124777208085826532184380572562857131896904233150140858454758856665772489095503034846688645178442899372171032565827703611745359835493793838367154318007393902404488893536975954623893686496427324726269453489122567337066724411278835008359316984417687461816819028352156341292528442885681877818070004933214797794672765623182701877358842933748958705443600576341908944110368243648019308645962646117523039889323800094323248005852177424785916629574231027455708633942722983794336202511181674910416956584429459805819442867455227695319637621955475719674491908171068631818909143283397900031044268670554717361576489769779454296314281309682616824202581861064575996016610736384294404442459072278706097670901523785381794527636056452609104557005027102405543136307802545414736335449134447906220173737077325267168703209862154545463087550169204252483049310905400029083833768956173738889492825483226994386481636162163926880608281741532059497578617322528540996590426920031293590900540894117156365771226883411417294811337571641928894327626917708134919050663897944037939115682346656891520533973725876372986669626283330185840039304846814452068715082501693179720888587218543015788754692734361514035347838242041678569415199724047079682128190436110690677838413332125876572774411557370978393980878581951408409487339010087352141969397324802487686892993536592735058304949287727127820353519138425247980367413052419783616478799585257076108733413810292888462328893807864998788035338851007839699632556721984452758919370886464676822217590198999730433918724435504174212052963417791578297502549204972394972377294307895362948996909117831039638791585091789718817009668637210552728762217948115890669501227344640110136574854748732297699228750324229894125475818816023693873081822153549474002165847071947467796301577802143290506569104577160931058495097377506331623179171137554339528032996747812386878712227514250395655891728378999841150934434105177263003072634632099850225928170154400500711289483458570086104616545209064932228744875082446742324884793306678806064831651263228217130369582768009818705319434478951380772617666189189313417906124221133207432432545867089688122433627532467486386746401528500203888898702534271243494817557508113702531689804277636957135510975964976453413199871497520191493089390293161331841271966279002941470787690505653716873132595345397958510720507813647623285037299781879754985214645741603530435767544081246474018610024461253189556168115259328366791929890329439090053673695744113311159098552030731705427830638987948797745611177301171277296270493978618345021901979207192789378306466608413681969520750889886539171104254988054322311160799419583162412099587518506708313302130198750310993763892274324762804762009962616660185312964340998886006100077959015357701109912480159680340512452690839874938845918543831924553969357642771291299099986902315243605330700449715242732201481719243901324539624504194693189087197077356167281757549019990953739987496591882798017576632848975381729874086533825054552700250820320695226124615990802441143291874536628697018831956184543272434316345967335551667313476918403008312986558916739434733898167001398160120274770877669160751786946185608630627788209193066237672456250247377376591119582760289407589410321200998017215799857715902881162680483887277978926084356844117544848993663191824261527318947729236209610049096642112687730030978162703357054504759067353413054747208456635114498635288364513443999874547643540975334486045331595115033893874321199918786187793752722479076640007329009734994131472414718327012988875611027152081918727033967019542765130198461379589082891755281282946648750209012565780230291676756365435971215598083950146936786661366234879650366341906663092945093522452871741063636682218896295720022433199552208588022726943050556504738890065999413316647058336727035740547153117860570409880618613431231117974293043424873695496842298499684156490678564701269061812733046482422270089628168456420999976298265953892681580592910497946231837371692533650002616126960373872705420945459127400447808632884253894062234181659149345389746420418616548003528361166771129572597501066413786296281312304442274432143089367001968929042912547186069455317405419314036653635505989144041971562284311789575670621746431522308711600835578785483785240215454962225150097460731276803534979197645721226169407997952930611469993111458471049644308815849813678586064785982937199850015617002373896274614691501587496645320530222973640613118615045531525728526843056686148482637042273501959966829647765166920056824294765763797526281543084662368964505995182086932524630878517730622595742577110018959404697272731030549067943327548155352340328654678937702960546927043657953571520642878955621792756749989491513722989721277112996268244097781320982209819640326852059624243667313590536969632632868819536226065170352693499077194829595935208671535767941495808491974214106031097979819991838957386380217275702780725209789786294553103922929317087100360698081129791846500649019700956186135144199469070866187855149384685179603554515287362435986840041327208264611187973124025294182147344688606276614626711237517806950681544487455066217554147518371123086469737692612844698082730957545547976329299060874802369076011868803396937245030675157629888252578140203375892677268351693187470173455958529909558600829647095175352351905891581826761440020490167442955247236670215915275664129049801286106358298111801693895779705736044764639142984426244363840233261765258860856974649387751764677175044293922057434980812443643535111930844100663657940570842390753009664061333954554223894615101895625167358788775952904918395135876022944810668583560432159525820639193531012116555949853024897012366263233438404913571808951823613868615562220555502781707585258209087020922748818761408136952139123294762717306723535087420367533983780626805199465538495811380907044671942052106925928695034603756884032942225185408550686115524058735185504399725381082764364698925980793651993448242186567386234785386667717134868425481451007501977061027760915857477383734670271883685281996775250235352012078867246844955480077675953499308925150774681138626968565692944557227205140525881123344746744870744430748821855560467053483575597244303738274135614752441556327456010216032354377420601573966564434356148514214560344961765415095288880459823382722154345100683935825233531162333207279054342225941465950632799709874767130304793120851608132246817207158408493582355241768626416853728065619241808307661356015906175764619972971254174475016073028384474197588227032636374497501379964013272317158688954202558441771635726591894176823318473547017550487562930368533626159230004372374736483087323274074194956898374846528310519780712428915763362320653903318599978365709467935702980782779125874207004181914986865809610289173452093106896318452613355342088483895422625563217436428771112110761103754167840372229717952679711067184759389553462784252633524266822815966721661694565855283434360837923454618445009027448817385568873136620021440450200096396067360178089770829865317995297806447974528225593836730289566286691756003952535363326137913875894240021464074728101970641581574167764881028189212128367442671904105199811955212393867541052982908827636620628971918769005721986620701732430673073104335009470681478527418362001945095789348092233746997418379937463251652591550252159654979557691469299358182745512442489002405087523311348057975175950648413443608918851916021554395568804614307326102823637038304723756597167614123880758955532611543061571435403488891761427819038478862095983517997685602477972750670558870233072885422271880111751967710744621593444488290823397178380664073975527631151068242377140410667087755858733531003325436103002255387754678700296391233316487631206490773922743222750741225457431894122057658637408638203513823032604449610922927319987342440848101648818464287695066859523894808697245991690864532150158619369136202297772872000645077489017382097764436834978253598798691357309698633414193202265018739879595078092001863063088030914424494210134082178646994560182912231263736316523537560233446314426903854427944132510399624538391039242028809652562425369777809328019703315382418400996576845706836501322375331351710026096783037287827741252019227707884638813270485846636973883419889601778575683899245130057768480600263081046608151641899133735745379881318517423570794327644735137173409509063460014589230662550212545795711444994656138981042388749150247537454050238211440735778091610407715808390017987784031909626715686496734602344183827924132644118462812839664112770391768399600861622880987438541146841064748491774154038967608406200628925359823035278209924990855881968318880927312667955536343234224929588604100361862688008152445380074038666300328194778030973220357387847825709317436095760988112000926885186748626314792598608868741051504972694726213197353026327189572161769179054938055802664620037140740147535844536450799864678932282924402157184339587815448145397685006360106500606364542584896903734769952724513970510229272231522815684139256727744613328741311702413177972476071416126192569461567688835993333287892697564733110361723423437117318739233234580152882411451156448508013936553219910187088287270890681932046479801541117333343809049990707298763177212970546801480902673436479075777418832407883605297589924511696192549857607073691207381147438853874486196884580201950735653837931280170301455462005343998218071581596226958314345350753301426589389563735686786883928980531939516729568982512316881249885627628478942336263542785351394412781077084005600324290835584065194468713490480016414470582315285222621187307226195606738245984967220839095385810067157070013724590559093472904464936979426032169785705645501672669059178188122262501886186155023304328756861238305540065385011269519664615892959326976243491584931955190906777369533488350151712395684994895476980013512280197387953374723877484422814353157037244555423852538617616281079527809221904170066666892613001783105589836045504025300199168428294405687962701080985031136734807473001764315444977190495356758621898412244610773532862045864163050369018781808931511595595226108154118126765644359640230185949798024794732293064550781276574521529324440061361357484094895475821544698074619803481787001194987073200110640517592995474487892136498146714638411524739979534857096330969591660844967702493822032230586237082822295912609685581791041391070093799689676080279016909534278923317500789053199364508752214917532744800665615168730823328712093969275022025253438410087041136357969538825850376465224742853724946716455726959168163199215577391132493433963551635568304455247879907502693550001727267214647994587589180247461487125674429693917554114535948655202044693461048668097853948867788126227909623499682486493586128391032697206968540337321889401182922907517688364715898737585794079772815028502969777320578602774768567081390762892782957311622375322451205288375718208640673575968158091098140247436041175185811095557525505770590539725445691668113302019505756162389448509578843240753254405254703099565630969861702080078102421995778178481948655760751505370069982080251969794680175942003753389499795429577236554867112714204211978468501998551750037943166441850161732912828143490441737671075895323916058514122380651331074674755130085877053304941145144428346175697248985805388704916596885777735586711326750260508955706914319569355737506419126640634318783935668827984779553655146099352414269271900694180495610025926237223939054097763643064722842652365688341226608064785353739583605399785476786000170621915075303164722343761705950093456060831365902788136028721777584504936680400056011006417384421675893906044389580185374262810003166393342051567057869962434313601035680454693452598786104338179834538496717549321637930831360971042395882878700177380325728785598887864422778212051588793675836392687865658929240321191322545481192143138678957256914790044705439873053485614450444501146518541307283843240112720701099897236037722696003586335646049125019822975631290360841216333670280898978520326091403165724191071535565001086854711293850384200151527943322029979886890089234344742668940905586073629194769999066192743688936513581149917050238396110104748050029109516958758436807841935257003707362188065088796803925162549943753626410102477192322853547183796008603324705652356083045206479988213479771090067168423670532629407675380680862958000652554613001469571474001852253457830558808087883505069651470102583751069597798830646318898392557340105474181344260728085930409211391037329652887750427130229421907044409236740561418589472713522099423887961066066926394632206346370796646556157419587774957800134879912698335209147077815249681013473577949276549063736041477810262779004170738333968300721123228689294453591989493161283265574155947335182594923858763217374133434531885611648823557520041992747239246929760310871305583426675605731740514894279190474122403739741029517632474122113758569346031592062767265639268539183929973963857661535681981686725673325971412286067606393948488898555076476264552417500359132323612010848424776259617049951254400393000599188241800589393407097320300778698329385281923528689650538571586141836696481339111767818932657475332085684726516569562539919424777860341137170018205059926106280212105957245744410536713370087939856797269745587557114906983974409395391747661964593946090539427459784218717234267233838370235586110106890727490795590043143555911347625233087247347884084410677637910454908949367185977690261717209213511527808747937204598140100425851181951902920439377725196015184358999097344492866119213458610669728308168995591720875877291254129137863005836617747070719117986572248469926850344369031109402924516438355642008201588373236056541394909963856969661235805574183747041885878273289761653496524117873254959771687609176206107625214823080055047019795257170105003145201004473814874723630348075124795033459995424394081270999576464165349980381331631505784746456839986058987814102115635149576797861258197406139574367519729345152197570218903016286879153209950465920026029822379265775761280922779502451379662747572529089576562086610428551861688594748611630096182926052037242577393107440989488166701615213030892308126362717882905761587847287479755467270642634888913299226986407360226173532912077515285338780470532748211214087667723842534610255605904423064059284341751315942497351620488069241010089855509679488232815313841790713327694543170580369660850840635424305648345297810686653335817089611950348771845464242281702673049001576800032535137547563650638714741735821963688110937707776262283858127237483005653887475380540361177399688774998193046374656235368874163577730107316503737080255475452152167616213478882964441277207782009533634709200022499923889071154395214220981817679859361879971261280127714407048724928191221755408627774860953009278803436384118982824815913273188720787628488871907927413519443464642747123024583445975214581336051206328369312660281813511758427346709988815008099747624750949115688634688508994729961716302671632470949380570585848767596495096775057262641216296474541203618364688762431971844400256231794273106259466255267966149994861294122711303284439235609848289001170528729118304829788055878377419812939014189152576293776961886914155809390376486328395768427392175902362509577096764091069495573139758625394842030961071827887737056267692429005015823299201198713110233497701455921211936678361032533931113420572961469801640953754692367790711251645713763240356092443657321704924590011990718105060130304805807696416948757010606721801452074190218920992099835554215708616988999671223676735463293854131460870722655212216493801247072280647414146175632287722114826627215305527753175909481829521050893259579219968109697221366889036849336829982662250956488097175080866450578871064016162778113886969760834299064299266987159909839317624404804774969088936020624308547122840788402793431189602104930295930963526002965679803308800939253976422683406638286805593245524114859587227449968503835060965806446232198671477068224553711377410435415252529729972815610371387329443281234121454916080884949144877154115693276623095406694171152351337508005011399508642896305072276602815845270132610197346015883785672404941124807349835191279600417843187019474918515323404036681669953128286039223938035916459331396460290848996080042952822592243877774291821728852809872082712820977950982384432327283496733947006101539659753972880794089015722241514562326814768119357667224114092241984107399884037013676338400825172925891711681570815692994406609538750585602460816008886732325676269583143357974717065204231690195904217257691033098907667008513161379011316060093134808757903202021427923098830429145474831314074953906101313940467386800556052535823064002657053086802843058968001750791234690749033764515539583909400875911862138762464231608475543706293554630981425835022219871006691535036803198578868180290968808200402176887071108812859382278487811526945054858205668803594178234603134650249295232580389620700675121526392269812475034062256558771442266626557655880516852371117997394120997917736882858028827013105927514707834519459926396971950332609131834663592949055341618523117978843639029690672742166926468028039279571485599414039608671131400120732470442575402108939779059053694953082905888325452174196546182499073525682810276877307791978789829977494152053473168378857534629602232160702348724967581082111843248889231256888131598749679613647489733113622035664382643023895480745882487054979200105954974152996090172663188286553361187080022844574021184439307296777668253039163134671922487763651339715077073009574873887357466987206970192798235711101442049918305280364271642383834263569446723172454244474715224153370152189924100433789410488927817613359815206151966773209429141274805885330832155358210248462223316383809501989877322349265606671878908575132737393777897713514580250078001205722800452129055609220273197709270553852912384533055381977190115314674925856716463798008350913501332572374164286703093800215162410708736207888357819779085927026886011289136191480371411848813999829485789971741694938395659240069553413252628431233631621206082361535035635593538457869136296292423901738219895425051742838198848464335648698837756576105013192568619144419320224128488223905677845331800536749822499412108051922270722405990202650907197489818255777780109536076019650851513302885188589490487565829642607987754259320623526971888496755289502705264362569724816898211108072756894148109480353040232050278862221698132064785406651334602539764812722357137194551148456216642563988638177805600432533986578932022829154451652226610437307181042591258152632323038041467765455252796341694740520166380266484280494232271692183449364730549518739484061254533021044285346599594722077796250974671776860278064273377580336359002205339427342971367612422263414433093611666045447875497801786070971504731480498528100605457645249370319591654412329811671042373420935968142111991075610860014445536991205752239788199115864083705984989178162503110786249453388325676676608884333935003842400935576016064200320552182978212927635275516809440119562803978827155216823793071033466970258596150912662946340578176577479153491221575225723384424842814159232055114804942575290943666222068667481652912852141696657364399862263186611642827929639693972920025936014830981439309849464689496178576007178630269262980747322688626125849421395541264723817263442146041412666802549542075703136560944643880796744057799926185468459830340868998362058952310493034210358504505864628982651135967402505222171723325452842192084190037905942733930746155239007700966691299334532424936511683793234221690997118723613989382049412235929421127616899933352292396124894603630693232345576073127939435782069241399589886280639016403680840199917185843172689917260869457674946258008709279004045897332244547062058844021630122390325894252953385801044196260256752064914467059515440530620423214290176557738555778116480125591952383364813969753591135751462023967469455387344154370457954844455361077168097816373317336046055930719237992136221149456845196746603485230351356439292556631590603459001711992529958979256779456715453783391684003748747601610463877160996754272476342109218785745316795808434691465465465764352471847567885933692510954151241271901195689747612565117009748885869678581337520917805906960047991664635996320627174831074207456636820799196296084785053358273888458167417030578015336568595392858597813920044780887074232826478179764113350200798292743171575922304186539010403524622810314544824681111620905111943750525265621803987969327665934875360808692114644176736978063332330128779070485879531565480514703283215153755036154830353438604562420471329380863845476927080951342905020527736961708587409802143608659436007763955499330223080366647071207463113897589284490575476085501137308345072973466625691176737888374425773701164675896352430690755332834249300240970851770031298381495735241420461682896494781781909635122479732981485774138925805111024513934751120068760411307793347416104497761417301244964376889817877370796114676084899517243818886239052152241376653618197374692657550609664609585153989535542427453984038165082362010789519384765434516290879658600838702077701209212679030593232663235176021955691701912567143932077699397104236678601220271697699711906245594390350904655013554649154023732224579079345095679957799619332229524836122553624997466326847985570207804973070604719095316934109818233064913317257086831107513703051785696743568751070692869617342844992071871315735023095273448812408893335324974951913688904973379378752265649766908404300160439561440535155614385098975307204169416765109843910737105690533342206209685804546438726069973292326946242534473165126778740138629772284180320294003669283248322283036600861661949347642873245568467548153628995452385454644793359668429961402236075368846959642636601312719475772962433633472129838556599316219015412264694285525458837214004160249213011415209565871013698380374889604387484363070159394277684358749685510923116794209779852230042731679524075678865175769529502469399856567741832662819995220902952754963936999006458104381898719976403999591005211853362582346553097977139458710421357278681836901016783846147318676330781951421638745363693412537743972183081233635404347164159507426336468771370411563913413453971901716924605471180703578990079577488660520284723196206354899286915330100837489093843550642453395160035116166439019609810327906476362407600099391711214555020067982550090136567375648113316717558857763344376932440366688446981091682388651936813103167715472770464636304857844349352043243797137443283912273943303190420322500033115538601678816286244281766105973142163378147282039886097124614172884649216548726995142616892635146911549004964796713551622516663933873972305105230740149320762833281221648744827494544086682648357265292499525912950654490321254659850554902677246583558708104132961839849461471851183673736610770712370620692059528574381587822997301677262316769896652231491520593674949241541213592065505410978214301710811329235148460727462089733710188781585781006551174758343390825861346395593362400991553539531991101463657939651682469471855934746174375500579614081776992671852077449857861322311530664357266511723341889589654870820979540758204700291042916339756611112808478828545182085660043168080509226305343881847384204020153248639389927871590910730067732213082025500525084234722879029407370113482696245547749421340897726455856647603743231144850516839473903094875036924109768903154787451957910010435279587946119277694096977439100842129457822163858067569610065662549450093458323111162611974551455433344874537666939894021967301279500498869129535232819000476670543332247768557726652811544589198223033971021763650092621519806732989582463026329447647579439522075348133973029598286970713455995229355195197957208224270196748582432084062543142267292550942502655824152846679588516288530974755009593521286290590248170425935755693845066167740082425454735041088197640082610819811004888364617944344651902478741836476317320508070125044930022494578980768632667919138378833576600730845799857269676057615534564929258985251269025368515114241227493170274376447067326452818027565913392256879700851308372260819784999921782861362879470242777915590895482906740637753344444291428189670209185372079055451148267177295756425914630324412417580816636063658949014415700686369157231817947574591934236542294596627887903480209484641825737195691229208213368035182920736598514431507801250462071538070474019589841622924784305431092748152840457667535107047005499748190161243729660124947034496069827760487349394564122767339704635729716632700883939805812747244998735639580941604236934682729030401622345793065556097123517531051179721459197144271164974181019625081989211357082519068978055133671962446399514901090065121783090146417838971629967666088012788479190781081939540671643196470337844274836122391313147001272175608190891849074144659061950962180815924540473017975754881885596962797869062791677042011596489373674690609078174030943473840713753434162195423629382199868633798747943196925151013253483362794256183776728382898492949506772614659163890988898543651743768054511045638785100772163323705148811065364664962767524142310654347857880618363938946149151650001180933369157167769462965079415403766803564222648356288710589402444064507800416059569472189127366351646934966164732480965210681853629343623179336733509469626212828805901764996911502133619139273313259906432691465467857004567917181470361001153613290005052448480583990139533233312730611305674559349598928089288993458803019508431021119755639163408209991622622582323906243281630917253276825253666000124503700336921072218034311120345149198130177712442850418666316920068223516894907029907238517212031255012720649502741775547652841292369339715607338417243653760047499094813208257728842145318950352045262745526151226176910999018893979464780540213994087448248931114653750304793571075291089238752435601666401609161335906035686269549357676456462353850130027575177566317055328966990505316413842874597436828093865157834997235571021207709345188758845208879664152504356543423878765623121136960795489579925347100197149750133412263110060143734987148181518616735990352135136569415277529613353700096162138164853496448434044948507844434034433579161221630741938727656903440017698575691442794963705523004969406067281687432639754523812406692664538078613495530017721139584516929970590774744731177587768371035513524952529894951513210851681161676632966470524103698180855134208329513923272081254482325990259833759096286830866205727087413801680977514910131312164624551222912560656640156358186079072057775254073823270757718695033939894815053167299595192543109490938230581736245091287646888528994327726698554773068060182610108880502368984836719068118796883078969284872123609302173838042460430393183278470634114119709334202509274313283567948327888708910343267084963099863425016977457386306171387892024839594381177748796897229291608271498063280415451699871602057632913152092876990103082231385474553689154870553983945644299217148627941943947392450820953854612388267185086777838242327110277140959081549239257871029384896562182763310782616553020227069851299700447888402556435042848467133465094665925989492467758060092679013587128413670997480201817305132591572376879070140849476086873369734500238594330010946712036993841254722951543326760474161595986011302036789847946795589035378380300824119682710488549019337435117779113305264926696167292054000750266667932464843835466389880960612296021521370060847324035222035801426905654803363137401563653771040638967444934716749220589692669959415198401874211370854485286347056681797459166488642056534247291404510526797082563342303441558807184534764512628531040303486091488977226331707965596917867561452409028581617366174681363567995541245513616290310832170860504677715902654730656332356532111691824984705128814924163902152597244638121004502986180635664147986805619324333204224145095107476314561346681248040426721173722424799351967863354291812726880814132853254999308744264046710480923353947076099681825597425011209512996218255624901653067526208777579940712250592788086851351582660470787038762945336484530143110634073966792833259627079738924821815337973104684515945931312511299920715876464849143846335525421557391454262565097025163739985665759102925464502436485105312563417496993776822084932997095031007836561396638174273700130436459537865305227671276500698945651192024171126817836361492959541427448094600330165595128135620951232540787763389533740948495224348752874880994262738463988130765544389355218980170241543289198338540510048862365845877846152082382869732770949830807703562313512638814574455611124654256894051405971383521942084736263988990121666074155769146701329844470378559920658137687184973665669049099524831964534007115079566935330037723642748487294021559521491538286018857756311874107455768032487559551003990965800080758273390141880493000169851875425913618802942915359738511354187274198970347877321895204325989603027416613990013796994860891389358609759430954255739960955838489330627100957249617912915381527336650238753779067551115280291430740119150229780274291093666751472272539251945424895752160658429530555901539051599866868914355720353913877824746511719318530760701276006632184151347388722250367082653995190159487996173860844000510312377593590331153458169381826813250126784303518737345120321630710481219984463264749944698696603728445856836377106966540948587528989961020928528868306973238093230205711663572881839913817568897449717142556982290852703751778466343457856480146443970393918502347407974382263319567103251773796647674940465426358104290095238790994735504967180811584233441637268132741957556371642720401475160844940152355203176890981090385447287875028448950648532488400759784886758361479813787896653814765112390741969198117908623562845778390739602786820234031876199861465225407011540842731590348662377953603257815487929736930682414350013354741612492919271960328109767042283382686772953909469101748054697989318322692056763601400254412203374721769002828941718187334181638852459220492090629632848319230339749795652274076550837244397132323298163361164496277046115214006177934441129590891134994724099343003239220482145400280074720117648046640097150458933778585639443622465951375802125138640308527560202677554408833956918773142019489700141318489804541356742021489537385648458810110223113529213266725466481063216788019843404392854038155223131045591746771542125793698686913195176358277541515281845573395521310204534737873786281824363502152657222411029580089068459882476586109233943316446770775652679488835526710847041268346516527867180578251040834991185784207893552689745400855718407986637211236431036586684440593418590502276315918991095027039723059431907308788430611865382567448554280722906703637139594248202771839604342032287168396700893728038187532010639458632473337990971119794750087872850282921902066317355438454496206116242368550133876765320701549063649402423039325160015307090708355772068490480614995038412397906986113949339450663880105569406999325288804520948600567478883349899859988968591790521399552285972993572224924988076401240671247065719340916577569651686833225094931053246693622504696191412908928371562233953374421529255858374151045102401120692257989058700377471799414209670544985966871082426079499733156670830525565074434125742861366515201457432216877962241435927795679545539879359317954104157531417401149452818049086905552822949024638802683059994418624763346770455587702174012374152589962744007714722640351534586929399641112437947377559928309015756431282664034742731321440615484564088927748304644617558799073678868247569911115868140556560030386760560766428758074904609296852416615204750912262872320318008748883001538266737303420302163923110291131367434849957082443515543817281388621793031957045809963193684677496497641988599428208195774532108508342932795042552594629171772436341063424073083242191973388825718856230619230176231708852729943178135184825691881083880026733053558088670312760280496265611880238786989237010480263146092829800817741887554163295929536109101426828575290464831094891203244371851399185869089628291283625989465714099164430564258865599634596267241948904152183069485874334268989949724949647137897181923108900152617330308237653903275316076743784843739002787100695063310394607694236610233244372554716656242217308353049504252478174152268252226270410188094241731597867069398573725361281724609141737359762210118189084754112767600399818564162250137223385022586768162753755883500653016660867626455670683624869723908374530396988642436512897428550223396465697197932196806081087249573398481960725295472528188475479487144367864342636985926996283924090381803404759376152697842806443992888709910492510803131531158281468970204419855420723804463529259925342364371372085069287298853686219477881854439495154293074724301979344096690795881234037182479815356872165370007082652690247056194417720827053983374289328130354150405577189451778884100199249233355347408741270964262114339200704488888862533183130047117012679853854826508413329071843614417501056454766571690757726939679250001899242486249941608335630851484889214166479400214414450775662519825687803419088441835499603541563740217885289965200070426744805964773117227469083880896682620925332292806932102293311298895306536378215016728086867416556688766205984451285958104424935448023080322285005925862757919687372575175293562811716909667229904676067887599937063638258825314571384134746879470924808628183285715526506199512341287044728618598746254267492589616303173562508117776437215056380471521899392475912546855688467100169232455138329247426316351789425578924980716884701936474609795721850288571502920612827830163435674101818695306658096263879799235953280428760719135444794654020988986174514915433454826061857449421514104536219217746111901889873737634549661221305501511753720866538043174981464201742703929062969619138723659574413375591809989661357390269400285301317296111017659497611866947442105918854869871073376082233064365500392441680102460558354259071672443284455185622528739497015263189473209729999089204185846001617433367700548487761861427741711336194500509014595417923402720807426853180485074851516760101123041134894309519550612812032095347024099596836224770900288409848638434543546838491773227363148032635244956889315532229431067458214432816683534016964713376721489681177851824319540938155584739679644803633042922593109171904309001452924352485084409563723942292412350805707260471701830035250226593848007976018986427499504789615335809621922629721951379817939186710612911128941010740101595134219417680886045999916235026669186932687349667780129037842318577339007496071128953664939587532581654800412639572077196435681362162698849689852749633270857883615804282328066082307393356203172296628254014191960694943124637876857051826887534047459741624437405314985139376140062779247646127240577328594329485322357397034976848015946047448867839340429871356355213056345472975677720237691942521109618882158806795614085401068754226855519971024187685887430457189954767141572952201889080191541281231061005806536490770045713681462403169546960396899479861713201887305030851818716546167865555758281261848335185575491885842961558755896026436015795642335309608045723894078994617887810487173491740551521157238330219494790780219434037343928066539500989503852419143247449284729240930739058313337005326525869264342420265204943241064334414382536590398046952232988741915894999191223323013251652108417450208773460259114846675128241257390284958423947067366187497720607549547482255105288106126053404619193088137653006633281933064360671823753160723293202459999942907209211126475836881310583604602893341649175194533404507664146881456828052585087356684522376945228444258698494986598681207826114209066992537472386457527497434744234527119871898345365016536817802428243809190416958291979921051335992160333972299103294681359069350843249078725882206132419196844431293166423545443237679266375944846275890828760502131989959756531688422900236153725842087776372638969091254786716458595371432512433003399268072252848646512675062172734185900333976293163421440409434595424931955758952328896551813072584701433212885910231997857140617731019253457503418590875492780733449440050625415486469615289679233517985976086918217959208720418748826774034818113317328099930875290092527162213435894607188767765861451014223972570331386531919427704764668074422215550465729040269714088499591453058063940944440138705792032733510051599404783106692326017585182474955743783362460773838148437674906541835690421827695108136147972807736018474895527498820616345667375376730528603945590897769974742761197530597790428557586961609668965842116379535204792898080596927622797916530725184579929148508579155443571057726203123891922663412674872037188985288258181319753531113095116042753669580539529869970334831238762995493309769281806331318748565689885050993291399622774084051165846168426062220709320731092824291646894416519435707794511104636333237001652016746200362978900589050056277389585832554600713784114313433774222967461131214789753103895163478091107206265965532908014852228102163499171193632220746643132709311444453495483004252474749040210797569150973307767098576944436278291651152888120698930673003761699576654200896983305882859923031350634949964244369020761991682981172888267685674939987103581139547271623414107038741427649680344636033403401841790128694273391144104365397728425939460821008652544606014469204317271109282817256640862367358888081092110792290795796945950499462616892798242810086420605995925243544025574507589771882807640611377469330757683802407631630340409467626344319767731417412816941418242131397610338535994854785033299894567638158819098671407920987848560892192463573238503742538166351704324979244990492644528079549273379887227582741339506419688545877516774011724901849078762938537290542112981687902035014616539315488536366909446655749368331811056420066607832921518405512673765045450952341829839560416453210373773672403563706880107484097836661562214776645035993835218757511378032365931598847075676827221146297881242406133169403835350949991376227209522111669979703741504052294287985998391760253282702081979418375794395040060381247444491199646703633812164447236539548270845358123733101667486938314804755634023299969514999545460676074273824999671623353534753523815724028549081726641946373923161677683141379076622820193042989150451443245790900656043766602031276464384148919507289236467359951386136413116822828871021402064355054764759801920009698464280802831378510890365790402101165351711635731655196032582293504579284429615956525995790346876343332963054584956426390454262260944166416608132608124176071233879846243806809713664433865902779174361291036264173338793597868629479571710534148916553635137390462496646990909422149576954847896005156522109032035510052830540589696670994472797916162342300494304935227012555727376235621565708893600412830529528876873985357650162988792614223626835868891753055243713652804211976202912368489686130999698035144241746519467694373668769307375510867946254199485357956805797811908644904793890483663868644089550037572235228625773184280092594890438523715011634759871022259752124953900648438254883822295735798312013363870234699333741405074529668784078569547800221609984496595207208608852994611080310471095580422800803703901173851508222782492153853361483512549331513374911066165267990890934875371963878674410282413880368308843592603115907476902408536976257555769821226266753603899543891957690291096328393832211904160170412718809875755726047812079190297135313350268024721420458362527937539223329289868409674939755667287841628589076730281115140514538855620598728723126513612004017382318935120139640365256333422567418445855520160650546511163428272140984890676181121039797743054360543512021919507052063964583294802362225879570928145246746145397284493955201045631242422719646333294812950988949986595623378409896815293864121603912627802223207907575102196466122570876924509093084498567582480810313508571675485971090115987986795611503441854373338551088916122786155176274386358676106111072147168686217864541259395565307432336154128362460688422917893143895487085450413592718586889369522070290794879620522217480296615295268590155411187369178587142338656496304876933134217002480358092995952413445699790792220778535807038737415420619189267007507618534926741818847658402365017935785702634192414078254661389731948035533359005083411037362578773430483231477752045167673610081103955596001238978080515903403538560071869085395553792000083795208146564696049004376601877113750687107238704229180234870219801809203249544198901197593751018349168690941607749223331061976315397753587831864982066203280643385625684617292849451169019497462378251522795069619969759859581454704208688060051840132161735164410412566900216381510300030274676806733971626196490803826583072590605300946879779892819563854703484487390049218043664024477891219613504301769146643358170761961032300067817232273500369028206681209612772353402301491776092807857461105315009243564802650026257313524459957499167426250912829801090752275811057064027344011877899934628877473922577703463410238308530967125391692008964416682590935281466359887236603405322367802367909489595325451538600794875897833092889482550911344258203453500863670725149534957574557791515777692411605653505276470450709209960566138997403884501818748953261310709172768449048560231717986432599063610595307499877109393623728922318269836622111313455585966103881912884151179826895387700830294661690403210455963496682892386461526120187608430182074153528661326475689720578277185006621454987953754868032976469054981084006254557645190364884145436000995375459015859960256905397105703677986433282862048518450893710383947839904560533616097171625298478614957909977027290138000785709265517634011140247452014672559117398113649084888643144987596354361359938160990414087856297895768931536314310806504599021102817670834299277182314892947268052624096953972720455035879377698488439347013493485899686274422369621252797976205972043804154792759069464135817946661870009446271823149425487586429317491895891553911334565725461633225978910645929119126850094508549416925383694590359713669858065402585808184876822452562771193599258634959152956696237915484283859788545953751545565322411199674956740375247132062254818712613946509162999474883947006701820967508743789352928566828867227631148417871314488489653452656756261687526827365425027969193005778528283096853346620853144500307689748881946573553119664352076908410714876818711861884782725882713628510230243814722928189232859001115214009707622066056803615225257276599164400873337992091274874187048881649280292156869563662860204860517597397677005562560968511746676914495557391873763528678635980852148893223958216040516009614111117377437941375381258564536820671974729601193988287110546074937515743198833138343066803014957182315818519267047661367703263851348923337082516458335528671427547280054158514427675646743402486466196935119666265370684181365609083963460653294564822010980733427168245946192444701543165959763648917291284712860589777690604542124231539311095267089449874000219097916477456039529577677511004409564449076229255839628910700196338951669111751847616539574919765894716508140474545066515879891916556188890082784884549234645262723355192395062318858260174460939355547161666042612562380898443011878001090755018423351380206104443013943574378597485420172258113021762079637731572999028928386349643778183712991051393587539225188636911599242557447631510080652411161850784904719774407071961982449783717708800518791619403486877100526634243278722442204554021156756135173489306235311438168365949432016297132116238563039212296619995542405154019323027330418433012892484647301164934304426072335726320547464319668832029806085045033182190272947854787181372576323413836226741945964499570342764972453223812147210319785297744552367599123127349171502499568376282429159509178857165892449552841878034687588065121200221830159283117040963582253633123796539608814133475929363239005364879079212604164194941210112922840433982024076245511550159859411192877025724251714619960164313499771428697692305919120374451875028748058015519456402425806755515111010547264814233539827979116166708211033975226560176934866374471863186288100222001995331830376985556987435385860282334926846041564758087343278625970577532857822071399548091574806909438505154073257179880536543499107627739887392839459760382762521861197694967188497553564419644140366026379300299349516529204835360884505081826739725863497001318509099573772680663364426971658575068767523784475799327752019364231900979098692907554917929957643540110719986864420654106150118527384514854112110607860515400536009993302557321009171273548964604396558528005184888616816593498972309469110810854117029610262315339780438241035763758986329577679426211877116734025555706113844197347411619132736387527282782457145401338930732762234219085760241407169408506433175004055030319843758752942002151377603610732540367792171049673004069810979749273389557391113559804238896590669265763717605583110559549507256603533405218245392034044809460811751587456041172292807367647304243622609185202037883036222276546782733426664280471485373991750419373136891700923832330982667570572581102683406162479952865227056556326614033235225917471779149010294379435096111219055050740840912762456154911151753548918855694133182895037190091964197662660745560943558534832889347248084921078878118034307173858587768689834214635683084450892851142108835947886028912113187672604135484935873341009329144129101611809225718651386646244656180625885726459702519123903906211572697983489287438991243704860156916250156575551845781101232315236942794508009267886513541888859408933564168073376082778398978711640651628540652537531688208952079061229359868636888735158187922741959322952172851072446604225221133873714445896069053783047785786173502084449539811937718323788074012148440462099412321725871843665022412212046736137363949595740848668698913783346823608610167742271783093114597529324544021918571827781720627271272914287536522540457959588716045412219401403664440350030113464691483123166711060466250881090901698259455004204729650301752892853250207231622622994036037338701508937031156765385914364944200380704638345082525060401751152605135664339968411975247710453971721726921288350840234692621481869179532018166793279325248650490557591805525993339007151042504246439277042908563106238957296951949460271052915914847078318708711527276342384561367078750535320343569520419998671060140435763648518366565525682184752544398381529178309551719916320982349634137147913189124871138662268054923179686381588342851674671226225337406347803182499235634519754684913922800385998349352785541473962797413140266336798733281638663021740994475480180550522164581338470644903361506973636824835402979686093896758764241560149830695417294858319361718967011391918576853261064293131055791302333707180036010258642897078802604195061828753905684691545965623003943975992813635250958066089221474342685343625603106361746922122666770064624534926430934195899693999273573156009812444231035626959750872441273144752196966762134396838169848318926875726632881314117954427716107182614474401143887623950420811355648633811444089318100445851849325137478559199474674784533320553660204994997689114365730301927314695774774558927480098911964037635682526727772165756784038503756994073936642753838370157530500787342986934860268561320053428306871458447591840308369488571459393634481296573176346593453285921931245034340493403186733531599113081464718014993877351646716218610634825935086676643580944790273026295953135751723274389100046469747374693528124462302531053181069404633986008450353078588122659138148817258129750842256226265954297376335048971128089426474159591299871931307934846975982628150448917615033483031447039493344120246610817734255534201744407064908575901606352316869288269443861133876415883616857604890656213927617038456798747650718714716677035718081535434655448662915686342155266039132656961357695250966313886500396431210086391611880698436327386264758509166336454981516433061422112825700285335882184566699223588323664434533472131566898456011135055520084149459344043786902203188207938732588156485274607437815714457670651480198551879667454158813287030139082281680588818707516352094293295066421099127120225052722027253293773862315939363015625595403276358461997668503881525325930156692717615483508788399925459748644971476377552685628473456806115957729121332275799786609698980970117504526231218390988576276022536344000025169623300846425816448609301247205247291472282863942502330204022238766022560258663652675196303474096524465374870610620127086124350664623518315836459804671556003615855061805960984611514209370164705252839758188789899942685307499223876146734491940708374174687993891972273017955888530007593398451079182507086225118574131548021462486214099976289781591069405694322058175845559562184696833337098960796550211185513398857299121051954961131909629573262843053000115120308000894671153329511764503784822639712802315070106705079973111728266682277039558676262708424111893476031345590211635949287440180438726466588196212330212637091676117239937016776586603404230010986633482023822226796884763100939662895552393956377866082303184519373899642130302477500014358973335340081895523240674199255624895628283200565396966017723240212129277188625768925820375915547127264065564659097844528807200953623802393393043101536034999349261816484429972973248210542362933849263421032938865538059661154344625126454445803136843210560171052494152596087449952831397697968661513405269812527257272404919456035077189913088476787817606540820246422392585944702993367652546434787450585844535124767925954023409485300698391429114089257016746485186836959783331565752229789271573330976540406876982255603698619957252256939027167875504399632740398046889930795283559591164540924897838689048165725684154152625367152075280641159671954913757312073664410493073476847361029861963357809587050393548152187393231211202379825660832613771253933874909467795032080385465222495818615431283342546713496809463497396575788913487796516024508891489796802081497787948083343209364275546943665242184791764904444139234195025830376114920793783278050174691399863786712473974440327464579240372722964293577302976035278476183474452187250356620258526271294007690093971455179982466502028421305299078604156255471865689830318749566641441671817488175746524865840333584094434887095424216142506108348402158897373605785213704719199382789167095632199466158748832094673445925903743011521709080634964440741118993057265572642951423499347493229215931151579660740124338147949519843160492460197428956075700611336059735121361845678324318092570173641346415514501111372988999989099713571727591023790517839339702390902287051758934314234051281521791566829116313502160174861069019993063287625315652822281591926319007417580245348481177392482931834057021468763501906343336502647250842603099946193480222852027336107174654002417670199820707756637825671531499205916157755106768939888902791231106940695982028906419850427276517570324894108076274295845718656161362032457299952794111294844226367582449802193728224535564015983856287094100858730115423916812127558640623439378162009081730009700971645821066386677579274347250950758995954407060734895043892861853914834115262820871274906362981942596359846635433125007340035306686234224399176652600179216861075696964349654413538493793604168605766995890288378098982672732492381745151729314800040205249310792895887533706316610005544311840267254412467538156939158381357825440520876113229948087385561030381415540040905602097791795339683377771669098214701768831518646782266869004747507162776274758559355328306784922600234673401398211811426744046594149800579611087376217437629751070535381766075413369146505834473876349786917477049854577721673761129008573556088912839197842938089680865799050201721225010279094828894722198735496388505480733577047304739635102785311520957580750543063527443364639342206290207571365642405259161073882354949715144325004429118841679825051132870546632401100940902885548436872857109606324379346505275911772089501033405985995629605530774240939923649023845123065914262190272970266734199127346991170954768639994898086921602620057169832010181266298596982117066146620994603325750246657663250788793925006828100111768690069574528528616326218620428540424926121618261067771008652373154624907923182424930795136213710938041980014880150819111192599390202572154087268658018838747605025522748754240189568613463205524495657292331064561143309067001515801164138067286466438338726456977692911671405413649805497762142683931653222349587820488786479413708983510011526602499888083039557324941836416106345485780534005152022884805401815916014344727683644853503805307652918074965406447130119706893322996925558891168312603683364477122740328909562493028140837215110834508835219415838567520649178946959156035598751165215512917486073023512041462619935605595612070922046935781866645835021472046794979637842179007350716019146013391540862960975298789553936267506937823413269114926907442682214833514575454657806456785410707258768659365471923942675551878807764922768784789289046417814032732644364294512447589891771333598576376253806732499212650752079263708420603842453727408763779455130765380796758851026468543873029521467200158734518071181796009383994188381359145719540212136072408381921639661044339361729148989203372572045713551246408893321983339413369242122736704281885965488338797115950666537272985113069534877012802751314311623185451347995440009759154327219496984056914861513077761725781852500599783416191870861410153684163927270172886742172111962744946444886486077888587109772239749051183365935295461801292178307254048575475626698033357854187979325941622062937170088457770905297327414128025225195265271204319844299492278950525938116478746810314054962475046393344506944319033736430164802577517310039958225959899137202580413503530383522392151592396845170516271348325833377837642264582431448033528836150253432531632940316329503712119599418340523726987676939240087886482202834883995583836668204422908971050734749283156831452186294650185702644247397632198849390653502574537588915927851575133073302416617394294395522700787239712814527125103616375012742706195149900358110722049013322023421264200447890692786025135429254634517819353328130162098799055074112198286567481708046294269655067985622216929676918621939529064704724340012586729139870259179136015218756746040845426044036257273988348566059646561918398231376525960657479276145971313593798129251650598718826418018300481332788843603972284409077544357568542934994157267592069238771057691854138424234354407119201778137817952524764345951242211661149124052820281956176670550279158789765558148136391652661412949143626378959423830994583245674471371474482680116871266011223796234008221315047423457662999539006280056773904843944405099214671260173503680857843588767913452823694981986551441290458804993749882447305291383479213923961318504299794238372945535504855032481128399687196089721759177296414818030368746255159899648482564615781748422426255452891291655228709103867339589230489766184671201623193734553483663228425366012948564950138307988039336470688732183266865855944683887454005137631591468302819346706322666161389571215404776574427070096374567445382108888064363884437352038375711835509472808140602555348270119108095681980661402894035960461710350635643650205631611654866618695186395886475336028205350540123179254374249041857441374798467184846168721949707340575029194708567008970691766516552999700012306310045414239997004643092709082157309643257666392966980667621504735012738115054906001346356414282926422077835720203760214352240576498015157184490004256585382701139467855645939896024013711079175404674744093868774975160387316999675266101013648858195943126037956702407259092857160471750162395833567731157488616867548801225284458470028650973840741461495278213621373280494910769425049470893225717455649133486857709433314269814710917856673375582011540302544839792340594395998771432256094926513405246939569909398866231430353279118886278723421061191987726032871740373709812359597683043306968049306824669636502787105220736053963893966743525209556097607480955743084329309851106463779818289938836785614077690454104412377800207583059782383344106814044658026535989458900780551827071070429355023427299989693679834835890680917141065047264018663940794683278818562076964048048485925719434063054405651075489948209075413622611366183556427902758709183593642282218207669703101459781546988290007600917453208044836097686280026687698216891639750931468364117600433666254974824584811755491533009190693229539349157784852395949462651757869354754835154499820402866324034718427814819932353396001299724944059297746499471152804544975588925369412168895817109649088213118404747110280836182788436904209424736289172551018795124487086027059018348796950692122295854138048655975755549843413184357671109863239234873235404304976823549007182573950431338300743443419968826182509601390524934631226584319744273599636025501321650112812499818699913000698795002536117399976137632354321854060018295140222014670248654628027900247896199416100671108020566360726028994224610367444092375735785977446885445817634243914292381620938670336654257211322142584185790343584654647960241655818463012006435573851528287040933024236181455266665528504098920520202455596162525143105656477958977976637882114163286358816207065455989608124150066243986201634690243672519446010126591434376520770363881658697656352438010960808291258138789498151792419972497292364635525910286370676333737321350093521777859943558617713243530868948809588990892356315834419120403825835721197119472354591511993229240063256300441409654289548243536018514014660964295122225182517489158968108843924469746222451833265933775699650924776429800560964650144000315864947265302411460175828830894711626937861187282266161534706864643888922338866924268263547388048537142591530944740807659470642203082917190102703289564268072174513317424282210626055423924996863782872529333298085104184298201704774822756031596256212310940485537814137129436998082273871267904737270645272299872585684329671564516368370803634427811345231559648850547195582402456035314790477513167675048463998141384829146923297075129570758639982045507452394561204453591248000170075877494911086163904822958487619135149243769159413343058518258514704707801608421794762134392628759035523147316330110750143187731032298467309641947753016635904295084000650033099132964030608181647539553012808370227251978906647895332419589253605284362566815288405247029635721129992353789196077390165586154248292649039022271192419214553188240571944626705858370369988325846737796314377596413305711060413631499090188152735144067725364739440468524358398840711342296195810279798139156077760231567300957617155604193545936178413687505504832590471501270005670471874450685717831941829017351218442250370185384083035063421529579591306098900126482569309409340543524611935042332686722701374671627005002932215426538551836525705262654922506304521854594075147526615261799716504263039391257365513074844359243662338543912806891246408077247448075570888999361632610452116177115347484182144637778935323012417582587606529468822645002315422310925925058698440639148141698138943101048356073740025285153366530594959746979486313220260401639804438390316209696750155241461638484596839675690536992778725075260049105330306937685480956885233922076737887302550910317783169163864898467026130119733233535341789426585049823619860007182335046081850103327771536137472914679395208372743135326897700090203776921677340950815889834856681753033488831245179271136503932928876425945206978420511132485999144011200113051063034614248459570347692269609315000964830588650476293507167277644423241582728887601852639713387870022636015851148713174184836089298294816588733556710365086731889307474347198764708331166198283960690220158620272599026332516387781894099794045645697419616891291439052018287179497250918905812545371871173450842677059618253242299034370674564989234864508696586376573794295793318036235247717393457788736814181501670062783510720425222324507596176082882820013716286343070013585455957031697901034099087197221155857020799072017359429185722265744118441580690872085618655770083767887899102102639539053800851994273557870682105982763797219254219779949305032685398834809227971836601460849231742482225838475194822612588735094346630347116365475082601790344251903710270780937927237631610857233467916293945897042698177744451416490399491865192145593911867912640503301782051974607886942447905176129663898510262070847365282382523930112277806182448875223990291874425432171464401046298751315835166712358926480602250856989374977603328618127210927542368309843170450400183477245300834390935152757536897393065700770519923750138210930390277522043672909184350439346976907404440560837296317980472403902108053094728579255507258881462388344544459251459590861020644100003743591751006176942239171208506208854534655943064195102369406250885415004400607264392549633464886918643292114076851051534034422546186438521464652149389809876839354083966957728616815091470601351803335808955743233548840320531514669742347278447321688820427047361169818950747022570300661268968319965059457463649267772131056446664380962416557967719925484941950122999877256468320531790126925236455558099537310755191323760764413036965513628697170405352286177780815670170364668735533700036580343685630183204751988069360530038540836867150593666185620381195699844669280979651471795173959602683097050905928541805876624925606340142510600108394015913207098780185607794587365882886550860309169628503552750545100550789934751198198748508546075122087241856280481927502938158696963704167994371489608676122581735203622290762975616144407234647337994230672938561502441604092794331703951024426875198765860344777130740688609482371437867989235757770976525458642730344967388259276351012698494753840625639573533322727002862103811498044261208898398779367029486033232295033956482382563294512985519326548352591839548702062142339508124359795422758830266311304927503178423590352366153415310661980972491372838278109673413802693330887274222472377802248038354928071737284380547789523180800058484538195832213307032585389625059695998446359971200278677216302219480540024487702454968546471003756527002401976628827007704521255979897514776869238284774596162765237048397758088878793929148457344048739273162133882318879927750376790626292632419517672520530379464053373421579927567459237636590175135860087814633548585883758424071753799130477407311111239670721768258061881036306080274994682495125373490671470669736728109368255609159818766819202809294843331884036165094766534665198328345903159468155958391446888904922752756162368090379144308685261039881385097876510265173779538771460586350363149579108973500076296833287537950868588449108026171941552942059423822052231959086868351699230136716521347296464554191037988766764453755282535387355620953804150126856185968027260351406732409747564986109236960985370965673544982141080118356614227058458929894007861445428160490438499749493118775853296122715902375782302970065402289950638079111276559322898632618037953172914378999286840524399823973207122187915805075157471879246865194275638489768265209528300014459703807148632382749226248495079990541825881101614342297870614962339277881411096616544860423424639876348090929235186710499782791829400653993007914843325452416698060927702131938358488561729187445141844989746799874641125780210746327526151806792369645752908651739380932412143427668769252191301842588041109954671275958440859034256982060121292944585227133176265734636364153834340167431164199879329684370939528485488964399682265130395218050138613189724057353241407829778787458975696151508564227461046517337720146982756067314209850279901169914268774075657466376827065129819000856191884207365964468532478332688084826909961931577928611443200576298950164389248047896481303936970833989808222991905183712943637214912585896306022535495853382003461410052367310260448093022978784380161709897224769704171780425087311943056979632071480135262402060361064228451471010156921277594226200987561387446421027659316041501353163264753605597449682067860705262706770559362365099646688796390369352895873288414604893913462035149434623722630412248849214417502724841286395345638922795990257280785501024207450852991419995230497235466756326662405308664616936604544095270763258912851320330192064446146294342850738358556686989992858921191845349124699814560373606231498740509313004444606241766456553136599374278336615189509245268345780017322244179949740388744625820323502755530339324100224872583441408282138720480248301222429496785839408457756517070276051102539490571841013728965200005028626460736783983670942895422380088701997898330621321171609455049259749596149143875003197767133182023592888823471933036634442970624726317584027677087163310790184221676550825320080911603454122839445898690792397912345976099353479800242225017752030186426298458744565045562498866241582132277354575596116226800295574610272029495605141844257656752258902475740860312932942307685655868073862090431611563021653176277903150094504294114505685530227447023778186791968132824511234222290978543697857127252370029027037338711358644739414406946302745797933096343924565940829585816634266506212288485563362304630141436014409902136809328155885893402568747848587664120366236492254341316811930390087536872620511279909496362276405138320374583121183406678272191111327226876785328864666280993015574219522872507033029911170018632860960820823460383966276370918090945048255560834811074850881311715066128675267347880550005757522556129398589886011450235243750210011668291991447633535955039790600984582016373975357203804936846000864491458647792764466398928928755138122775968242221340396617187765263052800397125913693350369322072038171728074981054329267355855740990118388132080493463012409522889783581866206442496136081142685924938646984708819954123419516639880159201764533798433569912758349494462966796202876354641974983574019091778203238402042037564244091973941196298996427580192031720542198161385292360597334627825724567696683959803909472326232102292299566103538003217303913564589771223867314848956238946337404186373412605143059506002786634182257585354631965733709684037949474178882205182762239710287826789825862234838064071868465793810057795276067021230884655204189171278788133510645373785202081605526523001255737908126356956850870106176181313151481254856877732220830180058964930935725720583096460339259956525506475057862035023572392365271445590939600524960456752932819037633597453680305580165560081042532061339571669022617276051045673980176467079217920809001020683678219389392870365949528549571745327201073890224119266814106252331540021476126154499318887092948218361782649896993901377342474538430492306061384943312187773947606581669953383489616932160703621626659356935228757415675472957079993879626311045462235096824772509815264529320805966178920298542536748307893988352252707613969557754122156526320167012375997037503885051176264826538160264910455511892320133947320114908622075718805070438339151104559583920978967678562488888063932012734019197910796018679279986024520573524123173659668293375223424001064940644784983420146238348292979869922751533088093834278215616622935468902732213719807160794809836848205340453223452213866097577986044515661049734168496116738474772788862592288399847239291412159297733963548910869275009200360163868554989645430182089385042852575342348874561826509463261456885147850516653780577922131042402009802765476866367706108360110567589922091373130186308967004839873637772369977807284060096955050041591135102974063483467209057903988366550530240050936152834629624851079235119724005423823295451923351543140253356557349884481692631840034581805390117958021860650737998829236537010071919088434152375571735446097116376878479391809392901147216520779420331837916999505377083802227546347521491007652858470523760668192559613617048468804704404825984885842873046629718500932712692589904085394216697270394850094198767101082292370300213276825303582160990814779685915364296057171766892962932696916092964504960946876938744161621040976443310172456968693271008433909818740226015987431065030907577626974825669604506569490514487905008823181881384129078820855098454762412445725194250181818999523601554271791744089227976561449064696032858799208496201712751414406456434776693931277059270346346306430747251781883008374016690183491297080704967098267464171634804635873582673245584802943559108194229672979694951193414401940300904641639423534571855638449611449165276451698214811567354711094931134044726921239832931427072789361472909366435686073603994019089041422684067273479151698614272586678894288289475939635210581888609436193661220958896371301271470327188314611101069036475725355533553115875699517597256827133076954538648339572527218693214438095711463108713558967043592792844190716846713619331246574172406537851409426923281874079476667089381490565874754723947612743322452447692190581806219524971829085123558417707599183617355507565623233775630246578195226805245244671626162830464792523305540376767058665135429578403328065230365466171807705498234127792209662824594622046202914685560774620325994457243106281033530847977430856204816884975124332487869907539974125011432178145744416444317785746819499607604343502306751737176327734794589160717032645389278516767238148270251235138274514871729114217399092856980365752349699236090621510411472321467377963248902790712234817300747468535403287758223108373887778458141308654511636910827779872448740114050282097636270379673977190096853275747352750154699170357538041978226377299474310903853239522665703801011290816455200014303589761691964619665720329611232349661081874813271471804240831194261633128745981429228878288394795456747602482603355069273144327010532309880117348812387355712231270723849333972835791299036809088443361384999113952678624679321914156050168085812406249887689150431249182287229375027669073508914484601303132635920165731073465761608555351553508316945291066413489196196413756054283583299026459032321232694135790913161169154485679170839973741018914109736311321576794967777433020224895906326735291100909493945923154892005616048489922922573161288462150969726808749460670622377992961302812144401283966473852251597453263447077072993514848005702938754050619002213118992713508220029945525287299684226628720490677351346599200482050428923818922927792681899383924466021021789873034370948313114271673824262236941291535446164029779067112928237022816130849040454289951584174532135813519636827142756872846382518283523781748615237982632442313829551966232647427386582475484673315185418815521973207750797480951699096536384211347020347748442071894540038210782738900778705525816301902643534555162894960210799429295435274149354826124896217077912521441847361189841764335217455617181670662778308557699654375488307897417281115529651717711126428410184484592833407200183920425726188159306390990631133281866516136059679298088120627478023166987034437339298817893253560397125778627133681846587694518774950378118964767074450321058321916775962253839860002399548770952086220179381766859691915861222812017799374774477977862154507122679221189629884591109569299497781180215920318465672847531703866595400307296323177777603402195775328135557463326646135721402785971889595359738733662216197586338328442629657549087987272474884457695889037702392498768438252374938240964399488246472169937499421505702229136306506265870038620031824434873809247664296773388048679322744113126849222596568813072536701840138257734739239504543713743094310113224840114775858196650562786987236847434498180449827795940907073901263074348832760375205936648243702353162172127375450402624648682667747217323554403217149455395000777025593827613592489515263855598334159082111109971291143743198038628848085216172591428833571158413863916436402823008523966116381777767294712671349884265681408282123806825664417964923657296969799918855312546291843755081671557564644742101156025341663301522720644024923755037875024553937916239969319368755604549155071904639290452954768043750939319717332296096859323797180146892493483727234188490556470293494389637609897374607082567508504993189016523972709480717986285895361681377743022375683859722725565109671040081214917351029504454505845444139369864164705739342308422674753880335777425740595780402455806417268808542764402496338028901419612419518715026234996580053399499797352659967348688087638020262176478688112755123719903560130688281008426408404028357944461036845045218154724189292548083151100758687875640035805280474848258142817674606780107876169743827954535251694190223703426465171643332980076660091152630333281283405039333513566729743997698120091651922111423922830669564136179915865485612655879442559437486922707760112170948324244998615742746253117928468363682749149657738643055246141679719117940164398512492914495220580337151170508278645683622780438862622472849953519746452261124212626244430639348999563106547716090223898912203216975338310238041529839572903137212608665334207916224519088996783196318532448607367545589434025939168078962846825478991245737889515378986106766864398496845292413769589921548692940426762545542344684795193017154287588935434842598676701676880264253289546316699557025430839268312419773890806710404733581220981212631641345328350309433690382180848192585912996165829055937519461124873932651217933337384465764352226692875115724534419070084081913389393605538286488871853312582556838684049448267271749999222704949791204878832766833130574966362769598472333423609903781599352123450755236793867816055302528362753192207455930020800831848136367517307289421358696343724503076073091374962811512777686925020211330990995645740806116068911906234668192192566524141413046206995050295638046473596329281922087428518098206756050798215820332317170898668133482207133750717059617075047011520165193316312717058660476106179326662374434204703000839909708242458123159801762704094445277746747440342083785408388271627281462410413258921155300037601853239118003634225817116736496276155898486815143747736467706881039516669961055124169493412129878195659126687456300193530074665342599992366246962700313900766309025577374373790750000605458036625034469883139969740551256475091790023200511761398773996810948196176360068075568997215812064137802267870271579177606515556722179526680144336126847020394334551369751256191521985721930986890473618585701889512907031516229978268516776636915070806663351256333421924840984326240171456056688448006900782272452478439441102115172439727978370902076804587233772420895929453137426497825719933655197973075933139280237537544084556217967708071938031852338492043203901199537825279569148724782021368567455431479857743956320214695350332545376161633156600662704618333724522494596861536791702046697577186638135817217767774950451718291966189671581063778717904272056251991507411577044640400318748709710732417771047208962707278281304656116496165851589458468576549933783488569940946418509600190336235907537220181160806588706299182716068339584509840214548829376258115737593734979567881790586816927978244130129754563831457207974752735011437380888109734975437949826397143950994274402177408370774329934838004781228395448480696204439700501954699072331000270031338969985972698852574011446631722869081326138872085432136875154476959860530436976433576192565961841201304838585557470139596885805263484070422993500295415862647546543912018348538792070173611441878861582922874925942637601480587496853523344004165893033317695884629928187243956714983450099432758747545205729985596277484596397911714232779756183636701748541785957735343154841843867812576305466648876896390120207726019520387033124381250779775515888875927152502870481102188837285334636211559167370528926432072798814869301321127305360046912992546487490700988166633033113333946870477305733295839014967566452833926002609057194906539202078949447867979338225528824257130101415843443521469044585667581320631315635888658765145767850460098764252314118390447837940598588847186386283664559879219194982339885776180649779275473715828612067986980742739433005243585902205344276971286037249219764144202648749349752419799377168024639114670292886412198197327656159279140525947089193659916493293139703555170541623165325922403438704437577958191990273561601388500622913311005173482020189008356682974283603200906040405143135408547758143071187853239999106524471858143201708739869576573611634268260346054241425869414919877983574180668977262952773071927441047149087462522634808934612300789315565951846151592559737691400595823655402023056097097479220645771945233969947552370641335618266250973654581791110827237088358422851301574023829226569305869205053401207033109148308305757552701009327023903091717174173543026809894587474924335740045793785986992185890895666883767026162475092315966912872569737023086618282049782794916855819463833690472791393978410576408561866833742442603743289944556326175381865031952229809043545772391024841165920096687107417439859028200061890906152387282564010641743134849231039211016290055037785023794853842405937082396272214352064096413128863035402883530329323605564560937831838075896447073327510474405678483911029920228138361377208471127358832190450533561332805148080123389424419180793715698381655250286992200028323508866109543621019906664541651977756511769800565762308892751193108899419768104795951368887012483775680421419706410436761182994662715018147505240934034660389025356926904649749556631592190302847293121024787396691932704350953558483633731949979822923144100969056363997071725295004719392546855541839038496363595077751505091245974021795901808526371289260287443713609492346190106161931596839162438221189598210973333583730258628342647814291858346212622993513699798893848894992885522803210107189994011838384454815002960322989552175653456403672611020782900827762640312053414185526538891226496333292654892256412663260127603135827411506865839479275518554291510327194242121407807562906719247236787889615408010616480377581959957958330432254033351850677227477579566867258909303791192349834725627024271870865586301895306675087379913460128070781906289909260247636275408896333458265511791806654863998457276263643507156134328708457618100584926853358924239492933859475462803602090293777303929983235848845570602806153182391312353409262492942770671286278418576611411376137873996186663897849494879852259401200812889948972590552749745210036765590164911471041686017003764641008080623776375165782090078417464087884160661596930778551008386607895736459949232322886396484073559139823906886803958776994094024387562986357931389995687201954212209101842479961547351833255596009583386355495370738501094902264054694146321697678473764318792054211228419381042246175802142720796887786302621238748979314158917313181802066304312190276171669193883403831078881102439810923571147546931156634481883632929490245394119767131076409095244368476841488958297148538536511970015038059697917513687729851455466273226300839570090291370682457996050087115081254918354286495694558372653651266837411267765861018863021335750626695159482403326118200330537577041258840364721900628909553468637133715419816691197919930202979359170101325388307708320632929094267392804204105766770846479327796430890442204683564784344708185203810131356698005692168452843773382584804388691644027841156571222900226136552860021555159296356984418674440315515543697439460458006328683233324235611191191032638336542834739195332189212187589486200929310455801473522638808325124564200323973496752887975928909545827794783396501342096810237630760345587425655048543329209469939605845088644581355843293058393186845721058367782662042916229945060472105754249893644116653237391328172690421050701138141656242327499803787876488804894110978024992290932577044705155035199433220052053866881810959772691697397062631529101992165759404878848621706082482915568578906256098073808473618610722273337420725052890248438698413159909972455300857381596876859727677901756881474100944941911667639985554199405917517935164141887945675885468634508401304222373712086824494480152058967026939009158659797276680506556917198048821137847931623974650175813567231198062410547716430715722611456549341282349701552426239508384151793147835365912008916845447940625623569587510418373812359275003093685583532457394966176769523164571231008079668096038819859020529021823891903390927080458804841552593390250598055404527324936752063504220647424968139695985164844715337637809200355148027962104596002287549122875510339560786757570966233025529622310297107659326652324635584349203733610737299745413732376386442369313506327994052091299380918196639736103055320708374570504721897442213464885179152042268037916919975316047984203044716896780116006403958360692176723540970223917475816060727289782281353998306993409988067219258804412565001743077036514054848658061898569197549471568968328867605669506377897486084319425799272189458745094901410057410666899108920486693461436959935836171323611221196632521949896416354791020764518987160047808166133262914672950778884391147628210666872926840556855211550227196929869318373568943785216745940289076543721363203662746880395060913603391470281592261827356837267671565884323728723770924952380231949773958658790779945357398904058700052781426338769834135042787522073637214764005343604879825688456718132917583845735932750166541326607855797531070011659611692709454586399880087168058002216953191646859695669513159165869588408658593654501091125901202611277889432687230512064257379905469324805383869375552062110068289482686921026110524549997553721162622914365942902455419936540953172847676287678586830600316795996133233932952359445771235239837468200937419423763931298348935453505459710685375392838287529565574446287362497327255644964848313594050298962968822911739224702071886582235225153398075000283926099045071464833919894573921000240519081461647438289942956145429719781067635188404363269085364827271765168804576941395167050122012418759135102646160337629398016641320033529244444739370291029898971651066421590875301539595641240641434108222927582612205712910424377507909862692512418968836488123775987881540945949596203537032059705461539086711539069818506666162601280482029070708887801849682727976465456599742052156325246707779451770469060544666881219492043783534626242464179260415743723126367903108819847402067610110526908318890829318451279024943271827358971958161765434656805122958574784348189202418980976786216629608612588995528413657707366009980367654393075431374469829714276128129038704691358876439438767329652634452847807339424101853934847770334790979319276786410643369310343815056477761094640928026806299286332637922297367759371555022878372657220093865948435301052563812511972914321759474683352888856151277831609195366432598754254107838313567437919169893569475536488543045386272059860841657244130565366477977303331337400227561183527568303529062742532567685786403793875807119390136404342056823573222576886036583765600518335971511096985901083955907012956911501084683391107219221310153172656827604908125095999769008878668191448808848681611023026579814854229566421766349974307946719889901810070320778667198595791267060101842610871767560470407088940067816968692719860486933616490508160638353452383390428126771470810696775989642104610400769915174153739664824443693812437023122438475029497886460077887714747351374094783669206167063249444182235589464592198124527151024213014759073560529710956865377399085208228864367810731563859309819544873362512204224839232113499536780129335902529300594324881009027803838925451594676474562127211074526930691463957366424665944133136969449293646343607130930738068241402092617675250577942303709680038353689184536117574147873763668452399668454625810419325527196123492371009081163082597607231403708845736056161416409151406474211083897197220507103331426827756471646664220430336449270790430454379057539359597187859384069131401298087955845959922619811235850220668191109783673478484520023446329126876608772386161487355267128541945385552833718495312878941805126227363642139336330324972192493484112070217240536093459954051699723665660062831959558986127184668382323355543766152803903227640032698558354041210306408059472827879121753972171395516022909777995700576350866748177299579533155386337497171040519308959033707998639062675578232289603667727509549634577093673223221902789079366857464839017585756467813171186865650488678239536971961173179001050437225753269457053396187603433166110132292377940808211154532622168051042600863659920867163756797894272968063064254503891149456075443252385660263920934318141030611764967389816918753866528777984939361649227488124181915740070932368906700970687067362877666528318290208650453911778862005025028350314684710645487719016805291587167644195779635892226056234431533124580637502609015503549555849458727849003475674849553726548954001254537702922380296634269464874463878095555933631847217264709401094460257915475463089789049401979673327857884586385394340122808771006809368090658467687951509559332548272984456404592234058383329258115227929645556736952855222964426399096944738549480558585261242480145176535097260134359983603802185154578885978547341091273977265831187550343213257519714359781099768265218254882730286806353275186746339338461185213311134094109767260684826645705607100744385382384922775351816698692341716005035235782030792906945758049335219218555148686703994218001506722470176746799584663249194106440919804552641876853516759511895370114840696950254039464811081300472112319003383703105705537541547679134436479332655097723184133043500347985073920046856919214942339411928306975505970761370586000717341198974683838134874390049311031939015740887604115902468690242271984151624222301426332979245211128319130925037507920459810052968830951350150360955876703875242448466533763834261069063005995821675579874188380374424495974213535928818186720481919013149487491633010530614269689325899048264316341042234254116001152380426876873736322525928158822041314903999736202784238663135085245470138996031167997760035057796208120936318000726732692539510931345118335134115075276463943991043069618724770720752075386984599383943516904511058810161370952961704137898829628003014596276056412264635977452617737990358454296809181555347519280538790400517410720782275723307327897239478660998750690212279588092910520986143695628169983735069094320182624262830253363146303872394345260217111660580342394680606844632905023190794657381279801318739088374463597903619832895625248445908545803687762590912962059406617923611091762841537838800577867148406245056886299415823648140380364614698130866110617687563323331664651372190278574710347618658646115911442609985906759248818220962831202017770026410128839267456570017424760808677374216929116009873354638969368078642889554811379630681083553164491741884150814442173653016532081844731490984567430327448341749278669535151993553831707797798084262184617871396530014762208066134063653759995772203619423755538663681494583969955782357081714683800865059465782181570934519810931156021389883853009908188446344345369034084533267717132745896592259156380970375031669287029530282522830892687625211225891922169261791219339514025975406956644683866033792156825924566173250115020649536341815306070328012656317853284270200326207365837014640561770380258889965915532183431013276730579978908450843192683364874363961333898901743517902370363761847507608608493018288231430651783238487364693454671461495323250152291857119550785943439203285871051437880691580320536041152560448713439023896662049080684264877904676279703236973154088019823362329497592070668921452451018245105008621286016304880324946648225876899679579383818865437595139178618257531000541154985459910835661904094347804130517572591183778190956703230711732961982403462483595929159771562519197921614610046971016642855108021599435066377304663171291050279928064165149482986591176468728485658978371445336625278951996049452013848277973949542054859238831657296374940356686569063582894390580094546246806335045448095092899919117968386416842968272687147650947920436579756539869143567090402691399342997547065795769869018655175650233888324225369511044671251155172323424062124625208657229734856739273940763449620458548264341991613366946295762079529985277110558951684886980498238518434695547177773299378814702242397550441037848563498591149383797442747641326441982709198184733029657927255702339887963078257970946023932504980434517441512946713670235946123165299571801242957773988077620607071855285846691912195945540763613739326705316580333710181555413866888255573426845321799105591780250589825221908064617993520014323256268083467830331053184855029093951253102501794101884213070907962655684032286055560432990051408783951297592200072836736448822904698529515357575299317835721471988067599854803202846584608212593250137434998069226059387575851557673099715198936525763471407066769127142737193566825651692573114407778069941963568154760853716424798231607002568337519082628704603968498661487900883949994373389498937832101474842074045154067022472609788639138586561999256462931325721429225584606152147905238660870684182824623228788956709678320456398114965068450563078621545875302706460084362717825044702057469751284200207877648138968371622517290455497206564992627166137981045043331133582848959468917729437704290573550276325190943276993702526748663111597004903840902862765947900021901145692687625164592611611407798878393279949121335880864711527916383668730730350736021639903107800054204964024502350961226745590088656907542661611421341275944463678019707343434309446875610179008654389605534803724076904424237315862290797477238566721219913923595215892325114797659111671881942491315357046331348924292128473429734213232178274264597164440871060094577667967238133586585269913859412766147098813668026435500935430286715282828827614513518395558388753541637291439880511117688964189645587842184744181009432799303726010509550289093215525092159525112526142712640383219635162694470017537341823001436903148210176081212328432539212500611500299112259541081257299843691689602234651470930235313093426334102352578230652108541497622783469933213982500977083787453840154417152013883142960756724188574549324486875281116942476203145156574167552179566296705803450654449695838321611274424319148669080035124134895505747381144764573258012572048516780104272560604381242146548500752591862417906447704369150140035349581011984521183517945316082715473547596969095666847362955824199637409249296445672683892738433817412589743224828182963773503837781060726025235175754752542090964168725888411908387602263922720348367005011926446037690767464154941373407099502938293403325835984290710469372828730793970340521866825606603989602106642020933876086047958708323447853516322755499242653948085843682795449750105087646757193597027889162220051995194332090556542518769897095843012374535598435701982071930157509623376878427567681368479931847645304484484435237823313312168987859115959282172523099144657797107953947719327496557293215162090263756101989128382110321544644620103677190578412150089165633729480797122315908751800364406708310853372480495260610817127894122722572276669165850643656604725359102895001786084849486592337660931886134324817505373905641139005687933497642173154425054948792251097942323338690189359597112856669369316472148461873964113115215067972939281222980299449131130301518348482690287463413024327826717441678576076214504254682332181236891663079757416749092970724063986519715174013946666717206718680929752217769933158929489816689667578131457125684814568745896030505824261071708990143586342881668774680584436478031214640739021945282673103606042119050296941972277067843773854269724004795519723904705096751642194881316959176966695419444563029004835332899493075951166282408884953987502660288662809345301780983230302177720731889708013304506890150822718667712959996217173640386308187199892254727502426664115464575578778819255872130286509927069519312462763643433042444006707501153258747059390456971907780441716415091530239521545535983439826811666464276295607763776511884256075024232480155396884132904168597513003513905754104001533703973341047806329199725647271469652189768134024447089085023649926744490088498760288456854851536416606389969509972299094146478049753666985191478744025108391026647687882340207059826052560928914582668099857233639647040309253360889198681689367792199854154004600752155031884692310345565791254210739480188650159574087304724739436860993499351065056853713519986075453919243757173173985155505456577234953222645777123584910758573321134173340177749859897679384676703467118041526891519492548306376623249452693590720298651865108809504109517104187056789018907050245085241232758699124703663757876970978145759493141351685760527232296108559167705921144100709674840785720044895319934275229639236287411482340215918094598309232932102211939014423602872798855653343890278188362503178095952364976769944571850670058058095397573108347651573759552697689003761972415110794209511259487528607342819672287338204181904775621962995194639935873614316718918616317184031405977507542662232419770974298240282357355491357146795757109358585036855263952033242067004854702799895799499785142540056167746477900901390892603121403711044120486369290539693418842755883883158149786798668683099786606263886342818711848694696160240134539865655214302353180991886767746963497102374527632047128572372513402219547743625095931054902828104625994783084508882363981565683234720016975147148752045416470845172115768560490961756287746208195235498982681219930477985488031583341765959932891669526979043353803761897817994478370705886232737945408207670927946900678772057502795989207106455672962850817930494179929486598490001405645880182343276057827465638423451085395435691383972265582803400922330078538264986913438792449449032976058734616994116474988499169159249937030305780206637196858348476894028034709948316323088642395733428855894518210961124332956029849300536531122178388908331660954330562998389718549116297880521300942896143689379569166726587312853181091222236305531896780614639515801779396502755107746031242235143243626378468288475668459547371665476102126009626263733793516358476483043211414663915752496241126919192609894590928876703888914919193667049138361811199193938528318210635879531584934330289987277109480011237720755120571260255974630997690132208999048055373086966566553832357190418040899983550488167309116176475232288795416030594423889752822357804775147104514848369261437193087998419870779751656800613816111278731174680478687073101050413301058801337566530220154139256865142903982849140125873008699012757591308866545679122779138122781656107646317701146077103938324292782510246963282807676661925475625831315353031436495632838938410556050981831467732517238797612387112528202190087479623933391108859815305699521401860195489363726074637800309544348305993771628888027770780171368384448474041218082797621345415735193266751203212910861997057682611765945510317495164807428819464133751750836294523641572160693904615841860374242279804866489994708347413769718347985826035395619562824955034707839055223797211469289755478268039438890041823508807128531178590753534882168801386067396398134087693588631421617615498110989293291265840614096613078518242915606782190898068857855288854282339146881268612035281230485308954074971471405037468206349229609400252967078180133280371711204043315608450696584355638773305652060023068429812090672970084707912163996390254928069230838830254961243421924425194905293926765855357248961538534778488754804653593961372829955632641391683656978840976076698156941619337685757511670993475816098918696219081304075736143855617739728105369492085671133011183876059996897376577444363886676724171533111033772052562601810524854501748662135956877379513997331905778399633030773605691221016689475595262664502364597644964590757471492819995215135955056342796432838162130767711764876294510891274651945099599062897971317517917155838109726677389698056465909761625452634260182396451690712620766815069489418558395636200402331592175222480286792013710670865628866419476582057445382118532089064356832549058339923084211606255757562505321702069202886522068579119146515502548962793329058145542902941540527167896197068915696879090476375633194603263755475352999594444854487592502874678844050237275433867153687927449048161897945958465903283897828444781586681044115768973892956615138499668366440496852046299806468910409785711270434011205910576913354796160580026061520521140621475387768740086726331939398015950885676120312950988341292970041687260795176528697621915367309241476090213424296901832113762179681529876437559094892321307768230473002467165195605511801062675613916978282846373684554617144709462060858013169364706369755292860593908225761441595874780241282986693951108173846779037204974511254868556651279165085915469922377021973088944642755219367587907719287030332915967502303974368121086575380724425243186400581156160092467453104347719905374961471488372118505667722277815243987845100008714670183085433234145743894704837409811480044575519665783965655447509213780226558293662772471501098643153470028006242040831413828432304853727906307231947481801620056480902265530352876249576676334589260102542863484267170005609415846635993536524088001916390439879100924963080130353611157268158841971086257319490100515064661520765382294891321779810939647858645833432271885823567253498713454119844920571049579555423436501735292093518416621339396929163764886585598569296302614057921845189224673818439725561102646675466769125183481750598292974215823316909399676510015559808905500522647885252738555629702092250902954563129815129473915376581435688260917412727506515159812596512427275541996171890293071106036014920693705305118875647532327615395569226961516067864010974659183393364128992324854717373745661210431590601438042259109701386669148722155192920083284989610036194735225519602122093404236989305722565196648239154276692770782323093787787436926039832603285305325112850942835511731403471962345469168307382886025359579829398493614218223804417308362509563397569294911850965817847103911690085517108422044366972624815634697298887789394515957132294537532312539264902196858881299863274598335442445806084981685889445858986575902126973861147772611696021690374229051743753809181374177131439584077694563763490158746323708136922785265203214796291459409790745401121253894262645622686433616222250791870928422906800872483260754157864918758629379293964883172488716981566661809095432936224364585630299095708248731408227246087358080125402587337833867925331853720226296164006782876428214502670106256043908742740476865817344231762251117899742114482183585058273009594370475906378444478695120954025245488824520396903682081604936084327037686354692691432936037996201364074742492912703629396183101949463804648495543340697245351363421677233719134673257711329973705358065766811207033904345822029755031551139690308832175741790568625661650518265775873764120398705078632402176466228418399179428868640828576954418237832315421111726340242142509063462797264304255913036048120100764480800277225552971911532466583901781035892014923592044603574921825805875101716084475226304181977791338813811152656298501371986424461024362400148788702400401686659599162237451981239907460813198448260656002412183622090304336655369126890861579850480178363394733928579751837343421402514947123254053452544579842019061140051765283479185283423934642180043914889514148335440907671115220823888112270584738090720557499725035917413447456884485359843022278895498409466782996898550899534584984258502950113956797858337828515349205351792866013961600059937040962295122668565831339052510687962488357774075334108131275941031592809497738293302319805910936525626309113812577860451274314906560502946613604509634747111741616353953139293200783404776245164628068188125146915062099064042344395243196359203822633311158723531841511821286808819898739119530551880371674884221864413794169375492420481133888377384644843046404361931131772083844828799578532189863589160885430022683127288713304373685674337573455034739166912019425112493044830691035578221181367088386974127859106851763506225175173912564904712845054807761532882056361511938330942860709935143335429034632361922009562201973287078809386002720554331073231249527707703830526945462191307593435758149674007856426294200946072031975225977294306793039125406133910718604569803103437397386476163050127114593165449910446008456210138825580550261724265872198006401542345464597761573103876038409064412960195162054009748564953113466788348941156276796481317570922460071640673801198831115035570623283550615433391892466624541630554253502343400713522056743108019828053084756574895401120586616489258310424677169176820578711089671734166243648627596250607896357945036802985053375242797712861625242525793879657998251932600115790393678767771198683780464262167257961703847463647720205742453035770287035802235646165026626712378136406976066155310897318492510504356279285235526029492076795511342381996441826998160908123219515128248648676813740027662338160663218747124629007533733218513312060340551230008431013419398736258308922302982892295535116984088131324837200979326089921549601513910230430431557527366864186402071302599651146438545225335652836952880886930273877926297345407357153750301674533667303962718598992361584885144421390810101310183734042132700611219867918672330843892531098701966263371911788707893750310071094536560303810577437250718668743319281172709646737518334243929478157902215013981852609805190942386161869523990559097186400506798384655091191643398208275784367678541144358846199886424175564948425088097388840683352437710539631585130396366764881073356608677748695987949369665249753859788845904282519579308258462068142594616496465743893232632421853846755165999047374054011229757446095123502414580905704365981096930405216996994179952195125328711698792950156320822846030549382812586630591426972725620241902905023993124895189738716392004445330415977476834202715752410861747971396367732173892981378304438316954717008632145526560932806510506989892112159232919409364555138587123014931551323934799660020876534901629881046170453565569587746613317153845891018832721535516473802985585720324911169451753419847434449201594612542376963020842770963911246961149727902138131504767233027665329553191614142842671039626975956965773666877994383236920237541341435831585747893007338143539292133399683628067352709118681453303238814900026275481141672460742259632809089697492341308863653362268005803874157691446782145898496500134760239968093620753039952463619654986015178827929806096062516900701671814146208669416877584347703455048899782275055032904356831198524554792083151250455556637236704580835233336097660427701043323206869286143536990094277602669642984759627006561398320843774399672338832352819146141556119052283523150005425751232737279122403983159676203213515325105540556190774495364804963402635403016931580526710943685971614443013563353180564909211480665314087826010998913252868693299715511026773299512815179880377134474811775413524095796087271068901679309537360703389441576547956340020628807271002304291314306160297804853361507022937147771787407030881316957154874602468288602483350934051754327395898011278363562365639193688918637062750212159932691717164587231358684223840178890256363778256824199101262833290994551232055500810474871582054432553221255883125828405776776840108163504606130490103233057799328163358495949806147154251988331603572864777223161899462726832602748448037281070941183161936289757899250722468093711040652859167503445514704962821788591822061362771148333100160034686358147116356390906933499329250038440607546167752929572674670266405086800223464639927447989651791729562133496263295130785986701242088600982852292189041325748472856144937894294018747704254133528736358054683933280112757597303043709051372856179809579764318781166114411090858949329683639967351007132554562547089318557315602120215755152457496364406000555763360944627087140886850641079774956138451301404528293376503433528606466041264356470176029799050862565390842361874919742694574626851623618500600452321010257247495631220760879596523465868362734677707282083249785186918858733384133299393591761509927475030692803336301126742759312286251735084016957984695864004602388990019712074986733879193058764753494033708023578906306586706915257328335153818666059906538714781993878369047575980519397448279256804388272213129895777128865321670176907253708778133223212633280515937596583531818890786234267150677510498895875729115971705240591617710189019627116796825097994937480789700114516686191628850880433749537478961981361537626511506391513125141877573377813709877374418785433744939730257946278834903440397165784750395198745753107309752140488545956486429218946148079424363780845539038122407238191876667142688356500360937004067282351372622572305158071423781367107018624426375016389794872105295658600799244420862780510274249479084642140064807399723093376396465330071518236322605365212766142164821726070419335084975872696395511769125053606675410597891461480144433754661180531134316234937739026936952309043328136081803182688569282045800538573100588778419831241539428315848627199971889367926496090580840010565508417577600410120283435937477437598636866131302037133522369966488346463922148922399315298027673586853572542105503663777078853911495796531693027182905768220410607210710706375848563604928632570049960489192568907197267069874732794113725064404557864696054024578019593602472044706073164352852567999491058249230110088633136085251619229241852273489674677779915991919982732290584711076318160206844411185649193735378468216409968582882140928068130679894532990104263678824434330654353944690239757224736381747020554955233260103262253027274882131860130522429561895026820707414053322150424118125442278609932497715309429560158322541175131597898054108091380989417642932349839702057046136251656630343958263609858627126253871779022368855032552121578800345532918615744255614230081674529464915590075890252317962188844001986850622807305766436251252891107627473837680463811590968831647769857602236864904967250429314675702551093411229722442529051209673084392578090430970082729458150521914475251037107319458375201977144460558909962141432013645703605613364612060615357816533097277609980644025836307891482964817866995478391597190677509999800408396748658479991774968900502133717724744275624591387958626984488039361484329731326197603038668333439883982374560934008382954907369333869013897274134890663350799860444934018884414829613253344903982901568910799074480687451275856720916314548658074594523381208029470130493144713851187815102246603971424573015855383465716397052709488354253336000532613801166104968360100800744934289280897864486936759678594670500912492190361611386278990267723219598574618814510352371358818713128644822569762377255601552020879994021208065111958319251161692344967587596927455289501919798361508683819763369506119043530726148959638370396793539728559485768711429259185043496822758393664289942986331581995722099178163612632244815926442305295320746635346703880390516912057959874183867330434142137319293363425849718231336167474822665800862741807727501334789461072212175207347672745554306506827757411209240786509809993136472066474921640091224016324180693961590369538462147340326438278488088975389309113622973274219899269683346822178825644937157921961840117895384831559594548244095261152813959625218562249218655747207296718955922676757471549249456291906382088313642525710991759760267817323282951263880104421296853593639616057191455525189362952570463994996791283852509736820642170618859535529394656213461225264150056951586445182545926741214260007894217037653615084870467595074605473820258676533262124602923045345382473464666389243977829757639665703058379183152090855398416766508311159459975806311508816955408497062384014878446787437460574196333887507702080476339395577253546989603320222850366437609933379741965926373197211381115759721904968490078541290372583224331777639553579757680357857446490361531355087194604993678195050555530321587586466232813648367496716664646325345460933824584797672203376980579003044398234340886671971978155915092258517430283709567290053273264836176263047599589309894832200304096336290368079592757823593528860710945223521654418266954243614993971921264410121645420985822646601406772242893386438680984291208488264028777539977318866930058960315920292821164064456311321377453820894189033681152251883044352241077733612602298841828423467661150075806315506804522906496856461139400164149215780946212752460157827258184680082426209684985003360960288334177315956191082741556404498379752792168716582990571926484999678488726210188083515059109637733645051051454972450355093670969505201945350441704263896183956169943661966437295244321059426608738552639207045540188558378295908089975189021752366198635716920872976822487592186757384279541861283627674098324441433881694074996341833292968843170907242601019896239890278421066348131931737800598175236734861181290461276311051289965510013264688942088442273577923802316871884595273459515379802070202869336905866327522103715096680076054696558748987870635826611881466977959857506333382717569191443132796708578447574598192055183459928242324185415478853975177782167903273978748122475263985708456538067026428936274699268776109882171593026137370652397012726168899871786601594744640205711246884108207870549518526783564381668706464941360005375857578942153387191642201706539652740212953373983005734166785365540555765662852019083337239459781871273787473878107055729909926295548497350036347181844818780989088076206856548103672680598258853861199262104344617182751463339241102578709115528561315579259727649933457947113911104655933881623928888606830477457164136550550062869011519501040939857873865672988845430466566025426047064677963454549073409769650648301552512429290618077119942547496319386539322806193135711337624836788415889048086497528837744173235677142193116150935950314819161552065570670235349205060730802082821849575796556768947327527203782457748576449250910807272686368377508736226457004731796782613224823341889657689239355318386126392260184237296266605394794358871456255209223353929319869046640152175615127139635095756922463398353030956869019926543896597807542597503615927800239346117134401502569054625582334712378783187816780529116543515510989008232919144235102352779488932340543712685959331134218316390836988437198633892090700469353571724675159942755518187011664236690672167016108679152669087377177123599666916940358413781256197050123491535227524717420112135956267493609364570091318791878785387058874061445630623721113452929428336867274819959826703108511127650971830109399187601797294536856887020919847435106346895128244199138510238147457090866894555200895205269625093848978841129880083602062285870865933104256036480259373551208676233521470081666381332438931613103993693470340879113407097603874051835111928622520359418818772611816183505471291182446572842966135343521976659760599083217868345247991697497716472730164297076871493430503827698196101549119504284672451067575070594282848130320150135348349531793785961494441256001942209484863885107859210311681540411650244134535220474879184507574163856986354012397693005131699394938141602059485187805942136718874722610001512718776912033601070246284449243026724339163062987140012261222164234369643642614694253568707403743370439355286769288338080788721807472359527054112571445555371596003208739067519462279980587382025065015030737768908640953548186442093552983348782583722872495833990077628660476367358253307704758694083296369059865705080191711298496756413250796146445078462808152874773095803523483976165145438973444282340572835564070247869729951173041672186436843303669431056990061741067263127845243761836555655517079475799895691583317554356366637563951970152635940802017533481314747329616449845600395885064847672611225260482067792140633169970032392561877092037645091558066425936570466233240977912193856890896570091920812900059147465369917902281250084264228151071040186642602220101586501499021457160203583272209818489578569226661913866020968632334670104068352118454365584470059301063263182042636457767874692858596835329041309892170061074987546736350791769446206525172634054634408122420336661301086302639299926645745456601527717755548901867150809026673918953269273421165838403602282350213484145544236547461695781204210700231785821574888431880060301665778350199517925956923034918357281288547579007184816858891387093618070853287798006440527805207417544135743990658357431678299779939913373640942815642128687206556608532666704256607847888429172577261736894546203764949328462955253230790813168113990106000469439712805818662911136873096983055774340277979167435336512236294235657765682698558904858457613447460793305926096397213531668984722697865414003009944762346553542148726318906815854295119241643629375433410131088993111646844579748698274932331721722358960878452475227228355995438734132957157156054253377150492764353745265706443448683299769093125865057175274406555814460188013001376438741358356561642568952628478808186355073365129314142266853018698539942291314081928781672068620706612654191650444944357481787750346380027661121918740224999615421785950054927634385822057695996630520591782626887407938750124049858855985339255172086677643225101071098211214701513964294080794572978209708188488709994954574857098196642206611485473975943946873142708389400247144308021431792411846924686981912128834914080247136532655359385934459426646751274637216964695854670119218295327684408110318947135752524275810221084782970232606529751553909095609279227763969901990387229453711020955600989637308356127515886219173320777255535878614300397937730014229682942932936292218855655567334261713949791891957151231974482278377411541082920352627070649226554618001208295395196696610014317912011833388003272571422269043038907159695410031155034775219825541381136238918819188120279402952948855614534803729610055984368768362349546170838558754336566707106071021578499416659866825700427922308273451685165183251133054646076061497518481243752175663556218093284760882763501617096231258011384216105315676267879556955053465857784272122355422084311641364179966615834624612671320010031589385843428949672233262745792930190228910925119015643493990244936708495046011540733617743043963952131769889632184667442390279036704171439346061217297534607327995874915315656308961456694304747129794967660912153956736440183252114193492685174466725129675748961579086974726347498559639894537655993134829449519093343035905508188278639412243864982544275573077496166213251975474129893111079095339684756381485904715197092653229215562502972143472248743262101116229381682096195094829817878824057709488785557974063703661760653877628799444554327303641796077312302715544356227899305832512943611229533865381499200333586361309054969619965382735230169695535729380018481384212180860359321109213471520239451598052507739574675004765268883073411785453994750078173555295535147574556911845853370464906518329048985417720668938118414331156962071139040271604370451492832412582931024980244708895673388334821134729176674414635556516741166998541093291024683031414491745140126963477937708176382005544426664405269070764393202096070353975413542610204008682566512531317133257309781282161358933483953566371818267823652834070348572213048146205598386354138335960938564844187469055210131755210726965228123318374636748668642197585439137061751661446728892549332040813444569987966142643001189218752562818661706716362269235266660771321758939972877551466548892890520000623610838157534935498463844422292988857954056576315444326429880728674749235904281753268660259112925294030734551551153913633988340827193164217390310887219146695728907256850621053584352102172068708576207146589017216619383453454620522425117098330593845913795869114985229234384727247696478691706879462117753677397059585855855230035361764599252149653205316207288988157187646719135130480715431937693975280867074905086854666925345738652761167353271338795529236717923758307590310237526341011148738249385013542625314899357348338895577016079224107907174380292619215387113102469709190639831170175929595610564402107588824508449200920476504649904755551118749248914842256342989832274982020296478048758047261168663109976337683620176869005442833705071557953143378379357396967655811868892904562652176616010460891649147009150998273856557884492443464499116579416760281603049705128892829592979531363011032734427642361438690555460082564267063751919488283501532870038431252857883002089185401344309479466570656267553498648689947202285361694341538975399198054731252646449697046581815353596554397635110883046837127753874348863504981293654319088234740104050510936073482965413559987050873892404741699621961620584476943977459257936794806350572787816075175240320032672989550084496611605130172070823245714727902804779021368258551397847410637750510138598190569176611194709930191525490545467203977105491434896370753999347793353394707863389309603055494776083652157645229396063695719783810358252024600822248458869293755636096376296220628254467814611431045106188120739030011335343295882847111655900599560936476032167314812386729100609393986931569648912459533838773167014400533956042861040720119536847845654379150389306001538287936133411356142111570428858726691180942878162793843306058327798431379394136462316828403030342970099606895223258387706887777187331621683477351361419952218293807837047775751788376644730531386037985524135074318290603144847032251135885475847070364944209055106117749809519588419379700328326324219668919168780410218884588345926900024769822673916026849999642784528354104921703726308335856748851105390697988300640188454759728415924559947336877581411854664542660167844089743762641683397051659416513966337810324808473997116151689840505584645266789054502455633031955249575630731039130468623061813032127737938398858238685873640265099639632298829154393415205698579842373719993398828629406108763871548003167962043872842782341946433962642677575144600499749251172937568369066766494123884784654428587772208543936397158253616251936733127286733362180932348710215483962237701973098786016506068608112769322005698250533228588345398288835336413713276784472689072954919952965639020009237195087649680421122567331097416932257346761100551578490433015185268462617413631663937614018951567876963388664446011812148666701954529192263114305948391327899081975248421574410469178186078590394243610311204343558217981479989995820310322757083457256308306592134446157366906214958438053725991367537375661240307263318044009676884324110892616245112074188107258987358499550705154814437437374920009973122113612226070061411082809297865686805623340738088984485489335450876650530789308143243153399613233124476631381972181327393310084377487725915253083505002903101933002017499008708064592873313208095653019682174117748539091595587126367362884607306248617310349094078478727694593795120036865280730937733787134571200953768282047328250689168378795143837380630660691664962573767193354395510995890147140130652278328503895293236323980016042791336078698471857605162077614863948951745604368184994206535813379101751663713521743698570153039785905117610249235352381958256022226197073165350543758764444568907838860318968318124988754586050304745464302410489292701153666590020897616498162717399479505995365827493306009246348883195914963743131821156575785510694253791841337899696262209119068944044708400386576001695368138073600962909993726829465814397034552625787524897585163546781820229603609620447800815013848304782657261489637967924163210277260807977251425741670461217527697934053604428780098385837460906710733476681541693715792431459839337624117737816074883186184384842290783098161474868492287207786311310336141786401776677014708738639642351969286075843324376926564320503058654725158599786322164982896488120701480036085742450707520386396401003656903678240517078760388751602712543739793556192318575200359704702559816542234108504405154211253515222699202308496070500615105054134311636959616006430562018962198009249602089027838559393165523064156632780008509129079475991894533890357678206569685843758210091794851333025146864773302327143390832245348854899660722250552353044193830085040675351052838115586848888271949112302181555585212684940508016945531642568300420566061555231682120463198405009182864350967805141380363132846170154883751054762231533158091262280773016793095858928399710476065769702665974295195773063323667776052610566859604881138463564530641891676392219902388106409662762171223675289477923762534149048379932930848751449449849669077059869130866135953357681244530152393739820460474258368275856649045931108353284972438529193047787525239120832196150053381679717702130875219734883949506114875399055405820232125863551246103759510547893732653738018482649729500783514334870532771378420919390262924341409178170125243274626758458623355880000508828088509325675928775544487948881704435789510044064118772982749441168109739841037627049235224083262787960561355033102628295072564802919773929510963182342238129815241545290966492942948655506425533786943439077613257748045703861185847719907341674582089539950655009121474114500953050393596637753561041677628016377013167505262943799217729836729768322867821881567839810522941999591196253930530530214825169745208289610910253662287915921656514548859483896458489638296360514971263414559070754093848989262510332373104036065131513532478365941975349869381153250564941909752161644419291557950601211866482734449254211715101053160739379279364957259587827039137671086150313670066076602066268077244173120793385510774360702105147266473240895354835072105780503160208929696953905223249840247329570522115661307174440410361120870482403716490087591075208037658162839794399670465934378522401143038069708336417447609563748700355106014542258781691344849224422410131306349947091380295565158981682652803526369709051818914419864621568013046698359516538909617837892083832146148063122181981809420479435719566441447988642336961981650605214664993004126921068653646773221131370105476331507517710458569798326158389632447479049045287006783711397946771483503424345572894121186953154522712151134976110008830229800208591357385104666860085766723406145973101759917463531871249072854587082195019262696672542258134005752920449776401422075079021458451323886249771826060411587261907796824178833042948831915592863144405309013659554555853517569369490395562466098275232994887869925920015284550754411803003535397779687176601640302735546198196154016702303228028552940222292285218247848493707207282523244185213925563975841011671345522358215541224297282245175140463224118752275799531462087327122002033361459462919448611158192433975242971055261254569605180347552313528486643197107368939067275786958114781564292933056162031113733692657191475883423062050520467803357643939678106102051140620424695792128112341190353829785170048936769584169035781433022957299998500256665763270252401010165774426337321794567387155823800622149451807795336684502396461083955710594015792607412159457685213268426858331476684890697145612823933652060261826234072602543846412450104157509108185734319552365879187221890000119407199094460731272320367208672309778726581470768743421635267006733009654698079576304123455663606130139587325681110999061240041773353929676066008541223036018338936614198585426382144812394257988849640136195091490980441241829320270418097121035125864052375277999848615393709656051325677506644013545607445305218390413646247087879638183554514183048929849148180408679107071835669519550448975730695245609638245600094598665758003251934206661676190283707462043930958038867716068802820196014246292875465788107027747494980263242987593659136461939219380710721637222020377673854681656264429885272515532151489879674573299978684822533214838195658387332491127681942198249032995624983461616232891112010978398646812694023891843849102814425696831222243727978287418998719075471883279536432763309181855492026182559501642461884449441215579798399193274786945730014016508969305098660302825520842998060153992563026377504132631274089839528041130262488496497861454026577658382857543657194247418586921464892021034802255416181266441884755520819006904192051253839701075180917134811240914862941699727522079455023508563031909252874629344491799402878199534155679001189199373322696927080000608045878359783496213053899014199332595721659897977871466248460854584014523640101550042991060567126388204611711626776018369064887880154972666777177827483118515027912723259128466896848596987168169445629559268110177919444547457085827404096690454359411744167527923813430755958446269887342176104718994344485455380002415831519152351803915353490140382322421139709398131547586181839442005777947622478131478115483094240125716501340191025045806318663343567505945136714102108671906232079435780905385986615284768922937211980896560988439547839613055508039479438830974331301159071247345391085966880137153345349263786528532811634225291307292355279248214127916981578142429828486080078564185978320040191010735659793886340463687475998956465843374319355524461373202050147140072349989311236303447773685326392474486381647364556096854333672919290771191343254324833631022850779097635978028339249791013285191161303885260709015793547595592684789054218979342543817249700816757072365255991556740895283116309902491626345692121623761776365082561623402611423199069869496555475095107590435684305870292841451706439779679716774707385901639549031295155153675821009689722468344583870192268170804232731195944249629698712237921734790909114571191923569933317044090556062860398548523568738260336896128978510263313150287774114488164646004299879353111869963521189143527131551186311858787513122567617783258200446968319558711742594084605091128323817017989120614863812144292035770870428515270676085385259560372356317892515138571434539593954830444646761821869722975228913358269542582951234718136338486825529548748139197962012304463797306638976336699551390750222738136353727050200127245873109241548732518192706931500673186364547550823347668712017566650468291897136685298285929565582412750295921142381238877350745630075772642607812996861993074970665701629694193665631919146996610425100360384459513228351994422615675639620442229268665235878693474701044610100289112566154843838376330002574698422427488242951984685614633694455550581459987652444239272063744028934714670808905899564110716976136033339910535905521980044801776752550686685436803618601648284972944704056053791260157227051366609044554967554011697120791761944870321901373975448493165090200519147214276632378755592473163626461328916195254311182669081263318013099580656809360409782014424715525971618538807874549933892906126870409253516799432952296326324655710022907800451973286013879151516260667972083192978898297314323261268791982386123629152569792268798766155978299865846098303726471100070390195820108043477077931657079714064072404828310389509924093217675423226052763669167692742565524782670328815221141608273730359579274547047881361507261094853958990362322263710673478586457574389458963854955677424467305294298582328962952299379112559622630313191424046512247969581808810793596238238731802347070146507905936052524136406308005930058279481097376665202273729174589608528424381392379844763025099079603460840546428470088101162813818309356139486347279500949708178124243944868505076396389999728272829634566809312102055774327065898728889112281165301621893867053258553245747247332162782954948578470101574946041026575701074550885615394929937549117713679457672238797867633808559422604901007683450142906239583588674399687219076850142532628901989759598850359709660314023008041105103295973056317910206315569639304086433770152725392308137488085008702118959066860339621513752111721350528463826483376682455119844148913515597376510115401714604839541810096832077045085129328553503494105493790683712434333198888110317731693144878504024237405226140418445636019884733061190842089145559388094890860214851334671406147557657774119697763063039884053944841068851145442140753869756802490826815725982773496156093462024899561613744153934319787445066910891076816932259825804742547177704562688751712620137715108806782921156803259132450624370050068578319581645898664105063536010177673446858968460825217405502250885467688953919202558894121185836227175266084177254183432229321959190098905331009481007341169641169965345330267321699795752978816731528838014250089044065955204749612607996949267578888104508776126396790450396489277697372055462207012209484761969084490996442892493623574576038602021952291512733079640552414983599526403525379440619462465839117371473719187567230948761908775794918136305120897410680676133430174589005300356606294274351726017503694667897297304567013179701455964236670003594647444464346666010434594156865576728676215796742694249600099285865233472653763063192185904995595096633761922740601806874129879179669644500869565959215418871447681041494910527264604639386701369624922521221838184775366144772806944006052356958213893765573231839864726715456696259309719582886134668774574907453715471699391508002110678685178086018750491890580610380445349588132804077453331880897655742905846901988161561899103748070330776074375245422047686567640347890211563418392022524402779130260076296915495667315370051519857918979891299807009091365462719944016764570547353295948973405269158869006686889860691946475301761400888259191399566253228150992522153809885240306747862865794349699368381072622553124475931404113014593559922935126825640670369651559791673345796789976570652521502171374154086058885756397075446229195550632096614056171665518424176812008597576579092654044136587566690524746387406189827858331745675226022932310680951051617349434095451365920565771731962312552060323779041122994430806712478191992370836212020532076453945749570345763896878249645039304379795035394182982644936517011844427065423966920827736897285534404150129901828938758220414073146162453163664985005587161158542058112898155047083897561996358415499197326159560786639495441529561141954186784482149107231123294671346933122471599129337710432203836282899213722828900034160552439925827333511429893387335753246138806984519189069238184646489945336271879935617411791839135456135530002194010741522284127540167022771512159205391167807026895869611979805300464307558832367024799979249488243397389287851971775527650713128130726483448015680130947152276111864216780913244152433123601841503454975628078679884200631656275965666520459350853868961406264113100789577176482338802724735546561238610315001018661271025472088949863041363374582405710265673441297581238842796535762268324903582400062765601805434531944946445814219117308403168466473750529771120182642169077904263296526894913616936445610219733087918507887897283411639492961234933527450349385614441658382270645891585353447816745108254559735640248121503888855660886491266888802979584373051922788776209104811238503748828359422953106754865117803870925243649425516279377580936357101993093317233195652218434086429223478984098222816399182935536944591791316132281349682917291445891496083891344156153775231031242417330197418315803651933487832495635067830539557058296238573050699232649840172440472846760025896925521928534982860050633517416146658298887485325536542140731538190014266721881447780266281127977063983834889332435067020332580922756492331937169183007381066632573057576829034021333538878465130977227090470734970165249012066953704961270569450057782358915664900853064528290680973728048648015112765555318853692013960453126357877825975802605797047138480010909443066751587177212202614306226746225240233619059270763933291673675104018477493658871633725458363821260889622845164652211019124671008937407682281138594401506585425313923522081779101805831790242608651662489918695576428666310478658565105380183693390757736830527821672347721467388131379622243248545973726447683622940278899186665350593071042301780831265886322856551208288294512676347835081508562456385192354635534923758607506299611189758496210805805544808511516052974546372958165111333712363191016068715068107000181856471950269470849237522488678458606253795811530096706141374409803968698714983791733724233246544635904640972520690774194229708464148072226860468174799783828742957641619219926857502582631937384162843936383545299203680198047187412801048960602311103838904016426283417784478561886518937836389420998700263079608204270764340803912632790504614666727668118590072706434880930276939120275845451002027736345563497811376009590116171869788125543045206084830394905173568805677283364574964392144481779189681677834628061438473263280988632357910938649503683633610476278359618571734398170607233445231331499600975533019400645358408093250616681843171522108268204752903373546886992437252961356659350879380407984790610721879025103877584732426481148547726937476026383629401842783485709455029219059385023380819428354553664192634823566884043524300137268614834413729650129760123503245324677328502710711494242095411093397105291344875950348157005637072904095393304308584343060499301793780479984111560985191337200724994781623875370410266544100391137869744627657212851984245533720343896857484638637346271270260413293785716832864307600704303100629582662065958530373117076171080924078311630426039764369089522943964293779327561824019965801681173212140429440946937991119639888369252310202798103139896632539791457352779726897524334042405283674494544426541811282140691248951401128848061723070266620399853040830123711799419162080319406705764228487482441542145599908388444685893115761603852182498475991520503118696164495247280567308942649579309675619256750235427386400835712619879839226573222913137841827708528325365276883539797057230272028714859546485182220309369556592595491448083022551464452278166877995253678826292646769473863960504341700557752381099073011384666913285839199183854431134547384370375044287492160277211419230295338550887386077249059409126311607547672454625263515456842244904289480681538419054096392357867264929032836030604596239919753139231973403828145995151047982220010022897683290690685865568165301801533670400994709550105005191633131267200842042830315992189207716186335084122269185716052525004392051757990538906841219916675895717066921521016914313483618545543466373722614554995120982035755422686115423936028935379026882837222088820156625954370840825205503535765508408260884740604420893586362186226111886690957354715512888429851303467164708944347747459088830531406662653637188460092033841273548897276473958706606157063579205616382146582048622131437820242147776545587262438834999332194322720431444551624661739417670904354250066156943760235651250987961955612060879170683001562336675450553988607229769513440539396660471166050201303402388887381604955519895712889374090091218698645131741509729523070392998486632238731354547775220851216933277248826265070709657795705613650060345358115538330734483747491782457782137052251725449083063315072497766607194513871185054255694137679014454135321499975127844271865535414890710326010596109086922716588632245910910675214459163512695232461853718787821236504410228878774795422341564860341746849993949819017479869428508161155420249118788911052872235049063639196846428655554176565771253825762782108327807494084373939074549396158136878306937744409702587252818450732808577667899702034225169908526905380296083600779784184837958640731596264935330861674599532575027443785435161035816162284541468060076251493830396472453505709624052299847064129132113356197437661868543431227450996843011288441749916917991617736599346646330892252740749744730572526701758720191935356289012150084456210110256146198503284447938962137755903550072649427058284351894963862282134792597963615412299901967648072802834486460373885981602237477423635011942429817778345619416807455837057940690899773386856442834280478854661258421241046659271411987704356983869267157700843364055466938107915637245614465318565347446096002699940587483410665855723578110055890408017733463996937050356878657035834342926191766905512428814715785413600742492408981727712081126168590737599075550042998211529896250600241855154584798674880162752126063885423600350379986413608817984017762556466458985209991273923646570678517021140021504696297610598733508610026649957858839089837354265699411640310604095172079303550555270563529393268086408931913525836510897237843674082129483869016392115793104595445474692785929014795529647856949247719052442801009741516117797460932248265174002807508252059753541533654511080476670012451643277958925162273534869657826592346172913110692553740693174574083679721858943755114831123076063436257181795638289019915743647200410404957621512254747573502553696380043191592855796625556704003911096838698540082664762645534949650406845866122692044559644611249534356066567930473513061897564173947933006612593918475749927906901076970348175144560189623539455131547123162475569676125317707123941830063939120312849390343952558251049014896542458503637150656176967953856456452643615522585491985258198512780990539602781460731127729706408607013623946774353381876448500697721960041210385193641680638721335445751878195738940978852570980985901194787504166286612939595895707213618257645764712927625341583503448499896989962829759796307186896417900201602616143121360149555799353908741389979685761347589902299223412667760930289521905303769807418826906058759328856914416250486147436146023705226694829413797048750333279444249144763644571150857572111826544617050847819048116791493568763092241811320243589955621945116738050855848385816251750894212459848105948414355221144794918837683063917789372564761899505459188630781496592704614852885654659054956124935424003689733473264771602635612245190930942228022823755454877177407847793050702563424176783139001362178318862474484751474437843750225185419967766906869127725663499915106517748452982301541411710274812762071898547493564088982434748923483547126655325701825270555378450384276847239504871716841909497933667101941444432940892481222429553308331596543183228589176788046765658498605508597382770843036254889344667951938925101331221101757547748935704790002651895355146740103457253583550481069914512037505442941215392494357442555750984225163266276964384126506837458850693471745480303461758424615109757850761008085552469291205827501769814038910500263922624018733712108889196663975589535470832250217211483736377190136569991323899940938913395362364864780747036148313244093256771081788750059837974856698739178049291148359737403839377739748682153841982725503793274862098976932743884372705071224458586841729605944542149789517423831937339729802116993033200440292161847559091476196041427788792425881375086077204279268434110861019456952420874533184467526451771653972259371436104844054953661794961195567597114228632703113766267291986832278876247062482847888408319446330848494307552277649495038310121317043013157822039328358001310977035838069760513477551520325274792718817713821790282535230071964155301440883836729903117355057152759327234654918698092560617778326099319353812207009890303736233242225304673108478859429609833803613218172092818230838068806219025759088149387640666898629889445832338712984829085667171257176159559235812950984220723222286641078246967694435334874565353186490771969257365489744521523327926917749261563989967409166605915029992673229263475448597761428716136247431736603976341488131004210558410126501683141901808267748308220378272100307237297533354318781528318539000249077780200078431408373571277933917733429734131705238417270218444084308176236441406205566808942905777043276826342861647122990480025171998392180043399243838453061376108517019892408927936894918010596028010262360172151527937903344394309578151235227379660910778663612013600356107620872476823869550312601083905918695105107746728989593691681849353312596145931703319479618661234633408719253415640003398466927825412468322883201696290274315146918250417665377644978766708050826124984331340072362256609840409702068995056343395162896193167388344997436850660074023408511597632352439454991823046459428008334326244010178779810857418755386128571179805831596007899987979291746802899175666912592958972589025322647091364572071433137709708682423322595444361811102995682549762854700280094220740797039081486959675271921170880629113882051370795548976524173712790703530239399537592546587403844578697427324209357124919213089361973412395985752202893950853030393562375775425811262965178579528563218629983235332872841142227448439169710912122399903083256754409681148238032130319242059508255448921403347246502649504075939530485782008791783095733355292796890417830080407403413456686480485205713914193827027092173834268229128455940271532455688004334848818262455385106151176829296806358994213816446228523162499401210711699229414016169240343025863503456986869092118491688963098426149336116005505870433586263560209017293865997246181794222743559151807445799896043503822463393316402366662464335436397697223923586790404519143865615465649899252249104671210475844274352326880647599650984314565383040571059557521524810723697972014402982280105092420453592487899350397965346219794265495820241692444478756211566323871057092512775417970376466967651550298804253872852672521684039951034337015265879904463827843643992914794436540969128237427208211413711437149383655683429445014071374316955357544603302806414956765787062872825186723154058784747196463372048258671308044672824249442218697001318105461103159320610569872497570389210795518450219278059372418423403936469941758053902185323008082649365874277553985325723054645700816500726465888708883637476614139136222395178639631306183202078268191280348420445159438866761570686628753578459183435681228576365923022737903544735509211900632965015871228965004500180046327824201015018951360532273254017353554540505729406332645695085558098848175352299458904721982962601971237582450156849683340968315254968906648942292225300953238719843086447979127634826719467077801062828691212680557154131894627600971035178043827127268880781656214195972497235384765313053967060299933336797734958088806182363186432802885934468849877257021362295971754981574842142368709074445548984761637472055945804617335177426058443004438915082260597141272785935935188398469927490909985110206794562141401535471890413272213980954200726712070692640592604601782452461410301078227100173925824323256301276882360971890149694110134411599698724725583150630172911374703435534414541657214447045956178878966111110954750617655573296529574606183638650051305915341139636717034229838001244496634107871541146051415736560878116425497285360687431206657043962017466496154145524066958296462364329614339034665086224135758841469879240938523450919109468810674348741149837442789764092944431829014005616917621710578864013983296690450830572017944555965977864062041752117673610823584151002434932554930271478041354819162690263942482103403544699011685565682583961568241197163311102495002872470608748490115656234947452610344630743892610490190365287279858868320913316344482356210815768298602228869281214183667368240564792158360846764913031211405259939102529492785257608325402983897333559856079952331260654035158815554286575285372694456825600886014867180786553414467964985105708334594181096443344464955992736053775465807204331087431921471320571809073525001670251289415394038568612503263410854534764160607748721141791388361800880912009496111668801647931615837885998812739441681086355344811543737242446658370735031546359467155096962984974172598672813304112547220737953866847151422198651514517688739836286914628662839559472550013220431670068734456564740453390263898611351289942279856343748006695093797755128137987223375182555656970555746052034128595835200746703779122393558868042831492443100446374485660593611726711043198331844903848426132947081343015092754911202267550804647621606306623373664850248057606923662304457864727748080580330360697105925056398063337895786902930964350673258850953152844010773200516756975702789710852967098492211446029559837126462510995759900888569091044346004694764621386488316153024003626529097936313971273692734742267154942768630028774931604621140345251152462391222222204978131239196549918888094184973017749982133460473375409064178027193248081579733543408645993479202679627378998004542520445745160555948862979562573644338742815246092553297585669145985813900859356826616270330142929543910428524571701084151986668191825855130404577691639705317292803409330745996795718410003884482932638446033364219710518718339857254164873657194171274624451928174589555141295577042199968023354511946642156401445705167402618849694798031686387800910171542742407362185312865371759596508683500946500460051948913707518334409933274609043586997693959440353837991182533856299270573893425752320083577590913532917863925398300662063410352469639632215360424386432587379527726479389358651918540421100899487765937253586149065903367069176259077051893606814499563620254757335281869358991583799618550646628365787269083675487006489947785391122531816168427116607939208064155755375005819752089520851275826232143979803124596944513230918503531903289180513948696537006699810488809413674408737982085886325784910715540657650449950708519491937376382506652357943858197434118918065132914622274840412250272628871813280477285344141200879754202353743213722354949959897196278637588030597566647850775916962081789643323791443612299543491389438994428969056609192815484540447972861505916640194859786209934560904084935754572811126820180790157787088433218113928902273278949333697910194608970281624271560042015051627977031284752720515643212428789591647201007704564519182332060663321153241174591288289845331265085448783874303101485418776903956211096409031527348162608749929483972375926751698713183638658813987226176460971649724499969175594237167664243999702814715113142077062936915976433674668619650559989885073897543606510996621062282758989077338002712239553930199637512146956983409504889165979795626656387170562043060919515058033507445790466714173957246235388530838523464372326184391925804467276941821736637715447063992191565399995629291384119178408222853881047043733980981547068705883279885971527147303998524924093616333386464983743139536851392894349819749005011071797953010076660120400275837607604029147919452729950957653685329050230855851857011161383202841089497065485620939566058891692039005445239686651168310827722274332492006689322261385889854105583954411380766318801193888141184761723513175059957640791931888736580342936433549994048731996932608822988588750887282245853030564523626326249637409261596422059835845168111489989100316757886310340602773275262546624191650135835347874627600767213212044911557330852544667712089746131177889394022957181568620330534399119871789010651438745909332989900771586083424079563332033779602629187484166916770755363255478432069079828417236482346944538476662509132378986785746751934567933165814600864815083448461877319716374926567811703115381924800495168238924237940176048207548982928578510815196495567802858719738779817576903876952428727415413758827169518305459973030620516332391703597057117077816523389787844827647922664890842114471458007798765423857073927784609195300350770446666827494468344548015465325318830883431138542885308573940949515407382583265000505289013912066970516826379055173464854849526399627072899309048486410635556027678004489945970965421213382471199769443985192454616960294853348494069910208390710349125339786635383567319719642298971127940557115424896449918625816507721156332474305754740388661233952989373747499434986968483143643002952707387480731743632849641053828737287279728666911871133945432863932257405371700622407229806313135672023793511054733113150997967285086083881141529233084188398546095742685210804473733073125370224264628192113867964040166714308912192003219370395873691875954063497158903400854856656509105449642736155012979689873403838786429807640004593837216965493637501900058773705861079589613432451269101482860809167422927906134577516378386502719286029972531179130114973837376867299600802717170698690917827187671400131426238568657329407965342583837634780493532216597709613489160148421226021237537496317103904012659615166894327704583139313440812385741620058350762711196607328567398014615491890175138893962349745068088316033835267501969159424937520530051738199798541553973510920469242232821723828622826185738314396633958785814528765868756650046096828123046551120598953554124124206107852001152454268878526091280265294484939156744659871330260460676041771835403648220211755243440259827964995173860111199466981145647308698377975895008142201660334021445335355550428471170680323455920161237779518951047841687968626915702496622068180233500594054803193041465713261937244098685324407142568814092368162798925793232335874992119726061082291154088277434702982441683473877280245146788991075590133838630171708499359649719370081488230515956559011308958586421590411465539017497133354094901433539561171649615694307606694620769463747863468262252929237811045517258793366582918284476243551625464146675525353412078777848338468207667352678299243937805945669964351400889050235575673142928962037238618715452859124534686738029969429291780011717811271233170747729606918363450774302109812233483991157481400398847620421576708149072731556479000460353958133102712058816557344400098196244893549187956300814202418011362088191427049022911184488895185384345345240561267990725279244884750562101039674953758101277381743894792310671067154534542108546913735659737665885682677731624316761437243213412893751909194606866813948344305933500797000735103661692095888255810691197632735858949523305947007784334191599202963504418985882108300522489681072769227033823777974228413010062724803669386994910673086536540178158791084396222979560838782295236197819272984064949668684265526427947953951653826987947667354216661445647909330835505553299971785627430025231323393063472712400649843991261327024344824054689547587708413596221613523671721985420153329683462975892578672405133177472761436001109341629969243867059691875856505189401765583547966601547251152754171660237712553602731414216426443126883137995060719195626502958185387785309302174156119709726405849773602668291370211807036124181639348081872774322691077392072505500674885142131843292364536131606978937283036461558039008809990888718041061557077361719752657478902032444467076990088988695671550964832704093297669297145263005501908419514062206959413051713741063382121632500015592826137700163009531187770180079364962911988372684617242895705137523503370369508479317421059177863790826222312187944392317276158091875330186922467405860811231172487758629129213586386431794691194096196693641739225403876567282726467017033955954126483908012617541359065357343145628645674950156504191410757888362216492245041491424639455312688071857262239137504379088561287284299397377669822503217433141902996220911107035145128314543274517325292553405219472229021774106507856618010761706147465561808477895238495358254222309488251314667408581225734415334018034678892233040457106272807905171511163385583989660107934253280005545705097847875467226441514653013803860444887658418212201751806955590253553305211754735699317420379789223954981372113874340565097360722367914894020231103395745837440210719984509384998676394806979804062575088303567645967314952801563328925567732081913028118923132939615351976898240912198119825913991946461123701720154354866434933524428763541095262793218976068658902556158928666539739261020266737328402458721274579420147998939154399255260155010654865321071494975123899482178830291869918238693030028379861893826883609415031128205271097829007571101210066495389657551311076318072427738181378948296720910505266491525904885793832586472491460020346106232970792357390861406445941002228010624742765971677810481841129233920851136756702554408088896641422488076883100062396007982109009355605458642782222790364505627492689660577343210169997759986749486319442696353158273928166599106526464161387568110735779369845546634965553114862578948638173593007343091768376373651768920935154512148917834456871277227492417822935420270136751970290774672966997387062464496515278520872258811169361051985852216461568262745460181448943319605506562937626112772733629725352713482082201496354287443187654822210784193767730670454056989859047564603064454156684836797674181500932093703010112732426258126148293752270018359316372610915351617809485808681913502965529272584445735942546304922295732208227369815740122500471122788110674170435391013873702171293942046580088055361104698006453578018193477640018684647833262490529951311567021947796154915972767609151382568363566999423935949776165801076271635288556326756419210734624825996853291748732755296714355194691640527661216674481799860863924273862574680735288518518774612171623018659708785540065583359823183015653984461448702949498185121333291050671134405091160063277443449100627694118336020619865173123608775660175300584077685713743131780154368999084119697827065279551982416457343217305180741796416112629978598832186228589276305119152477947401088958635461645055752047981901139008037437777879268819655827574591286108001530268560478603267773430751728111211210332700196886061999211174571021222458846137743124157972373701741863193661462938989639440098463795047610093129563625711590980335667826057747159673980266413347917343784916957102210589663377643601147410002544053039368051785849269108567629337590614302188214408989512299781147979597230066314713838140834207283001308990118581653460293802482350063765538580262327449293887208122205380080092342088270622888344120507045219579894019949921491464904229926149961698452249895590174655488630114217670793363958569717464565163235490129873305513293805432039898449672333235576925225618550406511611032088595283977996105286413219005218304978347074438904698414523380826973621703472985389100158845346862267754301991651226687759700391618795681405882531854122293068382534424277428249543740930553677450435728234219597618683919835266349885350761628763201792789086568712209758642722090098075886185522682753768548234631560485786672082346081769654113343200422404259027783719871489072979135296524702877166360689554360117801747464865150556972220867763284789642573219266701419124135697205080359093610454036377392838320893756918315850754055337685597450851438901839673400149627376451320995785770702539644224098609338294477518257016811055623378602793371380786097581290306531749979539149151292715887407460763431717152896178944520967939658528685481701342734653410257177054857074589105542271538115200337859394812434360775141798842057920669206776701655033221817481571754248540286944806055389797538731855318498855354117345568844188097848894302504374482734868193428158581603059946355039282461767482300940483517690438879911383430708654867926101616719262378072148353885266857881138162016336299930130924691038563045531890359283050346081345667199711402923045001785312666404636437006843316565437980133419703691674437633402144272709542044253527858007354237278174302247671498919224394698121292574535074854221117549805952012072677607156233819015464805032531310193931061031188667763699763030746077343470281219628084539639763763602408010087203746924066213976246331266154357590112160707651262471025573063506767367191757077827594974926530749603120979095138828609192056798261968474294988910354683625239040600968716752751091016482578806225972501314282654457081014278659574905139552570484325049368099559178149996032672740693556731903421788180979833679787522993428875622964992751664392980675570319903069256632934534830456008913213110909979925456976237949278248877435968826771703926352203859308500465274880993604173002075707985451014892562815585143513345727811891694779185352329658900984777836461684488448534435027635663924582029305000735856827496874169811899600311274514923652402376965902649265078264174567744275097457256463158132454744035131043562362210769610493326186996511395618637697431824607535001456976200515334093289775967117923543898624967321600135121873817666901651342295185449605148763474800546677766102938833445252013230341950971644847749635361658076358889714757616634355219149207882664894537652905397597743705112793826236566097019747905862567387093672016589834162149362207366844492979740102471463586084244262584263144896901776365447790039549694446966737424320017649386583206721325350740529390749930968460593891391872247725466257992921074816855212674420508030901722780578066219475879175868503282592344249297159235890882798111363454387334093192059800455861890351049949732709261699956940623069657868077614087312719290059886757847906316604254410289411175166240649217097851868591236766318873834291279497971198836572669513311453816230457958091176115010566522521826355579568756283615353445793291326056244774393979196828028586262389633288708848605630653322866965836538431477790656547242516762576621390710793147922919804339575609762934197592200137662868286533962587191680000444108208025912508441707045094604925830453132397659398215415457812360134029752951911085709140177483209925988480930232927290323177695624504570424650889980265867870315444498593381705264247948049724315762349702415149221505508587723962589826733292966959246239183871015808771133314796049244275030380766596528080561203460393723663505099066686726379790026766823488636594678053871863761873132605304787875178514511295041601289595593546829138572594285414644828615651051531486955649217388872606847607792016090848695598507893839897381647122069864817084094539557110932836615327244033126283474247701284182757299558316304882105551653617671634554625617390153121001695359535590703958775683454758553070771118385165162009741296120864188769566963267030672133890342846485991904896216996015865110541178688083007262140932654016387663511556594980005819342016091744947282688302659306185325988889481649008989771584807581035663153467910819503466039784902939176160689605966889996269649579787275113305274724236272614139646678182258028777678362916365170455628237115455684345171769526237222051083118154414325074619146361240016992867455992269528130897182652474770959836608764401813087028004849226385315682849364605155917120090572537689353475079238106441284797647454483074119450463639826322844085686294195917943056360758641513801054193952885743212914681788442914316586216989149469629348385939865620482586335998730947091429401571565980811931166861492099462695039801863919701973979539185284560194605408613771146089457844617613186953863046578827156896368837609736467931657275279833959084395568150767833915263033545202217163179725215909905241443238377132005718491127116464450693230853851658926474375660313463123640218449613681863010728424401622052284653586290634953596489929966139079635996154590954032825637200392264230376220078757644034931703157993470049680305978104278248033924430998230916561984647240508748113832521602725129796459057472734274799071903562599100358861027308955113580215775742377061356537972091834140094358686295020054909873636824799701472456558693029214897357337994448303528912390913833671846087454043900779429204693823299804605489739776369584760659694278097096487518017310134677955541835916427763956683465444243815643290766746426249913941505043657292813968326655826484321934546294154546274395582979139863331077921857776384441469525320026325068534530548478725845730861191994821758172177396663277360241581859319042399994526540909440287673740024537651836492298331177398542795104395902144949561901287522216842646443037889169103367245648612895304720869242553317710837250184441565539424186375761839215513113740920583753965465949299195839543172110518559238328852871127603762121865014959062147809132357600227520086956299454007835157098005764905111160957630978050311386281569314067208457983769690512047716713573772799401043923248662992244592524469187058632437236443514774473592636836370958814617264955524136443509416603725377969163784661332488081711185595450872874487142841877641078543152104182843697180683684756155760997481644555989946454872285848249709698772775534227979256094082344400958237443476466278919182005448234756893508470478784800392794717970750088480232752566442527573898278935583527193893526959842914690139647772512767072659595736568255246091806190202716883560228291307124483663306991140746512290425893864588487953887596765522844278220250875648824047992895278557237984196794142348213937863707327011686248415381668633559565694581792270453088618924214996418184204611556971103287736986555402688195314281262653978509813003901320883660237650989297779993657913850906267623628547144516554202765106311160246423801025771465224077956222524744784990518524150150448888628090789552925855903526201155230354973872169377766871643523594605154813597922766631812976163423588211831976872922530836750292798992263319249463791215698137169361878721859011958217464893525331785172459848667702604791580288277809640262692884643305543725690381981702234299101214593768417505018323030751101359594279033226634237228388212618304496684875756407734330659217953827517183637676119508219137297295462238870214816526880035006173476143944910557943956342564180322399117619208365722789969375887240966411056784285435972105463240372242567158421104458144821760382780316451239637896591768526082941413777086953258866505600996655288952476705186646995660686183162440201909254883501151581050532508383539201119248711442771382737306810330894760243593388481686532749466584270634840764378988470483510286331987909670421076383181538233672796208941680880231180134065168530340905357501792264587678294927213627896545774113097307400568861084162597776694302472844184446485338607748816430143762774779727604335775207341671675545708995519680563443591069352914125100046625707749071182528189458789654077365075736981629840670483180278542040707380561604397366453138972823583448024310166550495571104591576636353628370075818302847810727279648400157334163765849235776321943434969773959669642304856814313661881405851242663553099358459328448944498506875018321032705416810814183713744181775935099528982739101231481772760964139454259408734970844251588673156139894750596459438581947057267095752810344551362726859770046940408513193996610393214583637253309763176026230482494190984120987983168437417319261777764700396214401066262922513286134486333516179117037395807746007640720955566615614381600169360256798000649186167243610801237643117005773578848607349587422679821910195870771078443465891659516354405178181798085388013568472254636321531419244078801220324725219793648951022807242755963122628642844609805388866787354301792546967560483467070404961540591784902415589630437550968893466590961320733199122773321074729005348494981512167319994713960524780787662571083551965207054983765188559523475474916177436943328882077419580118984140394716099064638593882641926883613985817118095724706375853142377239142575529182911679544722685202960556781903973748169665086782635297577363048514095239783949212387478655005205162997414462997533268577570875985017512138705313928646602783954026558761918850349869981863125848778058134658814821285196769589365136913875748383716399481073393706913647992148388206237548017516214255819206371780902670554530167127366094268533792956195020708519527353046043441994232591096627893054590969983295179758557701395809245891188649522239361389679570848599265112287023179422282952321239003122705309460454463142631036666950317303998729901790479399283697986907781529941546022233487944492907892015493501877455971313891409379975721972690117674134924586877515612622574514790260863040802642115406826979872556395465690136339251260613648682309596232430807157080657384888503716204885512833098467421530546175257037211972596891560959242230028567150972706550900781765936314264020343904377864922042252574988388590624657964329249498391219917051879535177974224117203225861361712309255383031566570105815003799432035746797455355731391872889081228144825443070260458443725562605458357743684037934806214630419206793822768972417606011277563005600677665616032315140277980354636199405044557517143801590622753312283667781287307815785400973399038944710084018916652701491810078508353330716481865741654423668706174339897111152488885027851095933960102113641531286397722599910245733238877592503835409613255780776592018061383311928758464588785827261769123583212949848718668296536270052952183584958954113505815862180565619714651717328887861724843340594050203709178806337558217019880010945900462973610525367162608315654117265168634527563470874828908655227281610625180677949051054804688146377681255189796791675938997563405606606915064968923982206881930594751575050967009558080947761582339760918371815085878626400260388659255393780722478641936415110883116246126282534199596412437791393711929661538647350897060477671722197186110417254049200264694286284543004858652207415364166160258562149435092503329018616453184909936912674917729307571716921355328982866693211341135975678978643129812663037431849118577040592216010120218065973293956681997502174695933404625975483832124797025226793577107607802053954047675623042270686697471865396975032082951087927576065220150342127980618710604423046311765731922976917069471664114969922303058265156561901982608460964954551239935871815962565446428795288753978678399330369406667058043527007306487805472051687288390788486435300014799778575413943997035331057040996925954758575367353795600649076563031416989753281401297097435398889086081129861185427977552653682322504075430632653163012578296938006976464049675338946346096780844061907885689760325416038589192904156185441577786035502690683932019509922420073490852258358133151303357428927469287416750139690752882640376965179299866228179729645965766622007686622414125014890364715651588942246276166698241070955651316333564529925436325071412019515885846588415203735199028311025865073262193854076529004162254944309872192926642211816444741314855290410551210244812617408645967863153453073020670300625724580466917030874542586867684770610320140085626862706255920892746780845779508485617441622484480128924141579666791970738676554372442653517366666753590813229162034547383045844570248339546744626125259001578024580504779873501529724417998912628771486371080961061462847342518384790423283716279515097599786336558556392814639150103976925898030395844527692613311029631224921182091905848341797514665918401039687073858700578527184716182946528207269447837089999594033453291405041981818139003974461515948773674076916940768862824531484004644936167979334226992664953284313676924067719513483940359313672177176108749569620442208682903308835632327074232227826931782879726617038641759852319176438679321743716215247428268466295548273220868562247326569989988032707866717564745719695585616131423858526724778453460374592770031519779048698830871469070138067128569895746630397385594175038016589826401118782123746438702873780052452200485871488681584039133630019322526396032184675527116145793149358248267965268897222567570764437298457266205967332482227667461314472677479678453187305809777295823656294531678936829113392099777205588849509175344770089665515023161308377721095770785796466143596276242381623466479014814818182753671693278179951403065354184617046879350925181638984688388344434061938181031198130759314482519355063954956348402569658266970841070514865540396062933538951257660544431156471886538005481632933732791322005001390061188969531218508032396000954779487004348736150483559180525950934990646197908881941821221255078964230449126560641407505651491391432123334274914004116648885285833890916363431512485645931639805471723635194042537285726023202369338531067133731538673746917222068506419605459358637208409924136077745113416772847916623492993934856695528641177307549600834393061944758156746589812667701162841583783190880435430774898075415182193702240847710015521791288419949354862139305935207604781567313459354141873526567630666243285768383006344739195826043915975136400966845811753087440993536751732407593454172666582739162785031545694582369449607861697934987428216171552495129502035392184755948165951941334930861208640219539515979277366358957824382592245192490129276734774329464924496171817272163580441324176836275688449111815573081714304522971661468153861636201602662707736213227896548599814166645263227918395970903005783487810931756288347409622882353311787127034270407466454013523745664391120460193314587413114261637630138301904078207358476866625285693945405782946368150240836245542323492344173509933928756869523478845411699400635720596838691436370252845177858854787255342745412657712882151133635379121181838817631674027590927805145249430831095009811929903360651228245361006263246311530155213135775364176577723086054392407557120277267587291854521055302867401375012401878334050988248546729802508080135402055233993399018340630036774411661018123021767049510806876978420694054499090328989113067991100959757222737833179841760715038007577552887168374823827868902640496013110922148599504789674420745007956478245124915907695729904631021878767670225825309766478044818449693827141126997450479996168475631652752112576045615072775937836557190296871642462909808717967278802194820935927505658231671607136341103921110526099917558789243009771249616509820964155804968050254089809106397990917099003718280869229612041875203723232269900126447908933053982445362479142083821453574773346223814874051439174168273389096547703079730227861582110354307236842932687582154879996398656453413786983064952654059842263713280807131106735686864518193411556024962880189331829884643551816373075354650744988744354315712404918148454594723886442690207349870476916124099259558117367038115616447021688960840194475553874012091845783663527332040485242360658774299010740581285046824419107616917429946183049260628883593523783902058438887027570537515710001965429633069993711082004047124313122690709435432659872086817169705538566773430329219912587117618660197614191693279721806156390625324227865713857832292115819069121203393357842181370067551973626902857783787283383019324245296386734748309795940192674374462482398208805230844926989580171236041495608591404662684462194949698623193291776858943660917948582667694365126787795563294873990446559323433442544418953898959855688310835250434404883116720271609860916047967232276221744794751890919156326097742623323216109029140149732211267408190951851989200321931789798773313794259332665764282515849566012582466224108682041149744477188490201474110671719903831351509875941629681870548027059415102081578410686643925063512595100988177032920625159349057837705335723159987157469199849355239655694549699068362607299935456302014531005621836454400223927351770898590134759209982371349917263907675529851194534806444353743013881896484371543067080160228963426588806331082968331932817695325553753301414895895771636291334408325777343623671383017875820410755974290084391199087501957087504057428368363958387695762590945642722246371166650518678469382985250911535789706551347671296233743040230441556149742342638239718367598004880926658494973696854331562140169552808452999366708957700490472266751119660161212503393484050056674497404240150857272991003278875802826026646270044483543407790493723649959134625393470296656684592944482928155654771069228083148543926188900797730844187340847933528349886344067583857355743284306086080066089795587089685759193370980474088612071591868329597630041160503373599275880232248070990833558557905584848916214350000066743029710687428291055054710179617306154348064074154613950980897114780816339068737558519568595781441805674177957011597691786586269484962937162436639168857962513327930137980283887688566900708864382864193530550270580448527467350124317019858426193385237236605561331342433263702536916355310569070660911630047120173321659607105535152525679911520850962777622498336553918576867446444520627300630921210199006170534162738624985739974356214979106860358792256397792849159042221620789177051987665235856329090618189030610663830571107398362297176443333594182341673996552334766270262714104306364838312030048582106537095857708596462053077525463641472116714379457943907677089655990390614273268572365053561162683224983388098737825210261480177282319592078816533957116676990474464280570562004589139775083499830219398694741891322322759857330149614197537983177850124212580704651784697052609669980537899599311484899266186783798488824413893201521910525916816732216716714923957408400611374943753207561901332314257329331528114244856077085713222173220620484053928645600854042015380973621596712642341950133533771150688270426680170100676727563335368646560028023509318641971339926760602476964919563034066320506929012544775964095118013091720718052653403413048983453156992332427515578320622631045227698296814516086027694023444755421316259649267123085867924185702994361963100537984475122997590240889427965444392233031375631474666005142258719077822179632892716616240794935156910548418861881366415896682246078229068718112211685474482899101827687685625832616803350864758201994349626788873423682637267024410500555894236269501315405027377627618748377564996683152229821085805767712910781680675797602842914136294038829389208334744807988755888078872542366812400586307738799455284534777577732008177806691483881499762004661458548474331145326337013908834643961754648265505695596553107385571897637555534997433270812390876567140571370553296979529138294602594899289319899350516561839525151115964371643527586490764711400232237536138110398588022154652258098646978609705270712517071552707588426096274847112515535025743080446987197103250271171353276628564897507693227498348124712007624265354938942870285084926174383723579539064999178285338902348166339142616760314406816041595566013651630952763727725803967516924939570706252731400429160636880427168385235040217143034028395839051477403072171304089029992190842168300339553599315806612551074885879935332611806557581625035471629190813872223289233282608000995058256151769146949697173047778498154723095928363067129737865711205191081989868765349541328364747074740617867411497307410836697479548319556180021530627971851601986912875659107408950386533949315222639110713220342119881657134063441442225332725306579345146342735792935771977229733776421676001968429026950631645485470726664404730674814941066120808645615010643285732331542667097135661264949083517099517075807959168273041406849322216152261306387010647743337781414643224051116856759208156799069245266132458185984589239887404265916102113495868289759048916950984834317036302210772660546800830368104747989244194871651358167076821793528907928013796155404032154044599466808110041486263322387251840855644114859986900792199292812146374629560987464503484094765623133974821086973513705695948448596065462812738765586826776893925412929783324036527368648666379050337298495974976158157186114497220357003891253733694386150946695494686326791925173755637962029375715569921051780834165020444140910502087311436375366981331575746570938434429751885339712691582668318810920879241311088094830341269669054303846739049816722944644573824881744473727436460498812811621675744940272990315748045867331648847305164371220367012014162719050141860988906515119273989657266395645588452384671347790178404147895433443644228987365320663935136674736407173439023864196767015360846059792680303549385183507138939897582578761006218761425263260404482876549355384071572018557927485744806522561140060278453696575893911811402772321311469332341242968520026271794657593704736842976720774293155525488534058031682991154031415728474238268531825861297122415774945612685047886442791256632795743356477354760480995404973064148465029271379329685848915078792173730895635517255067490233930674600719088063206062963209709608649007796115595357878131670979708970790856084905942634592490322717644452017034322543076942441278728568016551533789582767093978084560966232366705332832608813114940710176808552344177709906033619496120150372918557440566257071978464932795774165088626739654096122800634934016945648534159028363417240345896532485152430302991998790045994627400317947066373615533871497856376637655893501645198466199416198990742563440082000871493409757924102337359842093066630332329087256571403102813230046593796457772980822451446471133679169343219574982832773253505011249987374943225851016615515744999564920667911683981143996596346599770759834686403615719706851168659928764147266793760443354335714726812607270122991323598614393172771354566053401055024902082224940890650098638585911226277392022218767040014455870899097708946498970571198578962191892164026982945925628792599148973696640677206257215325600970548458464459690213404499218668925496629578832747761770723207937179426847698479581998446924546541061434744402398117111814922453591808203627611670262936205771542751639046913688991597256073187208866637692569826299743267860680490872806378036681517801963897274233027778201005351331288460236160859104594152674983016956738895486488508938388092825916884174343691403708712091406452970975407186242950790117107299554531823411421585679717837383641826107999057475679847244360917418145889546541277225165580855700585808792175627125427827652710644741343610923965379415318839618554576005911843338713124903708514502015586095280672085875210335132367966346188766977980322345426720687028245452437777458028868246590292188506209762265923704398137798809321692818218800148369223023379614269946021063137545777446404566333217933972903687457874889731685431133647545428474963636855424204455902776504719506873534842370446894259288624140942116658581619859053085828342211660005360792854343490991905999000756660083362227117595277169872745724348871731947716966011134067040102189215998360788376590833380278280699535609052431685394341953657490552099987121257427675318845938538696814961317093878541738379315852158920184956407617980964592453578219778493934058110410911880038668897789806062809313598663908549770438785564240888035699875615991040342531921111847411100205231307582096304832126045696135210451471327340434468911235304347987844296252733712790566670895737440809317489168896361587414577210019189538247337039802222859787664681602559860706717825656258154974196870459903550451318845197344831211433241835253416618326895756897259499405377904517582616682332374257785074176902368430335839132586219928110401670118947641335117923608396998088011614121632956373047390380889934702753861414428907545525844680558777629664781989884079164231337643849421552242417817406873378928481499525064566238807967443415690434083852675777207747103126533958159436729052462613340768851829834085730443439733947202334796639724562692595815218215565126802367617222351744926618457564209056667017214284223111866961433427600122891066643557740816269195382080836865936953851432953901600363006339937473875724298199204207029683087624647229198957474354682680089530394514755285692613041160158707122690789301693171394118147320398690326270175110569131241329733387508782492565965924418843176051608280122144190817864826413525205118980604581620362084517702253153707552921932096452440400775932572027653004454938570133073843920268107737401170077225584185646466690569604966082734281263759856932231682602580767405551844175465051983310977970955060870923097156463589099921734347538930679310735003750751590889861488322133428562098556467203813233574918731230085006016758637420186832741164350167803593879391541056607038405624374766123532782634015323528872366912769275413840090624363726333773815718529349684485054699253828737414718730885659024556299975394389362922182022749741508811340639901477016379868620252591779459820632174632182576542506180065477452153859881814988980236049598641280634974589472624387010278804964144117458793803855915625539497225488793837502635742868113859560613065052307504080975848576202273606618787526826482682503461732175707685761480719486718269130012562282541133333386518114318350752017397395396445048622804935901369749710863986632849023021710624595524944084286869244472769480589087233693969249166310478176984070359603031581521209734799819579546274099341223450369571860524756836321878720948823774088813942902664254582995292951447131809195599070405596794713683267451197101689992163798761295009189278084075959127564141548725342845069147126979883163862564355751315389552689509555556540909691082830205723801033326418868192417333485745086778810973056118099897444082292610383502779335400493637915176961670251281501650590768044698323659310599699382883276322091500180170163877085508241922155799105186371279518272053222954973784745065096105004760354398734034530187057195109576260962040387127758740111470158032153384051909387230909636775262083752098319639333678000502724845893768493967432491446041644867806618259832681889355748033332443024658777861000139523426845106557569524210285237878029095830408258588913727387000766049204013952006837022531929310587775389968559115464721969903181599329490570707683898023685300608053109448025080986747740893632402869167879839997002857862407470337042007556963272209481314550044116038876646073188214832942561248218214860613343756194927943492325062140982274156663432672620684608980114117689791008835479918141491857212046276137968058808584628178449720311807455471278354448128428730111971442957464790072724554469139561987565600404671623796556128631524284620745997126285333543645284318960299873273411322281491162894783038875454651950641869437842139672626354409846110123010375908047551465199501293647142417031162412135284906863383141229443311001961924188543104791020721344820652256255627996018977271708250346317436049360005078557076113213451220063870615562773484834168474295061059786583289775109642336605310076117167616006785739946921573126379393925604338073631268626878915901463828308888367575586225594388313223231223199931308797557492352524353387947665025289509995780473571806209449716240141524136455814339004987136217231771689528956799855014071713755456141469971104061455511789983632069575617366549302580726139258110787581925700001442323983783142818337959065502507410100766102990803768534282663210854595971570272559266767332031005269538560400922777247946132941074786348687356265739465557949955399901210776572415346351875558174841382001981035561982596682356106904264447651446537418778117192807161928301436762231357954772925406692730153622276655215566711062249701562691768009562333656589447420599692751762165923802472397143172085842134192316222596151310642484733609738302257292762833567233408211640113330445114010704151947709983334866061350724422752791359104584360242576220619354805836341825797110239340503718753870823342222605982106009419728400479341842659563332307455460860442937257957007654067825486304407566033706957477955865576397801962929071309824190610456351983271514224449117768577147032359875957257020978376143441173623778375488983964789062194607570414203572269144702698573929932108395344802276291097408068741938501498512531516087417980732603102374816172551877637511906135861592971819124411316514874685963695754075486799452837812332043349006467322487417169064755695851608172358879468217149761823296414103418936798995981710940786481656511191977043614855774076279589465472810369866403330439431243891934857464763636027399217332177720159523181861365062693896209524956464241272996404319496157604773083198837684132290320495302014674218252056874744227436882262122160021813249318615128179077005769742495415002013189168404758618491989355700802495596658927823279585805205804576183559486695669761632636314334983857690676533665828971834992796804865159049315670268983064603222641199373858966263313512570877964529361019289286183072391989800636304819817330179463188502066227270591274799810751665797322851677086765045744411935193569513925727389194661618783959981883221287440362901356518202737501953506460548279886572541341671841941440015640446557063721364705442877072345593129899624680854164111127347834148070490566793266166606397615407193810593746352353158862408416533268205292320233333385572273308364041879822439961666786248397544672098649052693426051223698423765456738354976396817317293512099040848256493354487841678603040676535294981004833081545634880562906446182249112495119915460790057000001658764644300159260257534338962495930425279200447614146438610952220600217943461850197081665011359645526317944266939614055292603349677315341984731058119078313330796295422083916424367575393076524535051678836205406578775103638603406123915940133343944157458671338092183405466929249839600868317075494871340691969742250754390876059681743063946597828928059179519806307085302711584076346843262599132546293403883716383418099790526531086129532612796856311211287020126502561986070311510508880941847655577355544850344871631777287659857253389426105319908519965655864931577017054800429240558278944641602862203133070007649301669980675798657679985447714074125287217568708185625919067838228990871554072323648387178671728883933023772167606641952152786810653470454461267055401818943145546790138355827577460838792248638434599406691795327741104783325135385587600373140085116156678463679327723637897250671153084789119300377136129578561057999539625160534083469693623519989763752597107593489106291751221951352184220019418323965632331130094768156799895403055885035181524798098266035554040256428825654017295433509392658461961522836163952500243111756770544457174227205880822863767634255851458052638076824909370273233990972618066975789794915610469621516795805743310706785116572179142733546717252371246429597233833294071634619092937129123894121522678001597611096045552997443950382904218654104951382457232347845790204993789416511480282469698906849990469539668435353573548478539011016380843510128357780791232678606597885852369643864993919092114527226070813086076198333802772655907109048100889506779179923489814086022679484278511459635153373092266267958016123233125931009341628742306754796526363189580444388480066805386132744496747780472304227927896458124305212052409170834937840610641327728509867535795793480337041886058368411326833587445343033040844309056958779421988730834745635151030012998273307401862350019213740282107395486484186239421627187570926490735533347294007089464704009872706823024898234461799566470818566741722278960721794176969863070047128638076807618584847926006579136180857252005123721639840628341309240638673079745784404715272471112094818810383578480661054932222466767178035372991446680112671522414668505593766360725702389339031473994495476577076846097591513104056838418560949212141383791339240491897919296344670467058278551066895533944861000436573792783136256151631381266013023844428527275627018318884227638977489203809609142563640753927151867743067342331927120421208810126995218894967285554170607744512242917261587372074043424393949529065346066642412713399741235462296807814950287088474733032619290059391272156581383905796152759362255359227138899637838969806000346013017432272567395706439092830674959880705431787280537101213520720058804193165151526607518412361521107174576117055733399815826518878618870476594929399167277017347465217186555169979767808703804903092612545210555001191139904253865102505538759794340247141931037085661757138412328940446562405346906125348640217426103213517907769310733385067316760160462436320021018215263778993749417015689843131873905652120118951865646921070894884286825559650311538018584061885876155648596778873381259778492906129635473200047461714789545510165494244871149920937157947398577631372280787562943704795696385530443126979210608519560428150330001853674630219464253738585743105060259023028759272528748595815840287326421598413739362454391763147220834766109844920745755646422733457237559168211157745753253425733159603584195983514280888805288555918460800282586308009486782001773283751989509514117226745489404545572305565554824657057182564354570411228994970871978138834862543826976019222556565300520561308836919214930257546668322266679789411191502115297003612683789634093032115069074968320372081826779322473584375889919518552444900852935004407729963565932892345915032169489904306625102496937439817814530576056899314984703013682270232984986141132123482069532914126476044484162855302583238727685474403777519928621705519063689613178132031946297666404977828927313717518166577691890823047410800311036508207038826067838188045909221039203970312172428422958718630737678678601940308443179696931112763662449592448184425427580414621535015416407848143088833390318118928459891794855126024575893886154083644181163524062589872659586825992540390523876364445707005114226284194555746141498501669303305108182850036059521205047442935886387482916372442414685434955570229710711481254403140455945431639295747281821818815712668924917236633931597043781321496986184314691296873874776879430071699327876406291730403127659005989257389786405099851115223582933702225279416729437878971442409626350104957813162917271478645660401566843978910338458471040588472533323966080740806304032982332858364309694547848739763525851156188396870785009924883273662057245997628664155074682275300969224883792527993813192639657533593858085875489725821299920375380038601040527433803654706427045918836629562945628578543790640079830695133586303591796667469005127416678778662912741945296199632838565090495405562278428010941385663270412512921251906547262291340267266173945727176092387174262235070138705702930006646038045221530592955105066891819973460637301451958469355017181816787763413534503961122146268017284815935047075554929122919529043379769515257245700088823762631390572360952429872137866536975635937673678628062850460719242158112120849509660866847296551721056999163457294599080070800111674141041885382718748317604855154382886333718897029629346900468167977058905150305461874953079703217165304141381682303846867958302020840988257583329018401384993832564966908927076019801398271735092508423952305879599866212008191389662922928008208046604929505332448881549756002879689420008374805108799563097334095505876059844489481237318633953072133470579169332717542254949006145487246702657911166937654199971606465034242441324318843916021796858045521053378186193708180792351643644177565108066549242801770173126641149183636248718097601899606958716014385447308187890479132617045846383025459089990086327411566628942144206371078794875184195541149498297842055646336682761413001384777191031006920585211756465712689808872898722562736873241023033787458110328521049060201844055623027879118973082841234024087879299462438319816087192638435067221256954709267757471515128314052736660270202138680138721846259132577974693415998288629869694960559755820884154740491248172204439700345171095612083360951276078895597778978263490678283296490874574105776670328116949648431814404134162391290775525793086518384554907010090544261837446310005606720885223492438067574777842233778450630219037473091852742119726697988400877093124569625234990050697725826582804844166953366726165318411153526122126956059028097569245287299611500301809858211187793394129655108939933367175869171072010888898528391249269666111109959716679662942152963671545122742374762178522258543125663028621550787888207634918792051292083465746597533529288861257277922711346083040318203544800202537905293202330224516005001246896822091050957180921231818643800816699314603698170943557870080213204381280318109669625953114017699086542911858452282718749868240265290905517503848055727093999134376571005922021413525274242624683763301363595462918320013527761321600038345374028583100406037334841368259827608937786804067281453657967588463328991800596361058339188923131932393388091824454143644121244761978834487220927272179149089094409806239246090865156941886329123889861862568664958752253846201852853355629157523985417981060951009668317653752638476601189539317836984839866831566167158188056824621504003279918297671661176205416182512695415136229466200347274345265110681195724971300638391175183113543140411201764561400229501498616519489668167700864292786686958569251017831669466716085053784585255185373251843218376183614965186179928914523271363229844618691946752643983445058731110194261754949761747981249457708022206654039370494977729903076397291845567277939258724243005759292537645484882683779323832523347736717661704773788741707338877408089549361668299641147540638262876464153713929293504949635988787206892229324997490874664531517780587302854527040457407005874194373975103543769391258189164189623774912474868886189448320090220550907727884687891449721157310067747710970910395131300619557091273189248823051123800768636802666006073106461301115817910374207283549295593676566427693534463674381313345078018637961981944159941106033487518692765153701738896156647845790356419282004029313708447271257767009830856754944798047077122909509164873175561938651050409724077175827022338030892401267087896655822428716655303774133725688989640567827888783742246929105176771440193309438680040177362473950917762154427660593530186371808850827102140946363653171182950142407802086263809892516587842204420620615825259503623930378644767454750864060199181727414321671728522453411277883898270637093440742069305703781547426081936396061209894278990495305170965601401461381659234734573210960119644681815875586620132728231435776310674495664394762726718169312190838138512511226015085055475469697536275957204822613800929763380094445273780092746894396627913872124435385314810693358446242306745764386483317299004407368138585952977783182309914631617307122790181664767237380811596747067896641633240973190573167904384337171002768081779776162357297062458044027337399807603637117479254856220333421125779691252146208029582662890636927496271250119867931410103353176803447456847244595383145975228123948452602450385438555036572554189486070732252897136724197935540620522597476188290755229620522003127305101122519435478534659333611966266567257518137588814808429868902149339715563094646169068713537155270410160698620155547177254763639910855491291763151405125713473950198438007141322598457157930621169744761724049320114936593749755916883043556979133734614410686301735910075118320181768006431173377997683036390915088358866449453589837246424410690522645466036297521419942774518700629016873190950059791244467541797133989039287845287103028090588811163784867969794879243966713268536117549011911687721075824408407182632013132501711748709613492621736718812708533522309576893798889632350693992260544602396203561688239948531819184927570334400420441791346938045686790415753643436042795090432272354792749038406172679237021616734484145578072642499814221493185749494113317826313900943933699875542880156190610524348317601756131577470562577994100959374616529713709593533737577449802744506493344124849246083431489247014288240722882415333717634622938410972142591896209508096759716282123094115231189855241782788318646984893312750318977859094973737596528357181716310434695999644766635820158117146015068977488962955805017293267738550762271017844717398253995761266177195560426789701821452743531773738003836979744456694466117264181874801880985464666000164966350323510209294777503818267552071603684140564512656976582978786523111957408940016780317077152996534909675709400526885285869350321984701062000186804945558415169981328426436369045452378016257312410735923861234586781261541877891477338468185046154837104684466476628718853696014508294358052073188426520292815527387459393769299188389669331896101843244042916902255382087820857004684073090125252919213609873514719221723838481489598940316764583253952809393093228891088203050154509721675876157465631327479920564300566423455939980047788439009757795422988276179848893997735293927064086816081018735618515038843831056589118668611038743155606215453726093409170815543155210051030580218652992670285192388505693271298503221908358146483729073659271548956478245170910784092197950654045039707867992174716886388618626999997076976524767291346736197466898242196449957707816835234635502984658675195321521869726496125850218939855480760794313891742297628429305052890655579983529987845380134956524868187921436868917435188908459184630361222619411503740123713756292246260280653574069378114942524263120979028045628523749727914429020848755112056788270338660142597219846968142812752698561296395817956254192873130093157233524208373246489164019738918575822191788164564996140352374992031418424785977875709576029955982615141081853457140765517330235743691198827926357061158251280801272925596846192620252662308152341120756018944013834473536177201139274591450091761404521304379485160719870012940016383867669538522815577751690949006632835171733859131404071699288196708705238445669384430465590740750793443744202596545006525744974130044804787026765851617440934793344087903489045448791636697413631675438283294106102498100579836849289428334145486228915882935714093741336529876098695166618999584865501916000778659330723935713808094065989357109392535434825010896963911454158765083935056758822745886279348431430957120034834448652350290066042690892077173337967255314812515331099881985009808440318468405520931044990867666702095236449716922059872358766565913127611815987157178669024311278154497408055889686935625074388819494601854674893200325820528719326870804371913481210503542445104780020175593659158669228424948763336947436584104948464941721659428143977818696220902171567793004171257375302483434078726238634425448999699638661922181343347893558633459664082159732695285878206071059406223961202401036230202417944827903365505382184593241268161547310147714004454145170626755478117987320114029942458182869434244466289297775130817632601606455901156631180165510811234100987579849868837048670717585936097753088381659365839658978649069480759130734064476110687592841244392119344103686432680061092415982800884093616335963019114579821641819178474285312029134728089338562255479662111977842839559172779338195592179169253339499659568688151436329914642197735944932321459416585971925830539376693462519561448249237656901590759628645777766653980130282535988010244153946067158935825698370384442006089784210006200883326438156576274169654057592659480531825495365625706754196128961973670673497352352684888760381694958061711270094699985580391928695709842002059797632980351113210800141586338303600243760398698359498010133731088192494844360976722718146100180161082571719392164779550181565081670338258348557746283005245234167966024953525082251851318995122516092240409042954446091293237059161049606387174647457743286356586678443107863657289698196738636299962891803445853822412855043570776637071202054054647767906277328201535137770692420861975013520797788172329996480301909443633827773696278156380257238284934357882225248584750632424620445597572842625330933166096401028134700899805182915688073648352257329192228295450945283681440244232675585938011332633743324231644148187080258312910418309029152431631521319890103256327161740136048927347093804648195328125822963775446369675965628708239775144907738142395808006416519564611157303490612336812852726022690742555631567639658048522146136102560941383544051600295493154419166540811434397775267835163558560891364598054344146397722615241665939646559192740923150510988198519411912003531788160841744021726663736202591368482009411597509256970740819758945804677776172707513228582772056994503459649814757942194709708208990041945207688276361789852787979933015810833555559818983449514351984584743683080959467839210569952999248812279935237660674803871909305786462798880447037171359747618267819719889460708026549953827440764393415421104532831447019876273428138336377968596638590571809782278959398380576589903496579733001797762525875901199381412395417589858335555676101824156750716633062836062245867742494975723724239632130584657479825789600214353465697299988003120470971746627254058724157000578680999842442496978641594911213722796875664763635444040483856249624753469644546217123601936613657955406783374840943917949522215213512578775392765417689409375957400004506816398527836997868655760668362349992598951700727026317801384128619268831062002032758967518728290910571117490985641844650090461931511560751669241940363523444178797777967448333568681352212505455149212814518866864585914974650092558330528215180138991428424060984300919860119626861129470317314352793802309159839844779070428346936794774707510350009955914225660619839948200910063574086821473169208055385079612641645735671967403043541845588625830039821454051261353534140080800997049360749512958894233260754599532410717938211418524780057987739250115882382883797774044302130759371806288960045956360260174100835015142099968426491541033276557094708635963418355522100672326712597206689483066281465129050391197488385573377249700808159266861788731599468624670694544039498055348925518567952884824096799399806218888819911525940019673220846635797766694967444146926349221099688182809736853708393837943658836788410055520848398600521383335521852010868409729631771007287495828917976653568765336234827220450617399546264510028353114260459248752221145219359537541449833026527579552895559751205225766217897441783650857465234900664828670051505988277525141887211818145580551989915071492408043729401127254237532938122799244782583671524694919502930842311494307178867840138273444346310871161945251458404631972102669969989498517568225237987180680424657009216455489667848147206069154650784332256091057343625533253830258906503739661421859445593916136623202864413955326685049285528326948511757236068574904943051705038680128992113480092080855189662435537129057709913301384188363333857225893214462492394990992384836987372695140136836840898050178244261195502585236826016566104331547080060707344495554304838408111256352592055987101455760674726515562668959910310104597230561013560800866680885978227866632020791760957738584979394050229391918549845757039450129429838321469431129295871278813339957980294979805815703702047780575727513608828427443884777652893720629308135737647753718923992144296026270626771073049319620041860361916473040370769739643900539922441517822672978446582885145811378640809242081122587039540630343922041016748333860368546713358839651744248964848756760985723792021118595861902547606035077632005643075487277194592929111222112958924039631054724279652167624169916101430822387752422854824940015496912642268077256675930380683905403504524950935043713558778995164187550197229764233174161055086349248606727096694293841932261854578007935490157557636461778665373757043941138948922772680645430824393894980373751349709954058973330246539872164192829987348798775289353401767359283691373788440836544475452814097936665704265578623392913610962672326038255623841245432363511151520716455735022663616089250538043981993970261596356719371030828002995565760418559810378126681750608570631181338982361457117486183749187761270795213001168590778807792826367244522561325606465154091940432166078745031199762566243086786216631194500274945048694376413900772730464294175403172123790421011700232731532386508292187890875949843648187628170029155313391552116031598134695796811934956714544857526718575784192461299374825677187265125740413098803976160248772331492808684093700476652900099718773860530861464661100402815064820196547650886171875264667035220535891994848792217996379820544061140793001353910833580848159753878889918941413214865869399836391053749426970481766980901948724486702834433419837276257725177871844120050095832688644121893134484998049993068884157726616017626633241881946688474897436611905978536931028082785660779418567370786925253490326043125944947313693188420753029251226491331648824176206499599701518071948283381824588300571843431374222242653536823816170890648693954574312564683031559913693536966710789417243925975935151089429419803852991505686386032110831419620448382245866165712562404224642434988130861605826129209749304853200631253005060619123135544222882091167048705875062521962833076156436230862486715413683590469455406607207299402328439534606207837823673399657816071325263184232605378194741166472783124216998664812049334103475754229672936321045574443367220735882905906069013995314833776891227258918923574045247869371607281614454099003179688866756257009356396186560945689648215800481583639930857222363362106311612544999846577666406356027610824027006403802823113101893259088708489959598898648641564774254711606996875094329251162479190128831647697562593890769553267182946033609964336742943089182104818044875829511284205859345722750039151171446557815900035980624042714788443390915229936134044763500853136652630492307057155561826276974529980917664639522795309403147816385096157564003123494633154044761296154761249454211950349664862784332218748009744259389928116374051414166383335282175510448794948325861807206802228206075925699451150290379435999874851386860257566518028620383459791998563460779835404018711177193053688933482355932450544544101864881672562075158476952853671036204829277512447917664949336528978242174785635987068076178105774002069430547347586457267976312284965275143417564577266019320391907203446068831818900315089890441746677278680503205016007640717449911810064698982320367742849295545044784288086416639881219328331670923604807691390329852325994905103159918749426632978914196302021779233296587248617243291926186637712009761181663451030137377096004730682082729330796742657565192014076311468376311780670277806063418452803275143391013967129657571292882440905287934189370862182738243736598759052262337873026293781295783644741421638221043756450449539177189247380870800042779086792170866718723178896181094368126385127932316564273011242738961144490861606071667202982530086201321808682694241348311511906124366907170394369538034551009840855185607708120279626485307850417766149761674962487170600986227299620600357747491628910711224648911173600903998181030564717441676849351273993815584060930750486880438614723844100879368675256539588048363613919043091481608239845331837745567903312486811310805445074720235934992985876414993841175334665454944596095883933903646072548329494300233597552396666305717216931567608193308991433046346195459426463808240981936510684022483456150681001536648949799463660890843281216418005562750991341531303746672805176668337102964242314775745802048101703080701696675066964508523100669409798480964149789568315854907148707993668495849404517795309357606989623257267497724387710086104267228709901803667692342818770853298466085813935320568354403670015048301439521783884787132857104261914409223671188636150286434001819664446998414535744973615900696602353007312393223369669285876805061561201316843951421629595994854844116213941792762396122663994832850989747848886455511921267089585925789583764727012934220887122062623517421496211625121050834065682737518094382797918060905034561070380479069789039209805524858399244266371366665269100144859978745150754400039557168703284946834531335823065173538370646892540008013778797124843641162738954412934859356453213048131963478874888218168436344789476862844737528152314580385720817505191217189447678836915091486733558941698162828856828892101536275176092429489616330906460362031244435522316495541808327580297297008174330567903376940376426834339968014787250052026115292093756663042753138633321879548205136545915276800765859991706797435508134025343920354780872891605118826283822935935574904562066433010113137863569763725764748977179478296241440311808649410044955251629230914365978642795913200994084555259460186588429136422563197105442560749587426911763764875972066798276284007775707070148769459649568654644598766671614653735821293901393701432997000098639824721616546758017866443610987781628818394431932881169900317073617593169782701057075133591911956379642355392253707555938765207111231706719554236992857521353949811611954069771923170665576792037779726780447464704339433442510921390294850873814239643712212813698984183722291036479800115458134154868914733594547730926540678166477547690661593331539336340387880163025738723320636769029508686793339929583949563036669980601832442696377518304060579199964075936957692401289964699484272506772916392376479185690520932860028780649681154384709107269428602412751291430069576729874744758956752518519631709800233876228346695810435370201225200010843877446932823060641851838548028558092154664451676852323585167772152430102660997762994589798264989346133041975605445285087784810157956122723096299420161007603585165219231549808613609054219918182250753046640610093902901029183521279157901153053353139154310718212720275578055955380939428078850084238133385153673732264383625715861496481294095096780468222210756491881562130533827003449178990240667262222254175746919689335711785761795358615119509278067228129121199973211891368957984091778344952418804061894515065253126795253193708418693684919846887433012862089341684113200941257751283972023493080506714498286406785139555561866860704842282907128222485249668468840320098418901476807742404809869588804880639386082639192826178042506503726135665216720243653516246593939887661378885697080787292334365409113587636406164471848545319343449801668281861331943309931433134290298638002405774447699711077641753227777556516898902828476766455584602890339966116882100389355200573137023412556647294872072070347111031893007976943650478672167881423815752182312709662924670351869576524196218449879492864585317496618068009932084585686581731622305860814573346008993149382873024619522432401313242394989260094505363643545205632027673829977851716599545658345218882190072760053411103373454939523347524289387738812868323991812139769849295555082335499104504968162211227140895641161297525404844393963056142732664397670052725667275054315600783371690988184195164179841033301255721758965278552816263102021417408084484815928700160875476061447701244852036273279758943490165452196248545883192148999333997489451191765285666674067127523006419028175388589977832979548631732982778001731324111144500673217954138281265518819320849271482461067135420914424950656740371491895711503901364522539552143194197690263378668099834850731209650521687031774858625344903160492256794268192349620167337965399556764747019822232899524090961743704615574984980490455567490614535122131150610210175269969192451783473661799162371261723299540265833348288694422631362496220209790537121954388372314917604696029210702028749163710538899748121298772552637873657371022231053774004532820118467884786045124599577826432035540693536796088363891161791831944685137690582597339787354308651909253007672040611260181672299057522904079341129413655553402892785404519085246739142332320611453462408776347569447826684888051037144603580991547833287929861128130301309198074224436127350232519893675162827154370218513005328004483636860292051925716608023126295131590948574335132383841636250672774312427066975409594655220012945974180972729981954471714324270255477454212104865651826697497476885738104820015837542451303381908009155153966790823396520058432902361029047233473715776396390655179465809868307243114059226780583848142352134122102492656208269214476936962128438202707722608072596779541217741836346021080677261323423679370766588977567639073895952481520504245248626713220316323609486210679976123729108865128357252069284076129018717261943548576519354267741278622888643682033400793658654306307666588122805282748518753498254873781913417651525098692052207440153119754056255332038725933533728370832700962708279119706624680523608003576921217175726605299137546268816514095710407517373243967318850468762193684112867997677610452129342389274225347075028387258489123124282371794440358931514727429397759270690182621275892213009526376904715232704376383854999467636157469592663504352121457112164395341377379413024040724883597168475599774253450066860085845353937443653879033739599041236815322113354622700534542647336298649953833785671980904397812378167086676636383867515091542192988764736613722699906973026878543474821109261524089986812297219326912018233797343468655586386322392696537735783734909894150735400302017320149874143073348587209627031878589480874269619313076337029056145928208594873945241481781797642735375302809893145492155270763295897815976553584873919000396180170693045812658856354139593901470693009343562351658634219947571769815941436732732452840429630253292643197666828051708499031520090075138791982735320240740796128217011737475260669138524756308692867361775486240777370549796752358827816588797917420456884029705140460979759110843343914088091517120132305225672007849474321365862132121602160842585589835731203361273829615130161025158588447789890417592441636696266137352299853223294038165162516061937199388770793023266288708223001639886125855215551002931039881373734488698389189720900101783170190949916936812805209556471080293856911846836236526963780865674295074266761865541948118284745215636143591112986865558976285936601632366839070898121347687761368799870025935548034009608050337978624159939829644339578928367454046014699814779389073836883367286669065658755721628374850258632596271306289380483648475709933041668241709105722155707354989140872827697528306970691384325985385958459746251012987179299588585267556499270857048513966338714381468190086658295014946133694227014749643888779412077606060737576117380019152763393916183536880193220645658961137727299518647813440337095598014423572107243736688557002678322552188913306702216680539939595416345947231440331367644548871167759138275685133614237114258159186136609778745817763448483143601916758804761355721117005811811911435493550770089925430078929022217552586061271206540174607010896467740388288553955654102840380740425459867192164908637754176738088596159559208462626860524036192191582191865905936351830079992421928397404192659638943001524511010706770891269917679886240061747554913288641989739879558922415929858256864130552105824279676818060769934330767287425410725795641947259083480370230186637837126686249331427509044798212781130642040801772930655161310521267870441085034765829243513651298578976261236634519106696632744695285001399421018231421879051062771457551361790860393297351968034627545922926414066025974477306762453487348559716032749334023149141487501703778751207522607642932124803258215712601623777481621018217902600744985649927234053481031613475584825621072729644105952040068052540043627151370786064710336864133727783195206355834630888275289805677621531251904713674147882078316826828418851260996753023105269314326348791484228017119529203522999576419326242431463543975699892634548728432234187287044478237135409936513039686733733798155504259896484753584162896946544601869527836060251183325423092394032891540142979431118221885280413811224028968111231315900280252740786487829023303043331153005785487780827091763665997704436222638458227336286997423296552851444052353483618364044787434974024998949060379167496232060026166368521967488234652810655086539268544559080998645065840353382278849556450906376383621429700984554667426199556300850139734370215920911572504539752086629724612144779177240921145100801190644222342824152669538295778923534462717592831839430407578115122622275998694922209438445414574999444878757973811219373870078129801290121749487110914543896543697625616753095936433675127736523304357928719614050787898046287999800185152313983828686979829363530783073504839629802514379167623717992681963460903037866156655421542890021386121538142189213167687665047156132547898681070106046554892321169939260828756217352203082134774936247351320492409084405999842396062671691643642321272958002560664575026385095318042768569392664174521652942833414276290462422515398526106953375273193574177777338998838052824047037184306719443721132054132909642488263714217347859349167453790674021450272266884593677004110791647925916873306501136964178303623678458902165267832310793601676620320433727473315333574686879787047017643056576687614231781333648097855370359476404301848284276650950451882307654327549834571394059355523099997545948773842082515939942328368780850128503825386040964376840875571962994848652309232451547407577693525936779243047600436391887206778827975734924964918042891785439015682746792075203435139721644651132581776487749975730369879101088511499881931346693142048052930928372168921876851980321793984685191210324834358317091596406637295495059370735940838567046617752950396880184161476455785896819535659198043267168730748524117678570089359464786010743172586167789750920095711538218219279357202645643987392331777044622485313858956280232849887438286168420926511107855443983009449176153744127255850788630547423534128716584424388974326754615863805141167327610920524469526548835005821255404495872091793736499234504149152962446535524007121587812518267886697598624530063457571949573593525648905578298547251757356072857714147019033687476628212840140178941408473692011570199467017281845651443905305274796554549937317849118536919540291718028693571158572784730165762297403214394896651844955030812402536799160418918603139036707097707286927092063836163446620756615592856097976249612070856676971582172733514038896176164312428866499296967074118376708456020435619610157272729062023230920200210795952583941697566394326619266800322955380557382280356930843565592368998926337035620143447298664481539543159544463729586066866123436242293023834789069291409033921877140189529247795324525584416127476933240724499484071556047187718630460319168298701818218180346814577604811301499743382736728224888302028555458164162414557914262533678904236053899059312852261029777597534757983565523855265098282743469711006592544699936489479233266122712336763734612970752314929966188693300989209290253081993035572971352292147630177312728577575252625961426153381346031594006386803873134594170488150252085133350645353880207212354197271397149065260804836209252607546348984909675568744713935071683490084088790659504863062538411426265724782200664512182346683585801388200796067106360279826890623989329933378317154614785586306520504698389632270801607671801816790080782554749142287857384819711388277478082549887522416201106623729547684811204954187641122175833415925547228089871286857231003370620947712993872235560812193109293380881409234261000523316703092290773404902600974693528154705563154439537640574125580911815494096652771797631272771843550362098800189482155681291780686829821861834441896553972696544244455684534841705190300745374496990330892752908609436557745116085833887518650471437070632395847030915237004678180112432337516576565084750046817586429603542830559355304769644960998635786720736785603475011303214746958680201631640087640182198419953505062002835323788411606624588851906146638686095318164985141476995651518330548522035521979248814190999308063779188201130098560400509693096439205264114418208248336682015362498128442582488474163490482061811524102891281281275405225778736791241087566586202523157272600453027286188239831720448117517307749823620723117786135174239011983147967261132050646987878078881603545574362506303797775188029360045071186109572410763385783598800875959596214015410164833538361607102181125737885809063398088181951214220573585436984045005871996297462889513794930162201920167796770595388304172231026834207740713298247814500846165827750567890347355168493666094392642099796898397081855197471486514291175474729278202269499161801244701579286318588429412524603406046889217144722598438374266978605654101937214141792420555604846496812551371033526383124570326099453055278584671741559917217646054625475009742308933886771104233597818937969384487808990969042482891300450522754003444333574513450655360995752593841850096133392048298887900063440122145132079050786259491677266182771404764059519927592922760210578674671697432584096033528447982021684755894236432606870739638585027244694721329709153273899874889671011643302546166017531416689604238603773902447652330994015353812513545242821882862034341519581531093662960646647395164899820478160409642444219206005955970793301804257909924341319358478099837856103843799641572476075035338047645223232593515542950203274320199390656318667638626192415385056946667869403976185420679099128621646087704931774509361692927360532205091743609784862002846892492085218637379148325633246535648255140555601675066131085241294709346695553239172958849622324759857185578894635160873258145518597199900082299627894606766945752571822061190175250722538911427623944569190817029096484255230638862877783539437154201494597690401715359935457896829305274263598460956369607244634304752424768607463060441644593871496694039186929410450866903616046906691405298440440007424714060786706065668453292810257813029151072995012956936913629144372607816405228582420376544625141125429301594710703783439736380473389434127896331955856103899777590656858365025046006584692250714572014248096990009723439595448363176371930185961983629068603066191826989231461684867519129716963295906097676023848514130057608541879544035067946074347631808681893809525202305148227641494326754031806095060490221022662014030895139812257208413820708630827667839328266164438632957017273995482684843885251175753126588838531495876044040678655463321884885230852795582753341751453352535152092967443083071640886920461387172348389774933701383474232712857804237281580681225013332636466071687485769813699282952970699406421921621146452284192561132641093629550497053255363927595531316413856416219684381382525834165140604837452370286179294610105359169071916327024374805107951685183482635296543882226726811277185062317746775068830054667554555450172715606692391835632495716248575662285608222497476313204836343664594046501562127075504923455253543575212994621857174399278611565278378147065970691736518594232164769609889951272742242133404923661650887580693545799468073897847551872820511747740314562228981344500351921919095968046884298292360110612816187378796642620823197504898451578628839660526203429678272022023855447315871211057467119599098397481748713108581183651156390492259541264022134413448723852619730431835696260465548801552756962341497654417582249611515015691970923675691058572861500225341028411095347842985123869286871676798852752953703920523177703106169855885151638930439237183590489175647057127029696931632750802888695910972666141735580843266823522320914910760468939012706728059177792887652402385434540059364202029888030721869011467220772032606619188079896960070612573381522430502248265092865312297851370288998535575216075393919417940722746901842137464502775503781723395211760223527915125893592025965248917427732527015451226481823062932819629485673596624683969882274759970505762911226241609084765472365135033658607570144191455885486707089206426905714900842181505484093012190730863103507897116431645945498891577602556249963043097364536528915584764000113212359186819914537019882226863140558274224954622040878713492686160337394439404082009743530494973334224583789727916291850715661226748063223869174438172985809383661503791636062228429945303581351432960642818907894401138397276923090301112612831092598044026557255572991689870174215046479832653017583791707050686263342088477635904352929151728975924856682134094470743217864800449221907763454987613734797987803150609431562446107463801998006008817057995385357328682325488210763216178291648721292644064990025452086952065729648619070642099598744630892661910112713424638415677375188903639016772819805596740892342076068857345304097326281549204417815162123930511823685108050550314470149041623423108402952912061566214339624364197092284991907798207283423790880751656504405429480533939069954550141797423699533303986878514025218674430679084998769709523591077381336830459748681290860365540728099429372040502364602955178386169667762158913820625137440240012691131425738198497273521071547904869082292174600919083308569644518719208912242428247699123025188355997757092408674330153872599248372149435595929898987845871185733410395086755933923920977781135622348069936447591514993944008269181531004727128326800622830198125543307248967244267008948627261594436931099531955555402919745272076147731472295279800665474594740922478249045115799972362806857519177232921665097749170756957017095007572291959510185230024720473658713781534574094298762684119757832163560744023040813314329493248730873170626834785624890027152440446360660546702084692264843200768586154076912199348484754761313800812068488409897882931065136826875916403283466268053993324354067513477532661433905752940671776448169235147428255732993398081897526041101914221195552937339676298555577406959738218828551443489627990345340236189044566887960810259428815198475544026793774892295753753875751913471305637245371568729969231173828147584993972336271397844006840572589242543154703376408650813164176626882729378976596402221885042082015007035125491831824481998460008499396174442940673434176731178126429368125785685169984524892665728987680153170593630313974744534468904391730929556172800324505910260017843062916059510055748145328197622066003180433970105811732759461057553294563532866119542337930220011340802659990464129600984385139644369016674290006597714891541757749696036676541471298956319518355377575080935767696120273253554390289652088080519279980394920315377185379837580706581045418390764392762139223088053839481713513578830229001251209523420847745666002849929531775312387741734470737235199808083583172109185843353051582586851341638811650166217051862447219060584200020749947273468041329661819269574493269986097009725835071445776523981536842429828920347899961873909988547140942823211980888666616956731445408080667167365213828558903820140423681819922481937581223873665603359170535094897850022967787768465203576440601902879488295583578082719098817325544933378094895790746649704988819205151564448340322311987598651193304852622449612945807112329336123958155309591691484832202529041038228922154968473979879176707964536003117915716610340086711638866261569746006087240348523912772719816740668794224205264339429260229116803388172140195579249424837969170340787868420354195983766889076187599818945936105715488475666894680534079333347847278025171839411396640099548429410844635759699862809174158355962820943394935271104923874748989577603698503158805552553925173764200796655731417501727525856677058701215160859646597173884654619259398779848944719258334067403807140690980014845896667390906350535338965818330069646348424774068049616832507455526785283554031631662025489282392463182118532163162584015198718501762647497590349660992275674570002933243192864102272712802537158832360504086038298002646088430489415303099842060932877023207767278781236872970358851832436411464045849362529472959233829003424266579471321126264243807788472707812476229393688849821270365616925431352266905988731450683176599293678850262826991850633188154083485886156820375506461286258168539726024285405861284001091576118292882703448566185141234577443159532155714723621449578559037005131050566137914508495772269598379640683715344004008320047055796591242589126022705354170970045407526014080944384829774116343583651937164910493965669036134046523810337396583204350551769164969261867241195619234687741925684781756301433795272313576205910426360311253568647924716417523490943780838048302701709469372365060112313569623800317992853759089236046672714417404822092141832606984735109552842265450435080853306922659573929460901846016149388015669069800167343748423730767432296724353441342529749330703818061738193300547514443990317364701695706558691676193928600198304726668529250203348591068416162105893137502408726378632415184146545475695723563232980891870129195065941466113117250594522563176907762537101332408994798442173863633397611563280384944773520306528330622009311602709585607410867980629293154254934792707104024934642466595374213855376587465674044944674809656967377425237179832982159935951348120828500393949089642217547786540904178072554351150874128488244787116816743928245737076813626915007801965844839612230011002870721951151278099458526859382103790833966299579388547689451092706206050032594452046664507363240484168987030387214138833680916639430901087050262664135354970763387321997046102029613418304068350259967203863453179612209933518891991604883156759013149048942808430441443361885399064538695983502131166184970511770226549374723496895721688126855426161083130665150338589212677235567752585673602518720102686290450583377692832724394860507005259222614541433631468126586409882793050159874658371518638385675562298091304272573969881863755141771295278067093631678488777806330025066663528320569102807164473812844648903337253434174204525711949591613803069934124274178297710795794752038924781385735817591109914338652289506890231259652062352507749149838079472485131802410889420196034350001092214806634477410441045960810825265631715851919310165026168552318556953911361788930305814052203098765894937065189605234404720812857724300026137907500208047876241425561971556942523738959200389541137853903404247860979535880604316514412091436000704457461807204465670514986703066688615379658695718278396951642215193178609617977124527422450575330211249617331838628232324907123691358784177509376164422166075869825233428474770914436379827469143389770425058168837625040266065019111584650775863648459502524288209421613167291013205302138917757582258142037242955989007005132036649107736401644895158275145986339296574457598558084207668129791508655825495165981079159046779647715429531264167214085398183939948714237331090744816785938721368666526034258032101804209943630519341807507657739592200045159421128989835114653005525652590019208572827904417122066192622484760992278805197765826932092962198522345228246093837549002934573157900028510422569023508983592849477234741519949931940218449087324146152182182332325860306674802819053284388693042143386512491741001009125508007295825767868625507309318119801965953142655891397380435006561288938593116491847762313047920535484104474316653187731973825691531340886747159901810064833260416552003200062865237379874564213612131743102136801225705774217382238065303970647773085865109594939032274595074414596836452682011785836678606206685108789542422437410203992237877408844779939274792741169054464959937288381866497380177225352459164352799553932211569242063253696013591708834478901032151446976507901643219099993912995778821022420688617003525271299601226428829445758930630409659083594789944799126364675612277354501518771959714697963970385271900951368196888020380681116403564542155466376445613384670351031394966838532253660176562871652052748542288421715563419356640133070519605665247219019144726299768939235060221394107543294163797803843864407045655381058966558938525754105397678870149170638440308442167849867114217789856904764058465201455310297440795548612438109999666398527782596651350186503699402990585494176669398404435715427731132389327050542790523066198752822408185853960222512851575584712336582078814514390701192774880575191671243386865920902247561575875672340472478168381636459686207576538399761001913693675606995340322411341565367056659537140262864645672986519065318629683125785637829752756659364801037665842361089077835726715178920656970431163242290550007309369661732902905229276490173586684007751613226086453449450243883502072737318288521894411134368957256983264353775720494128897166900850424229886867459024365544300191225937896033450496562384821933475392934155165154525867763829772351369339260144016592717262186923517162144873679644283325027014633599448560247843804203587071976907760453360283718281525807317651113360575175267014507937833756711124708204555834039556526244188015994339145590944782760317202931027948529392979187943939971757002279097728409951480315623489062631200387906178502874203768274154828317902234104606761267774905929735916566015582011085194922856121001236169387184330317877239502510704023435013747628071279227692389118802234401609740716681343763525619009762716977751901530804920422407208855203647351571725484544179638981439868172036015175885788556852061706823634387579873335733932174430450015183841397114678011330208612122530492861766728604522116974859693857004553743354841242825171322453914178469839388335822940388034654004257496542952608656244778752487772838359936626347751101667964683304941681807176676613112255732918348267706559669986427689976613184699856979648583291295369982100262219908560177780858877684868472360992940777414452956237781456484137330467770201242237785619634382988869774107486338703401845683251262143404173402945359743880957283985572993478427541673769417591627819613493322943006785076806957071998832258791624592323173452081409968364449513470925999909463769056229028287528942095690873578379161134415373024830073227132695085362675858505940454218587636039746285574382711081572466191849918083732836544700883279432004947383485468347296964961662652867561773541975485835931186483247176530493111895862049904267558197515038640036416048453723070176245319513891342925652652034279038266154860016644739261999931011709807609389884467173012548728512761426574578064038175648337005531760818798726529133141793798843316815508369792018056916058606352555123137835530679257114237544456324397319839794455447153632297420685722836151334071984623382281193013160020191846642377478270295230289540855929570297046594127864263936944521535371588835939052656481458664423666406048659109498198682335209492024004624656944530856401446709103364439028743133851001331706068008806381064899207589334851420266299694885576797143538108523879757603412290883664899160509408097969400549463407527034721478432169291809037309242641188629832990496278634374101240500703548199918464065403259275368023922255966954570757769950896924670931970069753028637357172111044054054832428764187339033355462009026893597666963603327374018804079540397475929105103339173398477283498862875792070961528117122013739677835274081673195043953611698146598095226943906375917198308560565650558724293405604176965970333184157291744354034606037596490817401904002726917411826192433813220240020336343879572314509247601803044295131679105891894177802704467291306093766012127153056328125671880836352281547496923975978883049320471548122270325195065773372910085390990223308256694653411954151335481828883717057441929590221637481845964058104572878707746783381152789054583678489991668992452823314722557218279891020368864190490987672663981313805555480089160970384824836111024143305070054143443543411067837409134476872451684034632375152694220710256551859502110743966055665001014390442697143916289936771379897944896056303548769770280655428896798947070683637777479198756368079293995923305110147603729828718696827257177940410916966360260726442608449616112461736107972621549596166559970363789674850047179785912597528702757337375957670102733370901126890098443796507710877877654938600912788915436833740588502769764826786177306200232297270561551900981235044887203404380060010310362236280475983532457645851914816830841820119738199375020700362694396554228568038727792674605501694957778727194544203761985932305033191840609808832249793874535191017930014871017776178569263556508772033535674866962809734649390656487694860019437964299190934524263309544552171838688700506805698978948213135847806663456115874105802167263417251809652422892515016900157829353083077509285407221492914812246177223597266776562370841457386505950314250097941148487769881680917978411732127883234140752393235305308163635152797765943875676214222555973791359397425246888767635462560898106016008291371088769966655147950415736997255911438829118164027984504315479450665837299404426017661165462161828705479707357521717725855420727129647143359211365288541710440658886451360634599581955874265477633891653791617516534365474554013568286611815973370300406477509111065190468670127542524417001182183775894160068108429935151929449389957764904841644671386452722953117071696226288175279847962452419931159097916609653007912181356724827772023966280815038663256151979070832156861257084273577789504795238033289146606054789925558346993703478646031938928690345726251156915855516555145534931556437304159042122231010724493423562122647025339682135295271203082519947302684324538133668170025716560657735793574726467321949030660775286259784406616464499135403897936141831480315418790470313264983242885912280206815222729119862470670101497519504162287146876072971910192688534465619061997432907371416575551867999035070860273642145488620523165517194223033738939347458640118708253769948360062800128042152148363591843554745205698173909190100819211508609908033813641797540600837874823662225036660589236639261155093962471795379492683508415609306479609946763011161251709528591051280596354375168999563435607049828396946724711654869196432467600900013860854230231759962182315318391856582344254848301151664858129948565940519710906486429361596149370330130722038215934656403681022430075013847361038324572684757407184412462469605169871811917417848229385828987886303833186890738929635523341049865688463092836532395412174357602532106856316173457150925354656671993858427973933344102356698213185021708553071043702545296754147051002790933927080908870758321695620436188803351609788244116664573092479142846354256057512766419306152429840826882019826514850319465876357217856024509472757641617613819263786687576393416386895863513246832987509328876203632325277106271223634159661042828869844736386957323158250627175429739845136611256210636533740708859567584690976614565573071435534727406664603383466289199624048550420201578843507236232600504816789275735350773368383798315229738863172088738820217761183925124672197660120336559746472176180510992141884877735303532933750930991620876869182106476510297041583453623571261743067736795876305641032845112906804790725295731473379918190051288058558856011074808470497438117335438114298590365104476761591583011072391050700110442297224658453994397759111417748471554039676914080733933242965444708289833269348628111023499273685171686936292107919821471090997114490009190359272061387721054211563318393614678848390152749234100092515015824453074200354803822125175637929418022099804849004998912251441183577899061877823264843236086408106800622054482138026025597853210873169155384318399739049235815127196920125929157080302261320449029457887630973042057865995529349594409554121891413469527984217848495428694246753442208388259944337745901438912447631221699418706974850706832274510510879408142358540222795300252054539291153426359551182128815750044031974059304526146154443129230056921093512304960173731122512085644883064655163364420213325518576478710169934049194952450583649199651794261666355904287849057717518168294480140029149149540806109569327783549795135602661050433570407958625558834058080091296638005153313794906283692831050526712671832743718779642853824867919077752045441932587971790316923731394543995012633875706475726951499168929023696545677207158141876334229154706020631425636007931927105754787230512545665605301301024140573363522980327672886221278226199866136153181754559734580051980198160230757738308788951383810750852668197764588190598904432436541502727280770250220578144114999446909059599948144322393080090107513853224669110439454201863559361788148268381737718492971294673970406774894794914827152458776482623103685668446402488327082092953887149699860591074415190860128505742012028838527289062187689605920507749658590975401710352437464932878091025477118636107299751786329029342816178080983838224162893404077717495755121544223741014712741572861285798096765012203853394128497451010713702529991218810428593532177362411056315779803718750446806230398809283837441970051281614682627644387747653746194478029483615587028517001974048727288936407383674136756955759882809494680943304520271509352171331587512069694162015327207221949693477973461732918105044293879150946198335235032313978117363632730944796400575217351856028707602971729962136362798626661441708361667967069475135666596714976739545463479798196768766955540793356342472507692981688252594930435628470042281050071664442793864071164314497483684478966235488720413774655470513966721370219510782183130186304121844975185078859697821500083160550856695843099668654222139363674635923733773608292097093078814073950044945232569610238920726806247852561881358534750894906995166096885193588605441606564679288169984324640352955494316761563640362081587771321953642584014320019971288417912350766796424219783778163324344246708400912519100361975192350635544696937998305581730998056078389140344331028942126338838544031577420592496171124409507842425958141479426214034824626016307010069945835940861194290353417813528671084367488429383783960582300900900602662385292387983906881003183440595638524725368456909265926638297712051183572068186478451128440563983130645498632399099271518555709113754949038187946224909339583411988646345106871525571944088495647103279285041649066460049157586698931936321909538229798225478702725600308391952178997623573806904247044729001832468947397826926492124113160346831938058121621380232775712014802602892973015030677846239837725860422355353493190965428928868673791491450778907393209180353556107408703914716293077048790407486496760136808380845918081717583568148484785039891410539220864894317247316841359347575955068774444259818144710329649183825756113520896897994322665960675139464052737940408790817956464444679620748576397297550310451010778412537646353708131527294731913254119716819723907955050748044479504595151321544950332000946676702294320905221548191199932378016127932176752816940251404029241093149492724563985886570170601469671645967974550316073914561209883772570196377773906536594565202884721980578246214119408215845558567469475217664047666348994163572243791440883928188120848557634177709350444091508256008730639082573396899654977804056869049513711239088177035499370607970637159873891178358705810982941390186872488884438932754572190610991923229933743652922182782421898792489943936256409359527725003354607798713979225824371104251287922373543002183790789608204616079974959253328491469244923186524837183181324485003827415702631953041662080312945001899507003167880686454959695396654835789982729750347537048517328384106806044516321125073737438758175117405557492680678765017786403826827741758332344549186073925532425117730855726819772461118620457524060927444916493973727543174377681217236373235246024180501376852995468950823154637462989217871155545008888021535428880605677216341967446831744561029090995697863690661785756138332956849714068269171535675391250692802421032622003923928990829585975862300207475698805269518331319358685543216523123107993600171462328402018107097302875480450964390658182241424575821998734220976544877560019877729792738129725108444872391209382846359660727122776423608780131270165305586604917384747126236086914089660973176278270069814354037336964807531461683386305563333619215270088675027937817891221317902295931269708157809436637026508583080215717861517143413287634802771531302528077281046787745444339091226621064060131457306194417685586582583621647887480923696093729144485209258175569797332222823843024553636513836765744783610694555172378045681620723437315931802143387905664199022548413461574816518888504746429238966174806317397210873843860077780217370003701125072081204284130907788395440805980569842806718567585984274138390893287234177659538370610097974173055117014652509688749443765618244399699441598877358191538848111569230425629777241358858028649003764621656711479728426737182682899263861429699759193054871841739329367077977280333708912437551720808251831937311726878458088146586357447569207559952144945571538703441641305271485314063590214667781063832566568507414813084984113526112578825179271971188624993131844705688693172114605356789308119724520938991307322228872147067670649762058198634102215342287074497767683075663777634130511237644518738489557473007080640764836709121724540098772291287323756604472115235439454827234271730663789889353781342283817050219359656782500982132003733741176425665801822220179047012190368780064135590971045465040190256189197157528763073116974664267547704141027027231282653207735479958001712907434346588523481232247091945557423188165550789745361540310576983188264305935393437991168006607086763810187881091224697193679273816148306008780531399389508346715544455574897204148544841793920883714924515948874090031024240482155788711097199816122200240640523550325039152489412056096994914950686032720102246221940300722549600282444407259142997591972357982724446865264526260199257192386061706632562845337349334575535762417113614222819147518240699071105345896580194019802737088436670661061831728312515558183557659643693404782338021395165629161851831776692867054328927713776656236212816843465725520152775720174608219919158810015992250391591720911620031848729461516741587130502467708499139463692488724171148306373106398324619337338882979723533830004458203645555871166109248858749641485719999780222045834813464400600955971460896971134063464486847563955987016998507127406223641932039414054396480851992263963255332245216031467425597803706292334790065609648283156421338909505111221825169231427965381199646343669235199560299611129458092535714747071400034750238074840655891496344289352072555215310344980124102642511923714188604637186103544780853155380760169318092997982652871018540510594558201430288102156280362332443923425484493235824563773020010971115913481175203819497325686551062454383604748371983428889808124844546767105599156119610270235774342423398880063688283965902485030415839823084995234211875777824682657008964982245080895339037935239615385299813350554354763095125943617233071813031748995495630947754292066857748334690900740688206607377113323102456456875330598744227413962798338022737956386705295920281437084856153444586515908181294454661844789897868532659938888441728174349986589956561288027082927692859266600076294905578193260624215682637067110212209417788818764227886693033640399655258685013457346694646569474044035079470677106389227447369982586676659035497629688459962382208872289116120921240120886521954980255476780831910481381886467813040064199998958922095614302594829940405481082622165799210883749304675073586695545325483308608841967112124957383515470204688979306580366158463294922590952945258584643940296245838464666901381575084809129188365313055988201620501654370868547121206916165074423564364508671305534652815356308164090424349790403718947236014199011286023253424861723166620240636582343945167188623344259075952430860048474950581139862336723447388886812032939908980066154039697273922853227270381233334054545175457147027449170678746687903631288907997135601184395080434371413724253970014852004198049029856087136799270257889097183659039883872561478293725359997406000031165881376049000450128644524748743821637705086409845223169087500266447949909724645323357221144800922377771810806111432654038595279169607247792526236950990119614199356086213447975553897948352876808438612309986519580499959948613281294084553443332197037059680573114903305854616727257368812016441142168252576347986043675898366125137029196432256604980813519363003506712110172287590816059401388874670280429398387426151755176174971723939556962353921005832774776932734762149178642408807007903752437587768760003173869383936525944851578679526578698013802518205832273047080906315773043149476873348716218349784708949080888651349452938726556403490780436730267144168307076297492419779493595760657974421195153914101237306770804125058219439655956387610573647061287991260342946949340685406416028835714161859215623541162961510355875447758312529029792816226330253921790938818310971901615988782024094155627693279792552430353448649007021304501346958935458082494065056970609275128436739508551326327155373060176254469044290748264568580336407721286149166188600422975486038452993010888575411619085627889671808920028311330040692257801217079237770834606211880811613377794753251386665958245509803027964250801635894230633086594085817086288755343615901987179707671091368407309637067167321019824246824887647750372361471554741544740056776019060319561153015371158496931252828409517264776847261110588389040943162099186388847517092417549979660300940688993811805587711259335897885883799833550934202857215407579985335438399983648385414177710823471422181091433220733315349671273954716011765281467256272923905208065464304273444345439698901626589806217528487157968565782780165934964456429906414192717162424834185602766951172020139698581702244129465513008816336917598471576028904379906344250492749643242023710577710981834464868506493652441192548275726368226473018295515873225850492250218243099558202109682371435133862132607077320234474627174143238632651399689791633143223864862895968046677784358240054629726739331530205770871115915302072594021195434770824416934792085071185270055451349107804925229985500133458338085025520029820143810301318643271778090364611230602919069350685637047661021715579974672751966325577535940182126075790084599089446966563252070766864002730838659415680490053888087312264827654350590149812588143876033549281961387306751741757086448007631820949646532524746800900182291564548719824800410390036421541580799634678831376636867037857464385152150358715687010487529858194569710673700832047301414239211324225246747808637629877246493390632166831835702517054463001488729043128610640726536064632662025806743960727986976812734549356738468846433374623712058671508930076237283223633340097449874034004664786125355080055513476243756706926521391653034363059691210523749627808813394184192208472509450629836384406412678546123853512489394838678587840013329639819670069035465729300345086254912777700543237665086443820169557213808869436414767316939082839886541120748521753425453564400312915628070344145069957266710499438533996957512410243996671773394499511126860479809200931255035549628078499653587977163384696506598431678306012995477431342896518632841819265451244715297022815638602006900100737738679545389727693402277279600152190398954990997253933321341336095276448129033832908571996974698036576449412905369725564351528316794433273365887029703106214406550614323359362340302221282645902352088112768438688379759037679431462496215108903299193878089323684803400038689165940400629872707928765792684422221286787701238893724129071027750699252380988210152353155183076140338300336678876729431987360699829216610345033973818996218627812115661321311962573879693350658361861800843667868547381885179775984509433618024910578832385040780658300611720649052005840685090396511127023132240626214792241143147134444976892501115567673001383670517282527496391205240694082337049757149991542720484768659714008200411640608674893569753807985649425094929821041197528172768429269245789571038387478237473341146209383960918442134371462517424044509347625883530460980212699861495550018849435757487999295893712330222566440266882479385295557176310706295945293159351865304413087903073023262293531607117652768012012361683408933222109409348384512355895731776548889187880120773957831168970470135015090430907890297816122979458721664862518257737095214696904552990518212710993337241338928960929499209927533963035967128817514933446170927734851855174084814871220551681544759151969419890133131208345462548968544827251299024235933954824435720236466658703073691070986264577168424955164353204974599314657876378651579579987813524563006774162755241686021187057626381072248056628689858574365980405586112715493612123940166705665705911786954125989334828576519973341994464850616851153797061834365069366943933709911404832288647485140258563584193146328246741392913561597339048993829523846202821668160329832888752785626522636347425388535028984974568494526105015722352854714673656813814186911396170434861037943294384211648325917889481287192343488402508997134728185861888261668112975802718403077042242001745127860212552837025914396551341955405336882928853927974793669882460730755720428901231683640367049310671953489436286024952904380634627876732224352816653590983681347046185643548700953310131558383244787915486506072429006883411566506186201647963594310534383004358040742262066367700814622282780201373736851175796505942235785162111176092674661485328204751470719961446338115924019796655166752578886824844805793569093500496757007442659206531220017861412635756549370881974389801085857181096594376550240151018027607038396554174260908846520421969007892456668656092130036824197132189828927036494964628364435598293427801627406720528948945113189933571977015772662110564650662428877207448963207251544213435273968729907658743352974704297819779908070813243193706775088964488877505231298652773322082458346670285017061224092170046983851189315041910889023476888491072832578817536880880615912088195938885264690247976250309933309506040960205306871647572170829405121389912705463014159517417195218971106849684077116267046293315604085156269302336893102536013794944753761667236337801938128978264887901424662611421451521135193930478280364554270035757144128578612677370273280650725772108730584183134270679963807950619305788859167818253595871319903404829528662329160832125499009067859070124475317431683872912642121359190334132262184768828408207229915710511156341227858315103898896249178975802977009724529534440746419696267737839017854055188518443091342123922398942590958501271417208082822213679635414067758780299379490071782162332370554473435493433081179543112846650019408443557473741597932006208060418693972480876286431909267304241059453211016985625145597419141769983685191642327498794571765057936719226617252506351956616974129539784937220545713567347380859247690249026130438116920320200829969539942377076394314713624450009517440179731472274603234060398068067550092421494074931026012929506228538679265279074444733862509791603965083961118278889735069624379644887563586640788652564745441225015377424848272876136671861614485482505620765777161807408485418166650717486695666331409713532310821107552976399491798357977751648740705129836728134541363877343516654568573930910628802297734838896807595506041202530203923062444711468334860462559126820641922333263489059650122131344034476761340941596851267974098905970671780206999896272757581091184084613645198633417339786422038101077850396617359018401796543311720576339550433171004349295084978880671238317124908545413785909863345966928138748736897928082910402059155106635300647152274378986515663230435977851650145508354489083841824107385086342067044866054557721547603107281484331146858152028360737094984623852508471629226058151091131695673508056659092917493654289448176993886388330931654705862464444633698083129438889601550024985257638426081006884017580415159445128934445601186709028244600652088047944421281125961152144898710636307165339899693345976433054649015105306002544341336246107680883509887111074892208282334890613040912369510855844819419537096478286195534838844551552125850740049646161297245515594289911738253275171750878855206421813947737537224497737380688183098625502849470879573641809580800159225692797624350593875787609556670272427058389527178284658746845765137605134327729424738254103479729041431604251331365224195025598684069684632787508147743641601407738793213887122330475726004138575507753398802511738378330335568958728907507290413328121093683892069508011011513315465351873958786584040814776886531893294746992835047811728042527773764042836730006932533666073376255235147732239528547666830967182149697816877350485908218982106961296470077968294005638801169096728554846397567360507373268082212554764937632673484364379291067952949521587099221611451891584156927454581026155375132118091341060296030950963496723389214994517046444865232174258493033854507442371889226536737823739981880422492219626712879656596743257921081521062160463684468205746222635018273920258149772079362487689570042368435196374204569583035479983922351279782229507616164628064262889714783272589836215010632108844448414212661022350393618102024523610579433364732666291996384568824823469323776391050365753563060798034190890906509350653001283883907609457859986512839698474444280589025147605264191705673396496149195706748739824584391823006214579851697489873746114712807459984335345700295131687908177918697159875273215169835083026042732095496200270813314477831983508744852787664351443872870008489296835216961104344724004428319090365585724218307102103824084448348258814121814712248973100938581769726481322823572934913860904916227541048763158848530094632564181377973916241237241852241922294548854875647207041412651758684943198807700016504199298572797536723208843026485376835684557495927289025657998050730499305256476447058879405317497479717591410411295166024599669986030637641443848831761192321037380320077523804826170657808159055612304989265760719412023736331912908288270229110949086640331908020917470278022029227866500938777586065422388783041717741386288025060788555487007750056157836532285147534022410901232478968418068641995610717598167621858566069462821101847543080943251625281729764621171760488514969727277197252698561144023602855781582704000310380513406699191880456064618168729677954024770635004236255906743211782053188648966126731298640741495001494468831865869727513566685611564411942170276471801904691983244098016605792395444904175114624586950983599124195522890402648325597794315481352918997967967896899822822235711052727569464496336869422056657930178780295604572878748571209549833690244159655408880927461797234272507516963334243114766901417400742523673693963442407737995562221494582783952129434150487847455146843565553804039832018505937651288281185521351995535658031962167165918449651132343273801977277088666987048686010676485373852779986171928355318706037158848513757788146375477152136616993361413925052840575010707578571473447288890520699613049236053770676473745228433299692714659307199151775708286318386065160667561651632196992303172740261683778324067101824656860381525665013448073168130569159112129844504788788249423942327394775875258829027225310077459658035797017583870297835325552645305957995773581473390143111397829887537656270884112720298814212410016522950521478539535788403362064173229465452684905267689614104310829752513282002502260442515831119782506294799445500712937659790157122233295068009723587381044102043921697982430908791947763823627070301190022031830827260613759292921989996118430812378334733485534493338939952139473437351747560848728318121494493155578749531231665988784342350508139891339751395651868461358245917017377538530861859156895268438774854556128360167090256978858747691223272266237114657362357297370898356742095455032511706686600133976226080223021903336552234003073220250254243286126579132799636853408445241583488645551988667485940149690246643932792165737968604097802026324110979313448187231075656828188765236718988049812267427261717011182235717452363877997877609408665079908237709553500825188356958846663942508135859113701092503383667337592428437023777827205422787509467457995681935992603488678593163055028325618071359580385178518748535156149074266761199196883990466568334148705148554983183952089985151530209779513454526124106746808931725275481050764333214805879329888813035792760290471636353339381050563875375699387332030919432314813962056388960432590524086434259579046667254283354804003147434687221153540487414448747697759829960949154674343945706583220470031670235380846152545602410803191824351976126429575572597802637679633108340468762773996652006587069700163978854550936502713245605656445441806799913606429189361118143605373872341880513615637160449473365706884476558934982854277818430948452209451513113983309944496026693866285324760190146725420493303532655479296451086761763990099725471597494208718665580793265795247552271323211963114023725448676041591221156752881975600712461947800952600420851334877788952079309271527325097377278859956352122546415823740868754361074416798743992520503835907867212912267774045175881665763789539234733939575059594540560475826829441895035586765392308913621664386543829661181792092385930470169695068118505066761678467413286763730997302034532079328801153351407732873239338013941607523302687442826662881012878340112168400813504485237278324817312492292296452659489579557595017281707580553510436154652103775055227507316621077736505799927409572696295452117608756870192713091938375496402220942452431963863678961013213804220674272166740236658890458271813843170498094661179319072649099267194082845159857436494157002221036384185966493785911907084381139475641491527344896614486047821793298172871125992584166840832070543527341186954196632300331268872646597750322376715740351043387924441178318498570271243523569224067801741578435191137125729497014270360679496253102933270908257564381377699534201002526555297095211341906424031510876917587839737648197237815121572595856097055861550756584479395285892038883621175098039700513067189375414627513870003298996082257120727559717919199884102345100739968401151370447952069300338691328874024931231994256624792659638003965414579325633366981938546750378634901610355316355171128177527777014484908957144963411311953216744036157764047051969539580884087169529085488373330231428381999654803728636689723376735745558237225972521464985106810203905605688841191423818226887217196027659838219799819822183929111809825994376285159985192773452396606135342375924231601587308659361028050731295499244357111475385443997126362060290334114605723877860749930952143343126850924587044906991638089445440806568409062459131401324273121568751320261654973677380238310701013012458207938016209681295519089417081779711412902876341631775585184866888672624307970017311187731838045097784892432162665084531202366985356195116003544350280297097429497467984248295828550799699871862965500111402985943842196568402657044204503044340007418092933524428699776096072146502859055223901768815806145799164373216494729918715199493657403002082451687835472882395746794304145625915094110771138043523224146551671568341329044838338241272095353022323421096857572466518177778560732840222942796569414490969775835436880424099868154731386598705505740380648735332482901471691710096253227198508474220290980471040623448740422814133604924831799575526780138366310710090902149109438353627788755819806727038113122290065599280408941415757398323696567871337103586860285481592405876577439480236739791785173539981522238240524930010931031296770612445658214188679724186438560237678165831974186681503914492251907960198506425526354609504843779103170571897733848046063175488470362923718330908093810486283159200794638657684978114341372352114754412736059820934668884358906436692617334743507410223465377817505206322517683620786796249563595012131501215222576326459140006523455912579983955476083506280367189976669196715776743664788873886232562196890192317260624092110685436336089687482664930206954837684258822066758786153612193318612258914240744334936058612359522211462964085871739034227488249979077300414815047684171956257563662384068022784689894799192476604314422692754035159913339602992288061108177520912816325455989364789808470727209549069046197368321626001514904838270498213280550126133638049691223850460291193126515317851913842949037650789430888670565447876491484438153858026582404501578040879441421970666983718287809225158983682326881862692888444683442315841286173261151258094412326604274410172619588542204774120418738364813034391043957251242237466628120233666118665359439558331292096211647973062526687643211760478245227023386185494045190336152322500658251641117096929787305894750987950185167407428593837786761016910335896579207970770939955300762959891860422770612554023517564497125906046208749473554155155045442732559018946481184845387144926830094933762451355207559740542769018414472923238167893754419479948365640776287507314811257614747562288546737819041248863847310818862054630386213222926277188538349788140980490050148564144485209901969006344757081268464611510554724749425382694314452137443073285641032530567881024108203867711436665492591116187811399673069896654779445943276113033412613012834521322844488630256184500036445608037632257956129111413618347451437948881966503244992090950895975244823272739079553306741092900860055036214019897955995969424871185542976183548599321747180253068650646952073751123150528020202308171492811620096063920984941590990568527432521123857864907710053157597776935926651623300413348687947147310980098871964338154269326467740671627280554676023335746321466473257094282043135257710254267425351940794080934453453411079140771004228137480693847658865903971103049885596165458511363962162972249701896378257222744966899302701653960706982880208679000151211666107363841309865598382678577734872036371528069626769359146797896670061848073148454688135607501333435593562894917400163309622683121470923361500961665430093592665998942832905933120475863932445956178915811460836165223418452377379856456401780340338145851647312655872781482771865635275694831521809060839814270367464717005593150601616631743779459831027315149256308805776163075747415648218179990947296615676951021114635880962908726248806167419452767593093907217313561900951468562314909947142839394838789649386052289199981032740150811232029099209348817612312463881866649614352593035889904925276066270145569779775406968597673908779831350285715208444236287425084351168620649720183764329155689888636613880568355734861763768156843208319301417073785935191342134839852210888970860571226873630390240966703290807476775374360211089697427219265294883353427837191680136718210333148271999000593426933626676824562179917504784713655406548459063529475197977747847563293720549408900484043934555027385729611226513074990888095979911745102334558001970931874992749418748769720348435936065574641361741001912394712014989975079464855549417690571523982146395496876534150080840850733769251265826502528469948357404387095323754951030484289210676517136174091222916588599623245271014667083879823914698411982542200031253596312549305295331099357718026306804738084137821026169702716604852351668870974398447755622856571713818088193250938311427753669905565478363032857833860140341809537549960224828004703995022286669922726287191896969946954738401682504870302621970771352170507806100051621049785426471569199248214580389868077051761647070509026133061220636839538070327782094243321866099797310393822890128870841829499355138929644043811027486677078438506403024199501408334854791568294351480817534003500466396328207795452173005704872873570411663890108437424361485274013272958394774205029436878204122940444053972667623553702741538677786813522223604746372316570532982549929255288048835911383632857714872303410196904602707068657848248915713585244435666126594183547451614783096747433652289958708641526620621059392050740427184246482821172499355987140393349403351070244499738955412081862320719990937048547841105940413936364139976396169396452921295722192717515598250661987994368435380503758391522216786750034667991699234692666735946987550940838731094807078579415257803820925075966580188860505412818234417494305438034893116032850762382821205148852741308589767502697569397877229293253119724404750460059681265726494538404817875121359768847460379476992104975826080965404503203578750724311833694507535246485512057316334359942017928368537332662487246616539247614316187520814457429111818202324737335372504103727278929579697688476590860524223868492420019249090827016463794187631854138803454812920737804576269460293659909494138677169428130187584266266725004387342026110748542332935645220100887889873526773165383407697497458686252467574631896715243121336465488753377425788821058587619198257158877670627548870274438344606562861071225942532358587272010754934474285631404665222898870263366243841170298427834482305438146740821007454658816197229269800008495377679642630108849143612629478239360212811236928915973453392491033258159655639918150896929452557007112709122463120034603033889266925971695193407808352025006502502272545841663366091765534699868175956896500698779965461369157733883144436334120674346722429123688652483806346936690675754614556090201093042950996002837328469779984978114205775695830762067740727624459195680085438725162117961050262760050449814281329552038136899741115306724208938427818489668302024209234877091384467324051857123180077054342092461252481525306838938975158436785773650326860615424220218757212186123087097736418300362991874308934994456166823965285921907328316462343397345836242210226127771234552429921558713250298536777471758557691370037527728716483288499168641080074398187002073741069229272131547299240616734138678103618275147386401466315771134630113722323272963744371142608526432373077569179149760050313124799966294539212557668117378326215079076751576041247712959683355754050188145168073418569964323063289607684311531934491413129203547881695566124483638959037893464706736684722437352807603731015607324846347185617730459524721462505021600397911891315300097493379287188097027246216049024271751172136841518996699098890886840875344160296903388794208259855195040187969216746397827043160262399574609637127896055810673397721746270416253773509172668215967051705766250792411964310461420561314060981693680806907659747230734180730691818026510671382937804641606281927528630489335202653426664224873228708566041897963012868864328797714916194022621653764063360028342541049211228416764745537349484961367700600562899541713433880222700122820878689071035588872409144246323204174660067709311624657475432311405175430035561615599152506714136967446518245231157549402942393489912581437285131356403126184013029453231371072845185161768315506958813367855472535087665365802075246028589012306505793846087128052271303560422684218029946629069886330253449542650629218536077573280564835769010380814347649348384801675824345931201790104290804958274461196608948106977253981715385931838751222225977342345657959178485901859133438745603537864879568838238102153275085320807346250311730990539345327701426038830070224262687154546042715393921080051629975963182183219317581307536707682043126541409531458073711322670538194451919603904030997302772183058695230998598753850830126824443293776803643163114837294584377744326119196799222548697438318442416161329302451721207614053498710767590947860768671684998792337486683325430026160579163870083630278039408606924646201879101347886660143354344483869527294081077918696271478757244312092103922239573478649716472522215224120862536815639080449361440826612915378337232371161617557278853872503365741225788701451888461642891238128724178049251185863101697892953346627487369282280026206974091619589241887473637558724609055011579883906331521264144575834124723554949415936726875804630317186556904117772036806317133250051723766432374006596544316473896900993109029349473229797646890799335491570687882290305825158818002965366052526723608370930750390691368650638527694788778867519253836500273290492983700296065123660177541628335495200550953915149277339740448302417483301397416407723136190226015745255163416257931311707711379556906961066214707473649212532716706009534770977963357377377067679616708482446572055918159641850406338303360652696504234664809677547300141806685079064572586278579835756692771567809576101372471185984934399182102058104560532165453383437410492308107518358233359308843340967142415191476165604520127500330824709478982458155309462390424213446657660222713697374671278043752597128814478169600738338034693862079883808695941948156279516429997614013880941063645193601439110149658057244138172813751951745552532908553107830079050300332224559103060260900838315484689314624507619025326568640632532019038829362360066833285982053478919333694205926062545592816098728869404005911827558995284731684157252657381545225835862833318150907476793024696382836174869854222644051039201758098603927829229484097394435473999002460523365978858194276587675514789383829321899375170728592209977872540880883509518485508526033886627754239147882755780955630151548478227937482911709730621478095323492993923121746181008401557066974289139919679743592049911309813643385892277993305149055375063469384817015824529758493588245828452961179359694639650184779000064275371757022844378682773921055095409545757631092014589108176039644511328297120342792357481883301302587319661174966240464814248092218068917055881651685190875090619238020878305577649211574925980548289397862048324592925070988788144381291273362597295269368928360757830195877877664777726097835841324964972316310561493341637156835411835907747422105365201418853263024310890184607054755154808059821581073603943750741830787676958985803005152962145568348598229450833155302260323059690914521257459174985964017723678214231346379998910898674871221428659910752464505878957043235356754372744896811216396891537246336133539052252208542325072854167524193570389989206498248206256941386334078864794267568890628416959684703411424600882484193514051722669488948473560879497356332650664238072570728906286307229051980236217490956857971739533931742179686708978199788243247819541005274120495639233423313565473764902464532111258048784994157202263957541503459289472152134320912922092275698934269480824457843997823890788112070924670079800335097210650001786116968482304500484223964677960092870398432151863280859657974243625670562021951045177499778184357498817762256260345335662301034623969877668917057674041768778298893188988312909832544731983415887070040435651964147001644732611544392621184701581036696637428467522673532508243166541866863157939896824116913773961347816922310714161444120267295704935072463614829171546628470477248694024127511313077298958736993203791386681652409933246747804544301607215609659168802207406807736883059048961895421288034367384417919017068798780439284044236534679617087683956240622359908652826693462452447115350270379508730734808549832902505102445812251985835528882029591892232383790453427505278714313290958507774928477037156579229360525896321491918409273034156566854469630094449763460021378633779653979891939393963773544184670805279157651434001742888096115955374253931642938008782186836768515344751926592391582132962009872846066091010185619744441199645644722148587438854310402214886143981319375672259912952207878015710343603689886098837415702650055918573533211512768708132764886378787300272912493369896593415212876151634923385672054037600716347569697214567598235050412239595210762971045153460485423416025338627043438251508233721006348391258218130670194506865269465471657860678356455787195268508528975020786617061916650288459989906503497723351070468485152656790570931291217389174330236345561879846288237570494298404563825174757421514433211614960995921922360294619031449935099022621563952172434262577487001362572450361623181753950019077986020228293626204274703438850053403055082751446569500755105084867301798448271021649350932077211565718975143606170536337504231888481935133311442493610758282758683543299790402008841325176476522556804852435671468860556596613598818685682394548534314658634564155840729177916384051879106594779012749802925159775715272080366556601755735525608997265455108555891048093662747692182092368554973064623817862191748344188245288213897732580742951814560663725165834416684129156300620147315535224765052993121758015067407531356329447350247172357186483541760019771449261205768045897530525688317602904394452086992080906283663170076679218404857113314125478212932200864068609205965496265918269086865456072600302138134087124107883258360787083383236427306714884236661810551994316384772352070335945107799752528653275461082701238698819394802372789206134560146203637690688584339444239037225222758626493415256379575995175987294849485463253476506510099458208215058058315801748546695523980788567425285909055102972989104886984751681603258199707803566729382832906487861056158107065183852329650747774760638172459750126102064457487863040371727868238839369260329590235107941598219671979258649256212296165870576630233284737890017762077438091609410439088021401296960734029754421179365017906182522569517521909441861401042789753168852056353359155380396432085816527281938228172394165784240604223093702428314816280516459682080915083379249986534135914210494494481845072658686457364944870571734412450767970536325055904645796716221235117572128325879906203756634689009515752109432390108906085250947890206480770226754475745948446770496310925904015554668919998053561971623016589982497006627693307024019973686900838670167759061759995431661230669955526127018179117343051562659100002300584929338434329640212109685156832056071165548332367765001555054774711495345742443573714830621191789439293507812115577965214330646083290916600751388187262477929496417960235872005650870137034096461312919026443531036788788872057162234022060704480704222492639646277760850555277117283489863154706020025213655648062488498464188452085724087050114544449573370408274510933923620442980849934601635221939022096436255612757408049817106550177442193196308374957012777558651755255068181576306923815599064278786177114199461275912935170948119489677518004601806365779635880896399034891644824534223081848942743058105310117221928468179887503274551214718007991669941975181547653965729048931743299238058639233435736998939955999476043407001412578378687488933937175473006998578493323735607364302745399173541677592541009583720278242889963080265080229548746955681782230439899921868229338189436002092021904429661201472901133345354141947754399181662503538689898370472540311900694914463735434613829607605463447188021560106203371971489078344627407920910763252648621847106680389774519940799373366144764259161943698309706535468808178198425568052938811822328728507829420430197652216874792347726669379985418099773552448912083117225712770296762132838576986984423375820401900671058317493638712687475213421421999625841522600561443430854172668944013228406332987404001366064552462459887783512491907511474119746067993619347653279827431325284666261972257665144700101552086086668750549997372689894408056701590909290942743912076194125442453543114210553621650762016283628267255071149173785942610858429758561102730652938573351004471185017887099593639454421973544879545060185837582975189892805932178093056191373562538096854105392460365586796742262004448393131740850140024140426913222462149055788140608270477061835094410563358123110093497213215374769080658423602777026677270896744197930595046713766755220876076542596400939266749475289028335737809349246089879800117038406146269448251662682865963090116586306475965988593211966392829233317236055567205309112364144862153803871864469354943471790280668774187626513125210258549555887572626628709234985828448366212543246696007398642722811216580270499513790500839307585042572226494268130192279059001169002382496794750782899627225369105439439681167165358215428657874959868052407022921502172433423434185658304669120192280689729552367611794067493225992966224321867811538021440278203251552875790102674719018202274038404585578540189228741033275013103140673063005736222639981335425570875574377842040074531061202715717409746882520925398247241881025179975558921156457970587536354874078502410451602880625567915642936746692185398751270063559927761646491129660855739482747435752348469825628416737426417894744267464562868127302636205021146296867141432620464293172745064706514188866884566294316959733472863115771680515302828020757931824743793284541063792780447109383167747305688182283218272574804858138615941056286716579616344376734914391235891142240676140935604051934994726858080801286857485906877750398219050220471089296079194988362915378111625301421716661511123941732782550239947195639060351266006388145337095749404072875237153123963175148465082534309745084366498205053078167475062201426855525478549958928740098488444828751422134616337499381474516308420017328388485414227555396039401969627411217064507600659291406087038495537484021679613380694299822411477494064096416943792142952188823285824682843040487618986693206408791378380342742377148262521142898143118876425893264944973981301240685879666699939289532467928597696701489453633536886112332486594585912561493170945550379003840890636348398783482639913626261164419289296745840566292486734514838054266420374596695838878372237218720479444598510201579968323107238884551353804697702823484182750748071073191236512864358062208748616290894075957451153204389554207794472698308813259611786074849675183056520386182854792995573292541896875457230339358234296266675323174409989965388894459961496082761556364067198098482451953551851432154832832465329249657532075161912483432896177865144125985475582201529055166085193386553735928580954709900574453492393874113320187504088966777268949112905873905527409571022763804488714725396907961763664113357419899460362306864025420818933553644046193259522139801110052984603978950117036396625158465175925016511617745483708660446751313474433413625968270265101750049315184243414632668867395370262352947093036989787635561396135964966083972676960801225162911261704235811977683497802461394573748813076170687716988086597459154495366499499693483561978672321471013447875187141432610916193430174709079645851495707316735720132453860480752737205005588843437080072223904513547415720412698722487180225007888725617131838384039414115552290883690845238084557393050727523395531780697381934992528496696950329808491190203716619464958925790088622625779507865588207041598289428251479429383807667697283112756586979536485839613193515049527512807173419475837827284410823312165499468513300319921334156829553094615993197641989347532278097372037539395834720096040505666670615744126449264303361252194907594089252948984743117050769572783772392423532569308813325211827157457018931806929670344740053043258079290193110720010612776122724178204142456519711523463858880517634629660530224995491124372358817877816586328269168197526057780460251189165216667711497824355686937901502892155133813914949613949810575057837319679472695166508315778215359509361489891740193095834035149264585607196503219309244614258197792987768838935703502820828196273483808178879347163373919014863592088716938834644419445811721617705398960691001226231255297622386681872153351817726089602597800832108520410542254062395901107156379101674217188857173623267648846829504591856506065445871711454363834903726746364944530457201722381262631719445576780612391026289249194001878554935457939734702977041349994435192827434353882596116913048611248351891803930850532323102116048761940062196093406249702897856373266642619747836224883092347933290586206036947150428803817670509085729361659973884088928381162047354190667258437377902998473500344694329834961744882177258629709942539858048337593710772817253904489061786260004732702105163647321132558075764616400142750043585030423550133383192917825358581626389419268495087983011264074718489043266203297666340077357481496777802007044698403327103115303288446043195471583865400421323017735561935723068534436754296685009803359481541020380526515186278804391914323630544794527512079590953517739791395373846587523730430632249412864822127574435987738077908904709531882603907758025653678351847129887184281376300187955644773104743752884625446780134682858922375426144558434308613234936416964648575069844074035983148908509688966228449695880126925517071372657922549041599699968360062470370916428934554784895665278173896712856260463713110358572130528144796275580682007741246917519936958350934972858447027063247144447729688746246598606012284445920434968419538054825174059925747905857214101181038698491189034654952532870810029712178328319764396420109198970573791885938313985032282566079995368563064878972072360622713774172791133906577739218913686251235079060496263019560880370095427695784964247112314543515393818821100748042958906235442209924782645704842652113032719571407267968257307839093062088364115928134938385028166340175843037055170719113650612956813783385786650208620903537265834097466262485672577620561185919774358400461370210272367524987159244545888649375432973877124246222868623781445612035546471200985388098653095301803257654440538398134715557491908561938242467996479298702127238468678423799227061683349838860624636580021949749874995775943479281248778018544304770581635683025650862581696965595673042791612898100026515261231076508577401973386814241164775761959086450002857902042613254486945866610131140071785771532427908819552067472992566206668209636636971877771235630797352325832472027848904354666354552573024381690321024513974512877430318493486824320773910265854976185498391298105807444373040338668543267367179294343262925612703493846623050951835791192628252077594247162035424379877451519285903263197235874280631848454716612192443773734278182962901097778867806315090474831404988937940095849816786740209536905084429378428959407055740951999843461878276168039284221830013489046789719280681272413612941997718823042522413439731456631065780990346648627256496042280175337429463852231190028635054048356536536826408128801175489465641135015674749421470076465336304165058836984179656124766115517915938642587225444448678451004361076033853154096889159945105093317371182853087593905975648998921224200787037284196083603599369652163750425113292983234459698099104438707642033528422220375683152038675961964928163292780319573771278115181054741067807790253527090622557713983635265744094867745777050811074974816718149275834451641196285113816118515968554958990054525707526823891515742146404681936728648935458936395596360593946730186720564599225623394173732058054741270403398104330976175371044726714314688539701830379812026736122252877886637232631345917046372081889523363428252406676491262711367244567578242179171116791961013755137529744597686640007148108094784240426484043605407472795623894654669487776815119312842304958019169628496021453518623604680359871005080218374134041140845187135061603859762970833853124750731750351177891445560603857907689893240796299370399624775729939165654543163298223724027509671974051084523167441747563061668375963041690803179963973523869020503629498423305764624502349103527111073056756083746351027862043506018668165521398597262674965050412264096409214723256968418301699854640435872899693398961057207267008384478182479601460567132454021576674865827911943665386544320885924557688881312635003588269918319538006924846568739159498493327029302779840194215979521955941320531607787749169082324089994382915753590056942430897656333492783845500710831778834424220022838649308902220020671292509733900382008206413787931954240136321022526770141701676256095367545519149922045102945078326668789648523098059725366330119936881184077119572100373204951662406041318492398109867515855595022545455708400700741440171835736629072077015520682251687054564407583525419129835002174545605979272547456790646117969124867091679068432211814572624446917225507501230094478996952003600224644930470311985446173947944181825939093790994341883276912002355136665490437494939069348922308026385908341128643308309532547153757456452435236013945851273841028119718355567575199970111210951268823576839219554243188090011183923247576389992064172292379830225414243666138295479258089097556157773842465883816149521010494962031028518238221721770099527905634651728339663649679977806942093805597250716528489714498231693572638144172910867159984176245929431772454994192829646754000463380265322326871831399362550564189787050471741414577834495761990216524604225065992254769475478631153852414309581547836075928362748436949876611621226430977586738495696663968511122148810631586058369596760555991377405882390611842883143419071661580450799288652296219175636157954642068169451810296913868117675680505144423547996918334715031576049853839618752416506138065357707592099353373048491329991790423460180018410156786434649652510856048663816879470298267490671698390429996189130512132129780306607070264149868599330091647429959122016845958595127091563498302298728036970625986358230972199634398370410466027506511573234016007936395618541765969231489300594196516302836981749705714012987411167004301905637755739959422945715898938600962138150851807013145031437039968806158595009143463359075668563151379867778175963784613778930420606637867857811028807425151680366415993049741333570095558669066777545480597720762512427551106608825815756275998283207304295090050360930607744270191816102941051488995188613369165133797436188564679594874340007399196497224935823357817571005079555346382789982149432977298617790132521521163005119283043240641102186039326627433362250053822362889087572233953217430060195028307851616717256752199727417030277305265946806565329716272988699299800474038215712680280010164776799339371719168466916623740591740447217749326975422375619636312398460088303580961117235651992474959713495936786599332535170433293114244797594956822562535508070917634687332224794638413935724620676413965588450599868589371428127112725909780328140132807115040754615925829569673390040233146951079092817422694854542918039785033882277016238026380950032864349953420334366211205998406929870261492848179532827674618902796128034150887031846244206393687581838122456357347213155550180689549986773407897440708885467218920328928014181853012739521596377003371706202871836628023877725505877456715393661459156233970439797478754397985081431086278806207074727580106394433189586028476087384349436528434415503948698033626687981833900832307827403358478892425488787352796474815972393598813590502052982368344766103679325048047023578471294801013290472386877571668050212252197476421192532539482592044502647775709770038796572793918746751172057001610063563230020293179254413050916640076595128231467133285004711117269088870024455077059667606566599133069466816018293267439550294795504894774605452484328783840392448338713477426071260822457817867816953682139213740361005234118950647181627345307779975245511301398098170188458840559641845644368196516340288388931397382674140042682990808550775734364339458605820313101745725831369981915728814553545384866995600001947434962267965227560389303121791843009819707091197513636583678657144072009735325750856962824868691809838863737397140289943242026191970626075903236968478111802909717950412415694101693693478466606905002362415354184624096960134804599273670872740178805584810267224847630008236359860921530496416393682500858218886097314480090988785186255393430124520624820045224310467236047567751386551222200991959729668602400142771412209590458471199819565560835431658028952515649859253189390766574371883326908976554662348268632543172450220054785500988001586899205891554581141636949540102028138937236973825479745191356256314031995596797046589200318783262529216083175777929191997094348999213475834276165768014724485051200636743944491602733209855894423692981053248085137178573252701537594251825013509935599704180450474647813934876571187626369072760453817306685953269095099475811573904756867103326265835374875615408453299422165916555060222241543227149060589362185636900658076867183670939156919394212073584570285994919361772032077526186631479953937817672800923737929712610985427385023208589168593448266183905653187204556683147997972889801492781510317093269772772649088578828374267290414411190087869385402517380986758343766381843051471387702214294652829410441378717109266874944337641674773659453155550163362666797869983680613486183092860791519740407800327780337160219950630500471741216682545651357366143800596471060056841608802575953551969834522571050370786153067233718151331096590181727230951354337314636361626609752413941868426798688902372936076709668651864822270168252613903224031245762282747686082898215946882705156697481948520971672936213994847461991173152808233759752450990917530657637304793012476536714395144968426601221742231985887096767708977998068373240014923637590056941388251520451009991415434321971294187502847054649948955622758664982065308381699770503400787263323951714880407383160245043222000295944615817958538983032184490139023801412143952190870245080712190466596749198369749261242010285244331711963340224078896099895672491221671558929251495096693081157232893251286124794576129105103460791489076028595853371757075440025917008962919307298675174540873155568128513156634769090355932717571450339008748479587068160960977672742193521320047834261267445868783724950313726941876630817396896919276246981234796089607416017542273618975247288775621137050010577976084351484937589363725028769277162878040611527173688414646656449731634028717699096881151493815496108672528219577404447395612994490300768648318647957529111045099004601292607614748381044885913410938883332385648684818321960644864813224050312618312736061394040989515975286646810964930300631922758227577544279700442596632391595605139639465884331529534056665316597597353564185757553740103718883425682551639729554175687639213026658212388476205225948679668777841817065647884216221890840163359637239113159871041927262604428471721942437877659712925216561355900096350795810273837598590573551403329225709090404255271021381362648888127687149573705090394060558853381367959877317945785775919603651930971351837634151667712439516008641195971557712032060172212958093823613370923185623722335364181050363277444727503871040617545585661234521539455507167468570859659728034267651302698826380802868789052418163542776022983740131035024708156376416069637648382513045117771206762762500204731271397186160748457380167695185272964550968473186629149659460476035012999579805706985781399070643601819987200960108040573785234550730361528798433745246792826286385692378465218078715475959510684680849774545983828693723105985282230673062490370745156898457922953505590583542863153266565183348828646830185073153464506915326770355454998738623697660379668394099547806761018212994303684995893080207659006353283071568069009910758909735149679104916919224325532432483280570732254765458833274070188215113687449064466579403193789219448460282890438869831552167625687477644545048273501121305490379909032054312986593921844333298434624851728860062327241077522197719742344374994100744812107011112033330109511373289375905675129417582221560426608166716081370225055622598683245119620453302067586783615304173687295974853078909984557039102119538732238883770109843360356753918129527182462966750640001767856795825263008466882005342686608974509365643226745829271911195250042366713432794377809671440508034153714863022032079600532604075339099507849841136654542803975141910896617041485817415087054266657299803032201642524997318882421681421707093802447104248730236898202681058290421614686909985441877800408160830199463615388861128847782864260467739573979298423172614557129892128030640372848997815555407020298325194866915999479462319205490972535548354802394931768160889808815939006413617566098292550038378573823993030079892085765389851631026994492134006911857616438604139940009076238017414710775810043827390875267511291702490175152903607639801428331183269363409427902543989334918046622912291572067560036329467945051753127037156472062144159999297872843989572912473837687712854623584854767834163262060643961151147756362270650867940467310453294222062043675401507393046905569842811726923356848233396612517924279261157702397059514867980226573654240086846105517796856165414282187820129644966951420716885107008914342379513647937726909104539894796773458502633306842907503660787269360905322691749330435223715279289328361277157029795747536649151397714661133191087152344242471384568006284640996637647572803465813943739227682860319058219112524366373287895819477358575560956038600858331455544483360261818869653138728227943606945945912996161635587217820946928033213408001197499602692174847474227936428471463460800867114790113066787550761287142274567323775567834601006663141905262272428470368960608922671475569477724633451704352257540743057745118777581408911170050561680502023714198898798005334609268934674023558404848912119428037613860155627796125909334750852185344319328764578275755559010036863331275210155097781612431736487311462492811116656850544254875331704660913242152363800218796540943245450764176476426451553696046768855675296923757497958794740942748314367518561791672800443111768285485754016337689994516318241671848350340736320048539000381902061514889918982452668729160806066128083380043481322682152183479511770450268823554044747744214047362542024999423406784283233610844915440301602221935443612367084761370963261191457242378891165589093817629507663213850972159024989239673128983089717987692342868059650403352458317132239092413081973432526118193035941083809469172434531900747315145097087833075930700523593306514656089343521021004871550994172701088976531154831486543908070357036409714459416021228102627105215340628158881696021500964268488893303961819498970442420379162149020410295594679159046649746392427064939907627173091608559760664386166707053251633814346700958614880392148466765089856033507644448947075520191640950092289364742330493533087204553554891957279843357382174785143921042200248590125410725419738937075981422906891631353535144506498725652332200446462653725090463640477687990851630209941729397595721899520630927982120723849988150280780860196944043915241210781125967912327126772175685770013945222221642833354058824284172906451225168297943175738150792919526166233535360972889511865714655350432428251608714332544247765356871225372021548716292526189039249438321163923696176080270986170785947360136425589552873907061510558574629444992695752206557296987735301914868214620154460373403554911782716194186212677092584877083504018261862425263651559656466288561028851442213571311626925210898754688088901060450065791565966344090038929095795630721429103499026450338728083767513372194776055591771339182728549205156933819091776264057717163407752115674856111128656056797436744220607912248219154763642382314829623434818826413823960926855275048919859739794420317839260694204925130120399337091246542080888065469743952138635656338063044051769339918794592957103420836897034260518827603395662207520450404404894301658156753793347698916572414255336133364144065940837098855192066834517318099739502939125712692384432860909150720894408268859501163200443235513825463599291066666000529391386006628259929312898403336292882530576956108829645218078344968229402410986748805065331632631994899938880290119994850049017607517716371247263653804678034244556319203668557872838719302519046104451896386736775989211373695195529035772547803891134796566555698931341753613564373985360003669422646792315760088819978753206727507223045221366087143680417610043424205030211724662775668694483336465944669645212313819309387573708777821191128422113434262456527409949488961351740633841918555049736841416744284262237013708511640172414967448689545603522400424011128659098173457429497435266272294003976236186772465780656244685092205113592668569083642236116003270798552410711349388882001136402763787375012233218358082746598111388752333713256823699823615374727726765153418938024654522534588624785563593207045626277082223444674849732432348609611575061228378984939603009197164534869902720189334576395210129030030987202372736619572905002034206217213438641420300080879528953909997763161891940954921768359271170927956927726182392176213156322916192730650136225124487741267076392299022783429621235739105029314977284589317120163380777253563256460874257960175332481160721284287756113423741840226185117567088588391907718295087681366615794026372152322522870940571590547090207434474317973994490636391278981091130311256504821924498166741501601038770814727935763569110963976227187597291981652176532570811100772477319016278233655940900351615729354430278756592236612418178343812109344940593184566348696888127195470815846765758914327004724471387606839196314960004451746969420427852108534667528257272924976561655934293858066971592005193937536612715679792891312516266073843948341906483023108323133871868518613324560094505158244693864441980305363983715118237017677852371135462763952199075010674363347793802593579996764569858876033048409106579793543211684502614380054677039637470408959281530993439079379290779543282185654301038651787289378999552936285218655508597851102369805109590666252645642310378508458920288282239660899847243713405161498678829292449953935901503007136545859196407610340047049633772581181023835989032963995528071002474617283874810464438581635750234536274178059664622053743328146724606707411743546292465977236095002453754129302508202656102521851212594488487495358977178037121007065766061059742808765514668766666019602462817930488574582011070219961013121839919972197081327447534758786582616864297420266794502484130175307135886140187725271304744624574433496721632736927636960207679080143978797731095759349095351152293062195040444903450575519212474623795117193658738787702923225811793834150867131641961183398724343839728690557113323732969025292405736604565007398398653999469367846421001431374527631794543431040879413987998210096187878961853346457280316221910189231704376336401985253546797155908968041452179867849260312154996202124524427137049167845758069150724427277486545411307789174196447030543412840996351359084325854306532905566139437719008652597011981376359816365819403334866627066678880125329740735906572348295436299909485994781754588880285120610581144263259382603333936210328363579089833378438714996165006048900710203263281544242272231642034456092221926370762248961903137538684785272807558875426643546810442403735511362283180427059853269527041667605845093558160221933065860946845073195375412409606477105588713809231073203757031988257297548928615816978931803810159133199144178941550611544647097726105721690068123380406379956498053304687794007745887377547281860390728713671407736662862231089758266652306689587354976756806090219463316268892436034150218051247878996407369487535781236068317036350256191855361868230415746688375518156765641903256428491579116481800296224272505120925021859019568694455762974680860618418426002151022926597406124780963298641691472578923421170705941868411258838525723546407360976005389088484341890379093933129283307673811868257091181868946943934600334195051881324851200613800337825590864039951282109147551984571059841344170857436738225736841618543824658198793809961662526175941475195613578537672265598523819359923631325146689939772193636788129177569087088626153982979791144868824354822715988505275415606885514007014321017986597815601384507223124953219627016624323892685954094075173856383527248051263388921286993142258380791375310935544326489776058476539213282484266811311738200641978941836204307038906167928241083214428885312268121935654225909118784456835017073075220651511728235658252402642532941007444335574383361119290679560767268259422606071846896065235782491449425814075667335365389793000371190686473039028468192113795703236602443911429632338453089603993812719879993866815306102420057723427468600861387129406316982564454178342594702304048942844862586340277233055326977498871758230482479753797041343418422390713212561024062897626981990123242737311171061748442650178286988746683603998017329907769220202026359740071433975487461882487478409689600505100953868135097819423202764495383450540727742391739276734115448833722947137371059104119859070819921902849812721752954861334118050901816894279002359334543175940803878281222404130378880549029746235152870581859855125710706161297879670514269279464259816554948163493683611273290410658235459203848576095512494004690763373454386031754099608590227282765353806406862559882099494336499854013779927596468111217464242088614963672358316168060017395553371112800703071336193015211404003295856197905702847023073667280045227477725320265680845858569375174456949094459637396712558463254405949089843964881873947376099960778268589655193720898299259100826912375654853300882355461413627812361239882537482953561396503925298340501880796400616182255684078473252858359595445596190075174028797171243088964718026287448845852775125546790272690527425373324872994481451542591549904591815517599154908371051693822475555921053240675267388878164452755475921153812468937344588114379448381829406227503994300660330051367935647592924380013053018549615505430046808891694094221434837122677328636900009385112148867148310189960538362985936602869916082936535231508583668034607499078148356333517513776653167450862425336614474880325909356040893844344388979961538773286154852805203961977687866206235360815560675665050438165443036929578714439873347455246717149549931649085239834361299293438487244745845964459772404015521202794270462145306138772394808908226045825037966687208785452557537001086009791012295482738952181421636336420257024290049151900092161319062866402672436503276720026673633577616171468833390215683217862124229635218273945694148106745797938929150903403894141335822784060501183914603676868460523614568123602632716581865576836965499682086832780599024530918176630617987653593517489920185780630979287236101510237293119149143020902910321309134961323968331297875157064630186137516178838641182830328361724952341446891009390730475014645506828213725890486890108034209561052869101033816527532408085506764153820083523182563766968318147065244243521038622250431093649075907130815983648943206107556032917223845674696201372816346884241967775055241829783868744998426154713695781082118924288887784741293258976739204531413337581171988285515579907165140330901224946754647408234068174108499842178650743738729503675385441799134783842884160373438881418920855213858464167698099770685607675461191391218826138667122259485153734035672813096697455062506377906763534504916400040785068748483007080078108152975480248419262922166771126450280146840134808700204275485598941141748467937264070354836939223815669565394162347688503876847084077557461763086398861965516760005535633045499882476010460586566298045276800286513933280224193622275768172188869033738644817115760332985521970068621484032782142217017251871512871626479209796145541531082222677675907570340648576996770220452748956995600284818529630119942747413145152103685849945075755605546587111741870481587403056224060748058712336823333208165488382183351178732334670280942484006075008434646608847548979852573880947080649022164099773713198347189373614819596318753160617731509972488166626159604678324258070808009076503890366050851561048579090532357176767462258772679532996217866571343846041287293055007544314489669613856224771904919659773429630220251380083275850878656280106886575442326699424675556457460337172977562702553547814652031766680297435685363941711888216371765528028253427800658403006141547401628829079653515281910555658320868319609584560258011793574897941137554478151172662432948369928818990587970245424757607432382698269253651634466028531654031936735740767554894159440839676628732282601879077030362251089205276240015946032878162376008410103050624382289400370257632477856536336987543328688667463445550231103267096253735430390565559602706587467026133996379069892015531859565839035474627011087285084094293122233172021918044102922918398269200668900917968046738400656822014831915292398963198902259159930434297508364611451869436014063719614604944280631721824100165411965204021188666009009317621579772035483987888507575471581226496900369280175200475272283609275099502385124293957540579281593495114056823901969109890009708332958214970583045067375431225220466609765055493475412311339625647583017605389668261946953202456426132892306700190009085334637711657734437520200124075831969138970990255468399749771702060332109653055721083199609384186780944150846890448579626359750557228038663125041620883768993329337231227192455787106166626422765162094808458025227205953510119655808935707730216602261987094227436450432432096496676758764546143207212811104727104726770145149826930843987365486473421781864979250686980656573347009653649913964507743662889044048608625463336776368582746950965234573043302558999412488135770685799729547011383232621029237794262407816091411127131847224113376409968900412642714903750444854228296302592277214144231217634419306928423552302564436382409105764955485975391185015592753819050598786159000064519901977341050606076449519607552511438387636415173679079453154460512099603117598889607637288118218174597470600933944090168130517055556562624680294167831159386451502119868162456632262785041155299287214747780480885148083206679031272929451285644876807294275924550979431845404430404261654313964656726821207783258940016067708295118245770837703606798025631066880552978058524848344059991091879586598704801864239297769423256124495534262749935735425857723544913158458855284756296678888763349715729400635767062567869368719343311303939806192619053268214691203242978017398976032696239198827369741355221593510944053886098901535215156319255349190502846227990353691604955981247832108458442307790536103090504026011093775914278934353337677690492814771121486292305369290345663136388006986587659212812313378223477903341527598042090107141765419464438205706334615516624843520780108888600160810308004034546824875675411388379650448486569360306791789474568330633236755244695356955747203005623160277966448695755940284990866586780959931147334399955714763868995174129396447458169852011462992665945780132340759477718736453956469253312518600902215456893100837879273491919342033154837624967045902407453605117698243113832516753811997931440741968500559284674193341855560338914665330772685370683211432398391740929803971342775602397188658311009885801947063387324052152246448241358608128822395572122819925047597469094732131042691807051492124945488490479347336342296055189254002724104119701931026026973604115582581480311549658714293289049828258245215725215861421312929654637116401990798363758828148329553758202835360960236195290664085770315503511851414807175159835407574232524835735978721577622045977273730059400371239279021168323250041146740077663364225875021209470732503719396772345486235709444201087704625213141242640456942248992358952374687166397533777997418320653867266407872644197526342056681431334445083396193396308883726522019948744076367526686024034577529298935098689013268206166632327368944936575800579937159764299066913251217621515637068952395535002463660599972188329449276942848552797525824086553435595667931065726513110403459936950934432013338434950214008329803415096944834992032959021070866290967334435423299551965804114733159234717025749022123368660980298569919602229187685267446214557370699902273855617575309172732462887955786953597247941473578338036535366360017582185213538408115905012081578363423820064575918630312889518421846129703229951298368450872191428645630221661205174179593569465938933840106245333765513342759925005115496993591559347449802685106217046211787790923355167350259205219654812375419735322349863974848595718346593096890540421146482506397834423150693280590252945031684321324507862771641304322257208107991889788918503039293708037068855145752619000905803033064252527119043675854095621896467690186904408272626623367412557781759597973304238118293375680517815396126116469864540755096466056552228250513481118667134436003760856738285783750825260296334345343837466535220787632583995863917581415463693040247358497285416038012442241956034269526327627453081339858745444654193109829380410929003673276441139169922539065146985726685347864837430306672306160043881141447624362187648732783981967284687606025961900636775457119063311559737270439101980688305789391812458533809035627295991474943041425551351603813198410264677530860030526696301809617256187988066687242462275015522052746127656389526598151458905507689383269097338346047390416557668339531584065205733901852511719160888818489166035077466406323398821765857224877452777209273942499144473101723982418032782758821645803781460107052570323636615261252322448924458999051092812693495377348778648171653304488807376177092346099533343222589818832023695024102311667758480609781870501620134201773845495004448535740431378757697162371474481553360688316739485497760471281445016705453850950385247935400210772509527969051238457309497452321206912705805498886664213038626058268261778093333226640465488771401839554702349219448373798869722823649973201052080277482144351157662487193267691437035560762011388208855199190017955744110697075784912692493256277911500717659882019061840209721487142665390644849159632081639052897570217003574781001616929150753831120339192383409834390588958553906789041863367189532874554796853306803472999147654381889258019485409470357378298552386662780606261006412788082022229577723214269378372150055470801450825914803394262387547973146705494896926394984376333636701856207399456968392909655646143526248710854794274619661514750565324812646315147762376393351599137045981676721127759176855214732131961887517424046205239613302488034552996296691635086837587799786763221540877140286718946231612968777648707406487914390911119471472795559839866058171530859660869770100022265012046049745792243004690023203475998629671067949715939780222234807740282431808333946243570017576786011145557904178369018647068280509704081029933987899431820674454124634390607254319709659607261623971942380584839884535256908460147512531211073198581934317286341414500061240752737499241556573253907310976028911119215241866463941624881570482508523489732122089548413554511366517870255765201384913086099224088141632564390439762314211525560638966125868912547167834460544361811455016468475522149098124397761040013609790117093421713469618905678452452319175129907090801809382657218945618916238219834366292898863222147021960226932214276715712641033464103936028598698043725715210926424640064019547261807896842868202946101661706957328663795278384061455041309551806569428412143817022217505810065802929602523646607172237394366429953475632524368186715968508685220156363897967779491410590980744106175893086238724356395563187496654459463258083779559460008620454560960730424516716531339836808605020465168133457326970075050233448611517413485096499498675560173844050507006579082267425546208941421922925646955251244891219396075021446393188687428382417983209795578530131633592626312894093499104609485352282870460248153113402826096576147182010109127478289029040966048278381849586699481206316788224176867456839700435952592402167124162208513502604071071646598275344408593757762888350070126885436118525310812070902031184323086461312298621011790512402541853318797106185457915512629272769856716811116416208834746363012375641520190477825012742441375445344498501295222423076246331930673898247306552377632321834363098461297613512139855195407306002766576431943022015825121129849129514123655753249994706431102142315681006756437345687458426356554527576030643023559958791717005504736281887213265646776852544812042490408207727714568060854731201290827653179573375938810702699427162921536202380614333719602040505299722958766361522621644805332943586571150539263884296373332596841150832406049889357428105215502760353379446611796522348453856853396277680373474562798711611370751499895202596563617653168580044406784575313183489103226937423568467836571969940216539271544823679377805417659557100688360763982608366338660581333157909576471464067209556776307833983542773157446211898091037457153402927860449654824313806007933888880287410161114048112492301596479657029252399482629175025448864552099938235592466884531349963905345036983815541332569497659912956974067708295422948626824038214962467968538477145812913755120265933119246712175273996978855596561475674537402409545433029697237625552802415197492201325627794522606899512624488671342718802559720139484394047743937642572628851848080837549873962769878404614154994948695811944861290134988750684396588076016345760162282262753845678686051393431519481613191419637525463806386631995408844359189320770259844929854171091856501234840215189233596752397484268119232661063485450115148411090243227425649798279710808393713996549877374440002384379523640922373005294871319588822489121929186097045258294934242227650130986065650273391780317840583241148891717325508491245383712640039483002548624566543277823048599558566155102464365785343938094990116092574627863567389626019451173015468985605070420706621489481660753501793249336867994487016124183213654460480829355612392617484016239757593090647810310404787545776979638140413699634824227705926938304987903044047064549144679778555835756923274573768234917510747779812164790583984460664508803413723135622106298063818807796462734801173527182850257963583791078355387239808231282420950369702684308625487729824598363819774394686734152103945289985672842417419118811892052060990208677520059960645027207884836980920265212190363467045219824388958287499971835576654429668138773850369917290823564863408575661212383450189505672099716215050629770366979754093603915966820431174722093114551342576911687958124303641970938770965800689160858554739338040235087592970579975360824854942839975025041134696359715947538662635094636651870287212176543286364596920227557778742827867508379960282971325875426854324828941042176569996228152020421587375304013279249326973393437323862523966143578356017598451560195575638878906366559190430903168455761355663423631066014360204790728804888622812534955224386745831553444879109722657367197878562557453006316354059047842068494431298546371230856595122567934124520682173907579122491182668562134208050398871163768261145640183377356394695448059266398599004785769091753995838084828274140508872434821899744784935457081187667086663933532981676150553877350108696954964214760735456933053483905888216974557045794617563181655144918373371427554631193778875424366062505638404547215245409266073808985245270845343380928046715994840414073540724991730898654658503908901328629745894498433712585837763836707786317572646029434272136830888727212005834199115147731280818962790287487452139676694212245303071423307380064524303759272773625083466351716652584594318610570758746215870428374999970662676708207056070058196668963004943035184580465703024775943041176642522042567461632916505869245289150773794407452968463922840610271186438270937795613985788215949921138132743025678726676654654686571921043210710729379517296798780322636828843869021634294058908155781515799519620453634138234085051435919786653598855929472053165192524134415413894886764500335070724118454027745418048867397776393429552328982161725476204301753576484139033616953058797705036589807975343088765791391007620396321757259913916815261825816718884702540963212632150343548723664757497986156668682982593045744725724356188377542800786716633853171298268533865549889418549373778396166795325479319545430137891488046305887770037497619154599594345802443142492105156749293282075272229345022919107565310567492369539199234421032406916307404476811897083544239378533506829914227082426661722816352168608448369227496063119652421123301712642973908006257607572985662955488712752734090322608950079823447482642404961396396136091083415630111622747258085783771520375626667474668803449627138069183541039481216744135364063795445095673112491014399375917565903891442417147680054926927363104853375842784133397865563010368364227897569212494332434134916539900296431726982573715145079818886912809382403223860434747781683991221249438133110858786657242574116041535505133767490330480240241780155768273772530708940542275209833078471756815587748509597961148636519895538073030350152260906745109603952037262987869908978254796711517436517488934449148080519814382652460228140170573881193413718137062801398363841092462746815844778712892069102212413306015149770540308600340866957806829400738935290439859980460006941772535737494778182498891534841804735520620680370032788205396389276230974944318802158883269875592381734043371694421317881965638245042091481817411137370733004797126946012222494828790447820072285093115733158768121062067552788930973299875658985592801449527146930568548021842788119825365213287081177909709250523696927913662859218856611253748460546925965417233517489587264792239124445057716295320438558632042294345069243715991436254096560971949901570618096106522107388354628366760065206138885459297950041947904525623662084369711183500870818297905652250045878611551176040640817506069338557161006513896206222534346812829356745871570958386154695760048005675570862271444091505351870086810938893317848123419466645046850164028579891059167074400806086772414110936063975213016438030162663719099315787592831179586600054601959296896205800367311559051045824865821682751372808916850328465448863324947488407041982565521984738442237268862497225532657416822518173382007678984894682297407955046784960037370544440661535788541906481238642993020544336761095482877740594186527091469536700309334260044516792071697858412906879399031905070874589677872356625543237219159050873002579159309046445502145044308610103255756999912885783502477553362636153015914782044429939574180756239536529508017330598468094513158003787517732816637009848988854112632433730036932820678949673611933869822875865998506539991282078532482242582274135816872690869424599891379408432797769565028848873162510887816930960539918825769126050083193838933900014810125589612011315536584192866346530777593288746170830912657791309530169168936348989164695160353881103975358911347442111546403131605478572972407234105428592113739054059016183835337188098543947742942480287439831200192636749412087276284479544928505124398181068629742400873239286729001981303687503606781686950329029095587208764851633475093828504854830902459235223111074652503263344181655292845333154211449805103477459284046610925640423098075263629292026348198993033321496614045613715431407961352523866744821953761233685798547744798701324823587139477466963415117801202400501589682926630118487970571937244797624700474819651158954379424157995271817004685210779488512041838855394567642511613278462960951629407628276871252977506915734691204585306968557034651133901617315325679833210406871202594105201776887372724853038605409772912351058929613238347057821428538285178828270170588006345309673945232674001590574076678110360952782895831219603916653545483852081871088440792462814881548749082746568893621799443873225643071694095081580335856500190594311737199877331424529723270222371949933781727767978660394345715826575176533751856652154872356452601022000484554388523828457679735586587182348345457653193343952915632889407348600455039467172869631894285243915012525062977153546848037451837912594675609312122475009960209603344534025392822015720978546980464830757782406387954143774070238204430287403540709432690330554067938693044223204359044690327419691561530621244237177421518062804307480426049471682992896562627355690002732785073882736233572585908909536884196777384955937208637397709337154734671970479659768347810811595309943223969938790049385175250619380534531966755662205364593084722216298970526726546899779066061533135807068864760900046856126293224949071970376903922600421973775752351830562176957171093110102251487743140394800541418652854680754893622166218861333215775680005505710085662931841170905160755875485282369030470405978797487819694445573476496284231648608617889487378654366472905190018451338481369886531347647559191877348217323425180346471052867233029717604305768054710675112295866317993797364599858166353545410524609006704839462928171462571222967238737553553994703479928048289908129436282589942906372184275657499763697711271017845742621909862394650881113487833265628068493579594820127576482109325729460812572089294901121915140921916980108964243635674553078150135094958599711591849273678898918824566914757747003434505238553164771678831350458001516794213728499013849027380120077968568907287764838363557012982257984885955561097552904410956388662352861212925107079854338399574494969906537053114306148656901477388743235593701922160747631692416850282717924602621598268023763830022379148812946128762133971506766569498901555767183160758685195412543480963697418863065364272501002429795485427379137888654054867463254290359241568214760052691253231347534293418430527529066998346973169326969367642523509473562067576593503710281556984081922222181979943420386700491083706217151082141159795548393275020599257690743058606000638419427008622799988640633694672913062744107207558029314621702931091838077172220738587823130016957323592316929034736958718378181923562695912654932857670297156643755026486562958301678532735623938212410203209046327392240878463887405462006953147668090733649994322805347864559823447733533517110630796586822478435632706975523925970786159962146249397834512786653467096136957660117415224385314330060714445270184291969766811780712490723106535624786847597252099381855645545870221142269987944242037431760731671911191944857615918558677845127782012205805924510990227667545513374265206886970753658775674373604642722238467896564330965182899043320080116238333940115278611671225575935665443086694674141516060366702383739159759520224402045280563992119630319927337770302720224359174381593800751146386690651333990640852048268105779869929930971127287666743181457485880612523257566139012307115972721502419807296191881299978830321543428351519745779593295833051802579982358879450509259435500150858334418685127583682802111389200464211862188766123830317523757834369482685044767090073745511740127997384987829386970050386686441940130843651978028744672628368553908554387062745173160253749413680523459887915614043881073565073062950580346987568920022315918110003132584250383065712991478165478131992196920552677789857318669712164172056908020097623933931709019022233339053948615999911471118534137234839048863314907608556881380318008141680202333294706329272712131403772875243048749479975723212179315304063327660411185829534505301585607840995998500648378342087758051430354799304748907989108369596317420798465492693648094619826526850616669607854881567308308781723208794733716046966238422719136274314751359623592566690361965919270306430582691650546333783158574800544376562947235082576529414635082195341835162007343105982035127873875286752379647723755911992074518342764530803068219726090425653486593892939572515867217305225880749516632042781845080230943345246884232206293252060635890156984154807317074005220816301019082863510359505885580026228159571792025972046453669540098948803364444873630014352714129989361926493935353032002890988062401357874328595449141187089047059271071171185706596929658626940598213586633094962102159929589104329801804970336372572662492899453142899976195933170077411677844281391175535882584376747081634267981598282578417091462184427850005413986569100790864278086854068759427309811954742462846653099588945749005029195290056201496364363876975047141909207110046577956283014606072920189782711096586561668451528112585654737134130285534779923644519485513179173043037309059143362972902394352247436872423332529271509403746418687539272204321107009692622897517586774650761133818059503926154602107700946557258987862484866788262305295995068275956493408720060821430731432092902616855231099235563849553156204629647062215285604581761727255703153962355263990112002765462414354305099021191118563202149556107330810755653435520529104944895723678053697611245191223221860257516198241967310269550737625160203194173016726637695844713525827083277745740480117471197771912439122613986461508754802358430293812912779401316503568616607114253693787644712792264524586344729079020407611033204965895574848273173972842970634998829819478500937715446411540750300684403046852961210868567992072936030855101256276696647701633480363304713727134898131633471970600206172411424729373748684419020419710925037453175231770521681531955587961664105850898701915295786575643347243578225757148152456356776126117647969085202752671721068434437343856332044878534647416310863224153864142003218472865212832164882879334024527579152317653718168167923318559737235164769050271061665316987144273717785062552963821310873030319989955545158257232763026914676129239615674329884976792339167082759689960906388661420715364896114138655213309828931970037109759996068835371960494516322293581580568624561385432711501582652167753762403022552408940081692340691232468020679394284692383480566742189676486350661826819678504919664934873577172144435131277647714862080835893534931686336318598805257903874237295851767558631875694554924190775362284096308759548677272423197939876664183248040456824977400214003487129562162289839491579484690945301900952140459393640302270617683994299651354584536485052895047380617100533523060555086655914573540986216267297789335586178956550952748105342695323983701839952408349047194090109123244117941842612245208405116860479290803872912448904906272470986037990933781914538779777785652432184692757819859133807861105609800350138532575648953437551165834593113880739110589446036343437902141859596011301360203926676725743211863675337758437002389043251742466087034460339432844846657570187215024721445428837409128066228803635319785524706671168697403260846485201485888684770425275860342472124475061917127891315653889053493424796862105924998429837911676927373574734997194112000753513812968639376341824036467303981389988169343872128858299039141875743136035642569763203770551288744131861502497328725626467822161111102593821053637181896189305254632143739426525101548363774897011897023115127066611408727694510246622020209293451277902439817376975517078311365247506055955700605077262415807043941473469548778832330355747120507695057140607028986518897759667728480749810993860880753014127623129605367633844137377256963878203987311531296781909112452280087191825865436947285936932967234135932709846772245955165878886408878048027215016244669774463227301971096224323422856665969364924855297141401314375715743048959798872176207677841256816487809468444426626615513879783737104695710449245908508815872659496865344552779858616277708863659452227197799419351357019369861284774926856399613306582783668718945333928029785469903699432440905917206838992061822021855460866152790756510479040611872378629192122754494800474382510201919970051003585775512603585623718209340373559726629616553821622632305157123744336893530484385555929069756528597835397154115550348767257330012772346564342861501788611590574545332804106538862982590047358610158117749141792133228697971708926518729463438642469908912101162001461443921920742752163544330177576897463205715926205738748593402007083580819468172113773625138532378807124453405832433735733513261940369940119569026240392588324742830977635893654746434997517312652846297838808537444117570629221765921005051924156398498524681325320477511874179414016392033529192125460713580635589563015116865338179113338676556185739989503368940116467519666962522482951506519316399558795367210769502577016959394236530086238194200377551781814168070184252873659242284199167782371905250982931770665182034865134444341043251905869607832273110256707815765288266381486353482510690156398833255273975761765400013964146007627941938931790787668247408307603022111111144069156292032713180740999738634549004438726154367857986885068880306305777167377367527308523991000447036619485240811157993161945767103802798816693652919292512019152014592587126922899468509389693886461310773053180860984478435942755622928277266248050271779662377520734566269807552459092325982413871125781792566405375381771526161806256481400741020636624727062686173168081074274990886951584560541064347266505875626013762739211046469906388134212670592853581291241061318269527688989640464746916315985086687695690438342147451683752128098033364410913332685301138457733579866596103245935551628339859413803193131554398597020189973807476240718653612762948775430464274066423412465243520091971489963842979053346343626440487320011227279093252873809536077452220672582325280595657277592230106184658614445678656037983417508206369348418314170377468667781397652662823039624376986175404732041370799982451562895438688871855895403697028050442661590279486947579002287911409000672911553273593043997291038293160487547178135799493508432944244353353351625388618924198079119147193676585065057852332108164576832586207474702412232867893233917808693648392234337859520168098133524488810702531982880042102701079186316068080826783254570058015025214386556951894462026181969785510320135495324634930629334558046271770345411952143110181878143558012839031064859642610509909699736866868514221003816576578398600099921905735101804751961291766843882141376763654132082185803946169765701764967523217400477087343127615399382787592732926826093608051392691570740570916378839043696449326200394247172148101921982377346712109561219715777326449004163944965274297440814016432808359558774069613390499868858539715077749985819942728363023776541928674874631754532138130168592106115953073194011595425274916464901176934566417871500960462364746538723557024280020617624838303419154281214077148085078466637992179805010603208353585361438012389582837224724667266311394682321606122148006361135383413085589020397293040176328907544094016793604035565384173216512432612514726734514910372777438688027294795928142141893720306712773302070705110247645391941907765243040589453158928067613933779134454532973877704246346771521460688937918240074451814639456288421765195376491297569926188394873068720428378686397913057458367158847460247520764242936451212578885978286577233816059485999292722616224308195466840808032826954847919057056183768954400624463363045988538290647204678276473305547104825499681823688872650854226381375700941377401748974654351885418373681549540689083541024785191279426795122523669050741110887309094995695246715409031940480978326366911124801455801535303319925285765158121182601185121706748716513155302763933375724804891476258464427165409905677753715393585838338184001338880918055193396854687934921931506538173061957250960190337242373202235862641367408598635815596073362029967496373315577425273828026580620306399133598188607330103244903191673626094229277141100588901339867722874794478952588430994703069176234823566199352032294814837673263007084534115586800031256684106103048559751720874075408027963960576323926309707352394113446855282301241305184369652386862518264265045255178531246381654269585476019298278729630202252314279428880023490677190264473006167041044983900814917049173130482421647583942037893260202615727765615961241097698760297116206053973554490959678478883820432230103515438911909461567809287666644966209502861269888163188712896642391389278813463893923685455282025324116470605333021793587063691838554215748047324813870511860341997179631247056626972260590787580148225018839616567628833271465651740147563169034424961093706572258214687141538089719157636505225840664420104500216315971940898863465132447250863950118496154187793790141197004126457418864840887439268297877670791558474827438367333346066087380450235260583348190638490638413734272864798341508074566801209538202091184889340138597553044556914518944867239039848932219441441586248859902312147687723228218968077480399706224132162047082854743027125155710957066508791512411238333176658146842847872184983618227353350209866258287551611763516654761954545081528984276518183439937357792437093081763147260998326168829636567632074012829661978562902854297221639422314455437144109845356307626537057728240525168000109834512853362700789878828811517483920044588899461729301701966364626471800947790575536478890150284039058872196738139971731380065289899060060479491596104266529831743597524250893285592366800823107635097124543628149102851743872482003955031371933355370081284190378337770385285521132433816222911531017598217891491436523789357657078977615677171426596475467298621386864747520257576726936224284626188593184158010710189033286936663483350146019414950699985818368779009538492017863646633678892379762817820765550955407656854266997905629494200381053493318184108063833666341473833114685604533964354308854847497468460612084726522735411496706778813943887156999372379308866459577192856701769733127012727135528554131528724393940902078236781728791939659995912287489923869017288384440070902518342933594504940492323938551023858821121239271325520724017295131442773889133009195885744645820366819866811087075400746167708651321086781269195147570765281730846713307535194846622550081010043691101720947077113923890367876640510862832695770840511588481527618753313356923349265321249184509021159311343148082572608509435053042834955709396518992658505447631706266509357892274711125148895177469614697584384043620842867537929272550654594538550207099241265608952585208529077315452497184815695383998039861561876795113671396170685144081408949396320624457278545258914400381101160309869786019662770560844013519048023317844288394652782423277781018577042642322548652795266585113320642846000149749080623358332995422120799735496515426544673555675196450482347518224678293062413163696152471066446413744696529552448544168123755302933513058289382593184169691350878328867945094915150094055405128825521803553691021460095521595870100382868777973666387010146009341384062837005680412716847269400570293365871231043290049413136741819621152707681502446894174345880650216300406825339591338581774424806711516774047935415109542120800885809267452070681431451568128639557458991356969695122566940509732380386161861659002261391902230922810365661595366244404323693750785682457501064666524356986927850036503327728831840428009140029166571787623795858525939934849370846104441111672890277412006175078577286040908782644450776711328903732885688236061405419700445372161426705312552269172824140540656315936779999281169964379790639094454762257593259997626810286297337358219622103519999877344025380521247067462010217973316245849530847590936308774587415880228074637163180120385901692260013966451993788991049069186384754937842992036334329104949947639991241556820129808218668465329131118113253417576042113207474436464412964417249782415701573248750202758391342865228056221323880266067717650731573753084288121990570385539476834063361035494815548137146785839553020791561591804620661018772499884819045672173478060027761673578734050027289454182581370840162644102024011591271403423689079734665805904373724445995996023241071785215941865479540483353173228489037698841097788778769791982027895442035627086567044195667222562183672127268751544441313487796489945119982796705964558500174994057037466557414542577516152956940768242825816341144203099228824496942515109513089764588100459645879400514771457085207446679047132485704234134364012609020279164794346671967346311606706042153096525683238555034323836484557150387736640613247308220388964311352567219281146507378402957003267414970133848957537976486047047376360445203197772537327115993930753959762618878568913710341378788566910404613745297351806506929439673933663498382521916954642820844249546593854727847682083710073321530371658523245966826880500804992579392769710094385532586911629224198200033447183839369551788177539785010676843161879579620354727180727653393536770691250501477503372453695044361907752589018403353834852563321164946584125435413290255822796622642646377976214682215287006725125714804214886278330409415269992082006838675055428205430991721061689462002931789365319650180700265928378091680839567101029075958687318987689465974566028513992030935970000797328880669023415902100134465325000954647262173304641907065499112182842253138699886858215928304694619024257385234556944421068938402869601496627001667836027146433116968651005143115291492018355699601595510157820062417079044300278324002905458174026356888617422099485491421159150604459816430301298420258185299490717706866435612081015066203615757268903646773752359102536570793324559671601633564170210185137832449757610387011661155050691152734339002210632481537103582320331670507806758937538051782484939262487715864438612437987748574438459285688252451575426563955448291983667850615840021516319781432697946747886479411352653775162776628130810145494712450831297388923984895742698835654271829469691195480358681155112697786533006294807562907013767944076172191940330944385703705859254954579729176960376979176419625133349116420063876956771759181481980725174300283332758728718654461679759475081405047293622193356213244029329373429218257176796222991448796376462804835616463610039480236967367495621076714386126580116229704667671885893149880319344665189240116814030383081928193404809514058128041131627092633028500839594001814836314658880099798380958958441770163845754226361886257414968007499519576476576109091255433112039948546531664947462120917343352889761002148296283265107287249467001146245926145482585738877169531936603686724283638512794643887113499991738792936164798022800081038151549940227135251081015534305228945019040870681600018863079919193973405399369482114697738076822335761576910272062443797126737898689975554821001321482301128381781460249655206105510849416619414977824282666595267874815819464905919461437930334303476475798383004608864283941208874432536170424818668544170215781846874790436261374315261885916516441656852972516182139718507968972385576061209969202747179146310827461738818133182862846857146849527276399563804771583240234943412608820954940606546915839129975677037930969737670457827558781388367201433631080960752633257991335189658955249436399062801461805513322833390767922652953850766813775410860134789240878117179906076467003967956661533062751776490542083405244363751274745131288715412771050526549359402358671612981242598199285778091241555424423878233310876837418651491588011906171831087068130933691741851931140678332416056364038017096245895058785379948273755673092401152613534632842725128594226426819447894804458091998690084324543110005875893935403994724729589274536484972327398293550358968452000845841138073360782033452722360110174116086467305695234532677221216145739228264155165819413890115037464378304213636745629206930728841155715375384009797223961809403812611955016556329727050484252985484535922967852027755309933217667124564166208797792553479889247744033858739574377712002336460248541178027739485965811684176289989733697618728574404567744304113218645545278965335958709351300614237123757055225000708853129676068979827087532937590925750696990904376613629196353944186309102209621550005655748830580990034447476261748724654882788711776388176021531235749305373404173284239960117077054577855792219787870616984756771801706680355651389401238998936819641096210434676634438121881990578431151272509788949101024287014229723239271418646662028480552231727734524558637456933951694022206699566905515817697593269547016636381497698207212298279627028307065557851690052147693019726874425309051904015976530240006636254609434300186409898456705858711957595263672264042551121101439252130265904711917846578853497653914622720410924335864925741718335235984600192327615966163396862087501635480444382518855205419042411552202419533473227374771065491002952825908942882713775840943856532159992560544140188017248143992250815147678505114162440956289983089508821268473360632357129169573408258612906602817238342023208035255705744617364017388279270549128428973240990119906751582245335298677735260911460701737560089833962164277164838144883969648150575898810294729723597668137755369658723552969714081819446988502784527004423790408608387869995061762010031329780231213797505547208593245869297225934764967376893834733084306915414705809489590012336907091390388683192700422577023955982188870950177802212931369781628863407057456655938945073843618698112543036906920567474112653919933339460255466535655516458345629979938103962266016625141413746100620564831987237777791632126184079198501155584335806725972252791437796408558525322595007831626730865111101974671491050789531787554736219004840874132678640340087316342444083541023312652676368909549656743184005857941321815469401979363998415319690069851813912003164402056758106983492577438785477595839551055100485175462841630400096282544085475897022733778765848947537848811828227030121560912126731681159443384111155812026493668244238705093143399774135971562009575189648114666530799745467611076735634225901894185139253071106264188778419031059759533917487485707756284678606984831841920920792447772296031495982302970055673776274861997654695922053531517093355465435031817430806125939012252410566393729677824017478500038284935753344032311087542015744815445001101242170956257056927883613601731119019063898548439583041493782184598128971605613745294930120202825509948597513674828549675876146155261283197085807192125810420157998410756618336698300082400580572385285024979924788888327312554730178915710360341531807902931943903022050971940586563338229747610417568307656188333305971110486919821784464863400995979476598353824161850627022099496737109778174802187496505130666932519554771307853334093204189184185913824714750589887442443232903553028811546230033636348680431508949114216444604144925989717282539760684322312451930337535309256369836348174340190702480515632892946990813393843484395698357962677128805831943036519372209436517638017829821520187673846897326799276392725739422439519761429154502433958765852594292156134042834302662738072934829589698760452739876791259191910763394423913029166847104191797811216629893018598924267878308897830482057450006786206448588136670646094876357501783574824490860845855351801414409096733143316645462710253146735612872263527131305375383167485471082766143151714797906010206114489752643288968438981633990912723897208618809876040630374970838652415832384904960853867451788587402567018207801405999240329399005553992198151620015924883017668881970647371372034477736360334627805717863559482302050678866987583306731814294001536914372348156536339336896175932617372821268407257037764123017423920380649163389081479637052694028653401602811306483840410749184002817419156266482174994919235795103482018562796072684981763674193287939412740722412298693192530246154472666627714928900419588132099833854469950300497677805022703975481142741600040831552328366575308677120650277062824378918094431273034596886750625873153517590089646540472052461806097978807465392108705954537722549851040375206929279701952523633088776376874534142322978498257534796779394053642610632546133040289692958406689539840225509525744182041279152780204712212649715947262752272729181568195367334177546761575970181373862936102334343543306068662920236352278162794015241835353195809342694233761678932325050551859566338537283858306270876542463113651736987366963802253212930205389741388208573849263619331171359049114952782303236419598608066059411323485280736276398466988239191185314886873292853522955503757534222098281444653792730386074610382064300249643036594176642010533839035965830255416484567721607055105735442662525943108152258310905559252074092832257944464475804870522865314945296761472794333773161441624950904256551368443267611955112778196861878704830068397911768347037847276644572457448338482117490652603538337325923149315166502934217498410990769795134614650402895317015780095037472787118729770231850124916637297258334082631978256625064696437743865027422440250245275092044962381007230692237482924455468076951827538330024243141487466714904528329432642030203547895732145720395747004714384143907878640384867253879555682919483376523943575625641044359242446909249319142410977788546885930162891996193806889268076555841611538340453355516535352118059561530764939115255549375682601988469822308762917895122675219492117164959320768535004688667544250615269756750817371916436292395214977849330516403219911136689665205429623638065233433691352208645834020136303082640040779880451852892806659540803639995741268852828608317800903491810328739045240055276128217044414874850834303738973383907352772008768272359218674523734220367381505727675065411266556406071728517251338884754365905505235458335517379228761349612140690440464586119915503505070175162359972524589862224637139976215412439332371662462889024074065783761486607501394616799605317463903599886052882430250970917007839015305416938850374675240826787549799393086546743582536618141499155661207278275589477584317538615658025689978546947095360017063591407459467966030489681595354199519464567513460914365436550723085397761442974486912208961798786245940883443438242682111640586183765409509562893706093444190018922235658101278374108531854668482024776448827114083819275103828359900914569283536643573627733007495371678559234653263928928976362368962299069425211675614888853459907596222317578674935429709218827243373408431536575112680227284920971692493825525131853824932131871063314614963208838841988346254174249597747047307202157971148833384999207301592523632149529210169219013971555671454280126961867626954715526330490169015764897782573735178937688823694212267568292425296902659913318977498552033548507590398659467817144247067326920530414416648588420968265048080988411029529926461317983535352712723329121909851615250087824759668846907899232425404785444114592280810046474855907881209001123463694733850522536340202435508732705439882856144358698633743663001503148674347355779849301370980202014068503581944455660595621553186424616588395993342536495680884359147349840984730792217097870404638463774794158964533824748886010960866322648625532728907183942052285079898760540181008728565976110264039291911424236453316974498132344803697002208524821365223456726240994789581634995764461859153880171307185621367662762011483898938720291460751674784270208901063273959915125116454285459209482161693392184625213218793011909594743449799199659667622317381775186600021566436219113585292208212853463327241334844120746461365602415708988124274433871642907452652021915729534860498139330243536475506843247480253601004325257168905786115256743793785654229311850800361632234648534791702159091814825002665181208643731231860512815749559547371445443892952735448629632021386951960848765736152090834044319926138859069717274884258975187160015304100291685886346387658329283180811118913358622781009468259350972718508618040103653569378362001301165324514994640311176713355104055680509181432858997293857168568635943457497882243548954564554525801887141306203350054304684459720200425172380387736875623353749329147314844051750124437356648324801994684743865360000356494150268533932139082442942451067788874331698866764942340062436653716985277469580966510318755761351482008759297557702433513941925565100434516648268773595880213481361416822374021418480903682739753138740614413580649304457213404870175109384601181017449852109484637376323641097839148928533714761004353417276625756056703923892158348694516493676142997016549315043552495065477291220336220152963913521306234567474034906746898019546042234263874052696150364746629737669724355197339005059873689784174693599026076215430896225403635365122780138938750057283888630779968973840755449154617446701685920733233115435566240075027552937249585239074843750060128287494018361039538609108741152777690629976624423206747192104527132824776811968206289850052535366518290366142763390567070582725875437577010889845081693932158046755420610596444635963078813341049862846418228851821471496119796741890066796304052122864438379218480880012813958055660713722931152001877575287734921198077326166632922748995902798367615062743175316600211862632434064112627307579422044465615288352882659438110432199028848955556010596216795830476611441740159174590470206339106302954214556921640280036762448351969808469075967355156430931132471779021640350861266974338024235792191563990189789935785753175154486511701699990086959427120013391413226618990162405671581435456914814929388377567213518808024389538649058940633502511787696930497000654982684969694093633418377452328232655316603021025621543277647891179929838148766582466670213976297841027626500131936548404041740937510475392742986380113382823820701657070774909751464119034337693566986632952629838756458762325720387895541193268785784918940692742934132994128661817676610445174602092347216169698917259138238254592984491713277683599026745609903041166059215266663125234749787842613704509233274483601912539029776335467583522906662827785823269699333545106131691979967652170903126536900153843070377493087100087659890527665983885120173360922772866936227609223685035772399115652098136903269020281171970543254046217530530114167971309392588584789742665986305239504677825976427933397247188555476152863088207843472609255430517587106979785715238468619869135890731635784875969075985924119109755924377206557285602768462004760357465187412339553935605496980434614662162609259641329243604960713183685651709975138896684811156105899438127274095103151211416402530460848833852838380822699518221796858268004186621439275824138473102218875298984245380003946791244922114950888254650494548079119720352063902101298004473125615759823054372707409662683223479671227315838867290137173965301435371490473269735724778290139089546932811285799662559442756033946266133115797937480386283970348570020464423959526364660558999322547617373879056616218799417363607849689463658331477805618059205942266142454335588307968744757240718747538706009526004900299055626444618502237755262368881464736869774287574441919817422745077876039762157934180185268341988258907461664479279351151566119826999502535758100393490168301011866529276429941471243190952785440143087240620542899505622755768595541714344074128139093931071793589206833664728047873583589831916615833992701234816162481965576095748193748550364696738875878149367103780970263291214003279100253477631237355371222823414306866387302419748547176884920794854374415750048862082848956597129027372394512287960945981409592083223989287654746083522323538957070821406338250742806539179567931820797552715787065645487943708687745790519061786625420615358616693325085805900133465994414335645802511309547091794369075679819679225356130881778610950542584660918716136811050930947151670791239221332665404901605520502606472023652957350293874523028612962099392575760865337357963536538031568068652162999586209503764164867932220567608481039911238943115712590882208835841600094002107991298468029922756239065063201148799392078462887101919107539366251268204667607380276300273272671259160877353197392196261292949240232713573720766395265503824475151647759001930320297734883377447308488237436870089966096056483584737624692950363167810817235275064863553282101413694150993440203945280893634593777245442089744564844513446345505185680063177262792607638922721671975231297559600966091519470052257362649311768787443522125949190583760531588446179718176666963996788397749814805096706313950361784030774355741856130334436414719601565285152770909798018401805636819643576123066862948666577181888812466337456981716902356069353248280007411039588138018762638935111202885766781345483064448712789303747101039194262955359545195282799834826951319594561729870838557479800773829120087682345912737751719467393774367967584173031609873635449927223461761034819759676329234032417861310743072340007623138752472251358866133533877402331339559506127054067059627529918641959263590493929993671060149300735412861429944095862462574673998120948815839183296982373310183168324777832010054277702281108249927803169736878870925568753963537679573218590000956431691138698444758726304234288379130434713627793712441419948590678270827081744391399151435569130170528474710079061154044104268367934019516882273409157858411009591301325269167785204445244041507689373404491321809396641505479217920870586910909789947631752931517902750715331254048125086015536999002048154002228360798974071104465874392729013995819730289931870818131593660628395515434539068012795368546523076432698792308873110450685640320971977592457549264835439925909346779779014975799524347658848022213978255098606009454125159684738311257695215143997983342758391474894075680709540566696746707596895547124799874932214413686324262951119515970089640096625367191135330364323737680436899235929404545669234071638517150651715021035900670086980163442622846591159963894150176504588512205735363211232855601498036629557738331497692698124212621538363115234814739803938104613368362546350995496810544196377718342267066526408310578717461986854469069995846904413185450117004964983454759658356192585556661222226764397739964196011978305791350252168360781976942456659022907470833083183741233395905374194598893654564438996360176802011553330816669915240155592677164866341979336782236835260608231580991542941022230516568703987838015540963342682690131152470515846989270474705643438572257450972606699386192345017088612272707775169327687424307048693769770376807158677402250819166310723171081273556491434143502413278816865675841621869452198974451705423254076302786481464310966916449841539118070790101019921311080649680635056757605879097131070543556424919156190475511442088070118153492032470416420403328444039393215013594248859526095257494984018903013999241909321539443706458105470370291462904036204623589738815536020360826018901907079700795452237296999851531096828301104345208003158732852157499009070202329788315017516577178189886241806637682835459924013130650214530002949056866448487214909653659052201611691774015010298024601826840542041325043142835411966114697278873874770070449213464547784091607674114362568016764949864355022410428401079414675837853789649241872157440461856140259825357315333599396506538087303492857564808297000189411743050818780518376323497626667904186887870829469272184293695031171611548301093966102837973253205226734612481743873330233305119486622856958948971971745402664422307157075499728724491545807542449635409925954141760733496144399886549520817225614965385505964533489136867847886655547180471129909000554872019242337626005662772442101403642800103931513645232739659011596391716489238063018444312431892990254007942879684660766695802455001813375726373904208986522609455434525547815597440162133366084733877130403581659240518312311108167213779589955155428581892363731035142594211680963224405562655680612572434302906111412857859698186503439897010133748975900850413079838550529513820527028472670762709024928845145017192928971093608035590787716664805759394812015686461939586783241702441289697639129234914743604846190912127513921501105133738880739394676748884510252583168244176184707749587451234644920368288318632261601482698685814166010431886980124290177193838217964969652265265286754482537455813898691451996572034501020487172906779297049567058976911963466742612426362400416950421697408233617923689539813819226514110640207382203692280343994111539066541079506914228331368685633008601003245865523739430081101500953459557185632046771602657301937536294316087473056878661340470253843950482755037355457137073800249350015003655904127324135546407581118568760217596012966078636534200848725339101117038779401529519486911365475260109334985986774293281848332340675868304620722438147498303008713178449332651005134867811995424808202321640813586193017254397692075091218140362725653598081977120345418708509905857371613005751368360793725891715481384785737031895260901965229665502907566625085328192168817641144941545511243861697800272568787338111628403279187191061890740961130101202617997285957761123151486979344768681152994461697662960134415329759353747247817267058640141240624422789419182831101952951632966778513074054429211409943716393339584357034671732509732558146504202934329277341815968181045812229244088849397709730935596163592044434507699792942849988646826344060271834640943616685515392670485123434877615205998765618371187118476436739573710026231918329999028259042772539158517577700009096961097349568338545644619630062662490495847699034508527098105271328820585592835475264758612006046326453092611130583746989776940240824145916292780412250835749332574544780460968368438269690692919762124829299822368274290301118477242035490022886683330665621570739558001058318440990652189787833250787145657668549176519808674060931504441302232213636247486484363248226998484870321624588242911836640057153573086725430503901087393585095967218947502874452218655548510608332530319347525554930813067998155500652408748095333024873837435275310336898313614504100887553869134690197705965401194099648013826182731875267350625268766495123235822618415026080109241695629536738298501187935300156919326385810961361834058760052903878942753747688261141553542876793568824061185441128650818503461112464484771229503280560412396824870890075288866123895150308298340964286475350899654237585525669836083737898848911051465186089806338113929311186848326332712073849043246155571414218768832236206095869267262428897135488658833198658130949334720829667606326209764330594674439047157842808016690585640191215549110812804355412454414118643704612302906485617766608355594493992164263961032831784514380095878319829567665548685287628349984298379182872417061502691210620090122008515762860362062534890958825106403533011958328019287382636543821148486141987636263023548361855836934730710777425152925515345977201496468655118197779420063824986340528511411635623883350291400548284869971220576917699049227143714647298242829730372742777045897908068046363076273651909069995290161527809274646208283364437365275661620867513602569628880562533653720441043075295353455574054274733314546093953466508921624076316495418512668353583656320637666952800567805724036205665858027377658996165651369282399806556431085158275958571858784547650583878268898837506808747460127764855249031016427203145664583363308435408627591525966654424425501149429945487918573685525040678721143593414470178836410215101462597083704557305624853190263830722257114822495425813316357198327717421103506134197130719327719384887327248415032437930273154308162869161263035784578393758506471955303745836312696451397728002285548060799705592365322881575938298062883142652298104649782474884871548047757617292656149039045703095130578753651598857066404790185094646877113352362118488997180059054603956757734707200647291730780716367799802808894348049555952104661050822129614466461084813251145962111091087152650613902521141079414903566011875427198299408612350738878162051141561731041678583048078006849996957103967626741774774550446222076688591264552564569741048743771982861484209286360190172167740917831924167403065763988237710382493520400705161775115184824455718126610544572046568803644125630592810160188042890405840788741159000500679103611939401259528054513349334874664913518217019393212195183315651423190790288953553389084952537357170771926467369513606675290854219788340285792212012832627035175095050401874723074135704230956428123832823340299377258318365263120612984697710812094639893029366198091820999075425640788844228409031892177927737201139244873964316305577949568618140461015654419811716215051575287361035349238235445937001348190101885538311589721772458307551057115039909835639316852588452838303770923337365426017173984120123979952427012219981690758265738597547457241154306078306715443134929764475768707537217240481012958705372882209802781234268203909970540213303545133947152152955109180054405012731509532404018431417623685061992408778609336423956465090948918557676716022776711908313653950187757078293127976045823858425470982847626354893561184475381185017454756391466735862674205467475946500760081672055199601882961550308198382081973020956046855850328915063160363095858889612573036066795697218127114618390934165243801038270309050282574514184543578341191769267789723616926609881212481000269381792531459752008397898210771675717280509778900083851205347466416492635717991212361586484586229740138915673069978596850453530951127851837789598871029066052030993089911995057350866204644426500989799890700846504775325117250542126671967513710926452514787701450499925517963650522378988144215604395556364525563031111218708203483453217704252155488404158047561306625928921300231216758957693362645504053074706451093232511838947657040725249928288746404514792265233871525047728809511520951179584537591255267940594873767441403197764599875024367215894035574560083933376829506492164847144975324817933723993968656566975471141583513507348058641139075659323695018673339057580609315283619088749153692520028636228299686081889001640486524526445969693959367505155605427448838978988736586321637469388899041738652719815905609159177911719441144957574836599153710288365977636078907286552038496996030468243490539138518223140476479087402538207534345313502655136901288639566955913569067309079551978101455540955401608500616040541766838106684153420443405997938750646658377186542624446314853578407911598340018683334406976737339852470352107395709859852988859097913787797104402739519990621283258635402754974260008205597427642374797223512384482384744076673127879926355434949400712688698682109113401458174719065611237519190514722749192083356813063349754050160267995947455080849375496724259771830553368346138784834468438452077945248994019830357739322973517968235995970368564793643774642494029432823006175418396047081549649127922906628980207743882462894527312495711884116009100718033424526557503875682719488655283837590771135161947216962096965719836825966368070535316206875523222241033490539953426323826967675159601156466119258545473990748390505307611648123971953204924734300450910383216268126931701793784680376387601477319512383808227472551939926357187508890475361338621837896455167683495267520952193339889442586163275998949274779394333513381729165414246855410875516660010156539863725857253000299401352942457306018252110766868208617127119164669134890116798609303879440591524435463517810484363827544005094616042767361469714308049577646139664578626352238462695533352256152676539880555325981985358986475066895299556723376785528501681470455196061608223033584662051576864647577575140654706073953228241641899891545109064007993722129124507248361963799014037840168627243511792027952092501799009688486059419785200997301995346919642348399688654335628497223715067709845831852549480414391589537994641378845019102867279904644160297683822865841576569922035020136026908540116278224041251210574332500705127138985776320798804611665812344852795064686313575911951095518361867094195350804812021829949660210584466217691393845872155147486053990858924208829447452731918555472736026548370999401501288896614339692864741565765461497701945438602415268640400223288531858331374500812616708068427955289998673032063346158534921550137742319228774796251459655408527311721072474517675209544295494113445119906767849145885199699327603515130622201607069563972745949094332386774508959637575763496794232198234789506346916562258834066660330149532047157560976178696137771297729079568183625899133148849437019584693302528241299392310182945013791066231966901051092579198452708388327640139090081961808508862706126249490116257745766888681695915696483976450650811749916074571057056893888964661773729899704092761709401496281662443378120263387285733017275793011267215002973590157861771477903772579489085526178370469770028773083390658200835531600592668010420745777102196170720889134385804449774092137967056466891503991084790181620988625619321344849785516972713532307309662647754410393990121979925401222717236608660321928469444209295038193738997875048033340653442008646002528704001531709122898457387416417175509223080712617174096422214206631544937355095638529096327112941897053679306286350692567775554559701729390269921842113518179767552598150899944461098036220939663977382950717469083255815649255403191737241102418425558495555992387413116659360139793260222001329285775811503766209039847437255118772524217918559897342074041067563387478637783103781380683730181264610206129920515145389678793710900242211647488932022107785175206196993927580851186381888513305716281496609554647275990977868449113492798736579238820251963488790311959843775592473372296619523581309301209464282416430613412448008768032898821013735750856766446787364161209289788526191891235757290146893177689541283735001308701509925140844032863972924398557518454580674757496962787767561130198479139937748148058200987089781272463856223485961187265529367023005306250997998180860878505693397017030502943820120049727228357662331689663461996974234629675297082162101852911651760264996984842099819345633489765680821051118421106290058100643424196103762707978379762396908774808437375232895341243631612000716376206507218395166274649126703458017552966470984772330772617363618256907385313566261216578929697498639503650294385144016926932522751285750424307676688985198679278334039490597729301581082123116165404879310014710770447462741748921945055440844472353875594041274273270906571570668787270758523811320126389783713620495047243937902928734402975055770811250657191846954571565137399323340594312946377453726665831682401784732376244193583848850923411147288335547362006490742835474898643771982115663977304422939168287658730646203854169946540183448798426332891276838294184238441032703091323919447698424060955092272179676006082168753346762279076358798403138295022775330191027746315422376375403955149096204847713849059347737694641314442601171332419020382359721024180840031761110916443122240734348130723759625687852832129254726936894223076154902426009933294264557123449945722083553914735751688906210464802388382611758556658751017039489965350254191905469345576480866671225332192421055854188207677455786052156088011863585066993618120985697308712608366870519405979778559419814719500251140037821011736466149718502914214340078400462209726332730586807594097044210300990067843863931302885924319820261583642321323750332626345981670313080020998302182730465835004297555407599516705690372287335202374910733040446506375777745390527025311404805044319846452515325979006536175164023487235030475203419287293807875069255795120891550880667385454826685868500455893346796035161023688541013079003987182487297816939165692382385472251163647579136864006751933474165450956506742372914543153391677090176662653540021893872454479262543690085446473122301671986505217155778638827642890473190752976774049656282807878633537045183977397395998058274391095748269072776365023562842534107217136021342916786028714706927575221751510085592707136924358480432727340631254093007965067957299721153077541649655781879864681852607743845140726572749395631121391171758326264211199256513065828637708491020477664747490850243970890872670546480253920422234391024354344247509634834773950515853076348255268303223455078565837843000444767836080835510271771301613317393169992041504404609657487405777312399747344396987072186537160602628766108128733977023760540641639745949441944303596550408826016948341099045198476190932897266722216861753730320949354033923546152655068706677677163098459437613046782475177365590263023413743936686565623159201784488345733602379213276907467492967614453589660453031142754775220010385030847519635296661517166117233463500778526266018247039347646323280601155233970446494105590932627574071082461995830625386638145335054194256523374251512222515350918049755174646016093534568477246533558223047698593955465562684691722796751642769498041407350591862500631743696218725621281361526780934522489736655775730817289757857072615849418849159334621261597202537072872695078727966242198679572537553167915569153647304854689327127968683981626026315916053463042066988974900125257576098745255750760353221389019769421409336382309022077888957594508822676211766279534342156894273004875863019995058079667269140277393361185029207752068409755199259776031592955733519488895031296699141353353257376224741482257152167218585199481817673874756336859520504024171259164527083484853508128637584941457003308485346229314191154183658636241595453467165813351929587721221277306129286952221019333743904040555634127155192753003295156079974640459554746039173216662249784036870928598329664082333802537490597503817608140063403271884445162713577878451048133161319073238756740940700038357995725960238733830019770563807226089636090942594579927770940471596344186971651420196224455611613480182687558692089302531099336362845064700433679381635299064983183825457320897395433137549981635788765420728544924012414699723866337354688695865010333976174936695173347383455507873169972189364292937128495333339946473723644802823089698149439205722395889438136217651127658438771162550154948741401488733630324403273422138195186248481828217882152997161702566574454475440927542885145264615646778572031193668314120786206132392321863843023797948797587624379714090385118163198169398348132025008536566902982254674900210183714058217142136605627015614602380248712854115783297592468781202672680958338447009614989010680728525462046128728233378952656494018863077451564068309602160874311363551560419574960551970953698668341622445097241326809186211976855750833090839276182145097083772580116139064624650441353622075264046155410611380533975140911236232103511874967362024077793524927293187878382595759631486332450350283376997004987743226214126202576240309905055321097754062678007795206311549873805901034696806222604247817640263886358164362108136708946157798445302292854783064841301551492686666523582841125678885878829386687427055922163513367523316921340664964299976011356916963118866737389236833843404186638112577720364057902044683753971568449455927974441497217640096081148070743649616962416321427844544306824345293649587978698024071380919393737059234006703690191614616446564397376567249166358513840824961337345010396109780133253776860726169167635977702468636113577455463995829976394420082985476509736566081002648725150849270425222226839884425662067219364914185653129717705803364293376167590244066385233845757663726773909565634393837530611292282953794890922540638838764294210670724251326206507162647514978628752227796937858650339839382667980223408731735900628885235251273855985562164054380826279987063150710368856669825695327570455152616399597821154997724255669523072910587332488421775796747705473475550838995414952322365721134918498984068163900548514047011542276445230207382986337827128772525607198749664767271177513551695833096532072318742797366255369672284646157849138161569154131333584385067384921164735756595722338681936176702230702160041182304209887065987813454968878567305920015399572446276316846117930409290281924634933710154237713738719233093619115680039758978179788609802747054996536818443578389936471618944881876149966940586802476198743727328366390942156200381759426146015998418516248324151829706837267391935026021804052592421146852475258548152812771276293975599212201340949057293646049561806314973342836001341244810117163788351963704335457677756752822886196479746821483204201189352913293415083146904378700999903080705938401983058143152537314726991110805843676455543370790322935034090279214747820540335986731650273119921493235858277850180598033029762494086813126027943140915892332302083828766834706864351529950619168026521514945487947413449618392368278879286889673925403379068195839548477725894758663794984352966988679659544665065883716434329793634520005171514516545419728152619417351255391570384687266487316369782058970563446671231828583618105455384796149810746869925235162073176876716337564680233912868976505647096733577084108218201604919020370898047244237649976232299733567304510240564532965742268021138857988977672003222874017020785701486734692151690832751110899186240685486058247774172552686727653403035853907937492262037392153547460844184156525343797839476302847868547833688429166811168175260746826114155805516589723288832643864897277019944014131207294070774236164147938757153355232419364019854830875828975066789009622964469373002673782796948789729295480805815222418908149186474225153516536991627956717038105637797179037711382761470625182728570498817243039476018901866942583618369111461172320630481313906707779204560630833404228080147452191183830490114441597680934587179719025455820588421240188105160624533646106299373630525127389882135079409425844465140328482055807621213745486170136192259252836630089972471960011115495290482391793589955591444460466130258035761338574677522273807342817791944506820303489836832037648976685814018837774875375328759260311224232420040280350232258988790789851706349137033461490212032037783046398332790886108387189631131322056025140148133373919862396471642422382935837976994339011090833060784473416602182082336203768115628511522332591812731416637732126774086683751188701122571151839755111358903226716097081702500610787907462882238340317307570685802576691131306566055594678700461297379227690196642820126726820125614770211681751611618229442922329543112661536034174411249620374955827928459809295199256810465256963176226601749398906785527997014353870097777290558784228547956584343623321950230250100495972466393997927375815541126486517754806613439845409569236631542630227282805470657217264957580320278855370834879818048412432884299810860755855063754256207767771466960847356749679813759718004977041926779471957080148718923474357480205632379191217153993333003593315684506161175177934023160347267762279507739416039343376210242243020103346541447728488568330370946809795002477891266628170630613987423424052109686331892170629508315732550413998420363539415758070702448799945622790844463972872842626518748129735137598032634875834673479389919393564576766735496070511291828545077370852433101151367947471441703173356868654603103587509946286705240545276040540743828247373966587595791123113040509084681357350597222996737865512013401841205486951327138552236952704632510509677370256208831625401229778208395668409107245553348555884216233779893127824800972277662388781652501965213658223332890468706186224903804314477042306493394653211693717434517498552916638999981053653713178771480987337933606976175664904098809922609204255855258592130419048386688253613716466027118773033793072474653214149585642937116027383267777968909637051603212715535178121313446139503093767792949878644011670190300102804449946211689111509643794631788336080191956715034332196044555512132799463216846863225110520155220796563036352173846378414278933438599916368772657990941061157011970356567747875849104061826372219598752092270467092863284440753762239267581643365618340064109319007066130627498580078543257092691035322951308711261988468608310386409996946355156783595177405997393577025389393020117159492226743727828001564804561260698927389013510986089893836196089202257784920185078918782152251150348542470172720950642733601410501250640464166830785124294459697846484986012925657196662766114820446135528966950085279531831538995952577752584353705636785231530946161890948990516519665834614513920878029247538868999119231501336231682534767914237575463509560031791898444191643780033765726808336171362318001751168972696108603787753817713975909469655087736658535803009773184678136912634224007454320194628002355949832280360945920806396686106034020191511507186767464996567188840631548683216832212579896395259536176579996032838972067289705917747704453870414327825196400372829722964725773247502165431234263834659500301348000105504943270059392400714897277117496862414838175902361908215401335770787513435788075053032303477095708508814890439357341312436256036084685589635327756075766746682063718390100068999917301056663570879397854131594566389505769134083325864856518483234611767212914102854068296772406571242241543650172466153105185679259287984201783766230633452550361230314316509777603131865433074253754143248097286548518316819061623495571568943493468751072838792880940436087236031540689737594727212698341902850781594127512748567997606830907893336205148231721974677596800719509490755624932449276764650210695694189879810983833844982421552462111672357304292612493107406405100186795092734729408009896789577469529052837088485444294657253146462329404698585998892836303895024201147285125786539377475006786569494787759031206212138957621843655197091024829100142380188137305649182936968813652752556423145014400383307571159959873471903898357672056375615896421387260184143197498538691193428622608522907237016701718957354295083343961720346205596747686226862274978332405898977534078555486866690214995000933771228371845800270579361098378899258739432812210853839328986959535086698665946439533621135753694662175013374325408105334184322926688167376854278844813535188333325294960017076994700579752302634033144555684447560958791318647886472318125802809585589963440903433516623305662865491594098484195381611129110232804913293687269702080696145946652645432396347287174182538303926208434962827535714552368739956958601095375250076629627497949853477144208072609798540326627802301553107405718800619035013815196794535590829474177526160815949176132841833537579419400733905782208678807605174850458009878321604723321812078452007046043111464662798160859540038697307605854019905082955404983367877638483469000764652874156346541365221985639434046013146295592695552932638317950553930496895151307296446391711355275649624220270226669142841015587239726424363485489693242482728060017405981591993203648822986497633664699697855190981318055454940430078316301052559240612432500995111311200468795632289149834239619107938842615118359967513853545209910190577104949197590638174368259660100217531430810499671319109617689609298047361688600915948750981974417545908877774236978443087398127483624073456488796927131277076663842676481016981731448069047618678128062431290004357450311412063560678512483546278413974463010349471338071669102344028648109815532177891943600905194926356519283502673072200039328799751396417800736614046546245423210912690076984345478669913514553130169979799849857580124881991256670309989795299011495159520823472407188123831684933629969076158877474089570624714908723220015784023484004396760389542114510216544283133160632720728071119811672810502129725356200348882390553526344614811606407315963296475552752968742128441668419264187621166953042052733148306350126983633605944246840889873371750827982311399088172196464182483413709561220008236736481097402362231784106006080259961428323346590842695174631348513018982018026179429038329238214362955197443681801576763929206668625861866471466143678228646624756752437960837435652633302247796813829674251003724863739408099911882656805732569699339123174146119891018432129152129368474716106569728442928410837812360966249285338629471769588058114915661764993361375862167998488832232832471862181573682441148374237685782646724575415782045334737050415375155598438532335111948274145256284244439241389456280787796103493530994921864584409502476616855000981011490477417229414159121884029965461447859683196091149067197069279898556478678347693476787935458346289771139250750840847288581802112829793855357169591708793653456716242947408739855681220519959633027105360719537444187157446460032672375868786868169395425917460340792341400172403720651205613988657495758459853431457113054843519906581073934504754566955395263832760984102875661840078848170239520247771621514801270038928814834160833432609171532374881981950403464586828258228298945299778719281021810952430712338707150189907061074314332403682401547214484655213678305345190959838906188736691764227348682712121194989435776238313205451287926100082864421517764331643373970206982960127136404034537593764994749728786494247959660632437630424068648413041372366670014602515275295666200991654596252425545432338826974715740515920851554580812849782045655510939223586519596983600902142925305080670085009106234779120856418664471916324713974501765560251897109693257443366401567012945759947759240294159297467332022393466078791907947050920290702722490864933710895796135001851830498421355864809732179403451295107393705295140421699292970436045107613302536407876581098911358894444928025870564937757585249942610052934450586738696440199956846501601363766433053137443697909371274455861675765996335090865407023458169600332331049735830136351649532257602239646797277018349188588466649146174372108470214796717760617204311472885994607864684418816805738481274619516909998109993338063567105307662056082556458068254530136930158649386817228720565219999160818758846482371365088528367206997374186672286812617013009538398193419991969095691766442539102784630258150725206096966189445538276442218669744951285656345700212341235481425224573938986322985016824116761649447755925776819521209629870513967780506864581010582850693502898563545448700650282706617107453525469371660922847571872657852224315020957827226027317186505973791797325583616161444238566529227899450134679870228391692405502742476900616829406859716870567682572502517977521188125535260739556239375351616201880130710817810144247149657379633673519162344347763630373345145490408222055430722721131403631846726580313719240855073159411453049045811535352846762806257713605004366885095111476666299218526042928687013722689111741691133315283601583962196484375304302408775721661988787371673763910130010134908931458711730305930644512376660453259726388920528978407431713725237920533956441836145892697597831650956311236313988811936241821814322537161187648277694064665717258355270106687755118787913266805701012844146064028230068410965654708936742659619879481676300138490898968650970432528143338939797067942027773377439618158094921582267842835484653957905499551145223207624756639133218426936046690731713600134348523456124367358272538539947281401562297171401306163747023347127463099660355556116066456884491123482069322542343477267870058727467903956430143055489640946191963260934310614304959255833246951911256075923056628181784965527705141196039295170689928299094219733556017541573824866527661094688492198366543430799072948823106710806087127831069036764049220871756817669043871099503510060396142547055152282810778330172869008509505348484319568526895908345203411904280756967461880776581675094980702347224028306776349644028329240274038005619213842446540823899242561958660959277118550179756818041297762901245093005023725141464499475907839281034501804054715686146243243336064488672606056868592731743593220695280791498997062382742231520442999849669706042179839786269353782748876174680945089823251915612800894437574858405477999297214509728293136250550237926297155381015109809436442052469949174010805813152698795265963453239176528878049952120114048987097440422179500762024784417166589044605231668882783973236097333066406528685634331251974596213952198581183220080133913811323901749799525755825747265642707247929569059373772412641270166799034626442245361653892219511035477152989354343559957636252018102588560905451196512110032246479148897608789684304943326337610026176475932764338081226637824162085592638848139496489450334256264511308425029435827502029245724420619386833318645356480834676324908021613745213168841253570144375337557030273762825571333342230007951189456223772303316313640223075131825654678729945161711248006588638790682456722130266987081841787837056974757215861339355616422214554474637234188201987011330853701974088781060348223414460598614934284913807159720741142980845007987904898089196909974787222771454144380650020898800579750881278681636132741333863816382539258400481028202158060861252570447672025233455168118767987249683575371930729453964117916833879686782266100666483762263665466244233835612587124376458928067518415063533013696606499952377202232528905034337818145665273434179276282524418220064330591547238684532242209941225673308013342292500152599584906618544619170876219612682669577887702729587461149302638575271233421438638194667186308372444093203197781740258933480435779435907486892467734494890567694883932250388699538153193745099625047379950363984907702645272671820341826774566452825502738095451314928525041234805282558613139460416266220808180445456720987064395435927697191141023224316420970442871109258852279009361724794495471790977542294760708623856617203320630945947867891718335235033216800268481860701536970171721863457391025573369644822147606381965071284668389851660922111933578118564524502148691405782881600988899205194423014768565876503451687848203242408174035101232794392833331506318362746428940821704880639437528706229795448030025280999497535924302538431360954594773972199194366398297478992059531538279889124065364383779347494740214476248812966185866931284908958873418413627944501846929962954593748372942559778036870017062977229506344855294347725212596473195949146218102807429440060118522753025091664975582851855835759477272633781341497211457319900227705541266837101083720695489578789853018825560994387163921708684472536644641344052015244080762050963293670220329357725771494693387526712305611796278794104839136777984732907728095681680093052143603467296699524812873460310745942163918654576049877936709801338145076065967518640477387745148806521492786890347958657550397866450006967707625970319054990404884135936895929115831416909278300670046840776614520153078703486692488506704134486049104746660228933727223241971246229309071556541939159196051454972255824677138529152927810368958837506628348683480548177453827806539903391615223626482843886110807111705174544991923984480262102858152485279267403660282518597912494848445371369628689407998037581895378898860968043032359618704568775717066959182066428028768848829941837320615057273228524538773504430800125095817046219924661414399851688209527061540375601987154682827164945891545273333861152671942761346978576724029356047019879282738419286701395957804050203898723793407289951890735605461522873505003314919699992378676368417041233206855778433019927902998849482029302854215270551114478487666523209630868925587208407245194129395968709932292323999799995554284475966766602114430169031543474243667563071498966505608382756506089210564153656621409660928408403459871444727310783393830307865288421563109854434434855150149118613879043243525286814490073308433402996404019811287132710902832215126162376511487276333811561470147284135781062338648518877480191349474262007625742044273376180522482126489005040001534941356691295867393865027340741385663502934216071156967470492289890280016335704881158234943259723847860171642889201365760206141092391805900959249561196296959532563981172302167785825536651685900841862339504789076242564747448594124320655115076632253364098444934316497941449623118772101363110896701969376004641855972590398249687289534865989893919851581542101641278977653451213043183502784737819318106459041334491456974108815699255432712888935345526198388397974737298619267730015653737890916239188615587233526005206596404131751208656229963621678334773164923001696287602327526322449318732872686097267488126370188849287799548254447709192292443624980247411288378914415038433571187739271603444272237128936804824528683931469436540921549137886003081346844102497572803914891894805162992588977967304759543894539682459719785719693174480366956951553516065315826567246998564759039447478911710843298506311050276916040894744487847767504840970751418081970315472591827676686009922268693546403704235600062766224320079980931868432981840532363529109091713240886847253554393649987154754492080705933706264733261736613917380809437785623798782921452695123480607892521783700513353490660875687042057812304455045459698703609957161299445109457246864627553678561387154592613514971303379455892960259776515127765853795091703598419314461619804025712063102878705586620580926117727159735609772496946772100974787673473250159836052249402639506470336446468701128716436647307572435339097300084969495779380875244601057409854607718384885411289898305671853620499856177658838593469305489375614312261238020296698540618420190966423054014675687516670585500175857631206587295990140689313837395784338506514844497145383759358867856818129958759772091671714482597175258168773839921703258350288745829688955559909124093710001910099451924823144490353290074354490072955169959841482231690115798810565198996301451771548285599722877077584572423950720832755538598726192692233500466352437119487680048224129007618109897806871105168298532431580531372493961730391205859565679930207794810643600855767344408637760602797578354194608973940116088888727411739627173500034432847735558189654074508375366517842817157250606661620310597756813682511997147971040468228133080232574456175535355800386988750680028367119283920445073084147477403486491542905659080865009628783121585647784883062034847616033677850983829504665194784328420622727480124199649923494177489045769582974315679923637361351008635253045966784096510765858229453626992194994998060119065419870539047375034820978176995558648287685599143727185925555375995279141108709249174325305777316385945248084573308606727525864611559264030509599333060571152713024146259023195488400140345788787644682624072828944419116735484907933814044415820522573740180782010618294909294030063529484434796275457250556971256319598412795262437401243615605431146190936676107856665976653677996394888735523630532374653379082347783356729808781773066912841682195358091564986238786844238770841332820124388942861980427484720402346236391192771641695008621974468743819341893885606077873312867632559051508603505030482250635108744897814896452176946823625135339181058157190733106543864412700258771430441288631871530250097130909852947093960121850957892843595446876556401637681497379937341065193599502582309461618048415766360263307833039091321516860026307407929711030473174993675321508527334828758470473017668779019897065305550071188736336496950624336031785027601142129141918466100193178904916407050633910624388899239370990011346477053516613333484509453651252126223208719632533612940252394959258522294982385558104933008151623235402706191683987981435869938076368912573765338641982489713061731181604215490481763517962277008186314284302269295170814483666103543092210797403196898594046695091502747579474405167052588330544719195127852045438906707213387566593903655918350118593746779620077440957114353986421435577725983726439862165103063706218300841251150941003287818481294222916387638597208214907000563728230756836006105121364101410974585583461700937363076796318405300766060637369723497562109972378784959166751695397979566606507599085998357533376419692851690432363140691448181532651625590484890031525070561269829317044051503903981265828335143699435075119887891793763689727989694099352994735213403840208172130009185967596901167851327706409931618770231545633798405494887344680293783096542738728780224837886360951598367783492117617603871586134031640938228696488373934650554259788989311261557826318542439506482161687993653304955427260864943111461301555947644214360374664895565533637225909868346561357609311874579134664279183440537061397601980043578648429551228484917117363581560573454884969900234421760264243442189616726545285192804454849086470744835504176656913027933585977426274620873748854918395856698394104381404902992185256532268603727246936762088569033017973550674484521859984151404663332142008262335783003924633973444489771645442548149574108154059319942141082484459235229839391171808081957433973215947350941736969193433096062761612670342990575031474468071438991915542345999337330727347487687821193085458808961498366862813886076780353673988433905827198205755216020221689036807160692431769301696468953087750308866430222389018905681154230364200027848695237163142476089549706067527810577039286055988184716820083722393374214401351599773778443819772662442477074707746671482293703022142236849074319409267161111544093259706612562248711756036414485051107707086201085315700065390711492197497535990855864492424951316044057454816423826130295949792692306346606834252639108623830634705134187779085141571586184331532824806377743967629341412031428456756461790693721734148519623136378374911085119690828025592510204512318911273636028420855278188427447010473986666065387252124313542944656248904054081245582061549743404556302208443012636979048771641461185487778728183596955455184795233505777710731840618554109961415599312282219186567912867939946950768499051872369357929191704783175658859969096190888643405040654825136065605089741034934000384916867428237845581933227226331086302183206665320690896525623312075030911106496103074222174542318587511641423940132457105322938390043287802608221895788617634490632565857646745900095027369787371608212656422530458243291697227800349706659964728840789482518698051853705670262043842034608979645469236490149226763879939160926449980495381676962587831720292378667312508392905795004428285757167715245003601680372501638435436003710008597271324391276431294502695320815832131027553455176472333747932091230903628723491357897584238625418282005646740678118408989660619885911614989296817059298767393975578610154382317889637907751276080784292431032873385823504601858995651830574101251669672942488809898832994239394619105540630117502730665180923944144454320345487109060297822064971880454340430094121969612637315462155452462372635117371984820599082996258725507328141759250645004186374730515062064056375735097021103921026456870375499952769454754597359462152616169966453675334572976181023669040506639335020985277684618079259146977368486183237294099535825143780613705565784786693212070054509227411248126090693633303746491755087245860393562592137246206132621945743387076179139594538234806393592897702033410445922157642556998860169195425821159399462986936529120145887187310995068754109104710246820153399463752647719915620468990812008474901860402882420977095558973065040684473258117872055840181033655063203542964177869153076038148017602334318703976600729795547678880900728581690991285820628337097894238448089325436643877209921828629339466618606814020809780357519863400993403364640761738644058577564770143338127825810944558248021605661764514282828819857469531655254478191930875100330017877265004735467923215813806030074957993159124710503097259283381924790842967436974611576920273057646742172684239794268709705951412946409209073220723133644683076316157928190196705193763673904369356847382576143046237500903825930302430134803438505313785516191377913023099722681644037898303606523983171784752808468650370193843312528211993792039766231146220049300554785501538161676695680155581832614689979545483847311746286352256752365404023433707960327514010775632892896921199454102938382084665895528780484661206147255500962609549657205766636570458789533313968958336781127035624954869155287111946513831264209561494258989173838010125554143988366420656834664907592768258612930676690256794229306388422896793921399469100000185197434005843782371240934190454468012255068860089828728731640920424420162083375033573318833055435978850093561148205017161179184310870181520038342131729980054634241988323383993063624311827583540000589143940652514832471126066670329499257661825320806664441977748313396091776927975235123979534823538862682723061902403641165234487569848411691532958832274097812876142771620790606422981233980644552942324763041290324845069230404805428335034966779390826825579393956004053959559950319340593049824812491435026838674842020132290543689381303538421446823512389627546173448958665280809162594300667116494960543999954595378413638831289918064402668723383887621728535810505133505962856807661931833979679878091703960320942740781581798964593519318241091001579627901333313163223330611083695445534843164087267048991397578831673873923083035193530181031186719082301037140803638957269920426727310979629529046488153567893384872822306977515072868634323558038986589345406838033270066332590473815106148293022183907987882675914555092261516906886177986214629279509600626236297010763618775980722284319773890757798036201010583082485978271976285552200661760098911018685885179544283070318040551393572357163935683356787268105337886656434831576939617094518331938485860724066856656685998075396825783315284408232108746768879170591167686553017795522521308027847850277526834400483738959048832237512288691115457551456854239332282103062801105229927773540864174698579269035358065946047998063415372808427724741540349720356720440830795680636628019191457571624279742793798874890100393015613995477049082685031852231196810904160973582356004189553896240177040498032465137701209218395605223653062475755049924674157577703891359293810419510539872873550833280937695677214848955821458509956459401801809034354737656929202066378977243285781647608649731838254388023514545282675517963576437572571103838647840480885257299645490397686092034068661505197750290191049912259531973328706181733726002768850763093367178813163385444205555602200146859689183338593746699537128392605135266948751615350637762131528008943670411027568287616787784978629483668026625513269150416333689145634730280313927229432016988274015375857821071273439796272774084468316340972755194116578646895444110243723234526362611364767075710185255046593044040988784039491744946749791560727368963364364101333101980096963070293491040170012798770787550392350151067861790685468836602898582056181698271087485923912138144157421184734191160541927372286454738181836907955234211981505860601839740869126052212558520699107267378085145636616489493349990151219804035222789262021639337685336362400755457392159449810033106120134482665122225274953846881934741182033590841750093685108685613786312457093788036474032072720803111406325432412993607863655301812950275735733473604943353450182290750286459716703988697292161495199759645368143214232353667331528045824026794296243833913221136372838009459951554965993135432925208689390977020727100753657667872812568971983755686953738425460701692982917796577543903685017846914387769817789398369845620630933066295282967528311781268993059037023255053400927973298776703047780758292987078511177242679844343863582043725459288782084411219946870357988295136415883770224927491561839816159391522742443146088031303690870785841086369536785228999208600880490780658011755025952253724804956139315779217706956014185178350722175039172826257800171116284933373421399762709787605153884136076166941318693092151091748095783420030237644371823102365165528852482808733756182693907900285598585262898465235144330120680659249004999004231068156875221645530929300607345022303877043778013035882651424603270307424399510806057639543703984751047356755877576347780349915442475019636910891066338007196306541818535631220574141012115373553216047629996474954153710126125796716322783083959298500700211471255084610770802073974018720778217683866683844601864789515055942483972837911439536579225913243040876759422760425466709256292859352167092700128163566117070365728496231032487023142007227013091492925465965323310192312141797523808439249358398325599897944979501942906874998422000632336649993980815388802063766104330184764450497475661928817762161455037574810932767401649747245802520101421291922846474953038980426306901501493801897631477375509554930900990881586707130521196122203646073545611311395686007182651656733745996113896895434613213438712751988912045232198843846103233979697593062869576295000334745732457213822084039170983567249297663030041637640866145664019075376426381815502812851863633525293755148519588027700269753182378793409565005959840067015398986203728383431241783666057714700800172896569685744081957426651729225041285283138689723487975956951649838981782678410255639996645577842253959793165936719968967699662371272036554961662825082287370350453585038848555946508124293470458463040502930157141413657647268462653160041416550097172738787315578645185717238758128009462535292913942754817073664403186369958875619765629438577563838120493147714890810422966327883842579874547405958534842337547206497152895972091293349590541334864742428236322609027517672563091856740998673947121412902221964487419317910988719338366026441240907768120587636310346393678416039248481140248049334005319333457635412916470978231478038736357517162569957154086000285088646412904043728455494975412704117636591445798062765394968515002761049323013231160306821421318012580065719976270817438587814440185494266069283209254827257477634962766506433485279276431951566529983463675312457818064052108558969566206952431868644339851385856109104046488091419052719124502455788820767162663260215767278196740005288123013808624977507391399249561276383514309913430768460287893207316538923652738648677368506706323990850589588213440227426705461616475901671133230348896538589232839814244343582504800514343290897021635667087185919234899179539747984837549951264658436209400344928777331666290935344589596283473965739987254514887078915049932261552727846630125985346732288372382712033265466908880827086841575004388529598338305217155000441016009703864778378974348031192507829734954679715967704159187176589539915335856172452878349984640352103314630779067908811263673796053369696114676185820359443334587326510993055186309626845381024351238808723378194557070053624925101412046948962205730247314303471670448963147380768771470015279722224088819188064745994710249675187157474547262570319802165464938317116863250713767621923055324216000125706558640144992145495445606142496525444425084381510145849481323368300518143153461516557981932399368257756420875303390218131427985355814636342817873266675010158535229308099028771399987441445544488886236268579931021177317327034647134604687058733333267388753142072507168954052543636252352599073169111157310592727046659979990853308263029830331256565726734627290038482298987350446925188571908163637196640427964369939935505476539431601848324987053351880297140033291043812664084976354494947462858159518510992460685206867367270761219409737245143353564129680933520466491342017960266578184710279238609658420161494575561660072656178636624395845995863901323112527810323712854388475954126408594356495999022809320782894335474457413607333735208611300948652651336985660063428201454462016623310395999843083739690762370369211118198331402433960233559133276703813999274342500275458967112790659452777023427196496083323343849133675647206868296785660909910790363968966113365366354751541838976667278316961520896169897811273359885550007630640694135144969673115681941881391831514892111813541452812289899864678785489175554018337355558591183140510051689638460320099513416862873056425319206378128890851502189603960694082679771615137673223846346087171953169488291174246287819587966853451732657074473063845433906436986932054950394315432289451618000501247390512286945943940430657629584678407518079639999064398700112889728761965800242063245483604290861106172685504570815074312511927466331568257770104664301693264581000312961639964553230290653078244766700246876186373263320614049535750653448678769518908188027562236228898546409522332960788425545267114712017907502001730343333140694341630373822977655778816811921398494949482972351231940174661352054117938292579218756268432000866680147457316029032834223364757131627223205457554541135789006179381659894400860040988713527027148744923039737806982595195961531623888753113741850549989117000377102271988882197347166214412246524105632787939187276464480683193548832829690239470263420439797945424381317928132264523710585910355426562584671313788592336012901447110644254021046339150862006779624896938166426388074328110024738423266512729064963190252114863693893291259870297692554265428208933220191340578985009782710488744594904162091278664639476667363031821241933167099913400136272100107309177879833279029316286368122667931642063489198162457369375776363682618958306072033648906278937411817281959226335671264399677981817444519058186477616686858508987639119032048510697278823950743132301651361658867790751694570693425104711305503534627905989968775685196795761508518163397232692486996437569167232594019381813144916638296809712258491016343484946398892001620882601962586592869359034462354440918242521731631435163978931952033722390060084949815103503698418368045639304255998386279509358501912743571583852507840543730846940013661074744676862609055546013957555795109172652836969268740544187101413310899501080692190886641908483151576774260371693746487470886765066605079194415444661887084282522097319145080892254640347798006307675837855675296386527945083690294407372825820881908500095302622730950848358005684445726633862876912644032856877399568967600147761563892624672546819840587064675196943384342170123714715298517966681772180508842807067072120263841641831602696713431972981176756976444426519053384378817957327822098961593209182895196008834025774587791163085368615466241014289921293782993670310642586284060413005793907978421618715393258453292081122997543862202418499965437423281362852967398212502564513166480782391488233982630043258414088769984266584191427269859382549821806395760211111699574484901964799785738714973083144652451125864457810510617216005297871617617825056480347489739052503395681996352193469543987876471680974822545935630923838192626254703334625968162817767990980698452620496093053683845920130425652260437130375969386281819810191338741228546966335670169460349579561843889482989845068335025664243640173739698007444366085631138465980516755192571381420972875437702525100951401944715839713238376994857467884898086480178859612604609724657524894371935061673974410286013771353548516433387885748593836635629546837715222764859135641436375566288466238949101584589035258168264215331356602358049328025638411194461545890323751482932242615138883248567524916648352572796404496575907856485533936585737185437895482524115216489376066552337693328471328293731114733164235578358769475091509421544696155049727446800717198983500433349171169766594598762512817057294297650270260202112657549253388312743383581074894542216777179427586380059889125742065844929040187499681585680702239879461493651591558689690887141672830478251816641013692089069157963562576248866024453950294427050162357077271354426117667970819647065859084675851086385990770585322985956287235840107973565711284877188837878717735031084984954535610297487821640765239860224691420184496546789461188597030142408113742398827506919471372094166897282784345780908219093101544366725414619497580114234267290696124628303546902061092912850016054451639229604671701823755943291115202970439051886577763686201977854659479325646512339807674195066705834218396313061121727316051761437488533440826372706479593108977041056031816688810381080053253407598472160004417513114261378165503068415023175572137018618905587877858563657735839744403535159076443932756241186657290065023415403678305287932652479921397442950984532109405248579760603885847903666293682519707336704926748901890110213439190781679806315748327167828940146281516215165933352723685012335309153149065675969005495830141915161787252403657271971000473083145613822532239152868952121181503618602360157682542598326115366993393781808138317349265644907700332124143299957269133166275257368906880195387149566119502461408259363712117199231716611320989324146041882493116744526117783032878493514941482222270742426127921273649482581490345162125395409762312581040963665698593945455040925359191311501429200522102287187746287698024691730242553219171073650177342242141290782345711172233853786078329203930128149953343041224498762041097659618652718345337097849107590858108681047903732388727672666104946226155386073654231668790171771799243864865053310094445183727896256728403091452276021936276539544928231736867793971281981252671225710872007548830734237701776629745985139573029377574903326864157135381783831418782444629297065891972019436634142631480691786903881336862211325926595302058685794443031877604904602383274907381755824228954606270068247061783699546776726095561612636228097806243517084342455634862738807074242321817527894188936913317037143308528220318142921489999818032217498773706966028865027266063906399718511455917029696521925355420270015109282289653372545271430055810378336475407035684958110121257930799268578401337512081744348033198317788320074384711899024962846089394153945158817544533035042222680751781743217051569532158529563088111482839532472319370908094931297840006089331229326056735246825901899502008090179716799483960631091910861624648610000308036711108661621001975772312300484060046841598693780240675065462381812854489209437501540597049790539634467937748680950760970578685528003255136319157616370493599165264260106567712028686344438864644959713442581507108282783543686856993344767847393520075626474169262262749164807898074396863743543582527030403879095941937410611578367266355358101105143951067940016367185304304005084905676005085533015480884993451802336410700540193113728764657681383801815304540925971157565057337739134639038465047229092249355048627109803745936290074126657973003161467337974401302029175717499661655168273953369995137045361812919003124423652312604016714976673682276738257487849925485497012327120285230256918199377852303917708499336237282743736461693027268125180336871103387892091317193631995890559535454024579459180962648749242881509031222476021473578975612793078870068263272421753100490925371130022349873489403717391516458324313911919023052909013053216823559871305898130116494373677032928351716524583450753486711296328862151304698290074794185301954592830526219638537891691507934039548817830867018956666418329515758754923440182994652618284225519006418159143776376890521566437598221024865853928236839882600383285544217143596983553907884926840123919360569857030084135085266482802191536512381436104517243374436114022640325486609559909371173429334467117408262649396876337007671435239279985538129030348268128034573980388815009019555726284167601353358945494997128723132876642466255228226888051567332200688612849049084526892050811728559072696648560745610368814071151086783745540011255807981470308328241588858859486986309508765957022971807699287289465497818170572794484655842445610340840379505189595611089136091981298608611529318349957060136961094823493269744758603845732863474482129692056120518503949376401151246800957773928528093379625223162232085087336914469143167442837634038163771442221349756595181144354415979285214757462522088401797803003987512528140731725692314964717253945007983184502906829459235388846911414892556675671792789791692539288682915439499917604042805300293985872060562549670096573862575915639690488454641353971181206455466070146638503630295327495174688549364230460392629249074784751962668517580808183990316596679599351093291036851445670807148792102517544114044007885631883274253376704666636580727006127688797156049937026843002820407473168424071031304157054787336819961284139785148686203008486549435066297053939408066812931995962891596560819797549059069520406535478379588927031384029090771494802563960364305440484005967429166207903353605487729864663335084364913154735126874086495161566692619460452063286397941617342092339947929462054001812938463042027901323375790000755110733368777254918864487334034414549674086057974713210968677834341373744476648896126167692709155520350177685523371431732827335217796080093321448250740996356186004475753071013789405806314850476801341423236323081249002195192943732220028683903264443599014774719862992433937303718400751655865756171777257329764093998710949772375822829842641840223573977846024890354175383180546229012383930696698793005673058577578590714579303161042786833742893656693764175822053919259575216515080662065240742470108788419010549554485687781154569166734051355168397506857298879013771077843126923711856983904894611436453968171490998408157011591416763631353575571749091788946816953930928170253280333964028695524490786978281910738971482426756780558129013935314701279480377080512993282390641397196800313128497977759072498747485281817207483502578656907018771909480661897872647442174457149320850975322140045693182284923950782318648451723832830178708408019816444283484106887985530409623038812630722189141487821037447008641805177057759504818907995001980215740066215620240082748149043241969262954560160226278442300629966576713813479917498351883245980164833929998561110893095189671326310883876788818635845191532778215869954555590073692527857700847199683561659585497242468970724686007099760036847269651109721240649223234456981398497321954243241726401349814091327145443100657387367396984443981888891442878585714560073936631964068183669304872774580912927038372875116270910312893535797105295236108113999236186227092300847072070579760697271973960508030424679679780598614696459112401735224716316516323029093252956317613883584035149405825960864440188509399951957940155819985005484531999763724844492800574106133135792695464602953148451657169454373440488045552567994217819747827044356759731681726498656864126621096108216835253744860074022898107938953715443627205832866386710309776380145915034324884079559767936947506961970453788059389108812798488427339606399480787623271343587160559852781236718911600691671279852190227224154585881204250842552677634404893572271394059967335956916923168222793044218040516668598776240802640410984843507374338648730779483835031930110469318479491564282967113336252077045836755717424535355149438902690544939879437703716869372206757786391855205103443946592067042771196303541891077402726221802187359525400569023051982681494410038325370616261440339205695665999067739831514473259628253009109274368379783034710109873127116785493042874727756138697193692105139459110094757827560624476464614994737005802611597648659238466809026864195199579222638007719190049249373116347430408070242985783539035759772311111482051466488292637651327588645919938364317351602342905381223502869693632565324313483566492965434641498485311356589676610909642607854569017613094580957647621907379140541260896741812854233970121276068757853159990535621565789682455921352592059523055723193667731638229918466037471477397635510011704528565408844319644541840032389274268984790389723881214518512561541804451305707839130424228257478258884896078892186302090978043325300864527437724606385405670630130688258423122147688884744732078654078880199246016444426370723744345143414090186153228473701514629664271654586814413110329291168584497689733270864899436553683109933296083422421043965401443718286269937628089894365386555635540578508435438482840373930298280383563228065786959571667228680273232577852331106547331998391803651842722899905512494552169643804661626459663034090416103664446976320130436373724077075721338713039489511702140314617429510546852421315082487309825152637538442710330359545736670198087658547371540506401016381661489401921673654752768596705044017414012772053428327575148958177646174902864446580054132747070697280994424054825740620540526421957547758780124711881098076278391139295400298075113605176663496366901609677416601270958229547966175630245380112410579403242838492809116230707095279317267530892727139851372261894525912989041143425599693908336893908871194263349635966213560637913978711811500157665449024037463972259581448603524602666240782442319578990502094836605378463775661895562698785437621843476033367506738542534964145597259597312285439176290880823662329689736742252235653037795381592108677555586351421240414962640087033337644263964955006559740920715191943362565495244890033058352679691215647366002564077601839766108389081964868802713857445407438562189605897325089375453104628394087814078187725087736787390794629399734430102341267550034349150836303130776639983049725971520622117510124875727071639844543506606041741042254813624210392417336491448607921232578914059576557029874414480848235576939362357819798841948252602291484679644121018848512837186048913198043190760643170757620011035000169229842246196693182674043805767800643133416418507737801233562155277826519872693580628453400397160869487299124729609147159321440798821141079666763722660424741446209026714890841407833444116861972146740695458995455975270585026551008392968613132799925022701837209233589588613181950787449563544896406920303290315182967279286946272331048043692198231239045276890456312419753956947612464540030835532650008399433641992904383298586355063969186749841351820290836233997731115057538056623920518964971381946861400355895038174600998799773265176159117765318668130802607857801743229588227570420134434640713719090545528306809063351675271306284264318741451910405707804111630940300420937681964677470376290196314273868075138779639205569785272035061585388955293192334404159871846009701692152929956781173307153481249860471132991856490168304410835337017078394957924156813835117300657863676055978628703982637997259658783477865041968666084730317293023371868433549095282689320415136291915627224393238641883022183562893607592334665379901583304898679876090755109864636107567583627638640399581729584080280956459259593879201355564573634439530323926657643620223625536736310532918168945477111825233189746868565927292855629638133684158292564289230754456443608346436919942844573267141205589703907863349097973707468093461545227997148951821233999583143513833706286739029316703243453798425554143378306778134383020936914608243947972540760239880985194148639685715113455175366064080475245901495650579216706202306789860343566213884267723578820250391664786313080871563887797543312155486456492864042245379482584253509391651765599314029949142804246716180986837214059314018852028154708655288201014543737862233977909877084418997838866007981499994937627014595274632096300884855554339339361055552140614078834749621367561686651196219054123837293631000628167346579683763298970674335827312864802211138118098220600533336369003199897963985210847258059777280129399435203524951547204935686272529718068656075453066690336903975805691542117423322501344462831810280070707392809684466866826164680314077538845522619490793936456168305599473208928825820304909669041362219610001946353805422949313048363739173754856428261915286773295176547027664282833457363962272335576739519775017358115511937641249744125981898989744170974988393049641891875398629436216704531266566345232973785069600166824267025463120844358977153705427670979012071239408111475556544576339491521077940558380708404071683832834258980180762312677068774522316759818330960514705446558880855013919441783655406430216166411341151230854282652174280857502273223066923002468431144440978260302836876168631266100739536308713558029548864152250813994890557476013683166272974624367979805533022287880792650029670870341331501809360639142453762191364958086310104706197372767066518020164266999963064225711780973270087782439584383093154244696755056946603224101125985279705228779201625727396277427224551586315214689138272366574130804068833178158651637995368305138433219994604416753597941743340206587908591736847572026192384652314783034151714141883781004661743866267109635201764698572596012666075316037443219430422788368565173672146779400389145365694143139907930635653892403211749617597941630288640813397707269453256685934210573706338628047805366522617245838451855522370646964489215317370583326899204775570103585449990403293681705710130063274773993195439164101570470199503634738886707859593515088500380170526051106415342856142166657360466435022566971412697252323470951672884532512579466095035964557880382486762450824259861837864891069283286431948649680763911241606751466139136012980178798090479103220952732601729918284868783167198861561368818609904892598306735481750702574082749644744922088798505652779969294409417322615910353481767017777459769193943236868936672986336800108018628706282261875717932483472328641265692109262129029242769971195470129697204273760695593874434432158945796453090238793895589844326909620285532858977444626600275055224832172634563239687088937690329704304348453949936803816678454833932223408794068082643469179066025203841811209124494051490178678072001370684763907333593678611158034940510306691083064639250072333568996308401099128147909133735661335107994742579805223244798436055560633755822093069398716792192739016118553430395411327077956411798631963193959033218398609615157358823755708644132874062370439576896947742380203278541073105911247454359271045909091428025424465102520884160871188598501734795981364169742667807661300176618783139769835606389921010373689456686858872503390183604615783008043611599993539712493755659400336011041077615769740338032687274141337059307146926123540997846438016296268492199196874821824068388459659730285836657845913207698879066554208960546459030577213541271635700004432449365572530282512482851518989181738199231882536748897938375777554410148389818264680846319546476446253863530870053942442860734961809951984786901554120776222586336277096413027122884809905668124534652705828518235622410157024198705319355233568577317347622278151194816359927064503054665175031866824564078600289679071640565363610673533888916717975437184780415615000354346063774862680320851400573494227739068891841543886121154196928817697091055409009175979280016408505203288685682237114635506142010676690656300319059647813357699078449730211416106265073465675679639083726623751149864770130138615905785191789871026997583816193257599550975369478207784392917995005907750352101134017845992184143900200951331529931509865547359362750694184098161148312212554434054919880825310479495621647753849222287259543820824609787911444079356512565981706302709154249350706877393696342171069429244834108624274418204090243252870212302852438359042828871727459002100634003398453197598381495343837045631777317324518713967918326314589732479476847050765718634740253452759226259305304926085059155123635581227321077136015615872208266892001288987961199868059994039759567004212929029910060399727914627647880253908234807766073540453626432749481862661969948151713335722724373538773133565291714177047532752800544299090654612315208721435618547353461570479380487268341273884020952936189178122836862941629053211546860510842958366087657423050763021331621785561453178899676584242766757676802929210880524876487859181245846596803822891967184260268283955737708140514497252681400701682737288808518145060401214814950719059451653341254717163558676575508152438161387738170326501734906455456385092601975983648076972416048409893441982412226282717316195166168877430405833716947073624351038943207832029840925551775977265377864089122591541025959034151030776268763006686758832327895575846734074976462486818644028710145322894736139061176597895195454821118196817070483989477541719839995168523210866357411512802246520649481201713049165247639071578316985908264670900191181824079157325082157089548327956354308110975329731360823472708906804591483158327296487050729432620004233170446428087976629525557478700900587377483838626035505168755993398549296991318678672182246679978098431626979364371874227459503290933614411600980031319466899356493874084359611830144562185716981001955308112232874637878207100788353314874342549089842118732841136310743834929875385210581741841205733459680933716314351537100759353782637864664738599236279586477899319549715560243215946558830454987429206404639139642600173325814006506081919006199527297306001830003859836265809519663992322902921577797419150632735333035745011352333690241020720221179366053015185303246717746607002002713271440412365662771768469714711058699510677489400207910213291919419139224766743830286469857481883144981810484460673051014919060738612918735007881102229276997488511413778152542220311724818922144929592022540424798457132028411428435245205356694789385742912445937298852916732023022548061351632367190686060701046373969602849788254280198301411002364825460076416833264895530142027697660009677230533790195445436004689859201460750546173301396570545012101748232752411134972910284432646373800653479843861679311318408106346301248625972835883967090401888545187422498328722208315540960381008859921220155581603193301099038050085725545872038105077911264770455754666514365159572355583408956698116489000051344001070267890922695881026818299083511845586103000590510158021059119469487004351647543455403493647984940664691266270132727998995965673677797953313814831665942094023654940531088175110910528490593886021074687738740318488690927338602878299866964104923417736184719045886903800143734805224925576723882825425469916641474340058628758618788862395353996249267333378181146372166951591651096026215523614238710382739562738435661814691453951718028022066616624377683497458385056163459049971807561668460810715189575830816969925837852646758672319024139973015714401317355823339456527690692761881960763750923242654326628007531749723477954848595316619440947952280888456058170833767253144852813967963664864247801787638247162927149426019031109247006363964623677818349066634041294136451071474199787984192843563025223541564417404500161790446561766263601172590554861194559175635380101991035724575149342892458220622788948240679798557352814234802285048376550377608345600899783046825063720497415323220487569703883080888441318763774414178559499442408604950033864084391017046832183342784843434249464014043372615050507202749525417525447050452671246568537481176739214716455477835104344528445891049820724709450115792348208236808776919247388887940773586084459512487446346972874976146208595710658766909546775100830146396148842610805657715997917068762512015000486482320426158439162351970301180634728494935939725297424465798907222871293667026931261686707795145252950014658310274771035824036158379961383098324412524831125818606465513281633915605358330102770858323555013189533863826856480982998679827433886137463525797371557120716083218089523395501088721379509137441091775144771087317788082486001104772343608155915529175906413585353718470722957049985742156197681787927076013725923537937545237933614439337627516468727464979299091842608666671600996369190134514257077563197078131472931295184611148601112080639512281155501437181658385751107553848362268479901669794288455789030372867055951584613487954999245316586397705160547940773918853405426083436517438378509407944712384156705525239070106402280776096430731460662481394562079833724262453954881193671390492764364850716697544888169585693657135285138381327900162374837806529789062417285791102651150742384360589361406121912716047823316670636497548449840691839084600407245712331390860203122004336551924703713450303063559483392375342982640155321663324990545084017247796050108234229166974780194607411518988029084377080883499025029730225442505806702551098384560542504477165649364091648934336020814553160056416110084991976188096153036509789437491161973099083981969828144519769794421795922439240275393449146149216035890466983104428969634427474005151363454906444862587544939455223407880080062399577228870967681846194771786281276579344209234946302392441569844575768284352283503983286840993521519632013464446320113949922018342300791067228783269926334092609668938291189446224422467843050944166556553991292325429700026528280785916504129688517284104526203043357945726220441309085129964259805232916621630418901636970877360631075759528185205834044572817139291293965084765886154363382563063291677377202994806364777247048972735783054676129274184149891084255461365213299569336791484021094496448379939863499495259706632628307829426328108299217236471129358490285003549787770849683099417802045403983111414172634294846329561679277237830924229060218377140547149654917929592138885740919929852092681795252490368572034758273378832139343975581614742153693111917505453406655209556175309094919150985676494537630256627126713011788046528606653663732708532873018361410795727543661221901722831008580421621989958416683362563969194913693431834612877450863698902042448903956469152290699651819814558970979309606749181103970802125960001717726915538035571994128375258049758929021526063668765850323815614888845962924810922438362992531192643856546223826772621227064561939260442462891331871559191788183185990510511659828745360866473667476915936456850632103255391517999072825668014666472471188872704044621456840522880302114236826824437399851207927126586972274964887675843191818275043452474969118517374609789900614912154704719799960733524871694764613502572440067865801220018117371101556812836488627327064987180765546271037493033293396814000614967120042401785680828576149714451598134576934113370149375296369032868765790970905895909968069503588031278685628994120780705872181947391506247127432403000977161407669261445934918344636287054428787845861029534311630477315113795844830807315177249874953648444292608683318148195020676905697255111872861353018995391108058318636863578745777761551360138702307512359913636396449316242725192191060664552358140039822002462237504274184727350676982789963360868918740046423711742404754181313512888482563093555801607135507727290166198275034067184040023330821090906849911932586323379706584180078362391168967356413195655410866415691605237454787230672349549950525965068029638372291035451778991990373782002927167907104175221280330084827941588362719280639668751125119551796478423226487882170161271271040160146308416418224323194690162980328428809059453055693226034127772902484019763753369645923599572784430009960524076287013557910972968680601105455784125789002868382314664377474110077465526909318099921745402696368290150309600764363872202854619422308312831448661479670882743258180849130356507839193990748316768493562196891460941843278475684051385789544660543725530556052242191350214474020252883436726609160532453107505881801580534796813934893567049395080473355387000734269552503460262704753808312149283335026663869717083076439290281693089123640017776979470618935397958911445233682696520516260777255934849190257061666088872822571923255773889902967822414734616854053485064115785432872263088239713972427162190823836399841558622938131962323658550614183021412370952442204230807126617212438544957379324009745864597662376612275792455895120864222075590659086787789666445143775938214728536099924823381777117410591803519406327402548923556111316489253562208409387537319412722403379897450734144396020555403462766975859900328907794490420209217243215599810941672761767645957092637412774397772582958988210359228377586344006991979437473026484239159265468846094224498499011700599747466403602824348599739641929898500850926639672040752006641619877486284013164447004971660349523984955267651233352863066533036066550173995193326023330979821678466677028547150482939328067491821548815236114502030487626213322076246328018786914207406009154474348825104247068912259674698886986206476395115212110661228972443177314832294983118344199200245123762163979232386557083990712223910398690374871465378342720329458882735111760960697941542408712151471820609572822272350006431210338661571464113118376063606570930192723347647286268718317932726709474701739660405332759640378790653979096120687113664843578194750321132553950503665690845627217092233716906790972142238981583370655958807974553738812507629813732299592451758382757290799123235591781028412204671392539694518112610757637510940491219162324863713442879952907084808673456713414417372225713436446244977042136752309331037978352742934177663965046140999977953439834867075261062363825376027082595976615881607490770700091333836541463309804330380167409448094797860891159545706164893103831207643015692813978656883423214564488220926084470516268248218144732085143576805575138555731841660852541470144577442167682411421068009860483403528502680949600373585529268814739779151982450802181414866322819354443320656849766972629844580272779129189762557159244761503553683518668679611261764596232897634560289432759365339853912380494971656247917351560176244419443357143945679791832513245195949154567159300271819324320354002188325576370267620053985273821193004688995845902684818322651263081871128060220349463243196734158633267763674148076278371187523452735293543062660536663124570309450316164342884617588969653594444505748646401595182769208629457469240317818251327559161184227624471069239253326505386546025886403569992840011861763123271462543065466918935650603254817496279535262357177034341079791718751339602597037144408391876603658738630903356067244334785283762183736415974174043340985079645874904260421030485981951858648603291840714164849426947577499239444027884495023814986827922544708313916874695447680272512211364252448324956077973601710255503554647595860050932991952771129000672705903646160416908702001421192988301655698696019657460445540009148020167802356557984594104745202262145606853729581409736654159560019369235498243334942296530263534165923032511989048647842505733864329670635747398956331978193144197143750465759061331385422557718922741739902462105476171410138940372979648393379239126991234827313358503213679097823910875399104035669085437064700762491036545233711273996908956611737277384243570708510189771213723907373744396846181892450163317761466212623224671902867609864283925671263508888129042581089275107008708379178339222951262080608382316473028888163144363392012569000591286233620718841900478278718389944351394697097493815382725191951162879332115574271872786431706182669016776739081924986751021352308469642264807705625496817467043596387681844965040489738074657192443898882591942176107614085275366645122631778163002540861269771850612307605574351276440609050403313514192061370631671249720652048002709645947668261554468225508324632838522007879761639872868589369500575725443002590030558202418727768455958297812886891156837566525017289677956029449392991862596850964866461776905248261507803081068511411571133589403406102224622741304312602085050633823809843971675184441545423636760090999901484068752313736352097122581027976436541146932220159284356054521512806413142328898515883970800998655085364948144061691432511411518107902451576087379264588937420182378370813096000887928441582645005274136493059085719209475941571865414467540798056115554562837508461501131475772602774691179863462514544151729414384630760120540016692902632275048162876699028448735660143043750314312806341233539114950369145085012447394699780781941172079432616210670807416578461620150381356597748159591836725969084708158942062360153144633200764915747751288329828096860636738990127096392035265108258365401954262977690466477053793544631610789342560621743211653982314130367278230683112675863483646222152700941812392946144535172807247106866091221371244865255739271018254746848295036568712501781661872033315846414100879224652973958588551254357200839968966253929766052880706806393779748531776724315149115154096806704392810332913309129490522247092268554568610449264740486144762344757233263885664920483941168797305151235159246120861591802615806491811654207796693248036606388370924855047349658321929035197738125149036656111792208832078936441703519785807086924311971556778356232186607956146292084076359904212875292182121629025225152963213398503935459986373100218218333640746772404097248890245371421747889219048652157718965656665073044311012198788251585165673892973288802184486566879936347685618950651852460070136990781583629526592689181904948163111741174829552775506814653672699219876355004536712121559334419327142396632433241096454346714399499033795537031771607448488861713415921411968124068033291424965824950335396381932701440496961584569147631940665478807484593226978719718767989256546741177398299157511910525236759307192993948552757175640330440134369522901389953540640936790603802604901955826177615345539594812175743425137348597688664152096970571403064580663741360535692344776620583746231157206814259177837984244158924864581566043928051905016450500438671619417994263575832281943458393707007611919886473438307260283319174750298640345418717112786222832862242576366466623434765175668644006956172087989751760443125297580762940438266597707337781761668590976384714678086441744891988442814064217702775300410329800441602099098794401394806929746126320474002778527832454491310783877837622839453050169011246900697926505261840228918429386138141567376637842714849814814239681447604469647615071882026064993242942094782327894715723431116716611614279510563811301946810292743215809644580055017464176629274864693016191967601972589205587623446061438040703381616161332047159450744661623911481158427436399930356776423795296822418898217194913785016793482421759148893145614336028062567608934127316653023922177676956533869665981865391910741132433925129051214795026123242207834340141585228529491097357315597905600841682809532046161160387014508643513843922313850978485997547198627636478254414270683082570632079647595114934502341123062653957777064276174353995656751897691781433165383651959787840694261383885616506705083765853797191427139966927135511731032731129656699551276293531288969588868885997690635462006106621738060149814325243132326560102507765820476395033748783696022703043184600685180414814598686836384339684498889034447817514295021125658369074171591175185072568486204841657467198369895309024653874125905258162390385799230977635716017039164424419050561995794162618232561088465971998513222887819839643473985389214573729680230233436449050834151130754285442488374017968661965302503286725095030714370050912596706172912034217596238961338192609208101437582095860995997841735414309236491446940402440515033825121760724234633759555031582644065850642546809850820295232896322083921538658503331998389915276618132011185329438005648076442344982134633877585497743510247735523459137695217741515790982768540319359243230984197470212418282979940541896463736898268960676509907809356754029021750323215435194606018856464592125551515207219077245677748810551199391243255563486798988714828177103950023655438303419246057201459482920325826762748410440986538110905110388680977320143213254498813154405093047316735424674481943077692532866829651873935684569995530037855387286793883621718543701162156357177829441092505051776902054518460994414202178104057728457093158673047554535924159054709252693509548983686478684309865134637429875883786420374485761377453280872067718573765113353314127332711658080231103267423358333032447544799658819535808097029873097003903622428793952047292613666334018757980057623520644949472627736586928023168985145793315584234453383367636376805866147305712542764222487341739740079772337393974289138425756294410596686182806047497814284084697505054291994185863805492485358979884931477421142970177891075540732638797984893893424431545482186658666064839128307751611019349076871568818559999914411078298499241191575746916217500019122193012898864465644342289463444811630060027687164548666769694382660770797241594917404840062019499954575874122732003348301525562957423297840343332034580486464406543783769193243910251430515337087361622082853682871576447652487750278946585991306088144627890691335244736841860050584322657548803722393655126448578736290944578501587823974439638784998920930109187880986430253592061794855289050991758693113847812089412558191209960572364968407851911961109148000956870428986377827923032995438663675037030972055566074038515156526690169785888736144900055770493073572162862568449516582067074980886620535066904638397925106752249184551423379969339284907375600587921009867518636959165537360635394938601101054495494280858232211976016100072946765007948896020567118162194852139996702379361659120930540035975988230137522911947596935626482881342126686362065845319384293686460929272502204484341230026449831077794747410862795738856497865494185949901165797154781102030824292801247594834438566210510295140035856743638886438091471732736050443573629362055570682764596454839793917972373232015211752542106126814282124423866968778130147925305395166801361968636392804379298934954395817692664328999550451232599925231336393375531168191818796403124182270869488904486949740401032436042910720542744778259468623833327219588196727208429773089075145936934898695877020028180833805982287262896364773558773888817437754385067982371655348288023482239403485237080456912982800202831483136945877734464690070655740262618261599236096755830074174603383517134830023147477844814300901646520503760220188793293104844232661667566530379948916238016003819688882016381605639718164991086803752110909801826677847510771420505985968971924447111446978733247628701794598885395617572978044091552520028879543743432416101819124220109645059393810626356093323842642549335226068730514707324739097968925016080337932088898275425930527921029971983445270871105009602363178331026987116322181559440349408517580450184770785099650663056525394534369007319173349769589219607931972425521834224381241861546540069966987228127849684723203868376498643664662474558343145443360720066418841610017463488236217711999340173133985276031553618456739150767768705575756305581756211571468821690801293379090521038809703165491540759795979333393151703335597682124240983786424805920914897141340378651586594843176064183850601489874714770017030525678705158351927672029589539225315812334082010816271591721925559612154243289084992141587989649855989383882320058939769363852204002988786356839729836383617380980635569437085415135637645404230253389353726316283525935975101545657707442344967992609920019195125742838062877231678123862842775940647090491233502429690690133616910659779482940327663145292164615244065710726560419057499938780544016084513334034730899482336951500196674459328274509061356870732632625147208102735283381133164413648110109754501106508696805522288106821986322846327351612962538159800368235763153851576115540734959462874124117773134007043592499056189855113881812728310674190339404241961017209712866151528210950129519168444336020635214095563304938076976778791238664278682949590782531289343937782052599107958041244449872098315395773270334230217672458527466346283829335734860336052531572733693426535920786249820622032597576213379860201458352085135919793247591847915238762477058724395978418098059999073641585146439333813962583020992368803047542259538908143489028248343421179993845229208564006685097757788435548766065233573367732804336406565163933551586896424526492309470038004028318523320653543670506283005679309543271830959513344893047429545131057157484790693730811666863424104656113758066609151319535035224679932882987924735266424794720059520567706319345668299938316191454663799297647175183195847834032146205490405014751949607700920133402839469974246017538392915638125732409444635602301645804998949959238583961691567733753839834983015694469829810562759766995285101854811558884277564191493888640029399157160971078073343229686431793901484868173817325307110681690441427436663419662873644927814068411380317638080025848569500831694335384741382841767432671423999222265332784734860522916798240199147525886822018796507249432780684572484867360252897414311250290820121812720696820436101523196584179856183608972786314282573056795005226319461115549657227376622837532722702416599535527660676985153054053729654911551772646549245536624790192124004287477388281806638563589624074889725049569123547025063701674993883731360198626560041829874324920383937949810159313010399740179531923229257510241918073919214007646875138879263643697268946877408434191169686931564707726110089095819788305422705581180765461260234362777836973323606806163856708645568191336868072678190808015679845608082780010328473677604943795773255070302302312661655599309248830966256371758050605586976234707250462439806242044058810044339760709564578319287602771201355232907798308738317438524605777724433868010349382438360607383418815975160236587410806562982731281030845909694671679363193808842120963451350284510089949477005096756140457964158569298642583744781157217625063112317638566507690672161045765503634331443913110885365231081428808046753445174904487174403477029751903623548476376931319999545438120914593386027586925824729686908762951769150081659584138645865127288397678470704802962567862064425209873234944774484100016713982641014511381514084395869520827100860535282878711670785771405243150002838635650184399693512669299920665017718019993437777389822896312213777159890022298566128227920351470973809449130137551050631842354671197173490493585604098399147463197370366539307763206198602345389133730072222259675178142843904080510515094255797681217256618658751029132187368920075633226414712352382756673972937823377491949558632386612870884795494574294087085613731536831438698197744439117448761596536756300654304749709631148464937421931260207005876711266781260387301829581050375870066865989693515763937211166341398479295774977454172444823696665434061855626966746892242237510473545339884330347985920123818913316926615707619701520960785441607650666201705763979260075223418778964357619257331710576155370226138450360161485073975642896839839914019576692268474091252383062507562835549633799331793937758182465811000995288365095434386268251320939374356388775387262465586810056190559335028178419952467414859640893693539419459980811568650033173346879773954106932527756647686704815912759741565844608481227951453795671322604251119302760408791501662415449511095982047217211415260349401964639148951968093970280614929916059675475052957543216237502567031257360125932000553131703583942127698670343436386897515499463882853490430147764773552622731429778773247671460951431729209349850352000121908458606767826806886642644382004478555339999346871276483375856533195206742270641093347854903368981420745971354597417252912611809982018245769660157455383092339023868236284701253183480017097653768330710193697725245424581289308024324567371040325511534312578699969332699289535329214099813451986123187459116945814379253717312942437950437766837885967728193280887559922330247345239580610310468617503337533405617022318943793747672207758696609019282319240899424615442493536954617590673463077093329250474629669306820741888215810211728550874824760090063569951417662646300955312654353159054449200614110448339471820050928367020584154794384031339491767948315285617117858453271244228670236707798805930506826067591419461127574182905090105272056550826464908215653613910703040566107693872128063350917577876080665297028861372590733718033119620067759938359461039654611503405685164023042803833753861075831050375846224584764861628563116908790542603295284211845425508475036054617475010013059742235264679996985210846281093414124473249156416342422090090826236457691664890492375257173253904948913365261138799851603432362110785663389923977424741922911287461013722280957459976008595096577520233166839859779162082222760141104413267933432633847928934857449306162765667045659044104490591160595342622518033129393460371384783283034826660610728736689249890138423724321868873478323013417758518655793590739433978365007796539414459033569477537340739945599062641581364933770239998373475703771666774892694049951889877867224727480201976572123721821534393202450253377188011280270728816225257129249943617154488944845419300927376571123482201145450514220736978037942521039677936394677418314187633855930780189549707111566301516053142536204613505889283272099705207864948903802794567828463581279710977749064775329748416389494781253987933778051043973565227736114143617305011155000420982036647169991504452751053210466092516051630101982094823596092436523397294651325392896046810289900937447527398225122515395707461781279512216679898585878310177627350816956446034046732682114192650263296278944818061570785721228010377655548926780330947933389987460177770649709607660813165456559627017245193709952592676829730598839013710286672531692412259452361639242133048169801578963707732589568391598098735913209889919018526297191543115804308240293966073950053515393505352962166529986896097912138003699779643143678807893302634933758470894221881900646211803361248132075088878565781392640986452526761355741283873972232123374808870231292445420286221659077984109991122912556760006811240411804660400202262470049551530111936770937373071409406686116442203294156538851066076332980516522317827522702197344919711648393716151866715050289349653942985321355394373922746994728134250102402002964993830579186939956881532972808017189424757891603507538167947911568881859937413442280661964283202611647586954026972517991622416357489160265392517157003294118976992832588259497511366127301880067473552056013597418990757666060963746713695694519340240026800899140102620449183351041898843987974837055892871926245191669068251304865722198548874671424136321303421078774917174467400802664258441153390616814395289949675509047265106383608670825258867469385219244604858758349035522795547408314288891404038014775222276576600388605175244719739077734887776297253827405643560726428501695110879852526890170794791693356124702727326957906064017002720415476697270740352515058776302674052661699161381933755433702961592933205848441499511955469856258241228513878553778791228683501533963980988798579904527569404039725260814062127024899279801367394471840833156676528896116752400998511606966368409872166225695442168190002096049769585550226873180507763485630976676506983136989154084909522962363026671144920761792955446948049858799516391492867545074673467621847394670543498585343706766224892722604661260316262004858144143497853046570163646716707091324360955733440517326838507977863055703205280466993966599136034779099910151619281792112037248318181357872783850230862886784290618948075776484665910162325232128239692923266240150913737431487024256816729950595722198549644537608412654069781149937143605576775044066955760270907605438056764735357295938978569969597402251465206027731598880146252483053344933256085221257900247997550941533032058712941734261676956700523970484740385898582687860591093753720690803916748337093961748231361301452333266748624238828975998092183503964012099472561285601014927607293532466657995575323671129836679067078552562822869257302947013184618446118253586946364171441728108232915000130552446144554181195986833620731829203274875616055947977561557495826123900765456604419000537796777979303251996728872881996597831160705675351420274846684347571959559809112983312151921016045299098733137121063074141261394178798097440839025911764429814395373309250794453029433380092763305405148261425740385341349310642724418145049232950722014980640495284643164823279109688804911369752730314733734328053481689013194276598759886801073440271320468848382301828326164026927434893979606829917946467016142956534506552330803770203890803723896839848929295718211312774163570439573779977276139480893801713592496009368844237323393093252005172619607423589872485004016911123251902590873676199437145560520845620887733347081744559578777379303942611704411181145091575438048744171921122453406205796294439445947977436257376687834197966533259513711820556969658576084032179656333117011569469523893836820443345264274841062461685964809049474995569703932547487691862824943778359698472371222301898944933473379782481121543894323920224006665949320565272472274523564594446439701363562356055051583021170065578340432192082030880853774759015932181157630839630211353128603275264538685663762549069972055480234952352207526848531131882556839089011544582868291862718921721634698478171528524382017231603665714444942405984485427878471860266450762770787518223675481978990056642397688568561781647844578074601416099466883162635938473460036739891694828537543784907558877013539208507338254254504568769121478944527570515400530425199773980683774132535827943018746246503187846413230545562960500327069330553429719861035165321544920937719956419453460086418508712460126798445571997943717954610813884114267592129786530775121888745387672343743779072024409898806947463405363339134880218687632102123897257924016663122380026743394453838148319780323586835123014946712582197858650035841487564496122565430128505004072767721210785271969560083429023051734853987046541415966229366708403445095051923511893008479945418826967269996486741716445913016082533187534338587758893248927922491404939987057146483983076430360732413888984554972959209507030455624228317489520772900242430126843887086715980508556749708075620771395740795407410487715933918070234834276963918271847505627180486684056640170750891741147725322610111881218131128280726089526514071559433554664146351639941252097428168462767731441550663233432813865688599850602986528032626562869813506645870249536924016136364402867799757910321086964554723961285034764725909170723934241681492369701125492252481221741189560075761212815859063965280411614029522322536096268143353256478638654510337540943901666024692158199776867770175212257592362577286314632920468634148154428074900662653544113922577112785443704643460309824128644077096381982672480492036316120709919011859736228991855476020793023100906444502886678685000223029881725394278282874301785920591155397060339097150186807116226114040571928003375699308112594710879986151123390789992508925691588532804877949430119124052214533832463865265762333225788775289602661399326941498959819548142476716755966823921050547874073008909736322534061090942037783673862902101988595745814268686790919345659531208682244275572999743427082144520122657178462267328074784551608949675765701887559444495436040256260615169614257437924419550266751884235601322590291489082632989702384052564019657456317941947258128664672263655992496917459285932901434120812061713645891759351720541010955766448908599068183335823827003575244240726561451037741719018754343947986340370758342014629141430600400725517468686082050325456511250034530504207378836422682638749678679371846751915681433014250170446468160151089823729147624667862769382487580578162373323214774105507030627840572139937343612688436522449969656997724543705732731707213290527615160865705942330563398911504282037101922666752652895591287843899730225566169849408334491565410184336633033466646577910296180176099846696941598995068963521283795051204448604482998901480370095683630683019292560634052361629689435758745018719948482829751260518826322447702516063181643860541645065431832683390202861029535732135490556442380954366861722055103426248839033534208696727046347276643401824742578040430458133340576860978691061218406026346764506388685963200640593996406259444726425606873349516001949164471459846176621479820227047556829393839165376287635462055855761184435539851242894404639310851549381311992737548252947555744003570643342962862221046085002989696036654468335456770568696169397644287231597148823697926347065638447421524541765914460255618230283041289508504641300605463479565141648801169974074548954806355358236286526546963395168119131271735664212885606585412737188988847202621500953618196463462290432340423029422244571487798731190324879520177640635234062136091306044659399477538655655884772408579128414396846391827138095465338901869256847711607038152337069777108282891750997807893200868630207531036905261228408503885538443988560378018730256125057305649955343452301399728681210511990333779927294058124601580614835254030165530159776018529180294353013862139696782483233672125754714571428821473362853911347164344469218248612093051034563138956712328077763202373777425113542536088551452069192383825367023070285335914673638529039715424284580805860006394181321491857179464173063414095915246656913653628832850594373128144969727461859132690217053233392300315839211750760855246114567725887315438150243414906484699681829309042257616259613775385598756917140583206756408084732737743223393051624082787910687980001233082943379347489324882356519045762278725911051914825339151920082875296150925065178758603042650551534402416277751816784000227536681666602223946420249091227767576089462123548666918351027153043288247928587826880560202894796600565050418412685375717822573323368793350457107747991499703674250417033043600685723240359897247164073430634457763763298414245490976634075227750657405224039849774427713023676033388497379667997544067844834364885255027804284691825631275070559064676210465694236784605847932344177842847887349535959526860017590206948933282276236874192533017858533345801399221370272288791976726318824080842838440662468692917317889071584552780783091419024382126264697546676177021925807114942744539029290824709419079334806280462544115001934803144215497579719296677795806762455656339095013823823607635723919338384240057857332128055903495560427991689043314214838156552395781174496804782043195394204779208873449221310999105841794494326632480076789502911529951234788196380672579860679729002758634872329473943520976084803383993487603617731253310947878488722240586035022871692097853333209898141205105510124665102256342288021857390964372838478301230207273464938601665081144776566715191160221387179058731692848425351612034995836180162295272816455703809904515099368631741458754443544256171811347223033566291918758244929885625773367197472473408273857678712271408501937363169862924940191207298048597934820144841593518004920810697271084041996679872823040119836561294984918717165441527169018029711045335091113763155553537685972748662640847607968268804096207690186289723984626614030476925118578147619044936458866667988417244334058100923340085500294082071244739319887924013507313090732682518159981611964863265800948668029344159619763619320719985090805899058998609479698161982999786418093907757378180489434422170727706347332014636832990168758831528376600412432456882852902604227912612270996956176301313501070841456514187641377898035592074031001602803439719103239910337458062435872677003901109545312654359566827566992515675403933801111762996776663539927599686407147738834751246141367611804016689990385195891969380309586269676072144853277590415377971207192441821003654750779258462007912055229289099719564776976752647965097765243043622172556729660432637551220928497870034784132395430584111051003556573692062731378642496023257342145473247429340078224735094458675257756486183143118872572432311450396814845778621465911796978625311504013556951746289574756977598107830296713940687905195317834183486441667998221282667070012753438367508748900769739261706258195801812325279600167360916539555166657260901560265826146178648743982995320190984164857114813273559593636349557367719973563299935909993768542317310610084773176870891424242068523587495860710190755111302745632293290910053270528149115402444547743089408669646568618004933719225920871628223390898593866896949360394348233248774901668114172550116484273968244127007987356356082205899601808161745653251561500073518373089459875078380149834497892313081650598141907777436710455641920244887315506582889419501582484332399144468901825088799859421209762542332182661323115171836628590898614003596210303634990655061906777757219288512716257701086676165082599400848097547909105071419343745180130943187347877731382146096713680195069616103511452180675247629151794381769955514505635878925322638508999276111327873600698767511018394617993413065018023475879797637883634815338131547252617528137012340042716737861237902527945983479391167400705277925964802228958156483078341478617409494765914968591463744180703889940469549582230581515802233580708358214449700057311748839084780531385171619302835437935770096441543234908769319804096183319006594432669718058830932185003169360638470170380611500614549053602570318332238219584121285481373548787228835766381958016342421086288998886280636306653396788257135014228370981519489323296217100268737636370928539033360386274268937434893133990730409297084179377535167446628792190106999313708811734422838976749477198955198413265253947699676365278162050408829428799937972436740591008820858366934984264388938759785038483746189159225823753651024272448723406347614170778696294550315565447943238044403130674024571775594017627601808746173673696073955062678564972393546707629171310565576812203878873165672765485280222064627098697505552112964590930647576787159429125330467333687085369600038231410984544895886691610279353531988431049467538047686720500214784184942093976744841717669739814503506099056311841983352674428392368328402525321752641997087473669534613696744803894445805033370542140443668358268877279706067823248708822184844504160220236174570647927053120802044320837882094639068302554511718803413361146315183159577575781758486865407291005710799379585150758416208228864894064338978798665316014260463206430046806535311123903737559892954298322208018567108125376983013726381479122084809105169464367891003706903471555813935841307605741532281134022136941012620866308578216060372913103311797944333870693442665149434325835682108275492190329428094686238047250837591286385175490400502263037064587451959648252062938702154933801194322659501991824918235695912170288570615465333181963246680273166654723137389117659201835845066212836186833677114352399358540724451176204153338790889694817826154852906177410841401650494351007244200029352010276133926658352644430002956683453658188971328958105059773689198913630120900255678714235270029081611772629041742880802588908781391246945130889652914398213050973604742620852300120259569230898361656198903933199589390069047882946222958461033522524403427542485559271912796205410545815735219131603329737537777062069213367898941716583444357091487655176255642405055749714399287223075529123210530864684788413895048534280559294046200990534062077619267246844185651102661763092623048625464653448446725448407477496392345138231428262405123933746315879524902688307846671208036465701974509899506927779924789832681667451047361995982700399522276844055548619096891082018994902173642155184279796743853888333489683745819243941030716511166410520732702540875946861971367916804071615455951802329706707497700502950076623369711970483202000724930933612315937592936883263886765490633893166004732029183088975856637766647926735014320875428347182787650009010283531577177180744499507056140516972332354230037401698345845391037152265585998576867619924693752373933256456506403315044934170197104330112013816990868858978311240409162005507967099899942762564453404019883487801613503227738944147574203133233839216179364777843885893701573462473426123227109128585711107402997161825104331593415192740229456592588321822883708422504167396694412487469731158938704574789721286846020152803028141297461310402387923757736050606381273636464010728555008632970260081711266562164573350664058484533428100955418497063646061993803100529334789958689779015081775019008040040561344984949627647873869465965599478265563270597817296962116158454409130592245569280730899889098977079267240477591293444036012337889636465092517112766705907472195440092128522218544829599307103113927633025810864011024773331638797616877795153650591532299186811351058225436785344783415220467162999844132722550718199730876535553079701489091615016180275211335255727513740135876114109039659654146345567592655811199057163077163884840450142391812611191479546055600555143533130971956613163384217971403329390767342517587119956480650471779231724411551869929722563100337713757929651113957474265547292104319630095571449120478194706321921988777546099483094391877908864875202692934760985941435401967169498040978102635780397472493455650585462007880393357706293599715201924200474314575501798831758516029159282070441028841836092158438632645588226403295954439748022241043014152772609184058567505450121758877098354826697769049324197238676103030296158232385095943170189845444718594810007473622149295616323356498017954681526044107955225726129408438694396251218165813537735419230391262167020659066162934587810515355441332675969576960313256089751554302341180629160646839398036395270096071226827225274621974064925686077268038759801897461357055822956500527879932443802412455297551255147196325784101703288827324133260925695217466473617918428599908381667845142380677378354771567212598916582451902163901881586847283529285957629801857544040448573785883883597434279843377145200395528314738808245906150642120061174737349755837010322294538121506382611404389030308639484167021922128357352025743614840918506043742012186930833647274433920744891727794146732599426991099195648658027150993724838788293099761338766541279194669743030120845124052426130482315322613989630043521182944186359024875040611643818964278288824465814015933978718014498642696230186755337726875312967816821461962409505304769194138258869605194370393986957804942601396247423332672635218065300807297412172207265892469517553359897157663773336703596564488838614747028675322516691988036365600914218741096509804329717289114591368515592932012680209375232846192641295727104430728842391438231519541025695772126177990101842743341808207735882665044321935660775562112693594859768026136530830662748800663928236231990995354326291940058053529734744513901227862235801321389117780653373683618104931870182055439821299485551113678835726609517963497510616712635199526639444246632269972782732325953728620735809895297780329924585910966019032173984942940034812491763312315077754682879638796156687416717199405406605916478294717705898174209124521235955061304947208073648283324024186992021699557363623270965697390579037742995247007220250117485480813504658423025907586048231141077538313100700523186713869016790865205322450315482784678836066308729385425330559778375336843466000312661924150547801940717202716722162821546700135398925486289930030303348698123695518199258583122785143431481743881658337503762573338933860462962099882209745997530862967138821498884781878051812379559038263032142646910670810908957277879574872519200958521405641120816952333907526667908882512442948580160526373535008635547914435935957119542749195060885863908585938960430243379355914201052318305504745437615519643040087067393978845573154184232524925379480920983827956928498028425493053512991049069870561700942955867984418447817651185319428433911270212512817654845389870581512220062069219883434032940013318565024275034988736776925847991903164450729066296069099130931991251340789251350793945468772609072669059255979462786138852670294509578770905288114640356984370145421934378651959400555451748735609156364243025416700240929376137474878499954998957979345091361534365356555133110118934136380205375624422339855361694037138357325288397745104294897195893734954905369776243021671627090008084190366233155537753954315943570815026368295671747330933521488717736336526684307653962917762537928347731403615002542489939631958915242742830729608110257460663529172970695981160286539303417013052036422641059800463038154939848886542867560218445044404461965822331089167273925351784912032841238856276323707013957090103771326839927016382881203582577855682885376115868422634398500437424681417914737514668033661548510414223016543587496025929893683242120670827629785107629360820480696267838347567785637502010669660337006090743648887550470200214847630380332965545309615711239598399710908228040648351425154747808422590828120230760737353140009912810306965147195141692321250557771893639926525759099077740699788034407189112637978196845329486539189708322817088923531235542321690342587693553685230456908849559622747255351560703709533575493923846158694108325820828503891668688728476926323382746264961612790040214005679829362324178226617814150420134910171159319714145076414547436199536105399357766630688944919754767559154125254199092897442669763634067308980138129278221947581708572251241980449052466389107053655970769390597182260120596742827739907699498374607557375099271724724558514790840108540327097619517639606758626376120127301848305568006659398824074214144423696528941782214181325922369267854425871917271514297163385155205050259355870056333352980025543749937560469112604126109046575942113622937160232254604281084354162006472943316284119023625569489528028567621000163314820654286659705819808930995707300579096115394374606653778176659662558781807820654022360553409493763734477527245385047847979279835450706311768565413083595356594257913291966887904660132196436281149927702110659347478848606671880179350650489727880525139468596330235452296491736655813890429118725612222383950031877663278006480897335407040718132722322704982020538978092336700360358130232527443502348428788293003644753210773821229485571862222250598891934674850517886850243188276391991679847122295830603772684240545263286974579773032876162507657902663835959223790750133968154866066571017634817887629981754767535286589519346290975625218157556674757649627007274874953480649247437754542922305388392792884860032288133551394697852478702244092356828801738617719453401058606874314404100942494216538536496312678400218804863559735503925824176861520009201980318807425374042098363783340561366194434289661665675625889357945521705822053187627562079722680728487011880501447150003773024261919875712428458751514093503919081199216336604635316345218410169675829099077202392870682455378694326218444235565264038309502191034953855744662367820113039463538191577182206787439922422621859704695702034088691588627923580814980910611425245358744708198043951964975469784228621413505118259971252432154612840558050874306876859937421457887157488189043151751501031235498580786055131339264158798281612959077437398651904950349321425369502100597392836231693496485717824124192333481998937224168466376503363817638473594494812034637223003506198685729880764107361909426521702071829584174679364233632041764812141071320643402958376623622608175983309474050960477374499836872251645780188513687585584221282010918283135528661917971033230407764647755104148498553168002913856670666089767194717961830222297501078648479634511258954359378100971385692564991200582227703501284871153734742901489366321820031814158260593658909715219739570953749797698747805628338954944789137973858005494609757254031599075602618992425580110584825379079509656804566597506182019175205875076731371795296081928466806947955518840311546750267461978137284247848162878097284878373101378859509799777598041143209796462971339024014149393431036064256293607518552419080895360066116114039153855472053231294617695660768431676807904134390287774308245252582036830811017689982993946620024013303570399311106658624171228216758088517910977881376380936289353634510036476653409210729244628209323568515281797277219159723358745700278937526180752887784137847544417724283867463434671078433650816525629661561053013846659816620210718276224037332533412373598591172824679387150637213600517515509013425976066000266064419078415855792228405482735098801943075101648299531720976722645952793944371824547458439879277707589643218827123765257344784298255422289919302053702903651342559280872732932216386243672076821176919879589461691802546237471676141383606579985990237116983932128719186447940547498483198737488377085323215352693018548216575348087402887215013478121475547075721653357767513689023356246782102393859867917546518935029387137522387614130535386668204529387047305180500686904842419526645583146171983530962696402756118353509626954614461147273624453154513286483942688805850744725954871817498656379821769908309880978200201785483482721876592848710451313953679497966831665884550309877757765948590138591826587198794000444828184964483932483267813867805283595684998259581332484585666745586438284465610766896250376702624418877525770635279611052262290596267127963795955773037977036464721481094950054502371424308050328811781732770008327605091419402712772584591050762178390383515331955757934356324600876646676412110705574084555993312057960211584816321894144856911261551997081760112037644697495231279051723792620518948017383649655374542639857206468244862211331310955066018138854657886862846613855455155346422799822273423954570992876411920698419894847800255244981353279710872040829448361089055837456659346897695655342375202061892433168209460119279340084391021986392037736988172701835406404137711311290476529457147498437880082096614482405274004953930153998357558161463544194869278831175979666834890193625679564936589634046836674225183103422586900437668296635252683486619258547937435254841890853369648755353911010587863882207823417434915427567875143561331304842159965084016378711741422706427220812399801152263358033446310672182798010944197950749271472486606601346789602371822758103543631782129374135095857480553922016719360933436684134401256092342322043016686730218550317921788362466831326633478094539897396495221240533064911978585302121718438460458694926876483251603275276527796994905265056287566619287889392267295276541660577562181367463434833031111260242612339251255874173443851689801130717920478689084370922164151709077501763942022025281333441340344280330401837741071654563591467964610602487342728413839648422107696568978106592178435583375187330333895718601100106803163728379486227839435921809936677823882000852872511451034997099611662481675199297094658459397888345647586657878107292363023874093242305334615337131608551580189749610209236048104427702790100687177803429123737910111064220343907870088799340639223109366488796050413494552705548602350195121926315976346673866672440982880177826750331078306164607436257621639278534293609139046265472892010297094915939995120284063620892610391990517788033768896191610677293563459378593641376450849199889519703614363346373413781788686861770470018296512572093368432748010616651461027229484981144593345383017169098639092129885036495094804836814041998807192510476085018057941956295656541328124610342619159864683093854847499074667567735456584567731792882608157439420473948981748753272217502659888271619292878459470550420057655502402825220514456064437669143364232122057125166684711869404225244372585875214184787618445956327559767852566044490936672662828197354029642610193897548618525838596917481496375903920130047095947391911695310393215045106773828962572712498311373202324684909268975879972169335904187017359084261174823098072657950473479917065647797481724599693354581757908456414322151330906686209651943313231155927579120080959200677447072267035292100388398237659351087710080654788716789904578097218717262863531514156529486550944161754562246117364149377706980489132927036724144782741943100823873238609881476724455904451654173928348155668198891419942182818526298421602612557268348910902140746315127597250146811700246792555989295364818702987291512429269078362284730181945085837002996049359977263744775723311813809875334197377954925975613760284065215653591977915363318527991405451535921489965087289709665229175024601347466018309245111430554986134848407439804170272144447842927218052603210273934675994252488535768645351283738212151269762784478667201437273886905627987266889854954768701172987220962382848874211858946402097925153074485672840426288015103611181928906447339973419051542066748065998064611310949050244349384371252177836761598793115284795359799626586691277084390608248470216371328588788082583006728489716418027432817306162012195389381313057701027236513828692882353959369120082137301225283225148262516326428787348983265400405380343573563896242086228246930761523335830211132862336622839358930621833926174693976531342658545836802553742066939562675258556466118861206434429260638757178158774313397310450068749513339756001079452113579496479316193660162830705308717025963054295697339402872544771527903916086756262238711371852235697436213686552354884790961719958526241628560040559800212450600686419158701661367465643091612933826279990759824191068211930738442142718384384138624333534056458314209985985045169790463971953019345169863335889886306671392283686575211503860207502912196333224106837492125207260647397489857335735031305387691020480589932349554096650102500854341929632351249395155091698370315503048748817560845131264211736320698529510097162219554845095410901655598535675516049923966028185753889525664737671244373366286721528907037737990107803862542503953261819773065124951550825742395382223147946738949864685883366455561573838132109342547328087373422340666911686081636306594413630194065730097249827827744466450624235184276221773403330301875336785693206898878004529068315407962946438059888698903875920843337727884626018054905972503824065903435540772537108825199109216529337486820990202389122553416459173462010669440117372374584434986855641272477991776881399588249750728532639455696381072126391412244509878187017970879129787728276158177754891511556548292071326584199536495351505957317525846362507964455562780963810058960183265780552182200643518335738667288635670326146134461529480740301938071504990138356293783554500927587588302106146473827140836584214298843216493772651772587898242536084866113415222314460843859963492602003174454674550560796488342492597135143100341095906747847669659242592727746620324970751824417972475388241519725379927075467189536656557332669933638399670366408054647654474553136917002643534144616051506511071334867548277394743108163468221295725068017719667138698103068125044947604211686106984784143751815373551887614471492826396759420705196175555193318338459392853823804955504861636592494974266058913107972166145136268857508685568431406203423157531007160850333461377463143087136983820042401870495256852960044553454083177347604656693806990807199681529921179593458919375799592818460645224324114081044974145234834140552259767523975020173639406268645299221302280094385650903901555423405584516648429939430917326580737682264862620530108752692561334486876542071858415174675565343420499465264352045273979291792422485585420313367398157361270287276822143679975071723120362695999173554332855514540262539588225280988135992360132065631866516449296553610393210456190722935526799332112809558461003618893954320106407905956850457441943150844081579773659700999813474982197911961085483122375546180937757535910298095700872964646452404120890848295202699805428885572320545297813806724093615732379036984267576307147125914005530040240253185665462700211358364320666147491461651681754751488303461130708072198312356881084135368108042997754167529424045936208227974658570180189245992724041653871229535133915743216686217592669189310528309704107215626500383002805501233518214002946945226634144973989020194478639252328620159783395292378014849365015342087016899464245687532012829776676249199396508280783328680386046446261586505100816282898167980288399766430028469671267219604570314001487608904214082741582244335453816792806206202371115774894739636071712686182477981270630018697605711925776192280219481998158072852960354693594199944587738329157295533745341257243442119028180717897779613132059908924347916046224805930829019184954018431048056322303313750114468359189932267305066801846284118393258606322315732461516393992704440139466083990921780782332934541617335871498223502936722392087103323360063411318946965299673338468224681651993445309949647692783919366897170518033747268630906721888909474108529539367235659956180950211245047857809934139958058147545607156303642188028880047070147848591476118487945880911632926334957642778930047950666436629484742046458733560666667240654402531007563810538708069616410682036402938783001356171649485232555407496784349016633684671658750851646195708943436614476482949909208087512315657452192640509061399069665859964995196138662326036783825200923390103708474674770346776172089011542138053491509653817471697400551328605077714290830318972501050331561690222613338770683925869458253389093682625204454184237042720826341671131703713911577465653005999231612823801246706233445752597141486510815343958274738255720270096063896110036877191121500072893621393878106888660474094217503052691510129247494023241167791028360320912180326764580130018696857696698890966135102776307521511402112273952852502996048390314540495604251742186056298751138167630753658571833881988341372980875065215478398292543393870953848009252377810361301925918855065483853982953762483010966882948260761752315326789310743138813616267602975871372444872438341681749534187919524718158096331745205248827207865356262609611900296969597320089365113710712957116123542299607042547797690049329394360952214124469691141639305074147554904551114805220787035517388808411750709870639855107952712306139202750940261875733742563746252298264545816112260892151984425029067879864176875731660532653945542344872943744229532838077153410565469321590044544585616293062665629781004810359169390662755628532984052046731326222260648362517253995994491963286269178894194436333657965739190786770921032075705860870204865464290470504478488899491763123497080426714044586592984519754016539601363513666948932561749095818294153905197898032019712615264403169497706880095701124162078102362072403928830971418603757453000209460655120629038822489062676924965328152222362978037451728372704170478382108609399540127011404272933280763370155852404602300657443589074222543194070969358503414343798625931531007488706222626428549086535762765736974076046452239617238851692841108793054825565239522161168452545220812313441707448925732344019991692589727496624098108429456931985118693266992727900945562916108890904160824065529504330181134773405558532867741481679809847642542830618060922037385354569670909615563428922030081792193783020615684675613483451615678897518039083754774507370931657597317728051494296157346876235893383117118641920065012636287281130911491628031108662743154986326977255616647159233875040257545734922274591018155404925199191414466967641922350129320554965734177454199668143260539964954703383068242064239130635364294148159555075831814879726817203163986333386867161403586566154541810391274734678587709503198607919875535383189571155148652604584007988554148661869285144616170541781841198138177586615682306043512256150197998997485853113295914416409284819648253826565186258563266194459752778329314085034374067853970823528449085398590451790287188787052721750524432849753387808726434353359884871989672388796393716097167598324946317283879862624315083993900687808340567339245993043531277400325517888372314944754882233534489277516279816814757327719089757743878235628000083382726454522632552886775855840096918369319583378268245669113682359860417291773650554436520837848340214209105850739154621793512772495562260977253324906687637617043416406960198412066792108027687089680950690878829937265585966532511084099586674308089240155193590568592434697010167330918617633224836907736389439079178441758132531978892690991586539238408014003524899195056173624793092221045149647769111156192644019128887845777639135898247272640561263551587619314861584501392264888705232250035488959503493900412202505706535311273401182034246952617171155945431492562955470539655248762583659047001079648859795742863888222650585921560548432638654492870215008010711671356006026794428238873055170173889084636737623912023743177433634315819584502694181618162576526133744351336988013590947390095357347383753091236368041549117589621580492470457323130972399599945641969729329733251114166976078569332202801264410130863817942220348902887140605074131167003573389591308892542953071785776854031339320674044086557317653394526895961532703931454595069465602223813235299206913732521168299787267911338514414581101926217242651032352087070785792422393169164735973209249229930484143642108823668010003011712852118858854026490771270143007850470716835749188671331218643784818765866594344543811216807475102189920609076372765533691069415276680130763280801495748288276568335403120038054260970598167756535369686353980160541806253186134975874228567440974438123107237265722265445671847948228483001786116120324877481254600074773930692584684249421865029507902373272762256616086003599089202131603399438100535891407977869572381033020217025005784920306260104657821087338656836433086770193428830086870133468083659012178430549472965857707769283967832740290799213525704033798630384189719719274781206808576621331713643732381406720629401262188417069457544853285407122265070560646926562338003277947210280749564931000646138976249744866252557388000001226995705819679402931974174149341915057273677333513607071131299586787620551576140308420573631141701923740141437117527674936795463661465179896032157514970240162000749644860153100068445643233212182658428958829610206358157992967844521354364731655143507588811402242958422881182057953107530489240201023913566218841021516141063814671181195032976329478295602110924584874007279747745101461375142839445679480466303439137495079424561256352975367496997417453767207243139188453718298989980908286113904150275220623281092811644384030642287607855002512776084013826652569404452592904209836748395383969058156986118201827131638300891360660784084324942563555303312694107099456188211363810053100062894283997998116368199092237870601154931241764223305790545645640566888000850406940380292899064451730318360170757783988565740347004300992404597904644098172384847757298856085214025664231925351481568034691085562142548019896733434027248828264521124213788336860364327171424967161098689018046338493216267987918227437339444645406736973234307891907769830807367622676570276868752364958465806111959124592681336194718170216402259094326615293680874897630127199356666216482297096782050434696933899768777664840121686841703136621713318038862741773911486477124550050423071884859735305859949543874287445343262767420388644907432293981054203413892307438377250251200283046194568396505019396270271084875582896584654738874220253738970926567146008887174795762720269823293040522506176470887841440348575719045910471207756145750865013093531728434354647050269560976204767372549879903472526627888942134483476145401322246315000766701203238686299129721234176985989485015606538793706131097320219851758097528131661711263756887604905571721560422469858457803028000324444055432626438879238504931856319657894498872696445102311325036407555131103247878753419427649209660344545071609030026837356125863434491809519222340341842977119636715152045971575886652164131430567709841209193303846406873612269772464480158374970381698010437290559444468070239214093571868031275923711706490687398342853021108375385003257265798987200187756354804269570128705947944521470922321605375044202390533256333701083956688585976201841476921249265524710025718549402754500528933214227702556708785682451320102047187314147636268817074199745353207371548049817640863680293900670939004360970241383802806600644538403978164784641592541453337554813207896024567687257663699271863929570127282367548267614997819522915622551502325312316573328792672363511598012638123428727492659470845713846526150219150410484355894063803974688368086201449212405216447914464790495053012671544800011357519339813306984663659997032730342391395751162654294411779598128194405153373617218067433158584797352215623269862975782787562350243799446142180375442004911178686887960742374485754973078628446743282249532903679446562124086779020584900275734189752698683836403289504454090985016621966128728107860168036249665466697316237445611561142320775751101057123144120560415116774612608929468677855148410940348484794835625207065305654775785159168544852919760319160021253739227393344632205458769973203799797493611318780247839412399593133518422065287921521804144098842526318628670027890368886181757722788612808012849316818287953986890437741779252693874410488556594318304208199796260726730284135990223333644941975514920096950918890786442934926206031147736827826246663515269574086823214880352507655696049582819493988341807129273882731618096825193901892897573043794774126823903968440595335581389208118412834743244342045316573324455006872977816766264152987406854167607255040194738085679682109418342219346670273199150688072751530191453718204847534284245643830342598976628553263016977940337538036453696387204958168274034809625126898603433408409004014735504651407451051981108147837351735377168328628919365906211948318546679316297710322265625796476373485569581771501820628317348580336813923220302320224794292042629494391654578596191780137171814817794428056050944331394609477282159274961575599287116514797097592943938946382318551172178076907979610594365793542923900764301571194364404541444090173561658360064404408229780987018233032452637532497261358305862807549428248125969616211283878196289981760116775146361192767064051940061337105012133646947419334694767147488875580495481566706306379786573871164973102515199513402397530903876642154844770177076884676952913976211722115029364187444114364675568967949857904567121827310111758551759436379391274033315328431805385055447146810292648309312780814427253751741908342650003339298420630435858280245887209137526390515844221586647424950530039958516547089413690289806313151301657669430790655006520534312116616584469008849189867265675461541596726879871348862262461720744114362644535522202673041597291708149038985784476031120024213741600096530327333997904065472949160222088440861898238461211733914146165002901282838049887890130643298239421269754464422635081234193886480544469941977456678492178318061558976671257177814342878355854434357542909104461926131222840137570695897502675103113954936542459794038619610257906144563559862272364165663543432605467252833154792795182350086287225898915212571630747242584085992349029194786277076463601933690694377304031573860978887871226692555706738132262584357061471516081429428850384976627743625942483026056897813104699222546571251095670265390417282888487048750865532774292732184775816942915565926057433194234641312063352001146706417091554670575875612979118997651391973917137833757851668301318119400504464912262435675785182852277810636044504857547065831744129393707923712590266742043722420350898137067700091450510575873324490580897927226939884713857921954645241652761471381465025031610608309147869960181205595787141768937278225626203658725086538844488811069942461317046500380038211807930265011560722455820511569283757890828288969797013213058934463546273824353488679345162341609693890809107547191186358137619485593711580494242611903461809693658549801461629499796732216015015131530323916203512766799863736224731338150990193663056818702183952453456281639229558271977218267476050828632311711811688481093086950305609474213831515782577292756241183431111104482188633646821216193748839759665112436704097929408761835377317708694460614245285130515946231601299281076348709642397926582376783686120322986950693535478580737050092224527620098366464280922683003755758209971516151098123055530662643606713480297315032164359500728859805487348759847830779307208892693394838506329055149849203314679243058182969092358262584295191831706212608749914279850509643447443523144453855455205555695021071057938428973483566823099163085935888870665208920733451848261477231700250179177137174306183347656649428350899761673623826923468293572536852939518617577070060421899215341339811979847781995650475779688393109136717031760461532959761614054891264169931690928739450171761573454708018302582797027522478442494887132758412057684378339994329429790330009088423884695284687159417475313714014745152694926663421155396412975913822006094645256138997049129217606838470441101151349729017772157840327928024874226317584815746284538021483102818365645850840348967171732563317748643304635738017797255928711427516148595940263000822248303764920982760247546226699190930818914906720609337368323983853267461063394943227947038920305424509165967182429708658993307612772920064586144450058729382589654771425221839602095238541921671797852620481860664032683841949848545407835674316067420887219510311055319155318414669497889386420435009133676864968352326400412068821549314277843026059264689816908397762459171600933182229343210190697858521961193960867666190658967698654794232970400704461137764034151840968506577754986029533143296747044454739464239969168686403160143284865324777840270303295514097159350487962773975247705749330186622431440527791928591623321419862612024356256809069855565481607202609473755932565714484129906449857378171221586568137120112257783918654391958832534513733039579166759510907251462287121958129716829593254744689044125576822460914326506407914570101038348204347162372102275238075177869358638702931416696707746404211463923730536532986711081631974523520291187023999236698678421318853796899968897733191124543609497880744460906124004318970356425363555298877920761698306996781796482521327553265097730104877000199970020075792583951987516112590333754690277994666869231568432833810461774127036508803871797689120815044305917969134848117963669730806434293380217301197369072656733780119610209867743213828071111028128779728255023683875206398461910258959417097219668627469069296203822205425599679355403947373379002214972120687847472088102929946322145837918212236601206042138383939184765810507920156330051484982400013761398778474751040266340629585493526653824043360796206278825038756898027412443866355995681267776850948035551381848450751940533818841473176175661800184889251013943514485924002728493715139645948537258373063881173786880802512278689003899749845165346975604404230795299095049494289243762533830165288501399919343036699493942803354161381606995607564995953413359502446317036823318998854594136251674746369113551563925255646658087081851044159776100549902787423511712834844249031451446925405145282648598115754967305851408596275182582762424816978461160689804542438658875731731071409040468352442922181082797482311331496672486700324408041926872120383705656324365417082462406770567578540152280286731204833068114547943488027811881893261267219239188048609579393930669167784989962485433238114935281147783088285650020002557299079776107496955664082340936540384936774529480484161094973065813222789024796879423085789255047309670482472522208528927952955172929696042315565649219333818002596750910535747910297285292612788996446909743864136730895886163591639860547158823401407214913440426942958110546302471789060960431741124978066389565746829650602389247829906047989188729899840031395527218372957328285002880120496938857414516700377547578613849718686369049366248290045265929024076827479437697176375033604623655223347261240012818262709979146639589956088039284140465910215429594315301423416555211072291375506434077766176662172388106536563252497624152499353979977055968405558750509115656307838697868292112471898214096738850601504438837525971713382160322694455152876602159175341189425316768812861248915253832574229316166935745336257988220809933523479227752539961022202432556925895073297310756552043661690596779256581963350254991589695050515160883170438495521102932294822611141383772132029225657144516244910110176336990690725222142310929732550242865652720559749521690592679756803915563661264472709260457875280174610615885014270605953492683007411643174751003951191041618999946562494615263434719941513542450616184979541263523771182047701341823739095142560221189177055909321500109777581449071868047434176038555249063275637298009736032600521724049994858130425326240762116149468865233351156883935869292346009854534100039972772167127540973502861323136622534649204148946891993045537981141463099321922436710898237977112901046388557440866755047880095653598772139313453585899524461488078911217814422674888476702693671958682932978103771331528165308672868579968554230011025757430466721057444286958996957637456294919287657221241584952889177186285819331673644938936903616597347223213736494810467022231858655060878445965106353701584845436115448014055152990850924895607235182065196788983799115289518308554241142698139658151831923572752443898038511252622235921033032637338541457441038591555237801123886897648040605236989985054034928352440482640487902134815590711823543529308291796678578285545697985285099161147836268342981004066645563809011561972565308297135765713659134765786123719595535793754578241191407892612378029328994604811204674437939355266263323842696676008827297477511222874367466739327513444340407277915278522888787891907569554372709869463364099324849072835390715981152129903709601579993698481117151296490855513408034193630207544914969772779737086791725050508735873444374330508021996251606067633233527707595925303594136344465224934572999955041892798743018533004457569444706900411748046295254288614336616895106962549350993093112849754510615347176786658484134905082540575498030350561448767764332331778657780318458802873397917169216926257658077429263531732394488531091537535236681683368753813851872238927387252295961643822840915346310146371358363260485423799621204755050213877986812774829080919145939692858340303642033763269546224334269825039656635504108688885622198509373677425304766905394213532752632387997887497019443629908284604247960680393836381431393216166491908221697645732843358117040368500302597243717374207863996026590897979762244498257750065616376612911120345273307473186947467422855544360899225118075826474862924130922940677855449733869936901301268020980951653749352345275281591297015577323039722894761883953295644739383979970696676943464343872804332153116452479203019681124091908373117055896893409591759594080498986548947932617515239298977847984927965663538167765639355970489298276126175767161292847911190250243972541426084743256613792273134495332743938404597497802784106077815278217424871838267721362342796258390865822288760706398069981687180964548465362575841558518441500849377903168143071678931039741475168300166268377069064861475243286690532111749365472431990345941524735754501722085612924174694333041262624796375021696127840546347011432280894829246397914370858286551513472689010568295685846110593193263350904506146268685448508417736071447970783895821755864158365095765519297623099079327328054338968978599450107458218752793201910495332538582261329702627154517962945486652191350580821153346155548502735328306409977527848687001735861128230770519610537446336494670715381729674999685552434961833042765125276056317768360736789413095304930429336720089173902001960705468985042354430846681706410735508121999757579030355885196541694044402216567231378752349931456238306506073983774753023703440988779001322757896656295087387713605650395931476948459302568485856554115695201958762068315102709614472944466886619841735845877891508145778571695694503635030858550170895772069229004197684183207511767098730292413084368674998860588538996104076989425163182296405680052175216958264010461447243736319040218645559584857963744936397652466120327546359993844589329989478637201587823488587519699857955093009727250603480194700470097439743850032264458727324568550295731439700050448734418740432201575382696157881875083472558000196380126614922214420355002431625327957478904669045849360697963291569628161602022136106682911442245838549921477768375841550005785461551430649819565439942983004016465089445760008508109825446857860050593986739403499120399903757508370567647376020084856443615912229204483626465490454196768093715483553340300789453284515240369338323837743905133649674672937930184795994942948956102792960230947206139319274304009815821510053491031189920316948086575511260417256708131367062170059704480448748942604295037641905253502956277523185698042375994988381549977895985525044738103573171986535468671098331940364582113177608081284537958278822079381203486466199408796952960864538444965853754227207594815698526035721360307110766624956036314901383760475559547979530286122820752158169575981260077330235913408281465272859128362237420418005296284575909195686037714248615449941049153252031797408385036271753826817211454042070438799600498682083370837548733028853562910375216823197603715255298730496045494450298413543592406207803172177413837821486731425066985772739039765427765706724240441787762446922212796403540357616943997348726469507014017805034798659979737202918907269283523459212730489246002211365286382098973553385569035496062668847841604900365151085772179744936550919478976378328400240512583195348028073153827257476679018386935320090241003674404123448109773041638923516978942287747291144890583540785335545979155215835323755335267343973942300853279870526072825178362637871176194492253463057094577709556015936267328549976968175158059099975149375401569710405908950733416783784910565324925555336514436016870138207755176385996382161873179601915689205103307612954628842580224677995517389606265812954379226908632935903121204472860422877009647208311367752469892315147041177452862518707759892675872319910788964993371118640605553809927441652312053398442818024195738621607902854137929705061415596862815856711728408747819834390474321872252148036677287964164830689271183080947742471161637277891028195584349778598516336283629853932238271761854866604084273902941824578747827986459289267078495471858782187537716824065847068262973745411173754950583267704906610962190403821411750690371404090724811693313306965326138426491002397982616184179289825662447378434839459970252290180792972061933262511410056077951534629418222699163566863898651341839893553596008767575487226847342522039041788124898029092545332289136141120367070505988035586513435002257667761112079486544427895214439523826003107457972536001918538604969017728712893457618471945720537912055039365609577570791743251598884343664557931299565114999858838230904602856245036369787524750171312065177304021668074398235533377266956950952876002141241743900743950640641957117234010467051334025145953875550298684165473368652883869105352410708751919973573634366709727216789219021758623420326964312366125033189800793901152845601547354319301590719340354332122271100798782381966919692216900302814468183203142302798290017411103346814107834176085043035590922485144295322667165154109367459331051022256429934160704317133036988028109960777979943301827822530386016685946396632212265980838911539085587046333363723622993099281280497261261997841364384305796582603395411841063519164983079899166392342647286297625755700304824644222477706966762114189814438631826947101873172428992268156906485616194354873936064342394601472478947269775737603248397615337407446753360969104669348453258895136401003617345626768240929111735728500393903439147865043813647998047630977880536132417397906521382464024957097920928445300472109971636265282414686315563377592825456160232347521224161986637797368111723653815293507683378764925526832369828341894442952791899905335247760920865655747799818012962246490509823092265361700623084551402305619289292955103548616397147873054733820374204547599072407615202864161406407546784598795670240647040158916893169951356714243932320793884352957409392186283420887743195348729928518983643174866582470813292214457909783493654141474261482096054412041267505841749102089691831584374725579602234229923849763041553946179362063320699753781985187860227134378014642345677848897690580658310201058724131437320293297538143207927057172124041933823602077969577627675727922522480258238599909393134424264854210551564940422429394181900466730129579666379686956170486818415634221623619338384191909983881049682432610017229762399820799279505306528058434614944032298400193230841132557359657023213039778143907090500566503786073659641637484022369061433250074097666485928386574051093108964649996380183888529959279914381150970087065403753424153321579322008797179485455114281962765812427534926005693661361746925832749032261008385006402677005910930074984162068000547519555215138206222946380967505919452768590517362276700962982038723752231278790523745829122974757336619233965306526118953293302111599261272340296308268918686158398209549565822070895034974961912709599540587711666737636572173636453083672434979273806269600356563615542489328334523854301374691526940801988527382485889617793284693168148447461364513878889873116098854785728889445425573188156807646780853428040346511060447048298119906154689890567213898793796121702361090607510050835283231888180047683127478837370104501312796771088522671352783907708403033060735998478064301536928583706321352400051762848377543897832374866322930505432020803536079547053787628895629377222658752800245556824573621729124032083781605691734296936350909616920180863427112205360748350176070949232557284637138167492615635869153121955201482176906773318429032084564762769782799362023129891263145476019622444858805588356327706777288909903333103948738144749366278444804611687801276077242842924952302779007024244255683578728131630366343706948414989049313687965466735436741117656439817389910476443143674936887996906943844009678738135874315296196201312467529437688271994559732500462905155094261482850277091764891708290676089410948055268885743948931693025982352073309844913710076077207412849389204415665441181964846193712010050329628773292020729815202044838158809527856680344931551666435928979296973986649258095861101278761629507564544666171739894332259497871267399630931404400231656671190213011065350868518419174650770101288891588619958130330174456126343757014596119054276777295033464207518423222294730047942402223403975459895076601432282900715528534919833057935334868239298072845574118986096071868260142843178198539133595905822929516340854184711344422533698588997600908821096689009179774921976267642234196818474909419626963770941638462416682096885238448654080865541940095661631670619254081423250355243462266341293065889683514583406989271279536417943681542556292936826862762122991351759375755977810397830618666153250958429085962712286728780267569880644284761588225056011475493937344325654318832548132624232667460878041479973555696910159614831575198880159783703228408059641009297197542568133623057858783278754929161345305551272839257501096462045446984804894508745195228293947939674351895420777253245011606200386770394555043140493078931050510397720025748244437419901374254698320324226169064402289719176447309788284680820926816437671756374129967199305025502436942216185702181323256699750774122905790279648735524283811880217098052853577542887971619206386900349446650514736846389722995853465847896132475721630498343832610963173465880283436086740795049889386486383546388499252076860142703500370181841335855402223577936763356949349161926675036373863298545099482764391892086765723051476381023518476957303838926808029926258543298225597048055412801615742052996065809557271764462501643639334178827528335907929172527972052661475924921886484532492071817564421700620019502202252567811311057140049368394263532209222655054141847241316826049022134704519261952784690372716633204008357532793760665426566268901070645297243087422405416022948215821513759176650618636140212517020341651309634360964466004198569191163913143094931158849179001379752796848684633601390509233346499652922262724795408608754655859291430014932790324902353113338003462873591638119444246153848349227453663557114068003844786876165426238227938978186956077700919454232245439878317283115555485572796225006054706804327674715367914300567205316566045976747218488532094685707439430260940753778262295075692047790616972925758109171533205031059977599037752224599170889242956339511282955881201109884067180818823627772280160461464283145427868310886550811143650697786376134423030097245937146895628316178768572049439042952851463767501095530638444468743280685619373229345227301122516539096705685287994752776508526128503241429013487336626183448513239410639529875244255029509191733379344392196736679296755338335469125448621488343293637797693116557749406180398421851082993990846641216159552614504287249337895090385385295630658391401502005149820720623637204395699193794254449974491425617847389885877287141733350049171960116307801014087526633918232707509495804978561237034429755132395369481767012764837010813291313550163213804024165056149817894057088990786317481738962784928011067716132632463850580271989805259577301098255918509274438471630082884493242041968899435047440851436806813456148854256546517912174310939238118774495119080546727051592065083801229397075921201418604633891747847456413329305308077167323193074137788031462216585600046323257931712552742473962786480348384623729007984635940132330178540225885355379712072006362864411018733576616325259465929711555623287316501425893640398322580213310404232306019286020111502847403450893443533318536269071304923174572226032825059243187670619566505821308095548357702497540443645020531750356265502432911541772517674154456693436754874304110697241035150789703701730153674956666498347567280316084232727416425282136099553938244655150640630922950989413914847169524214505522048228945892272979537178516608348897297154048695780063381187711571953459807187083961223392162628127372881245414080785806251440058687650682591530722464920103509579427639955492279796907931513890612629809597253394252688468028726495557479442935230803064822803892019783926485997365757954952477710286686175632894981996003378296282250562134116564165294924286736259323546078707609200068244515869226170686450400004349958838983245764258895764104384642033868936732382114543944487383844994957215533446960245649554952274251564057724989398080608700360764277363251992424311520076255294203715676730966632933330575696305462581746582006539314434792215307687091692295684627439669913208994901497908601568864050986279489421494181093592673887978424332145187758493238704856950913324852352549217736520028640690668604513642200286993394304076180352218397550274031417869577533540238543092105789677098726955816042591293735525142906864545061473809428633969044756820135505788595564075481246272271130711192924166324282079330217593740061635945215507462307751354075232245017924490331924077543440968159579217573314442943563542760445892850310541188506581657293914713980976671818234481760904800244299505012529566105298645754629851264548291928879599638524139766913597775978850659256883556906064910914372480575899461367222458325029865604890878142250609647072487860656837547086870201657972916332421220674396063532728937590577680277487036175573278879622395970773579532038284832581486475575018572049785458940503608347285213958930768644182677359444985799511622688048040548917650874411413278719964248298941970091197701245979159005164080540360491829748352805015306440689433725610435148307451956455684644626617559495500243970536248345766005850843813197630119599664573281622603414550226782422326858488701330641368109398484211275588516402498284341546588323231448990400962014536590340353514700160153469096518011353415738546252102331594941150568575411269379602323813031658936933901583552054380354659735383951039438524613088598752099830714194490156219031117240324277989422976781962099437491509566755107193204544338362757245424251987071011431139417699518772226179550793244608674431690719103226126675467004687204906221512032113225216969073767419540337240902293810481392276934536348691318159163653945645830042367312632386466756924038769508672285054412479380085453905623606293204279937144783479440073547887458288893673058598320599768996437807486616552854193553881227815570121435275453415310782955463681716967514958941364985747675208900364514580583891472961739137990510617668195968515762896701675027118627939038873845550234441392864785740893879873607146566999690977573895659789175436267214502799661037987325994886817375512459936644911264781833196180296804480583259565374500257491565271551504217126854555055602724074343640709658791950827722146868562392231196126416616376256245747267191163635726164307473816041914141768293377377489515919410718230317850570638943573815339648758838454826794690970968845170008185407311966517223561030250257381784445633431230178372878871533237711132809933672783861539086623793206021790963335675135959604403411819664010070747571107558795357715325376274032346511024934515741743094690284890832126389654049521823128744046788138535490803711016166867431771503078641071715299287128588618844077640458007900702758503348780279590693243977700605693717643704416480847590771228626422460106227368539967504601703258108812401601898292083820340446859037497563718199624369678633302288102754653754804097770877719831276521993090030983233949766476489752764550655887084959654802439857714004860312703204570285626769367580434893302818222829238398008083991763192791814621649099908759702577394417870556953792285055876807921370093781298697498659746255668034648916700004214475185391772693933903062445900836986746223929432940362386855725025918681292076369749086330207217974677217045023168493770593807602326011043076614089861943094000419540277990562089084306775849100362620142645464303381371358165480601601883060977251248438024046407700144340205910112986739413820400375523633685580934231854055132855311588453752141835089902881017792634588993792659901126369309602184569724677869386309010200549270150901512780245851915897680994927691256300489842978005180086001265728239896255976486811681325723953994869544526699148998755523625018134554696860155875495779471526183800093874532687388244240465317192312201641707643517431551132132125219616611499653551465261077021894382849304723207027673339670473176253238901749902407112842165331594515310993358840557584378266219747693988830063007311964584169218186400511185034872225647089514907428540578663863769812319010556366606461447022795849757148377281518388333334607067692641719466642346010820967397718329993904489695824896747605138447831715355277909797771966500809659977054945330295400610853873123670053230805235564669629496987541630551045630534398327264557616293924329872162369016055099085619739688202067933486635595386799996588435416330548221100134422802328537570172913794239437765244554526399431411130688597853695887386567294100069382802651256609183377974003393272472851229232458196875066415796640442686153417956076145106213702971543947018253148356144191983579850884749616053748949411787538978334672481689307344397399267056907397631654209210024023316952349934583845505725486199517204630616407380462855303147762421603955641562341489279497955783989227897379400709496391372998496100910993380948804165753580120097172877213844175618750285174833229647755290593786409599419942522176863639865223581360578665387979192009442800585050979923202094529592234969457764689698255103203471055333035624035432060626703328273540268772528025453841703099119184294930541336649190498847969950878716068045199406246157904932131440155278596947480613264787369151746399559568710636901831712243753535892751760316117274687453849668726643820167039427301071260835433251688593585233821902855912025344725860985135978341810920486878507967123565033255890602963549780129966824436067774704668040065837389783441755661175329831272529218825479328333218921377020206729473427441188550432573927892589289198949330867887617650886802084325533942477532516974650091804089232568864894117385963398541626118180317839914340000900044296308481515267566801534300770056321918485049213743667194734327227611236899979588252595547640136217796457672455198563013156123933836026706111133109132038367873101550872897923625905939982764648027275829640805249268872684958385442819644917471089247852608536877145677992813157652365198086792536710451659325365530438901629136448945579895838634004755635770960713107935031072650280785849750004430427817824791536519641523185760413882724475873405930099780159717068808494861890491174010400094795668649990895241478900935193559568802636784592773612104613490767268614155286791164951376794625932879759361836913705660105534280432299839287122765493682314126395439127035139382248321626024459896700788116731914192387385590846248509230398914397645094124057188021853351037667961538601286198179906281992734631440579576188025254311470530971257878521518135823394735949547217256127923172711751743890030685651448899593573656137406139819320395150650132159737736988352001666126848658733814960511136827557994317720736648943799999059459908399112833013505214790981998698185055861246744354036997347124521751337046042970660492373744057678160018339750019352209986997429917253834401469210650525520483174534365476828549159618781180137807708619046090255794292110540833477391583033161952851534868017946643553775045393840371410394767060890516672039990995333050967744451197729425035241028646691768062299157843877226422269931251451581337060438977677133332830605638451829005532723709962686666088412224078624307773527517084847806398280305902244879933308673203145885457290096381202972177162178847815873275063769741311363422118022314974154275678905940750710871955090513268908873726553784783982944439164320194516504868798702365138647368943535295282521409343368435588501653900757958244136115623086387826789566833212769454803179241771182085851807501885805007087084670214534200377694336830904190752150298353017689889845423733858723804475325897520962120864460289551945995676583259999305112022473754833960061992133252068040548109191966674856650306716565894846767143313119282089944982529915157663270591337088570872044755645027927633318326187773230430607422705689800370281484421803221802284217322829963436634674150751285850886025913039837288587534045912585822755333980300749269481879854159902027902302521159709684751170938044923764196646292163529704422929880840286126649397470797512138446465213283914756693347797647659716460438600066234917552001112082447547627444943111220024726596423932277544043431723530366893938241637135316757820218309307114252263785277006645525163459970413795064944228827338494311045794313690937107152695329685558003337954001961022394830193611983901135473111016402923805968683257725967880411626447139205332151952914683029327061990550491117641091687980896297840698620377414385138428031502015691816995806750452517221891496736464496912095956482607361266532631705045648529583454352803399512440768178299367467165803756196900652757257846527650338576702807032754910644926301798383117897842254657162108409455892578982340674255701895789932287836483618649951080497521715264221574726746552883409860316248822655461605739805351914740122350368986477369833893409280131443197062105884219809281053922745087773636113297386655194179086262949363269382572060964716236142027044606838050419615134687998512086762261588685280365879909780445659558412644849629220932285016229015076286714191665800157185782199947070619310367082742852697782574905573283167844322428178058765856271095388611281914158327913920541110246468000170363941091445276965938670597892520199345009208251517965024570555326688839974268916240212870588060574499006224865964490106349445796848466885956101743184214655092942880100573981259773826580066068450455910433859145710478830925889051802309244124906139770577681151624121007258095103774135407804094094709933932861670035758504767648051044316446167324493234288701381383939056895588313937029495873863114631658366544500441232064253170314048995907158062641769402925851877316356644695822990377094703663914476640095792443815467399595241332083666273177978807624053080159338989516624007991388563009628620051998285455992404936784957528645131654425682670702068465931876811969709303461967109442192789495673554515719316913805199614175330902107558604413291642487287003411628818089135592263657845369187321310023542337291216710966750360951468665637878592076852447244307335200773896290596663660737697458218730473547128104977184494671446252653142909453970238161601425065087409865423474489470518373899201438573603086776307445281653880378981034504722296483319528281595071698785128886914323544579351942335362156244979925934907030554154183506555666624601101949365180489168593030329036009687232665063538937752039063464445562875774342042967190812708803665610423120059751343337696115337292559510005652117196501312475546232855991013675546611617678328576458285473052877635255354230799905638699578570156528888067005196101473809623439844578584413796612469520540817145620474744894101892164565696237710037800035334069710459779509939417642137116725247098520240714127007169072391547737924798913952763440904215982418573155814570185785031636354645579353241891839294205594695484754241361785505124177112188607015656735371389188824599804997098339801436977684221204148402837193320368346863636177357956335657168532502990402026342116017542610169124971386155272096205717106520455756476341174420446775627913944908026680141085373619519154960043118162172327412626807061744956321719110386167650107065793098623821517452824782731103020883962281013012462947958723736900923926385956912623701569485475589952590258386333534584943750923637544605494789507746693793320014192301348099097842777837143789551251894324272514540979702738190636663626431491570964130641425437157380236310370383968107513170684581424191092735652672007240151547174741941293219490277318938624872913205244728804173424599430447500472388018754628917025772513777288595637237070978323357216578856448275691426001986130665113096121270333186993634294874912705691012632704239350568826217036493249483095223520315786997055621253362825523898923993103516567253707184771345912901023638252357711765228359999531713734016704346079160346858714292560983631973509066014854795972645761065416430471342604353885223737827902178228189308654754565755772553045827237836011514850062664425764941167511302158736636704517020914156570428802863354229471772126385925816929275760527662722178375199100561320243219344607787059415939585431961815417928773814945770867043165091651617924224340025763155109698991963982039894662603653877316413311497595611079388081969963038533656902212407916865497451677364607965676568358921950125612582777047775536738457884695574791336250400153424313324571448749170027984497790325115987389304824853372910970019429980195768836720748748811930366900413213105844069142258093934612823746731666379197551985524335267702300263257215286111196301597263752106997250947364014469494048777942043191418137946291710162457058681735709379551590907273761508631236403667833377080329811493713447980982663914399772362607514124824124789332259921629630879918271059990184733176868708998637492102419114118393569106766457500905324516999879008901499941982753185232812758415196334984744937400180187426661245932686058873784673226271766915101679768784808527842692785713625029819528836709121696201237542983186199836447530108837649757681025364054202071179048575414217238002292728527722197382293644759944127190136052097075177668445041864978075456431833190043653518785320216686489815484900914415049840313007688679164741344514517361115550912559146623946350269133982695406110649889417010292673205816415608850729676250726414322370356957213865597120675256604403069130004268926212656306444041955357791579966492033892204036997071782299202124120349077931776440070479102136374323219047589027924399238794126155236389320363411879907367230366935133408898729026414806345041672614178143811002697278196607453294615930339127300200485204995574986418954826869565898267038564529114120210135382865556117106434054247178298463699029672607063892160113184711335122975935988096405145688224771015014946007424869862286845999631977398173762138790444227537840718654502490551420818981936885059771710442797611373052052112008056191208478915080625767947534408888320311279209542134292899980439034952353600608527019506700323096680692668135295803466505900200118267324852000914814779641104068481981281273997200338815097190330006202658147185930036153026290417056459401230391123130093967587343976880917226749032271129753785433007359743393299038507738293857306053584694340679436739522196335758619228484567482539622271980370230098936379002867598062371268623693462748227891442000322595782418471793431117425333378347001419774904569412716028266863377024820902564791064385312861769262435494145972396633830854248550644841454183654682462133555065974907515005637534306403679149434596805862429535989538394008702764432196113914028186327731786410681602974806486677548237470063664014067688321150056073013180834283483999369433091717495744407310446640101436715803972936144799303752040370977559697508356417083825077636434734767678344807127670902696301801634119253101069794841999372450853280017951608664821822099517752106796657954136332643783561998058295289126060881285362775302838442124404118557560182131529249203622697204236756515356588600855273425279418830143001539917508788496469216448620157380799254821249811473467788423525883308890282913396077364168563449605803204690756280588872475744861712066216432942880184693695817304923569355215505038154592962074292407247628438631222980272305184110146559719423790307867515274065805949908522662012827675706576792587638476796517581308375800040651431368915587571891871410164418689982010338486752392575525333062599821967301096727323285713904006059771531234627379867776151206851148629854519118377134105757322603224928800870088486646430085980586852655321159657403500541264152726083828762595240249634309518349029199576577278345164557172081243429789830737968269116890989332776649080723420505148328555176765526791985016636151127580888464961441538252528974714881904555348435193976546874756150473764782740954149911417446729567199531122004420064404777652331339866724880821004601648601206612830155042931040878529739696519417964276041770119366252221777149587525585650945307100326642207281058035426531316962959689752034148055100638369609317820133866400421646089709014210037056754986821229992951930377390545074962850252687834972616146593017686719488894513936154285280921859082519049441853232243425040646442997560832073985039500794770790707081894198680155657921073941987990064184929002675077442172166228649034803529288763623745559929878040040779351006391047687265285468545034656817358120291139592999485898508268577106682123780071437455542681612310755368802867298572924884670970643330012328627194245428879461496725884428962060149494549085963855803230454320509816390438124879957094264351098768555632763378636367263305442519431961231071096731599387087751205674530512775958227054837258210804440015401861899250813842780830753457162555593790546230384906601618912276998357057468619555235294052918669415430599346136437639424032932569813811517042000201178778652235038516097857473186245971045407218506314935548924584742994589276829792816732126073856163962879045516516253300432121186430305882279505259110734910368036076523451019776449349699471769399664256674556551390320372244791470985507038429404574194159025389259915608881505813313016498901182791199058661647767047844378321950015084834089307774086195398267553443826223596871458346348214353597677260994505073191295440192460495467915594888980230039726791319476075036843236944525115906937043683544246378534278938387148322630928952182595384229375064968084551178433453261331254369656483667670565856465825636737287298675847276418048807130009444194923121355834779489397642106527400344596019239146005882712831257716432728680613366018892387471463524583856302869909870096085040397840392741571119735527561239992643560360209228271098209403004925473363014831303529401387661969265352055498804503906395965026712064789791359427455584441483241474967626525736739058013702250433669469726442382063637690773179640641560143115338638940435312563076396501688584345627379524087544823004132091828510947958351993349056461494687397898537516433468309054947756738467074714134657844403566967570821688308324362723151971976660038603986594567786447145940735328530598553536021923642756027105604135184728619580055736033080789265302848620862682949610218590828340172477307046399732789833512420040489241150199835467683101200470341666167208539464309563224024020217774124017699359340392130359141986430033051712507057622165469783176296039502175986284267160750688062254688160787083506395014703787817733866765084832620452351211831901632226803485449030700967656656186054226513160759362846382173777259199944213470971870753033521063850190729320724765725827071085249927035411602488987018540002191394278075118670724107867553694827199701078079483339984246518627255127018765596155671665637546137169715066321170960868757366704040494143630059507691752497064376409561060522316995253839073161856120772470959521545618866787728242932598919165126945465912976277241610650881123482032309591495250025642743758823942504589849967413155229740190086126841822950289848212538756358317835645102163684944966517047148221323414326145042613372152952691340489411085575782138952966831309019278802063398032215120624214534704483331978075696839991934790464031799959052534778795583313692104728060797018121547035412177121265755394631033756867403925239024721491133723444772393432494849387239659633409773341389196234280915545912205629281260954203053315588746194781381187478982282800827249410590080774633746216510517301576703471028738458694345980798237869442483561097546165352075653352164502974085430513194400308722732075221238841258070140898976969986578462830378098338835144693327791209196438139509648138909610001551389975618466347092072458856636851995393519337845546623399984884850277150546840410475749277702168201312020715263785921579402011782980186149726227954611792007387305362980974654774337700150721906858578084742976733696025178620234211135372195781606582218761622937650411878563697312061405850584415679229053126542707156736976759848734826289875070002663162866916527993567802625238965786365201615592091172571720327434915400201735780331115327922438567855515295176458831688019077889190286430327226301340083943532804874700881912031350098962574218120210059028362667554950365284864636044755285941913356645716501583437408219956274718918365017977485130510292891910676890572012293616408284863471374850397804570101696448133664811196872910811062024981232471602761625611823155962502250295476010211972491033370587433859398546291414541963012677875924159529815432339477078012291727268757102396835846855024626497645605339899967600640612132688060733346061857663917760642921102915193801626685847260032829464546940618938792851314406034922807692814896127566362051410585063422435378736448671182240511011262636556439770989072485878097231631386715469740768545512632758714087514135945000963009398248913834343782553352795094891099557706230776128232591793786968987193276774442030046244483628912079216772312018543052734218977375958093330399099587997373866146993402618824270643107942805620869302151176591258910735424624377640434456635225823909316904716282928272444912168663643370569078125199955753033172060706896362761210783295783309332339002901926377982163480057770363137889730557502741109660069315187861316096994042194949158927371429597457242128411430528815020987315574477588961476895186218353697942914000096048884809473523217289645369989103754490820858395861267201182747463721050562598802878269534983018400971032236199557786772862766171230170844730383797375687692166414666487093996803421103576513705530234614190395229830601756935364421205439186136758476444996309807395897374605416314561342373493679400491856107278148324801617331223128271061995328606912542001872841459216810841684679672163935483746217912577014712352654982833640842535175135243201162416489989373263600976603708780727349251085766356470749000301530131350712358286903435600553688025277639514198048675217383190326315040639053776514040624526773747589395805543720913863645182723107302236998787016700926123861521437709825273471070879830590274240119071014825298997643737363446314272991635394638404826021887726328462884671963996436418363307053054511016221457401265175584079761616386334341949557819193344975899583435474885976592759471732072344069545471074756636416300811366555870018795982959881947753908987550807911240941671328485221960696891975291317916086611658520243944092416864028676789339462530595103676714736717549485037925140002825211951907562975105877367836198775522081453945103824719100767188991604613545827829375406043435091686387613754220554362273765434581149711261294168935809940993712727491852272415295316345814577473274208757432572256501190032518840518355953932738256946446370922241096162393735904423525724244875446845398261988755046698438376957878352509032596953893702377590442577622425923627606258919400962692875292546977771655462151237305481373409631976020033375243336478025724011850197043419383068365451424023649387809405811774763296744735501711250780197620724749447045766692638593669084864501657163144693593052610742805597640464566619953575911974433505691856312416074982000043265428695719258654023221748132324442838071708768367949467876836362099897189371632410594549360084024566893004972994166194898833595941943199107627776971798759905641347075750362402756743640161761334108103981600295680847023707129372829588442388927476612763259101353822519008322076819487453100162279297718577829458294473566746917351034376788105198584643082056836675532401245697325825820286979081421242157076842618521225064094220536769249814907803423135453642472282490946706986147697805991085866515085192472883460589275651511660156247397546844173911734756758626699777630202632866399307252511093187991673015997779831785620971000684788578468261155528473382076895122886935578774563987364167963456010424295474211736891172833007817717489329194326649395569080636554450703288853392991337262153214334960391036750461384488208980849845871447389011803221483509200767607138525284252166424087820350007583389904515351859672617296417775552127299079600462679619833635217574939315802133720812675904090937412081240897403817249357167964671860148727597769210507735888845792628304750483284002556001112805990613009831766034367819553248739010094115786477145598783396097737642066914003678863860100045212507055519131660019077078968689691039626860173541977530851604412811481148671564034260305156263284184844408342078051539024796129919200485536356912200343217324035043997571706648770082838228569314439002564931675138076254983652894219609182780775452315813718792581148703116145355246568727980620454078804060362578953777381015945826898539322675272908779817019886809720261159744194748276632983723295127896577513854448206553042162386165182065884024156842498877804073618031476987554262805335728484539970352001551019671649251738382983858235605285785161251703030883456694039440700984586732872040467589039737347424498146929380025138605236941935744270881267181966793842328720961807176270804087343565614936055611535719397908464268758536719176203535226929089064459315943462593768057363580615244907082241141420903064866328268132345998378243445372042415512858227275138322933983256184712262495515448450633812058705124294862144883951439734375688502412327255852870992245844525023702554356086444527000132723298613064100623777551437135797413881597809620568995236739753738214164423443331164271863752930056346766291876588946657739790446085257849609627478179158265191656709278166912194441013938571288017731208928176655367613941350953385798100766857898344925053723813256255395360020309287312561620669097964756604560623527188596995988838554439637321926248320180547015606860495900164601479148080965995771456105182060617011647919091591763132809455809478742673326872333124531667754608241423029755388670495683511689156985076680440247402718365158124212790451273275821664274293824605895165562215121270116511503481623103355336618028388239242820188073514911697160770759264002230096278788501766130960976916753019692773411483614981993914110099210399411734528953104374517102384276987809491024760385001630214024065037676054910792175583731199469293879389539748162888244724491563603005001752839568516914430741130827726748729544970997891576513412089429238022410614595828688865567141649250357038044948170268889047162825963907925817444716958496464019015057051982642299295158452246119195623893681637216226074209819099614544511001131875038304798938513177619451819626314465403783104598415965443614195308751052988053241148498378145796458442767200030005624920174337062712838991896049463129496512885198717125825242593547719571652922835802886867596210875133672597114137583052710131459358727497718714123738919878457416580000395337090420970037827191750429391082892991670859106530823040266915189379726873914878697086921504332397620731849358488468873246354750521080092644859727369111171262680449239446488780189145954791518874754341711018445412336663485375038939615708981552487353346937407652313592885629392543944233066089419651155632010535129524131289390875377580527872600076777210351856423443889540619454460714185034543169380699770264432035624717252468874961784696778252922862709496382030497554787098592081713271666005831056439367714111018382720075822074040615068222594294300567230056919701594369160651815528853176210077994845806493743240602040527222588561870484834277546271108039569658801066846911759607786670080484240742673039725754669464807574323715194386956330344181186742814324174999550324699475317587162607142689905747367973755814601160428627459554850106615865759712879703040692218250168617493492079188959858799418601514812744145787123156733851593968186495986663028635350770169006401738510821370069354330517683463119322117613686338966488094525312472473396868587024894617754353660488036057052864833137554973587703301412052172725839133867716018647863665436669749130474039486614615456999714305432579538675734151654575138226421508930788567120234321150416559786944645435353082781799290269855349154169207010404461562779792734079238920984956244866515112760357607459753957820250694638464517837891414116273702620453536537709622782708712929175642624797465315840309237333277731837538639193647503111114840032347395798462895999176436882276960373365895648629248274822358497344057589320554921042452755893665967470282412757742016738918104611780058394280742315953255008046361309602898355798047796112687074511563164641127402372369180681564979305546718627359243385802091509048639972250356928648113689477404264104652510496679331380627657320471786341638288811205871459274452515314617452105386503379544595391037472813085770568981448890407119942612481421583927731272938817715073592248175606134101398554060497064375382019083653592500581987602075936113536615274251994845849787295262212988862957304481373208022352462079935959732523019969165584671899223535152242085658201800234855196551796543639373263194514149623243320041064863590050571744309461218670977179808069674412181988815787754246177022460733054754765916067440845977228026820499609814681726262547019328463849709293495254638620086261259045610287014030622175385712451590181463511029842684220221379017464300038305503681734598698535644020741773579892642063075123589894539055804604225692748866011659592560707719953843046952028946587166940769967758709584576244820374899274004012773761615318996322501453660233161122980303648150071581840173064697055816744178499577189131964611959852880625089392987448825133833576314882465854309803148627895595815684962168636621215677962553140511334857080980477831240606929777914311871664929254835565147568155099564552526135043965395453328618757959531590022660683280134686243385914663408667995383544775893962468659457188090642976775126219242944023932279848641406222858264012785238053700302840823967029590611053321853765767204060292495343482325742016732347958015529416018719822513557145984169695951632923801080593418365491862692382589554210172743212774139026702740477226111403031948331269705266071870716621592852605115748931449366582642397236639594668578599758067927376938400296191758497507577191533334348558250420590804542868089244320568839450623081580134601595089895773940574930718790966307655998986274021806297421744863565513501839243544284740992949084662079766930691316040365657744763016721818154900291200217854181147332056829428274718231154418059670451790522757472439407842148620517437644447624227936101051599853110208241605872073580257308640828540329895843231105103564227019228614727150098596043174787233194828937272170893592529530837497794731173113374796593034349426705230109760130091388890687367437087053479723372957438870707952403591952508238876080113198352924502799682906533533890025088418073196729458866018616453156535968984900296661713166328891313096769870500765816670182599922031239878212901980808407692076728003378139151926392103115585605719664831055956897682907392641975626663326626615994008282071095226336482056458585554272124202272726943909405434844188501315514652933507310970642985671017160940470822329525212929317966195388646750810516837200594442301816528785014021779288491087857635139383276417540792038707867261825805302261895620427964209597758397807845754234334647624792526413532652253508735323639228737848314667378630187256263293616467172483469346953850500603521779275830083689178628044837346803189052804294794324511254589894737056829819943002094982866003639832543303969083774205474364438187093926546627188684102578545443899010209220247280132038182428279845370646343771743596311797819697996197740122217616572860232717360758826992851906654373715045035577749753502601689221763639378411075752820664816449156486509316444978328398969577827766991900080319067450796460969892190424050326726893826009475706311478947341739033890576093864467580967535009458996615773141655791672178330836063462437075191786711172985407389361583699509405472631512654430866444005512523526559111015557592286979834038689434310799491388488221048049858721680077925100160253727944718050868599849678232613811933153408308935635737843889920509736765935066287638684908527170624050226120766536275515142315866129407360350740098949096529447038978112165283606570920507824154766963383730673872698744048392829845706229511245655352646496636854461161472089879297577709820918467685576713559513815832104046994487258031924635854216852859386101205646302394844223854288985012591009634415242053835442996801796321384365931447046222227293744032025438124174246833180075249698170158908940871222487370309146026143456153261277913164267895270256571943162093235690024300239785658431480285490722236921085301644391643202439708709432453968354160964957060889406294225375093798468511161931335933915875081324898750669020645681717389573347958703559747782196970498015090259353935972645671087822158295299788389416870888415050558663092828449374466799197952413364260161417146413142601815640553615593326162053235760339368268285936826209740374697548263714066394339505376133466742338538911217080996512831797030910517435213575683266164420797872343491074831711625712486238841877219224836480084025287668107379717892896767599924037076438664096017143855428177941516002495203630577668118402190176759445085814291273312634599241995012734292117365491327756125500433539072797032099999422319637572652303368314168662859048668184110864086107281181004317307437620339592773099815214126345362734449224626465977740103694517770933165326455172745916736662332634858970292025591566405211844973611653942900313722780478224220432422998527543033148136007192311074599521169768358069025430901022905268774476748367564313015448476938080334699317832192419877276753151169405395768228463791170160438202801636458752132603282524333549208595013579028542012115216606259720507160351570757806349628057063929632764241887780309967548643974381722022320816018741861618898934493452096170996765830085059635913322342074594621000930452902874395382532918535170274603153534519054400656059849431303451150546906538249913327351487493010424968830211178989898784459525233856637285621509473961751468874516781598831729174285272213978189521281858040969948121334192727889403638727602650435237076581553666189469508182318624639014941414012531738887261336290937846579058921507116078399486155308637240119309580685902986022669065873706427252921194804683013991310420017869067357481296541967751517789094089678069103663638687722671752739090502638154306704802843792529337224932180689409746751853586233000244779607193831620212806871462049406065192156686586653185930622184374172309674589427330145348104318518612068566805017103525612544553047855218214102186206302411299900017139522309079562025617134871017144720370199772956504271307359408046806855274603194791044550424418017887046943054343832265452060563369672200301643426403731012167932664667979063814416876603190605634566917075846006555786702837879065203399276326561253962353123205056476544877424887876428055685021160581081218062415042739185791990881084967830260648186684160218160802249171560509633453977030396942125174310788559109866853356286778982728414849593921146332679560626587555780402056129837653195348204884869141587358151178756317467593395002606841454297447139471192350736822180217390549404481256824003880356845364864443297845468325915601602649558747129974289866145286129765919402165205679658863238586712357632188902883034730673873054864572390027143632383100642526319309603941785845990455832830658826832419366148237764871820837599586163236303066195696379942894239563626975850649129671811310761754567895392540007092523820672657508662797001732286361131286823673024744665270452488849923877779327616230030263901415887699234435029296137834069514467649826490428221080437504346344349209889788571633124853412181344942686096523934632820063117907061670217996477493524496822878404727863802735404315854192982653652948597233149802378556101039558996205711118781328792351986580492169922880658125866409207169743268287257675354636829753211419866773322539994099199478011548167103565581300567639758170498789761050498729783179191328041164727377931915579493259915876583356273072755123145038958546523753300106804595520926966341358776506371352949926538794882419419370934220378963719594643949068494404681964205565761876766799995484762765353844063497241215656339537246895214961436587144866464385460627397985088263237329491563727345569049159687991709358342705801363544558988392032966593152215156049714797441360301787368651597821706402605471809294461707124884791381011289341043089608454637211989946180836403271996985202954548219176716668120300916963671000925632174865506966300334175499431868258111610059937024020523378974358945882952633583705067507230201741958972898519210956807325488927217245342357891136586271509318944182404666649753827717646049622609158160602991249471097381824667267681608529257350727904647605622790076703782945050599944855522379952611534043273278809153333357343249200169044330223881228448021598325644900141369363785758569220698662669548832528622644346990064005330036078664457289456642896265208232553692239561042713038965060911043092562196460497764501119906197196382295344531997881373867036627740052599676223324234598620448096035565884751875177338682018509572583931909051490524701264311445687220989521863852276705639990466816389023459382715073936357957667828824100548231362271185651597196536522521136853305354022223051201866475196059887696004575754764464306725660768336031541165906268303261954871479820912225422635646783995501905094133014184556588429090250943915612413412385800320058988001183212093148892642867681068183201436019298251524171578761024612082195112494700608979905436112210915627932457558343820967571064835142813505887316670447868608349837022298844810475610868136846319754401926907175720494758943178045642371318625793261143396860871027946109194970303243437346864553161000969338792275641929966443311539288695651870725230217402458690393817326124928862857446527336448501771119823347459741514040291494959728522947811857164611489017252831906395908656451942191263893408476809277571649123697328304110275865382333299051880377842432531214600974067227609560634212511701437556302989937518912951434232931427964738629294381312982585018847064124128518597729443529755178568951055578179859173085167030260652896120152171494690624960583166954497767397447436762079014253136802775248571449290724909023928853922252897493856611960122723837637227252037087741469870508309008291253222503772825253902915414793737747119337697600880631067054173913008097383729752213582324909208515143900701353716612535494240998693871154908701056935765653802871162153553068965266765310269122098824367399075943761504296271171030189889527448679447955365338105588483457829489082584356280110910821405585904040525042364601063676910028495184437341797083032241742423409226937756744813758879858720500662536205789576541391843627045032619606429146865345427387618518644717243981881539366642378847175981962298462274190631837944257401277050519581090666217479081684952964369314055271809276192737307321823989799324376594146065598060733773079712702186375872128660142613361667202194432374424979466676839227886250598228197247952697830903426347753160959288697164204025236928055886316092634950986008234270135381666091513153113053962353551249940964366377433830718949510653529983203414012376312725952071363174138857661284671612749811759776299029290818575501577379396657036814657957789208265903560799016205668027419837292516151768243021953742721706489586054895477749319554104077640742180275240505897929682679211179451826931204156135872741411661138806991554834429464708528328955238673132114857861168149511174912386332543967969807890568521688631632611722408228256950518331824909658043977289299549778924477241672503351805112598281851268820184319428962909107897156224911462478460355763651103538890824068343189935310723775751177154280133475256730436430099302442629579511602360635085499289380689998365836566045901449373087851391213172537769429559161239146773275493190700990506229728174402139305262577808650256829389766633008266772891896699523410459565778434959479277784863828810059791177604621731278988088091823994470676410862353089537399573033469963322608446378344816849752124688904770677072812277047603394428988271215741250865524321087788611432824891802098709479678078589894374143680692908058193267585331870679192880558056819501605843579007651927439969796648593732142777607598776706247628740699480100153691255018932006407738613612349090818823137501560584101923424170861578650402613830077246657123304388374493560836798817564140387298654017992244779549549677128560905643507660430473923823865091436673912276891816513085651389330434308026974715695050400328626217239454350022066747708384617022377012559222829238318249625967865355559446949081579416275473282071680209548190477643305583041111619661061854588337096457159075076976926681432645790535293613505973389998398450292820431567071834418168977740428609265997246405509192675809346684154223007446397894511028615326688958030335234881482847525232482014850430223570466612438718065648893744029049308584473937178600242862533374605874282733305838734979188393726630096651536345677268694565686907638133528095531587017791012395092303125906247452946007049571616373985283604517377768157011144808516613955924144616137527561357601769812125245428410094917864264424300846482266240351295476891433166315354686290172757323140687192950344375335846944656661481769700990227761669493842091538029522653940313340148589465337182130887248406342994591223755307563733155976941514117685412675295336893806393112871206569117197510776254118453356807748352463342048957020431045407095781799999147434463419091085788058473062399506001997108349193920951555854878467429754964322141260123993550923579339018179081090916887973344169486094303331522652609375740320460031489540436463876767327818666431981092539114384894382764253711758380683696107526501011740637722011911129592500621323634040454478426165219051510979075601534113744516927814764784540383083240856354499433852571797567221591245087181422812288012361003859959404586373353206030322201201022386542498631474137722592823637528914134861717497073856264881729177527673657221206217760820920798300815237384654767614519939959904267397664355881856495528089188737296629914235839018120115593005392210767566910131721988118912214601088689218387688279275591997754842191999526104400996806909410339418831584160857681878220509463394414203218139585194000134080972829186249654096164037191653137811299297756739411284922857467859581515127482211996430607763495419201822859478272454970841084600238819840326499046327194320555784594025222619963574218025420454050368171751265660637830109360016905776336268079914414483650283938795471281785598151763335945293254797447974568860631971499909021548733970326762559761083083727955345726621446260795712062840868613686132921860820203220796260177404802756411649842640140551645044084260639176542336010200817316861752083448670507021952769670085489870499328375301552438810081422551964653681610791408567210735881127517347270596846307966583263655302198499442782413659631273198192196576805466703061740336420630389498406035153943453150004947349314672305580227150485574869636391300738764556701911573570101215530255767106906690475357696369387160434344147406333183796003150427228881916980885995250515258876035427175751826937573882646894815190189815999615920600995196686029540241961117237337226150036613533257336061769045407955939585633698276542002790044420425764085196901382441964612441011612649533848019666378180763623098803648556393456805660092603518603243875175630555015254689372826424928886706616325054043839661812474643414379754146340035630380898981007755227272728991230782641367585999962545657145250173749553927595016343009899105026714881512538720597014722171015382670451402245699680877683733534007140596485956355849892776909841185999180253863351681120740620625344724689394607167803666210600740985006078149270984356250823602239697701148981544988263195202794517731677234900266163815209286239857696404341472672013795029845098248138381054799327114381525897947039284197111306642060835813176023984703567530840769141029256915372304276090250653477671974046387638270442155339162978421436492272560354457935531259163376471000002899389098107936621817582023489836335936538546887685054142854605914182577650427314568129593453617604841620746363999857332056865937349607874408320702089013287119456529507035047395459724439400416569112911259076280533739729032025666613510020726223371296531104549979046984676150461602110086206848001635030497108012105940315598634695056586352769542614227764381184556084233143663323428591546612961413860415018355431967560848340379315331361142413526716715057485972782134016190021412700292483802272942250614273239273839427667132257616323348573027117580653345622049453852547564781315544464219368804735998330871194207775310394674505895376939006721625609948158563642552978160210123114135472830674634551267203252438328620762879618995935968292463785762707782341685030594355359678858123176523427591702652548581069135373020827680453142175187196891622433900527444969800634124080033131705197114945735206184499630461705803265250993059109337302684594057547653365758607270790651976113622929028015051848913857371921651135764532017362770054032536112746934171989930268808162488039751449040070142437439766986824553604642099561926901226325777275374486098188938411845922888836478007529737145711221058982617559786055419498033250672730743206728783138453306606786073067019606169559625259697657447366879215698269082126374971618945325869104663194680172885289002967455376201975637077693983042626735541503400805057686597026731560144749441936730656739478001945095922848144406083360701781181426123497846765682631188031016688346412274359514951189852708201188814801978692418821874379490359059390858064680252001372619430225296281818473975461326581090563560864968609555214515907108493804973802396744762224231098076056198626343275078025535574865639137717249067338920404926263677034174903886309691649316366658166727389828854951511296302918694327474543981830676839200731609530953411462265668671097931680653725055257270100972164606101841431737740865214089838692903358572627186945569005587954407674757753718253898146424830480784130018024851189560096536210430843486471515743567663261129943843971769166228240621425866058673784351340717284922376519664732719698906763750691478899640017822127509649135174350247091310292883134733032031485503034586611906249679530995987603079099052491542909378678321594407574730626862742630784583271696171959691478457454473751019629217297552014410969395135140919199157257605815904685721159845569514164380908531211149840486270289744820346710902997882339541959074134133480133080392593242251440221712252817636172053898637974167607224082103258560807341574763696663733911147693663584488982162333911413595016439796248288250184158674338986402046897597751751622086105271601144843339490465015179626706122908400667201745830950669229384996499577571123343801956683485292761321931462429422659885776728308051246875654204406868645959137206224172786474335069285019034819722720035026280476683661871516347069092339248411138133828885515590535412245012915789019247994458630351062382170500717041987666416764676836018649982112919367277299522484052843598937802877014249257038277252021971890519517241807907554421447830150083359128478407461467389019550302645318383316093485043097545884840305552526442297000827502707431776736323267275682842671884628046660241021963792303252885284998399830378284239287096782375602522491388539087693636294354101667613358791461639453807960963655471500434089352714957725081647526408272610915910418967583864774402116423082392519366586569869689071278075382427744125739799345645385803118877405876588648379786425811381773144788550276967584915888394432771818740201052135530180463429336343357391170840183776480322162815015840496893655917218835373987179855015122166103049339682282779195467647013570907274750971060853976606086833259714412747005049458691517852568770908390907984352070358295996226329075429298004127113671113107877941648094467576586423214692755011367551901982360468365855548294515219368994193108546437256744573423831995217684973568439604456961612202999005738591649241217794555376583446044501533607738460017471362465406637606688039825605044820102558070549298719118144124919993452186963993387371193905427522866643303924673684525580881913867190577901565432065030210247514170303650920684727487164434286347643940154381096876882685437902196299486967244340975369592787885253920044091678200170235345957078992716779747442935059081475353174916843898508796235110962505770735875019286388231242633545182010433839597345651478494277859128168103601163543932585999810657200879518464498439494443451972931619101230885754307648533901447581612730671881229412027498878845944374175185518185514399391914036094729960883243178897161562497640054086600750054397698984810797601766767050348198453291773804375737523643952698368664075551078659578026375342225458353489587988192389750749866258293116610716360534387797576371843376139480858736154943732273052157430574182463395397894247389811448448912942586790576582988759260435957940563713895079916032632681525351789329276368030217521016085293628910741327355909250383334701770644564683576454798204108678815329974424326099995118732000762128000572865692243660574538236777477346374036798711292953572458753391503462040310229172945413958449256067496234408488836774456776142676257926244173018071106459213532346663388470337307351727304248602435835059345805230452640684032658511824417936545431777385608228172879651471109093136226905430490537203382088343176235625202400017899413234413219972868600573058066228733670166197108068531716827973611573707110807446940633449422803795353585928715885049646410386482446495919161716888117840986906647460641174346043776777029795880979927175754609475789865705516739957618259060432757453794290930227404351382712171113233113393995713983376722478245777090254906286526985975842695914553508005711200403937410592190729210599613759062317365974804077002209958060196368299761183131715940347445356302483832546956909690647487326413264913370837659562187076082196448929257948170856090302276612972756077230825516088682085128517325562137302784754793127720808549972694515383844189904159982867116486543864168278073477623661426968724617841432156464498305992273270033325998532269019419314782077650345582840408791449434303438117838276403558447824028390932420783898995810029217736063064651066132320286567579903385318460202259125827250726283522774702171585656031127465000914216047356984963914222693898346440204598488555735024123100091862501066802261852836460391342279818936014816655347929701022501330465035574212738557711792569274810674940438712942667313455219884768823030057024409669328178440172998818567639266287481732737790254752619028795200878219849438517886812688434956126721162423351649304712740138605546091962647603739518337254198052936772093336907679594024047715339156868872914143956212337830437663762981721669671558467486663703153621924753568252920193576369453384268518373247948170947222464746292260341726559384998813341646294731456577628670069236942706507751722318989324753001818404072724885049356429559792519240681564921648261565151982341285235189360150804882276637265197959987407724586229803126985647903780272174645916812446527587476565068749208930044129028682167891619859710978750834805139969439416477233929930213533002705291252823841125566147706961648851534812028916224948260835303936511282420872083375386744942207216052539850977228281997197180006409340115329776104170788544592788046194718015282103108096242553549873341849827163575437761860026900823912093384045729654369482115429998576154538828092942603308076942972270529144800860350032708268024187536840167338842120470245094057302696192487549524154870753233150855793864590311419587553779657776317540745921418147600306892724880797584675539564360906079601209804463749034283161340736821500856168176884044744529481585274132860864632778686510712930356198983836921491306211114358201863394518611402258541671397955384554753868194522649514581668052580587572670066455236320319350866444184255797355338081082699231059230563570845033212841387408276171542216390726478911261953395113718137133407127996009415736069348479343211076907126456283569443502559368825810598192690810043146851112979123754152827463722926855110984922236842768267356332184221396546222443890938627007030559036509349391642297695248544579705405188946989364595424263650404608826404131908895803540082800872090510617018105652918467267550156109061052105392739836739871318842437043598965076470493997506492737964189070137953152134701561846221534971677512829066314879393694809012801624758451853809092491096947580867080320109898533702616619147555221408517842228434459093655119741319068312261022594283897225108377461186970208647873695535589486217797389970960982644653160575300798568466872993141588354144660530299138997873600846432605382688461578855699332914153270696911833152695109941705252791581104292676999830316978892703215370627105952630281754378192495878520086627328237901172794031090514092274584948056074598741034548199604098931900757158722937574136862718300628851487725920554279105888210455823543460581854250056558815127352168789024670464542620090231249176879182176167871002846100386848978398731810539679871995220874608209746264278406387705122372669182733052600036249499506554271460605125684022529652689679407826390630491894978480595418442601139689369337952840398691965814966462607102395863156483519847876575178484466775709814968656682530829472028325838352749015590200603208143931316344517112039964649514595204957469427947319128629390957724100671871887092208431299787106618702189486267087553431767088176178469862238443575572144830196001244312377775943830208704734345124252593496398808037117791123454259225468999129033848289663683576402891800173275063229688551523748328892011903827371613030471965072860580741857101803621969957832840973323099420102053681100154526083729249754768973513841209790530988028476426252232811520817915245735692123265283432532131305056088392851812412060273855869225109518021845307986805369754942952673628237548383708390391552947956278144602145409491737010132282984322270286649790680425444328716259707189781535828121968482170531982584113925527413258119770277804059369888734452353448636220270503826223251057670428621707410712900606184278656385515068140562915908512759808544946012735141996951015895371288022692157824758529158796091622662681157337373683072279941393528332792263523828403497916876108626903965229852386044007137736671026052782015379150405468150704312208985960069639184590447034156804159423965502999416196171054384970744379640254096355220829897996143640021695856804588256660295527479228048626507494874093435093568907256085069744790590927367009375065497850532707439304915072329395217728538429730745238340257131470901763363053173656568683395038414417136129409783246791983774881001498004744709444896710813893691211086207148728567311149056756098715104999618395886412380766304732455487057570547526529180735383623131566262941772327323990438045505622891990915143955758021160088161108624360759484075913854577391152293203586912777224346103458775513707213833107501671781361991426214386208394539597618414449780570336088547665853145625186275033796748500237150248606728713406889048286103833711290591863722364403433424227651248273726825959631687406614758879267926709980767597561672667846383855569392087919547083091265122911371757338429388034185865082397269419395218062258910551507417498884669054999305023105669312819247150036981994998680112751506784579152732887292769504130341793146392147443824980229515229023146602365901553383871577259306727783270468397254753547557916620878901216161940720239233194729942075512818827902293334419018021755245951327486286830047656439557158338530866071911087701661037159790804707412275318836409778531978462291882016533837851951155206978383531823684437862666603364434396752890896448021336029745459846364428448649974623556939079029110019198180113079358408916388049079994028104499877098909911056524122700558854991750163253375446123980972398252650456195361055827689461324220950633281073745111087497300095818300846294570568991861167366152925536748686330749239808984155396359231141787128157377350148888784044750993485862670935527405412606236045066179404393594160195321736264644841400844197887154201899236034434515457535816341084842203815164949753312996841317361457056799147981895564759565927238953201303263208851607918400156136390752024540598507412336695826639750406579234877470988515918236354365798927862612026986483757267679143191544749038682076723209935571861333871247816495758766556317818745409910062156032800080952010174626200471767260472931536161052456215915077192064310015706657834151318833688657135142145718462236229719236437653377715593511000209374755453372369113921496601804178153680871895022288879095466055516570901047475893544860483567190707231784254953172334212962879818143787848820391440562468392756060267115722256322040013993370495711250862453261120008960239037936549130673196798924410731255539380467065451998788578570558384832838762049259879755166056309230658229225718915909242601031529270586086942671519557304830806097701476537146370874109700916373660546033495231888017836339184552907040375409362955398704707693258008136278863319310072468322765606409100452849343238079728516175133011639102300896751385039699508408936260844949439365835261606798464749241360834375802667314961950804669489915289959088891862232925995725989237413440900283151834348859654737712259936946652981626449691564913808359081589527152157148735058156314257889482730587325411597981894219279556583972539827031797744398735253332968734275893698185079206721199033295967608166839585023204122312560878595311600077718008916331905554747879307281017005500895478106785743240661043450164514565644808000748434436876949754581317734918395749562504387670080325945448814913881040025918532999349393217017584155092523518583411868810518830034173320025230216124797245001352023330546462908733177209408376218579414722316554334750190610913026444547366167662109644053788020177109338138176971124606852072400812936726896389404307633032211758626691062533724669909581018763085575877098959361473737546274656175624762470960985691487640618421952701023079763160585954357302846487041651681969311970103378618813318739203186663372706634588792796424410650220694521919494519205746365784672644594379583518453507382726396503938185418605997214222321385782908874080742049892086119448837428332422681317622469898345752988739015028480896871769853180582933580891724700711769406944753951175953939720356265271489627639693650867302371488474289503018316630997195598544576049015071498074568326724475344174680690574594192967942948901878313258650338134963493309616947908427151335902496136701833494150996199316826049070990027121793499830583789458463929553855281024977583316447673164944419087145488701453957520294963235441073450041318385897179269775670988094244963314542069689676272363455145609297273035536640246812842932916658201736711965250910121663807388325929398104922260328578183605818980678599552776467463608996417140076048887706752028159223845478002131912644869023029445554172703967558961581457831164432387098476047692692976457768606508718693828813108443216156747909761837658537062134311033525794685512399541197052784881608317078051972453597957406125143529925341349107846112535175695788858756186137139182161118154747313647000789981228180661668767712308231426644220815231710946351087917429550568893807259275071064252990598394150014598704792306923093911078299781633440993027047956707254439341170207640929962230165343220425060843781002868250125114720918852456403494678906316825561878332883932532175920894836687073994067183878264106666488275088200234902485791177820543741239000505199336912274562832069556802325460086700760006033920460122341068679090153679394258994119247713400724786643566212426126950479104977057206603628975144732051616618684288577648653799044053687290040580623942654105081874587258591068289425145364368872512091443827918751656108094428187427196376304329904757776716495803927484999451025924808858291386429243993097105641609128957756824892377381259877479675440940649469735045969734948714961606065630223568867321265860925233914788283110330390481968242544289031516658316720751711167667546085523193061803631483860150894707240826385596954283660681017454691114543479755722265595831428378255677599572073428840349031186442932186221551694684132661386112868352702457975088167037747652458063527528678602603275684856380653471866722358084068723328151163453194624382367700218267376910872536864749890000667126857816238964057722915786183448027090714653634265111550996546177895759370244289657141969379463669124409130987929195008601550860970996879086372236417968172288356716242333352039179009117874966046486779006260257511154225339799705460606858803199463434156959699832049392880288674041503669463251423591522477767714228474357084579456423649696213555826327686840812258077778332763017353706799708163389094852725452396610762567911107215083865297602818032392853209586660910387529165391533630666314644587647986047783938510043329883213312009576268156743161988212670300934022448876982824087424468487929326278479411325262283273544869814519670620636424206751995434313435457396385799370646135667474153108295307433601111054371879617565396748862562576649958904435823718201963312441383684299406527468378080940239803580954462911100232944303847066514422920319417724547456967257312509819649279867603034214734366547213718739985609370001374184911903453230791631309309367747216942954183474075567090117921834034711506981437920334918300729526436004125899942540672499870446400559405807135849021732717210514449498717530811712087926625014374422803258002133967815738713269111686411335155672687767264780373709648385777321319836050736569762796706725847159345675568517048575950107366274810165926891022921916521252594564204766726144314573763250713546702356101598029402730211537367024218813573460680875774927319053186859999505086007320264126842397350321612354510184345434740552427407443498060289339912535583855446750207894632343333396910957274451406559055084022071603135628073451728262056345358345752651914198968680330191096915835072288597964145234812007895933455229435514102075017530253727636361271068811387279148977629657094313540444727134313062325467792805612855421717294654658509379084499172789025945487307356010799722442485057428096447056916573048092628138197435683639696149111784205985442333662926631355458611574608178817366233256174580286392658416029103994046859177836878591633298879193795841536598475038968013026186912609787276081241585020846613236547784397185475193278732549678434091554305462493744009889238522029524681308323276189839401532352932801304012691740678631644917692701648319593304048377330898919863337149222675866354402129417340647480183204984188817663793925186428083103566631899382198588293394770836044542596186949162310001945599130689484422936154083044312065171592228201722178054554809701703128619639433065110773843282378633019160815601365426017390948395298901686677244776924544162126247976311426758609860627525662580690267468538528538837747371325169081834325230528343804726514518163181690938869622736608779696785087236232827704780613603966978416950061921970850687488471077666654128575646081674795664443304046349790110569986131652144288968006695919756840534340173664035296239784577638541081197695785221805368705622202379794386393008920277181940817028435883049585163122623834622502463071229530567315204882892381345531322386153576542551540739830354149376575319206140549793636054249011625735832125781913860007021046031788109813316242250170931008340491357022814740215326992711099556292615791787045648724898462417754683295727157072778409745871693068020958302828268977282332787378415108315683469716735056258731091323246871875165903683488563837047516474437012954605239540106215689898618168006564316915147780629866611975520683295095099255019238610467518901300731417943081030490848555525719630036606332486724029764113601007014378804949250575834091158305362712006255290751532775434352443164740247447581404651370790093659660430149789155812921367962232848978759517819388112647774616580112070509965033192960955221841504627194842648440850205932409118076020774210570385853479690737901557804706170359421179156932799565382862306088713450173337125264419525087423785309835627150748324530591318359623129294131979202203958000565220293778858425330810524513145020110064709045723781945109326111876750785998876962042337888460013216464864980925192558441767883123236644144698491433224048928041786143984329566627331677203998805124837620260777308791562480361159376513368365561647654783325638134399138096009654946874884981481416998069090346094314534669383710284739437193627006343479367561895798901759308502778080945224736804376006158486619331632059729345541449938016386202376269139712191222611258431110332919742967390434535781800026663113415942128527873254079812480385365274496663771728019187319071236994382050826582790070167456988873105682736878045045193358895812810603939887478283209820913355169073815402750923064501519639387165433078830620517480047365811330048403360465248435549770975538280812949096229249706292161785682671488690530051445720691276196251532161107106862036373025045938487178477906358793137884749476282803096756905971252280402127136561076014354581482823050031478418240303812973856574500332805517898483110956881485966572815834492749047838252010296237901445032971680138378508098096289001323993045103318714417455571594550744500532212490778826351201714732884721361771316587705261712419428549638312425503906921870979547271709544251372451823045295613435790980985258518509074416515297393556281505972702481042724432926694216846621777620986926030517912041727692092528945794326863435630898830193113858027836587873602117982976410635914753673813643223833118026010015662947520699577500893243526945275143811247709713946641837472120965960820327454172330998398606738840861293371840463308727800229918779717501720429979292747788485034915401103833447306162913070868102502817390353469484169381115581613219935962037506170657955936605774806233104705563493490857595081402083546203721795824419214039528862711869204176361790105723182399673335472284282442104172945578383110897983252305219939209647665858254019244084882545104686760289256407241449026012632649385331506259262789392392965058784685640603412230026708468654876367979430290704102017119326980668257922262458294920023974667652720700635174050692717987714500158851505210676812951575325974804354994816379167628796219248577273915322011906411357091300350599097741640743163859715876875806771020792277327035254728003288530517591588395613098181369374370536437197021083480104077048279643487353278449825857668724260880713661954906264081023943449808757087470968184673773223814085156507240893245749043116024974429715529063885180431967699699330808098983054230694286341080678522982560613011358379197477645949585908988674376972312523613302844667669502365300636935115044217186829176189816517889285609317240127572069381425071079391783964319354031090050990591084636144758964366956078426716476475774319741585950936291276610990458890120835815517697485597145957039100630439846535533217676707332850642981188519329611010244879468730921727188835996001046323684736208040630448887837335250655765344556849171067844897006259447884430302115892786930429174117158793483352269252205033406763001808084310366355887612760538083892281129388767777033903101565797607373938629206902590789142567854219088690514522251529221719875488682671321148747161427962451581630261258228616317837878331196885085645045979109212896126493198892892706032559245102681832354180537520573175138238943181332268725364868477498488140201478213826895254627231685931844220528151912977896385001234798840371726201912450308814623986235511496412310511031660854611887259491110482183621679936767700056594599318195586084200112843746003428106951019738486877675985324898249748461944142212639664055217435768949715561757565647119336931711985903909524767744804160072535382024999594266098795021247137379812302238097406747894951175310009784542503300724741528723334945840524471472013032798519461398857470333744306848155638587504749613657721584222717594568402047934718553053256669055234393592891607272873395252026817695994403839214909371013782846551006647823024017646233884711019666884711169633978677182420066198604115698126643350531827445911273170485399709014000044984305056357709243290479503675674879856758327473486526917936792727913855473014899816019731446770439767898860776826957928584943960024987542090882696647501923802397055718040807199390866188187063994769451866552365529139091880668695104852494353097280925527113418958905613385959030522627036736762503350223359669521590176347513201898129207079980706571305228301867625420294531259348123208172484633674029503275400704673155770207773092236302982964180592056068011192589824832683071174317354560279488409015990367747875389336177120895091091150628677117117242231427292413570449918046452947838428148513586916069100986530153350138293963089361709665308864374115906355669421572392035954794098461745493193197161114360330973751442426479282869830445866699836829451525703988927389518970177432660767750167681215881910471726655720693726269169426747253186113806353339456070285633242409991602180325247741518545930677394516729794901832117330385948873380609615915638732846345350563704578031961849757501094353814098865549428634109674160407634326688046918287637244767319747617322559227803627273450438871293268294422757685616569152344828391813186983138331297030686957798076975762857696365192475070925737268471470662630393696896898776698706807837799366400729277886724206331992940989736226601299958741734146121574559207865443857455866247441029069866195077323529583763173405429840884880781328285335844204067243415898046848281247398179421815920019825863447678746536134560403575193549107125470467963175278251128548012089796814789472938205057868074638682102693938436192877155912534483870942382803610294551719155933695643322577128395188673571291178228518578045617120940292328361169386314576728938687447821581163872467158884415761721580719943096444395081048715534141798685509013918749183650148872391890003341332979706221296685419322621285004706744131719404254430327182838618343118649483541256270437418387383512760291113094956773596753866756354049193280708641525828347116182018429275362726581232243131906488403958603408777545127826757401055304595716940167415542536052312457752152871018868357272709514471766645155547709407239556050986800886793176859118169729701461643777352382849831154363904189160941575682511449491082552385034690990021793173592175145665413056824812552827729411217882396614043023533817286513373757430618614319986114321190181083367846604328660324509356454054868702196488188682163522825219771070710453312155086559778167461816990822192474009366617235992746818951241540572012070076620328519231235372366413653534183763160060899467468486514915924054372524416633474280275025619354564642508299420987539877792683761566253246719906479209116810104716963839060261981167259198409609517368236628250860560007185953740637474513694611479187267686790314998107808999454139270226032169313227819452197299140502858773625988663378266714679207025167492071739635243141313416286667089921604732927447966694820677806142907910487607444823086640422176420546832280251709296336964440917108291592171967237300432802984156976095868021660509188792969567048428684545145882454518307764011969923067057798149079038598478750690636850539117065409204249666320704590156923404507336754351985597453197674169943762625408807653250247367932834156132066037974439714233553767310385121008669795644624436190632418497122737877226169971465162394275639532973365433337922372545633111907963122788339317934211066548048451382060071658244470816533804795915343278042280665668150002315053606369546896322520628873794422018244974653769706947033176891631520233986353947848636081479695755397199513469944119869741243941012540717007387232627928011816188318343214489449146189157172686366402817128735897964808469728889677308973530398772434426309949041910519029347684961298277454167521709824903605750973789927178426977781398753874124350925250840797853564599663699907604784410791440388932747774272772955636572621897517920844033127744404933609549498794355792837358623037762701668941873129425589258514954809634646792729359543510849334733240548940614013259781686836450697148386053401300162579601111425229665014795077010510263665472702890903087903675493247247390792043080415426215879983458733099797085921334871441646993399848469959658303645172314676873513153553020771927074381559339685429980878835712874039026255977352760217051295025181854630071264132303779936525527821887664976850917127180567626164521302015157348630724725307216613878949832343574495569185334704614313747691688978322030043361774909769537483339686384094478913043847544283183549267221563580191985716501384931327229035441485607983164563689448375015986907699783640377013913960549909358326539864711281607754620005720956683868889401699306610407622900489100541994153255820163055220695289352045229901247886923194998297618239352362258361513514631820006805303158762411265877440873635278505626117098026738072997706850592521585236717053106777763048776683978813484979342507183140849858680441884283187984533492767044108294537333957566380456239200133605119929971916532838501724597085779354006996115516563489810833028087305445014736378052866427914442530513058561376323669246774314217602791091999606142893535429210030684675342106627893585704614078021023496103814780274537836350064165168473768346632734989426554179591825476986331467914681787406508124415418428417061890041129868444905540257614293034979785052043995280446754504600244312166178487995458860481067118480504148994298260380981165530625615079552719356979392269292727369425137423359514014630465819680084200724564923401461685370720243128777633566583826166648113301643160020375918358292422712659515873487964858125461526701722988900022950409521181415480761762962435343188611479708871811391364189308230661187974084099487922530432452948514575284797318256330742505562821927561462784212165852321888278571169504494046662457439241814026775996593402665323325265004283903965059047809390969171223167538909169079247381098912165774455756339391130419359566463613889132457571983244741240510188221993040636736114318466291492873573061589571034991483438847862395026929072163021383279712205745387782747136604407627840557660061388456914664164493047707235195885959152019895593156503879911772485221799925645089282587049428351555654531916881599278571207444890784512440717530307651170572387390450151299284964942410732288911294220867616637414291182987386312122161199522683615615105310733832416519579401764857254061944526144270747723931685844665351942676236400563537070921875877539077762161418252471476442781874291691133132854538859756014672190811068985586503025758776239096977483131598023046251100073562342389007046785579632733842295258921627077005286508974080783181401049066487249446190947659474607389426949378565767329249319445902051768098347213937665979797131198669501595379948977646658858769099302038751633235104198888238304281927205634158447428780092433925683685033349855759110401083824598361929252853021744842937560723201006003067831788786514369922780596270107402136601826149813018550030174391738122576332158157691166623673257695407613241738526439328205194172735453806776446562748034157961865924382203899858962971694509748745737697189550347522155475868190337306725849839160822872005125139941334152662918876231166077495679096489415225038049463520162072981326959103773295835681944525930061250186099819495263769963931384681765883356518744997780425921674487398225335781819088046301967780574286604341227430532956133292154984833401051784150183286381851171166710772178377056977811028032284575651568273743109337968508510816374986238761023604413585714265764300268891012007259044286975105715586485628512010057655350946825971607966931572437627585115503321665108524435299940675920703079483375365255985007307066695868402646903039930050981995277666002819016443641901484245214480453154479670343940670030430595046946600074938526450617433655213813851152801708151025169841335059493659808096429546284101761726749125448176762961221982430577833084401597025832795280131995883340157378972385581924720008974091554571041131256640529108599346139711405328927186398520423138091950912662274437509313138838912824070858461864054913724644704701554048062747881834853643663502696459542957810250585209869334787129058379278603139892340253078740874419881289483058828485724898186485743528826936881810996545581461969381715634872194623805248783021081574682552247902770961920405970680601921337219050191279686883569548779801929832777436449331682463570246938464564901992193843399410935270904670289965985723262066467743362408714884105571845623889600644493190468438159480561847882011192223460981044779077505559583215261835072294926615062585701154087367012806497838814448850021649081996547133409724438553999076281300994399698642128311888389258579524429130451722423538950741212308863918993050971209636190039123673191957711861550982747338625493595358822069279289413257561358665650000196625291748453432092769062986261032657389153579002260264997380006588094826296084138193894812294526185249699221953506002724545989737600196597516879343855046423892153109282964883683992278663622626432849753037895709357433656131948171886036927396937237153121097937942655898888831628192502634108967574547480977942199847103989135307210562463172236524609575893845706219972038666077703615238445796479596125364214905542023096620793202884992236166040132390009717228088940279344328260898861289597730965354892887789294895884459826180354416365173584452202788342993593023749480284132988926525187660390572042182983109179617519972443128330706143261073920359811481276144793399259197847822147843888743071728575615589412497028145119558050609691983338556470023198501158732071192435055742161693065114523077556969560324537192770891602848953178416026132578449875677190758931502590290266702704994763739954561779354573091684208772226492058781716339802572237153887176355049081995378010286714820172589219487561544401635873164940312399948065028932796974753369212148509202318700946858562625210779722835194655967764779372049947472843574565160744707224703316007427953635079615386776499704887581284706805462225823172208017942622669520589122575816902443869107960413927703180158021485959908964364340939895731310154421909146503350529045960977091415713863862178727743049114694024681960148333699499446916813011622393440950537983530717182654568666464977575649764757952322435342889631681004289749920640457275546010274570501193366155103449011579999211243718454323449930013659497863025714397035244600588788825407307674535224565642120723190810632243569425890534998503787481228065029679205795634520246375021824370660720162461159563857365148341469002028465453624364671281053792526135199769684543292029431834736498191490391775519827635392241135205498450842413423920462189125749426281493595618763313844674269134370980038736325225963620021321822423838569132157953076695436480299822526946933699039926350102743258176382130994468909607764419277012618226398623378008000637859338108835090203402516319425526861979199610608063129658836284321912865429814059417378320115699381771267284358127198334463901963751391869159000904956401975782774938063909162035841850976932234894338869635929329285534592593641737438083462601330285663757754382108827650404530240684183711223423998287964541451139434638041237375716862584168858989844451771892810398136763799362357746037800252841622878955791947944753445556226839332051390707157527257510549033891484247635681249110905905888612790337535049935396832224054018721803677053633109804863599599544155582946389254887945273790055105425520939072127788486275605732126925992159319587012424018343719732739597329206250262434174483042759162577143366546618268856059589837988097797278724403479277126224366829232057085457210326657544620558446285276851534607291437112160689450280322601241776374134994154959828151759933560490705255087587472518356406662805800051371464867550415169129626420317904450082684419881215726073691761663891450314154614576319705041010203464090848673038812631441805710436377977397920780275179658847639939430653148941982783963530490192957390148432738057329026231166676739717880922963027649662930630816387457334211768598445948758808500107154282736919340982917371439368054939283693664549399883108988848670445781465056312666366863029480637211804900844749745119200675117936309461350168389996400298300570994406636765672761748602103935744911962989721116139903267438999244621823714890383795349405640965506346339969505492343171781529824413097695613086682888760118288650867473272542023589262409944520827432858015855607226620772735501246449203198015673439105305501324166946755743424821036362199138160075501110937939307025747230917929114311969071112834089019662340298807711194760157020120864051425293177840317051408816376005419382024329983654773718310827258081582337683176187218180644632361837700355687738654681333106986505141665553177385732090488584155486600719567132412038272072859303452191138745811951106962606308946682930727520370470705296748872041609624642291984654117875680965828477938417572956744014521892113492999375749847961670911860120091951425596625975159136443265596659162105658273074821034383868751416339144366877793756189152202819840895866482511227291565791402532796903258055509180028254866862193591098066315503600880774376214486369807323315801829064474580738637641240903983773807920613536194776717202370694559687308349261349556412224752157633692494639468309779135600205273567233853227849961094731706971501208764236389728430380295916290355723356015929965340649448092568254217116253688500174048039123025123436647003184092679252995262822402456671927610159172336141909980415786953342501700186002405177375284265151146425447453017367034428598455217152376168590944115798411373241385841887639716716731471769803876085099198818269443134152781374384506457742915897851720740786621603150119977931980601672846650068583671455897258940334436583001543940917923709994743715217678268584121753811824336070806081933210678111595460582605272263984689367816557408990084232028046022103980254555417192876625487072535919582574198915913825274466999877203250058922748173427090202152203236057989078409843613688896994233532756984154483484650031259655380858029778757584153501540038411143932406833457202358874962966051284612650320055246792001477452844361355934414752011817059743268225350098539835100562748028249448996931758357573414993805829192781187291643331795731958313298618488390125054459943075483408675703644130755821850741195985945407058262455599096156613272121285537765227227464815202557488573785476390840875421623116933705466151339149854737035732233797860147515394202415474614847781181161265879357952562831345109771226654889132168774653167401506146175446915959602263470944312521394320041593749181010404696593102333493668206735898095548902412229603335646010311180747578065515099617877974160978118274079155503248844559971334000871713563823613047157891341850085458453459953828455620998304391995641571193673008641598926375063933474269233127147438648582310860539242945827604871166730486919237152874356632791030363810368186365748774147688044136797538194692174313190249376373409849480368712514363386200455620848483659821566032929847046895926492607591517294842335983734532274638405711225064491614074365316151156740009863078578028013855285379263674472199072558489078059017306375656330970357850111199583168400387552355079095728126602078296678781250217434870167493910691257758635816390541624187398888268070013471311489202420380735217363080787376734034077414864329255527554062664886758513500558800722428012079906599111479186337562745240012788747754727389576981285638952092077807659323626841483859393395750970695997915068405966472882875737361140758026143899484712381959567290947187839949240224097132100071725612191224159270004100347373208500371876193148404232234063438606442644861691067545607574888736507538857384344101204608263008126811059569375184365572786826641665963020720471022708939671751047836972365038986629572182166291389642473185719794449578051596798221464680647764139466060690144192864274308468470246030502040946166464609708032185220569134908768493479854309578746406073865287285471862898703602637750867020667708444436056912658184774274743684119956791990783124268783594139469839973123004466072580357203185546809147823178569555064655791953711897826250223174544683452903849263639009121227334948684015553149077317052365478069633107854059835989530078009750381159703584008288344242473378719984955355372623257738715791170654162024631646330200985291577933980667910152643695154034551549026271581042142704693779827326603788936568917563705757060282588677030610040487974021222807616336848473245070927414568128423265987970152907852533670202651950768773518733425408440317136026423106247999096749248514384540073910678523290718631279679839345988182079794430158382544301275897202708453996710774765245686587718496504556927814324954883415613592499632254470927493369753854872439730184452546356840622266207442123729084061970947242655104333119227964300092486228356213638193828871288524330430571962627512011129394818499471288721168492221795161414761672576413751722168344409929797122787498661347403624019838071649153028186942329423340396185498526153112976624100056041711756831896463516161190095740971367567801244869609597940171416536680084163721010179789457111468588959737711394314080253290369835591122110157152991588450650275512759220346356514316953237210815996105201066078832169956366670853712259133357639829063416302548838089783630697795333543314509693422937768704504246720600504082899156186986928318839606236138657482047886345806535057606940121997857652332894936618194438046422623049078083212480178553619998649829376547199185982684503724828974965391107195826394220578039482022367491320515803188256536766492941813491571969441592597763906636968190702335598589285644542937613089151427700754812745221730917799630360333792260544894351807858713141476103012256823889686559632761667336601479776176060329972798986628806537664701703812814617377736258299455222548291518600941391409401905760986247973460331439679268227821243157746933934061272701563021023102262461583089222315754028575116707288689572596301840481111948636800070121901230048726593361498932622798075624000887696795457987737520785918066856290100887481646751726436091480406184275503493408390320341903506714220630205463584390386172702301193454331219519056081166240857426672503255692158518839725033860245802916375891353403432010339264391183168750032695659328634876850159166797275860867704770668712816150206495917950623456256897017752449418666193714508484592251983104151135960388086058117791206541605251588549896870352117344454177670543844768097058403326721823451720467526611585731191633975100674970113834131065041397221493830685585641962759004186611750349103174372710463273895490494999448312438663193050541028076009829027517963937785205279540724805652909552657801686208428222380350503308050908434323064311386474905253435931020636441629437036990725451510713050406043430580860047520373821559770438312024875158055785042131470687117772241277507736977072024701353058451408125799646990869720687097944229397085917381998407138779639959232749104568217282008151474453639587121646636051755685090835328826875435679518976544387495377061718070657970759342911879743385586300711986215411347469363710955258916615552855207016770639189042870435209253813619708920238654592419982390992404258034822395644132359078944328655541210482199325409243687664716046807159982063793755988849511875904803315003111860829082743283553231861557513439520247928014131383410072107513691265828065063860373099697393391864605276645861288221833356758112978611794874173574981304739803506626441590556298763905343091141976447021141634677938191699077966851097937908537067770174697735288894598613503416256373018394345484493668767160399660529933999263906700766497212003406275012284837659647839636745671400827271304036071309256367990724152691684684899879312960998938806443078525859120833363491909423570047520946067073245693501637117872231231460301146928467042195731347652506754450378103044470821024642272328639053794641430782297327823844272952315180359128106717786895879145535956634661496366864211781097659621273665568723130770528117934123776449440910846619197219426274210746436986497242750272959119969780667959890038867151781647435489607277525135789568464701987914319982085448197018289450544804438349962207451451580853788278188590634493344427949129915346558378109304825801431713144195343739246527191214326370913065153111257508946302640959153948604907844585685117461548668324288155476950466904284358912662623462306904983977515529943336111563528325693042672947412391215024663288245069275321771516158010030047498577125372859142683010328577460248088338401745990270507245989629593946764790562428146483757621252337076439590174592530922938776181220905251190984510486412417527795646942037168254190930822856346724876811105355537186988480912180943756592265257230708370307173645637987689581809179789662605498093226448835055913172280204778231287547516368570286211618747215109189174816958342666870328489047644276821866903344995560736389657919057070507992288676720211070254294936289903366726916530020701806575859791449000492793588016941374420887015958986509374743842477468343705035820979490237998865768456650524824542518695196402413751875936754916029032170663162101268274789102416086472218343189500539118394931487199338440933846458173927037381030313375702666531551771286327607867440658926095255404802240056470063007937775058301743646436690973669533946383704275571304066294377182524586781628658753580018503733580964538522255769687593363840987724450045603053848139496559806104800802112593899211229809167950426271002689379464685824633650303821054688396882051651682022965682994609500731697090129312318603997861264855994295526422861212333996861790337750363494778958292110610350432984487819552932242423165738038955677172012463248881573668024006072455833083441325777134039229385389748331813938501204024330648752742353836659622753456033080673378127708078929619848049498830568930344528953932321700024478189978327410137691856667897363473807083326397302755790555080176888597190606640601534953497006064161878954205205910204470296627682256995467357605406367683961340732706038210950114971885494227855432410668507073485364991695727561092237557436877892939491824617673795957882573842910398072869755843111855324254198271559502335924582598267494780807465005607439659608818184582837979417727494472577525056181511622348631762589991689967659803110400530594767670508768946427436802366577783312612921961432895029746075596144111466848600896882914615848056206650958059539615128057445207468543607212927646953832431990241770206096267144431356764494784697458196142667277233527473323323588482004560513538605342314879773911843617495347317261387507557375645026726151510189081407357889469551186730619348177304681561577679281717160535261755287972322599373839679083314283417275691772804895578927168070650407425401071086101721805266484791014903419246102642275581612610916924940719499144482025017492163383665721708835219534255006408654461470399865690969033661579421865560203095098897996475836474768630147034811903765643352559823208286694649764809537952251589127576370733068954003690910280240095339124075846005516494356619409788768950938313377853199185970205085768750699407107254302422746046164955271429107097185605421020929983209381179540577360789009635891999441261093800155568018661948890651825285660004471125955031096701358660508297853770081489908905479289853897846459140429890880785297800774513880727101747217691495482953211811188725993287246317200434540336929943432145716207819322999339221848859472700843016223457149593782384410806640739908756966601745902701281410568100448127940595168617004211309911901096735296080593751496988253009361799151978000522934560255898737527947491766242399680007485562543247073643292861346174884973040705754839578019532258446824406433009813186214955342591845158281195835569444897071870308643497276125558719341754801524510115378898886191603954194204166676683919477156591497253725225080255210030282392893532388997039918131379910077820650965201981489395513035698552794832646897238434204279318730882756884571119873444313069730027824757827095442209040323573150643734204575335724715648219156266050633462299876530527874872097409246371158195045209824354847817267406845372511642571790104677173685918741746404435060090657207321753116496168527956357772100915870534166716453894200168785142744262139196470654794597033111612550597095664538350105587549983086089188521996697745824930999719343275117962259373971915267681686590015920318188701281027307350704170620512855147439827265056333029594099659069724047092661158801237077037322940283588149157796647109539117098325883797745305619410163275793681976900293159770188559246420235338742891829014594985322635628428390738018660510045065228267209502145611671086970832639302595607055951308011849753109470612648531984035636006443821930689300075255184653212795831727807545177164709587750092191313387378573126750617185643602369884615088538377434776891705907157772378692971839066672635225138664641667183364450147032582682673937992258672476501163241476235524223640528096819313744607992942569804889856874692528537628010821880702850449785741458329699083621558666675267812472353610926765783220121897192147704520331370762625552328244572355314543852166016919735947714399949529621367882178345705696747863045976112539336339775762748939206614180839421192652502547861266553314696767079816851579403903459122443948465380543071621288403880543086028670673768017788786614631530331138371825509412377593117886869813546987334568831211676132342583112108242424076049115934934308976594482420585503757429677511583585412753840131754936113722121420381429292321684339593792238286148476807367383507936527514622081695255344178518754256863823615443964914642821276163577471872255007494352915809035109840683848633538329329713063964500398770241868525774939581298287816596932911386111405904251171475812100972087291610273347260183157981622011084618202060066897134224548596142393967017700758974557922605743707993183821473959833179354151340724412234706683567027761378318016963986804767648420973175857408719128245475506996997047301499045151340137901686853353175422011323424619102928134371492193230910649326156065851227012751066784790988786167666739183145705798200193674892809668309581078591388473453117216116753806913489532750018514787941461852609845202297305726564232184103081800071191169358334124473207259864649200437759364290848784239768247044174617870415995096146984469116159543343497767747878132445212351439981180103487656645246843352600270936735949974734712820030882301088561744892297549844902533419057053123986837291349398292967741281596013147651123186410015759905212350141294647045367770217836371768816936446455280625992375320042609728067186369005574762169015150281423912481801115618730955099179192020978448077563256767639959427402492029922142022536696159166722483886222191492440930460945902642439503653617522448104731444707447557521751468758366971530249395106729588016812276081866517103110066893701744440013035599156267651421863475168190888668417397823509946664598098217445424554813545577027390585669141357427072855396768547058302426827114070120405278099916984090253125758189166538357796729382497205869733706906118721561663431377482453334601984921552689915014117625852376173552340992340148727704813464814650217919651749403760366344675182479652357199759895945509639882431132460683787488587750398909464987526674897921675966740090358796185854774029709846316460498292081411640534916170036459631858259969368904881458021364247832302450187374802146229083066952596463280678112601731861714863969774833286965741251309752037555235158740077117113945377966560613240343032654454903212355473800490505289918742100292742539051800961460858654953533775514265197908378420260941250309072247340790450579099691385074442669767658680169374349955825818764602726612687182040089648091674532310622095413172097159362747785712127572810823571145479428811966774783574179500109218875462633549748964137388442334680613238767193506020856418227310756384199320905688905358143276514778646611386839167676323586586848603348943314798000581568264356010878284321037357886323952368127435399834351215373326849344116005169117692131383895911043062766833652665626353831284050040948483448357501940481437585227599279324368496238087123925607895249287054079965612571347018083919374147248100347169659132294744885618853774255519925481939528003330918521109210223423454724660689615836275990316440948556953433230434083916272782786625479482094866676218354939460960823833551537973877672396944960417162533634349960589473411885584682269976889499888628434522126091623239611786831073944503923822406767340151676442332477125429828962941436799790741267783890205206067875227415723753586842535900077613014466124531340503309860695598879306012212102732463273145417803480515904148839625606182046292223391958341617731284446478008384431329193563501720133513271285766321735491674930742414693779502284395954124785792751052553396042752569941400156802424057952009329070794731418077571324826360252824434298028561221650518449997929593637512346253801327369610353716501895304268343538864840101887576961672455989967368873834490865853088587342946477917504105426684142159897725473947811771002123365573947484834621644631145568960927181475789363897476001668711288995185748454210989097457628106347407684348337924617015143091119690370774288709385550562830639909148806682457004902928017521426088055947614855816207621750216991917968644031104477476994386521941685587744310288366548902625951678255607931861134006302767292027624395538935087623262152579386355895271705831151417633293321457070976458598240711367019150668780007198513242035746447384068336256833905315095590645511168870128302628643166847077837995942709181279842015046944571246279381991952439230084492428502545305175782555792456822340057968999044602658589788279702905773395998863858197188284343336392403425195299598322022711197129358781841019159077761709306759569334476819765857616914495440114974880651289367752118336342954095933053736088669773971180836145862625014480250336786679094343090643872630085624383548883189720760150699998339773632555567950122629725131472425637069782156547997384093576202082863436847253384756819589536200506782235986878802698291408041531045371666995907010337024340998617711704134530576541442777821543381471091118514651701582480060942306966146565779687505686234768562030470393831950838856740148345468493489063902108466566608989330444328363727068870494641579430333585244103000429332132693933435816818059301216471784647790352349837215140155369481951773236199301325649244402907691904105603143627762834827868697878044282029215691963300125100285288785799910803979190286717211573473115991757910121366313327836359765036773172542028453035165822926776692749433607274579855408671087205737748047193137992539605770510969012103177288805999969880309534665165331369073359786419917736109592445988535977607959960648635749416281144701683033038859229671491208905716398785223771426830327725743046087497900434560471580209684526964278447372196029163692424152871423966402348721045436019606920504901095189318367793869584506380489825297904547904830951319593678994281145680711059455485168037248671496877666015125563235806237698368284446074128732681433403710856655118315917116026924547401905537209526793404547377957416355154451337245134996866202223704801196410519736649650343322892467538468997672523671370567625136316214165291908017004849410418058271306317198632506193588118866279103199783274167452683013394089453577561116882563481021499258255787857340427715105876337742712945187848828204172732245372308727037846108802448811226552977508597013374918374788756452865805148368020040080310609938004971398434733779677199937322607809579096531542037423496426969365477353098304606543454590005249972863370254507737244295914847275117265319893102780640551316680252209506325605808968563080085619464026742759286537718643064286498973960008307613415044312712971957930538201922503332630926265480214624803367487673733442851824946929621539299767408095347233006876701813476250789396657893061015381763286621830242316600067529860544708372866909539315644873029345149571438340353467350378229081622486705892551104676067295795502100560057424620106813357991455580100906951612715649344465372544125444861952574334393565288487313106727944675988814180189079242241332746598555352589152809125250600763170011990256965443850470952984826703845972611325898130489078004022785813945307629462406317089986710945635978491117837185951675126386942760555672097417138927839775338925634722723292066244388403117943502024615157573390134684135415070745579287954463321104550040727083762910838332765239037335866754169983544623579772350186266164349312980368579479989229844161564604634305480652690606926286824397186320186687724882663751506147532199039209998979615223691537594625798676650250195761207624532996608584866312253618992835806049332176401707723173466308211668006231497223751639443618065493815976794933202506301455548212315504495445787708946661761056444496958364780334258310530304245407230971974857986145044119299300252564263498655347627237005995280839165781318784141040032528511974561920088719431987936004401178937742025834014750246951141588857759203952767048814959291372595877605929371579318654423250451185645730920403348359236413203179631595102254780756827254882194758603901580508348197279769314004985790800387775773049766262148701403509032560270414962604107897456498863193562439158300369603258581422559143583742624239779427982334684622382636846879157023000446006324768320207871334512743394020646265164421549903717856151674548158374905447935170559764789666012708403258347023371716263459198681330776541629577883326130004307758023136187820390029203473075588720099161904970042325606579902574948570469815106680952623355263993328498481492872979415373831065923994353541642810045574883194081444321433792848435352921215744431969398278549437503125469113981126123480497022093814529314474465895382849524450495858851264076758892596169307743639007642129108008348847449032447591140149293342987810524131758392778414699565019936614946393741706697469917282752961939699108419843924505364608646986361490260220617692532687359992835149686878199713366222269957730970085495358103438746185390821591379288576630914323964749883243429254766483023150550901227934660177970618329604029258607200113860007883542237162939671376935995022151977145090042761126366778217805111635840085109094539897433463352874284790939760939076987516731442426331438315545987455250772903548974006751995653920112487242143966094641127061339704284258455841200305664434995212230164676147638867026141291786805497948716278726761781728726564938790971210417086386331482470461514442891101911567460331599779767735529895451623063637017782566242475197896369121104045392452393050844626589108541825726539020711260419389681399000984024812627354881796476752304625154410124662819620385765083819893862786758820977525495620503369640573530793729745486841644467519075865079450870858640298514049831096260379263890028044736660463352963422545884822851516120283891100677710089261702056059005021895888276245439211622361623419476970646930762079021693258146147680161762505375928996517871162895032436970224680151200996771705302262196118238355732167510935705926930842672002712388662572162322926218688426610231611657913557245137419999640269849342735464439121393161753324802129910793062531658344925901466775718980050438900510404377743089181752020746116339341595923099843608845808024642032980513543803956254635415147604730053790987361619374902724895417427045010690533972803409777685283513713954724019686500209436973191165051219191511836455535027843796599447640408969939969606258280833510187373126578967696463441716986371280214985026068010554614722568069539780550681703418523034209617613074498668241156947550931538001515649187439155408069236040750047421269156738684223401447106431153821081152818173948710991487373717759013560101874018133270917151469948213159320324209595482042498897330236806947405678636850995476968112102738740196765296395040709338915964829639671752709185303551865299312958496879634210726009537124625980741837106425177251143785685456836674233714779099943442989674749010980295414332235240295236386688252876773633615860205881647315553537700307151575276156012025524445408429017981791033149491931958498892707897334076868607639111107847416753516652302314593010004715197449126506789779375256873152362660244179975464030195780293687323308414582131098275257872533386339381898358779432799547366848033642674285839784979367738007639477460304229156971981025233548737317356034251091939598507507596208889887703719704286922790001454615733753343310312898595267778029051088542339913264738931324057734854188604652735003712089426632393468651186673221419421146247705580176584752101733448118452613880437690738276520405316866692304201231655503908984090976776155605332353339560502559078206872538849159084943510084396791667583417575317878395290240324523031695347690735679918403349893973852471006518732319170865366114243523558531209888932792296751258457088477664442828672747910737192158566298354569693224189405125670666251739688816397415001682855925046028590691189654986647556431937248296274124383254877618371464661830013435055848744954548674079311674309198047704610711150578095358020419248502162347048979498992236822051138448852189059971209570407463586226458126045057483755491113664680921288217161592785985343439914194835098632958928118814646175151514731927515196070516106391225513383860115541103910892346610582263050109943940062632949700472094499930561922986817556121314290153554877724837775977008201923476041041489529270753056349221592503880010166236888456869161093698671777806154420001724491690623029938668769675401103523928024425598637026810794535423007159871777045969683734179371079826603049014496548417858660484269253493226749843929456315579731642345781307015700728625951946648929525899740249156936138401887885835329390311379052603703207496401301678502551249965195275885700389276597486727312831823395285756172918413389615457040518206722825741057283898680216337278910329422455966757380923082663031050250148533225091309817229094403959635382400577013246266306027243330873072076277934353224691506030195821235544009543114123878936002422437818389403514397073658116000162081724324677235473527626806546015686296397505305638920203034167310139379528335405041408256557114385132510822659867965188742768607781338026374075769651803739935220630264899259014235692882850414483603389957305762305751801011626144748551014411153751179377856191133891578976110598464856251719190020534681297684053170649832153457871460255425381921572089856261590916751815580297494027636427463090318694159083898364275974376863686171542720721920706208231920058069238198554177312745734662648470304158564812418855507344260616256250284852147726465324183927478269953952256011558673765452443236844716304021528185061580688091284781391886389927953700374260241057744830293506913211930681652140250134417410205063254000045184626270348293699553101920565929095313975817507652448336500982613373014538201471730889870661245547756356838735270529801664117865850983027435135917864597618537742246234292217862235938585361255146737812228525510592414799138455702329825345962800982035597574381409534702734507863811251052085789528534083909450679951614911571035342878320793644682528666271585221678532772632647995845386525983120028256996522684976614149993916191783726069730470411646802081286768325811168989316927002265754313800177197971131803178873344340884416863882291839885841246976292061296802714508677255107288871453192277351287400555161360625000496003791050627969488647547358718089134746248017639334881587738202554934883614634784904435275768342563086800278987663624490690898052407499523378154488814298298572612225263718487529861190188483669753180857698073651193614069664480629422729997761626541200874897483503370222318234815659074489178301214371000562181913552267430647888790808261677936445304922650700059752155377995060441971334899980848410070711287180078129255607317655157407698866759245796845865047841572111766018984244590293197890675844911399570768822415367986941637877755355215750770800462882921699086519895336981610233631077635100319432681958623658783031095031114981825180548004950171946448028337162212725945028361812204342067618327990040412199832526420963653199060331445581050814252843174563265987230098253188392422621230610872707757497968783574795701613222522408570628404950986315793425780057443384072239933263149780566024650319613970657838410057490888845380089855529909474524012101010912972631741651409511284320234710359513476592241079992276672182555876382166969957242319533142682883075632327171436224698255158989047955977417276580744404727749388642175656703348037544602205393161794741727101782155601664764506086980886637779787443127967165551162663488209894068318334783082179547544050769047326033741381565883283818222016683847529352310946806288623544345914031782760017505610158185672644918241726596771013811132229203541667873276350937378116606619631782730272197660514588725328246770499276970516641500531898872978044183745899965808743462539753702985039698834852028820823194216951998434866745689672366942233218335253901020891595588701531546478691417709607050521722088839948089375289449999042465073877492587078530778001869875625913472884949157126086341070313252370947373194672736254934748104991968110947073671172484932247359202746577653005254215736261263946149744222643781369755678694698994885942312864109415247239987385674394008343042617564699047219023013680963738270144599287461725749041034662472647668480205255440210171397816334521371649895601593310453738067320773301536046445858404172241471854079150561513850745398576493417572082900827128367487560261778056285866515092698557662123587753626930788106982341443441601301356957089991096636072072419623756010563496982776119200397212561039711191971591786881352303322783458241234939665626802842381734600362696895028463748656835988641674809864918899682758876145010522789817316490918006911553741422104650592910388384870641993454080635905532540770378696214604138743331334544455871540100011733338861377067398281298048518561782372709297503060910881637072532853611859184398902137382375455494415151517964759929865963287579389730113443140199572202207791253446284751666950115795243975222478970707023946473851681817487932271999102356498293497360412555878447900445575193268363019685368938725898539161747969990199853850230108421302256738479709468317769843346456300302788423357604599856270192487982357173586509299238845522335659125304046243261010428432014850290048097224317135949429423801384469720553036647752309710607344488680396177136140858599718589646348517629634199052749938520074330773735792770099140055940318228978357857583416474892963487997519682061844957431335167878365735990885443050288730429244880640408717903351934535323721521570762098247352245200152182865852958782002101066682450752216625686742997242910682106416958480957995514798551411264098399760168708844632614995798260763806401823617098852808876739397706249510820675692937609095510979073307472618614042224019239291902592797653331338472075403985344602336270139141848468889316459539502590423305171994390591473550171411731027289935004009011012606960236215123534902234665903611391867793893821274244278671344011035995135484985642306612627830146654488174875908436542857588353742096229010267399969441680621927195155366120340798453541874955586896196892238330519315128490875822857875599788955558386309799797130614219044419069451450395474679391404686447843137319005518480781231631555777668114503298709809957089588767568465573929804948031080315946157773626930696055232127905013350120464158903354801067938661102561708120119296199300390824546827336228433574074736611051888056629962366486189988563669064267046298699599983942623862676949669620053511227623463094588095543538744575153375654012736224675031586922125694993332971860043313380165834812492660017340239885883193216244887804466143733535558148224580249830170978986148572181122082934918181287776756091232815553539386952721520879549837873145966538920763506474025170492176696421057956949591501973955168250871336446963082110997054975349941013722038864667573915536788114854776903495242813071803451362286188731845107414377897313438814562974232199848883185400989633574005113139598495753773413480219828599626530041974627452355920236138273157339707402227262674138424023460922931502480226596952080195084147799634697782762743211303002066923349007627848779346418402881252286512983451464334866028559631027037347620641045381362826873720409464035801402547871273380086791617036835629887270608596840972724760931046411713314543580993814589085979209297564030781561538530003843230367445875832594986032087827425201042753098332857564848349476731052126194297210365608332098217815306036874531586083405140270623284698454390931665693630073333269429589136808670789126070704807829541847485416773393256906090333763235206913785993675764848533226690225806043747456414116037487038447914380850176990121933014276364287725834742466070793541607567326954343135565837353133283889339516292607086819747757585264825998364990092769055489117898302165038668547855589081783328740340521212726214322905744935225635050073903589013815772496779258058484042917584641238371038911484585455563684108124877311979852273951326203959458910872102208508849570963272457729056002209612765096146474092212975241613686080117118783872465886752120429495315352715085646876634840889397284351826499966893345259003881410321851535856154521079444058247184858161143915485207168970549372506241551683727994514718868209429102342949784214092962712231478370335707985199529204960370262890812398791462551152434765118507056598413697069761036691629368857350956872866316708315463030380029811172488220802473986888475615239614203941920487687604973901151130846082956233063285772949133199062693753496165782228546496275014107890866603125344915367295135398300497019422074187519248748216791008470333364893862437883019026560775507297974337358490375401072816224195676446155879801834094682346686894836961778133935858686528592838928821439101404457957297942571855681161275878551671968015939100788865064168507968276828341300548670168691746178896447939223043890172212910825509588701115331795352068718877831979601300045833022673432416368152127453668845356999353882797642975670106124676309260347438568217302245637397589641526967210047164569596944075777395040037112995940884948284621260545852515344548844060569681108723896193642169675587268706090837176785018178122770843507376611192867864161360424989221260990839262712216212254244390118575947339193133305268577996318417420885933017184231439916617911112693966582623715075153596662841250353147632446431557043135670215918869860271313040938950817579585515092708863730510201747473342274082246567949631112874874699517306148827102397098452530891483404548473142040887378109756702078458356681387460355846655936321276889286897882519435022344827365799855178524269900342386396856540608867319658330226155459077818584564540203198414386005814619949657582008359772031202199528186309285818507914973203312874608293631672900504665265797773426175295725970295822388654602662248277807371041200677493311594817052427165549902227920979548890681153642432904416753407087937095545587279084728375609469523382006209946982545313710800545168041893733775232147058795392885682923345428113823303922844944939705171637086262717655727793283739209312872419216937694234128669373946324033846360843569141621655875607043810491575005185051809345209016027518411552081910845042196637228184633922872039233493288253781410232620194065365514845764381852671320220005049672540462113640661800077918697954762192776346426893136078421237770414122242852872490951176644399823717695809752626609317377594228881635674531855452073143848191388358390470721217953780995125025856189391784482216436456104842762754317116164719850131147462572532808886906291591340777874300952527879541962977675468953260253036338939244039297737270157595846582884632240404610304628774577407970591365645238460141521431827288282490932437402919443079791107645626006381676414235357006574212728889690629398116557160199546738887008367093372311355635955819258468249737536106011997606199800855982389147617645765784444088995096867516378122909141050663134648580218956706925003764979416455122384654078587333095081695073338068511968406449389713638604387903987851557622369863340188885901602832867057802034511703964082090067088598332608293892796541967112028534600017047498059381751485462432860647102979516869265863571937023099775146236832242542430057963047185375288985503756346407758746927268726017996852680843566390959855478093512729220376635272012752543416615008908571185750702490337603254875194397598717463236844879029865415699632239705476402878806626094437691765553044306661323901946174660571293905171596381576723542134486578497368361526308758527421302181198276540582143587476447754920262505409334630890220251609888561496135631109162506792622813829469569761936124153282552990866564895480132762213120328587506083513954880771800670914992129230452984033298781793102573383751010777889804270396093741404672487921194574471914735301417714155682463108761619524117950244723493723741439538475940017440943363415174369541608613062398591473784182531602368094472854742928505516610467253890925450309735232911901319290078079741789369306315782258758621487229250435823945308185710547551923742777459715783579731148288277831031389276216738994032486345284223277322276465196169201725634670241183383536923461489053724584217293783538709472068063481026090118845937934448221198938903672551696651862810610418151350141114247653707425995457260193177514335579396485529137968117737843529122856810210694016713459202864557243225019913786550770732527099216316051508223631587298056336703104424185370550281156709347680722705988315906340323338618920750172622674798528268762497815404885566381004224998633672696808537856141339278001717469108076016392438173756638754883555274064659473980018791219580239586999279298541940814225859186458860535191592702200856239030232068596397837944982520571825471311318415291994845570445902345673283831958008822767727144620870004117558613100068669789043191097089907727290386288075486497744429492507727216865676355275879286359367821276089137296998828739054179699995699314752914901900224053942201574665968322223170983090651174818526133539516481411950205218898376664926947414911580835145707527679179188773082803803382732868598671571798928514318780973854095089601127221839533882930043637194375250811874002876333861495692476813946184987453804046747878421211472732572217692720416616563220852730669450374061312664135411675499385569315768646836888907062501291330878283492534373643306433958949174039445732772619866617976619120035928985716457651161953872692261734963233820085582979359481322216222725523619181026030902648250279632768945412369412685539379722378825017626034932220832722244697026880216228886669755184603738318451686145711968550716205865594695836441652699635279945825206896649554540513865589810681497888322631429732476776269243708479074491023050191467570069729632899309226791967303467239086808243096309061736295247310583348824135242423656812206034954535960970439274020621057467189097761550874934933527466940874374629595320962734884136702176869254705733390512824321490937972531949119509955910016660282336691726439146306951373686287512939265269668020956719066904330681369508467926922758964766460301599852541740492206275202761491916127868544870879954916793365874147134991119708757255725231231603453358628647883973866279351916805833627596496704368450946371931400166618122091433792445516904879117775114932402772900573201182083595256428283799309333376077300082351199889823946560048294937072360099573090872078907121717005958683853053320786313300723206957838044784413439444307901753624490664427336813654269071513391963692259378759565624510211937139055312980993455525335087714189398722255655911431367222383415169071122281651976517783722096234867270056499817754493947632249973371374955730860563637390614055732614235857392773515282046248731986317143653173379956663011310152075407909345421310832243297669930725273783621805935548392229107122174014936473781904362708570539921751154207523203347150318530227067718470042030906972985105460087113064462665823693693449263325096269677786658773585026442419338350374845180951648510804354401093539540603295430152553008047839279344697686461977817200241210240666322658090071246804969294518713374418669794909004413260313819613868166859664955512888358624340922522346853935407635742881218526128176892754214817972983296402428652957538776773875722019833990661564799074487734565328314591833254916253889412396379957848170683092614478151614850131876701161830571505885721167189049231451192753474749520093615210848463710951564556704731598647902248626660307836277574949028062578666380271303221108384019631708323683834393432851073193322051773064948080729193904906776163781757824843489056227363679946960282399286896683605872413178173539320565121419302443898280077486728268011782556457263930668497750896105147353273677579189437305826662113592982389237774093050912243696614231073172015670176827556625311721529143874316101382449795207638583942020884893119552323948048952483339576649738618783450496644315117607911646804435791422157212523453298901269467983384784521560482428264401154479396993203318915645630581713354901731570981855074865105423717256489395790478422907340899309498932440939699855196734164017521384392092508718576512482018464057380137162621835101315364442322664660790208424420630503674017911679054148951698471387455085093719221827915772090451383185164813562386029028417928198672416278433945588094678734769944229185354863454826960566701127824144469221069660558106099755153949315265087013430460326545635385944315133780029585224669655851375060129502649245469185172503868545143644537455484026295402886886424982650233774106616525382829205121783903505154520220613643440224363423826598412360391242925915778387440699940249260982810872779260005313762191007534028719638231546599591747281476165460486774337455850202948458352950873553481143121848528285501833948758094886010321205518947457954216446283851566759140945626157638807283788494271952845463581272584141987099551168910670937036106399729343989326467421936838470273995237292519407053364631699025795230633806273971565386640998364947870903181538242263891150849426708763336916098001899304735019271382064724320045894254417478861214567675398049456377205816709247747674015782603290454171475856362705379577818254569296285822832860183095268239640459513525449435503343599765585939437023173208139040401153410467637336795080029044091553737566350658543638172158077864245280822358758200739159303795533949158386734124855371416882282902513988946712473073425298203157778060690184204469047810244521591159901749152359531401202612136648962001867094850504820028987185078608266347473161959833055590396389414757823570366685635082498653124904335050712274103517857596091438356576980644921661448517287614794596624499676321913576038472904677026048370670546660820921176419144609677888191768104660232390550240658939986726017464013337782258043049608878821824689673080002809259655756785562005683753823056556014783094168350339088436332733629668974215812881512434636416226869671081124275532653408955206522065520377593919358944379604524972393170836000357174121100400838756629587499062579424456185631017709111950915052589566370170714212142971087121890220393850394416536746848031444450608631589285956648926076541503135924007083757236441846737893331649587676732724306222954405346533616395733156935292455786632119810312340467979917954318019679129914540038931750354841024140724887287585815157498644400754291654535136449554673020219890361147206185103986667198187948365376560783388189995777973214290587265083900221268681464265428447735462173758328537344979750333859257229757418464970782152899847094798863303718775756890465796195545158070700579637251452687364868777839770046217613435253254905326510239088647244551674729212843746141621692858691593736828087021383619886464633742932940849810931349710434525247796868383585724713532142437684761253400874644824489282786476271442250830653325004458251100260951837166398340791578704966928792829781947303481057345989695922518513197776277137157833564275298340622422010357022203005937207647605655494438722246443732146425062662128089610390239083912093007151551204564367576138845780522905917975195842480718609987718531642349105859095414653769476246858091070981009125338977107999886162740439450387121576759622759098345960501978924575087949367254117112389934534837249855933365985645171055558999282669668006258619097927437490079319580284183533081063285095312265290222387270532881347486600533647954302521329933844693002428850129378405391031898018546627505506719509829522722655169693306843483787894884016527512801237886501359748514773797447398288803882958674692077947884006610634039349479578847570636042167339037371470094476278874245444367771201593488853892351827535738121094256335630261388346402122342985477056429186272949846707258965685369494485893749581842897929489575543421857645415747780355308353637753470366422504595726293842711730257400535357588000492316516570786856981443275594263594930501040297628997824961214082481751117600896017901557690149613400623311794179435781626244553807243911716838692691232566630734329170666799481327325290582323673372047544844705867486182188865504310451338586469687662042320040563215607390942002511933498692819851940007351329809533039391577860824808566906975343309889985102719316485838470661699694682539847058822757515593528261407792738489748254869705843118175580156531923708896457870816774485451054249464616391403040237063529683998781301615098726834844624770064284998780776849407451772046077029222812675988209593231212333775675881807798627365439239787822746834035572524788210520696565208879081101271988493825857206912640795077507937987500812356250274496667879754014768650549342315601402366931409311097917331081994935188235816183584025699206614395047030573375581050976169545257368129252667189144291486785568582093219999116926933960362271806153414211895704779285562007437562546022168398555581878259595341020575769628470658898189421764677468564653104580254376947592448463177714932860916155916297395873828717770300653385375465654972008436073334956715900234321585006964451989319250559036759291386000880807059133162083249331826043689792646645512419555440578140035164274382254139071047052006816972142291552107072039780438401907485345177753384009048022428464727900337370026260384027010130826360866417480546251829327546368139264663450909491287266299935321727043455831295854377122429601438982532610491539859228164274708323931258596659819856911554546073972129219943614461545246051914031889062225429955963898192159885186440307589493868528391065476160683304095441255738259308970129035195458455703194744734109726494892828649090166934623412521222708962142335515999306825087847906259432509230833177342566604996615594329392345380631592683917577263988573390745874060408523590551599142631556596025567993658078847710482731011339262615921794154885502585068381676394943397455709510365447854046206038988528041648560428287816984586236641112460135147977358762707766047970135173389655998659579550498931573193081683051269163068987709052380349000353687698372597583235144237161514665292916900441244760539256000054816642839050849611604286236184470804734820425066022825512478478476450083490464039764149350969340198526550017838222537340409682333991152184556215852824682122574121691445299952087505083182668030456214482557980291272653633609111557421681855326315276148110998639382837301440372880643399714042340461631152361179582835791068748214031207113967682171767358952107459639220363583715124398773939776808452300403312772602353601925879846848298025761085608036442130600220190161684167208055331899292638737445719629949491183650485142512884667945270424490276284640462213802048439881073689437164002252442560766730706750910735157499121329874407764423111309754661173584142347930165575739616977881938436550160073456035831804818769664775002911225734511346875031931809757014097107021401057268881270708241072755498374942078772694952607627451998937395299993155065608770465471417068914791221936404886316209097938768288282625415759877318691192690040529082326642739859492735651151014183754104028602753187919263856516358032002530584804659305615638370104550840361430846871905859676263899544541149697278813679929214377125453762797865275379863725356888984884973867287552083816830725447094313932184431713674735409445095998709901004504819569561216232159748793702725499584443831024671477454068874791803869176042893409934794426369831044310988857587635245910492340654082116802197598165330737395896714584576935384548973008333691603698801479132983130431773089563985789629379731548989242768660441976696916507611106568969766206628798861689259307564992833883505215582401208583020218318130083320807515521125530358865373701321644559326520742058065808345592859500250185351164315695565419366288271890744988673617849892410003257262613830759804627744114940649973187272501270274254067219551682319341986751638707270670431621500347371049049347666647335295933290154740449463847294653774862073397634156759884556721667050732733786422775175830518338956825909082417314288756172764911577912349734664090020131132732208484646266365092518329366633719817554121349978085917286918768505023832571501111802045998263483073830364155943130508326561166965077310525047224789979479645604094089691462562006270016046831884232482952978811473290770682570658682459449177977434120608820480845723430308661999421950405748593414192180117737708415291517470755817713044557281287741939167427126321988740226882153753988011420835288663208345107571626676088087677153199575001174551212751982453515338502282281590135714743005716323116350294462358751411106871631183206434337470360124977455754395566185214211874138900359778059412802658799965993215163182533246043468652007860877603731306785787773274943308827186393112329268500831588972510451624481910852020734190156236769763211965405908132228753040935089790880775009834090968527661617619521821817828043344988540686978271070632267259173972562945733071852090553996143895949361599826500009768993644934125001075907410208832935923102088468841423162609534678228949936354311781519193093713954568123328530156554001129356659725970119300966237894491924992190438381076489141307326465215159127055961801641610421140547319177622081111697058960919126478757922676861669726448386824610896329299873227065832983552803027423139036422589062762817983992643595956699863485736541307919547513181162010919952828597908053308159502098991628155584520727114789181467264107001640671298563401730808626023424835078673004295304881150841155584987214104951689934633300537862853127661854357812376865451236265442886149963422071264454844382429228042668290832658649871577909298096478840839505975277338184753823004838790321814450899470669814885335424997486664740443520817458709042590477324980424250442727227156940372595104787351331339682612702997705937759078926640735958345719598496262408091900841287320881051170783312608312506505070580605616293182788661734375662783337139387249519035629894590981588555722661147337718386323066096655875324054094366072845775029490279560894000270478785390995626934423764448087634303252108440455018981523083032265337355808138376350598806526528697218852658080324861340195874244848391620386450492616613941895130116706414873726431641941709308353975531543914965369016125518638986168320188567320250346041000491776622855265512290231905880978479903503391999230914763240457176440958786316936516219632030755155653826304112033577523081666121595427600434812040970327603409256074062277355373938512924507691878589042176370175981631880558297069585025326058664740736156088251843619336589493065114355482349309074763533993808593160155631699251607431745468933819944663407880471751155896131166983495226410416331049022540864992751111859112010746011300190655634567656416754192800333995308531030076172363644457490459230597570387863004350802745003238444497611488157141653860529843045278253430960005198726966913528343996774924363746669246174453226480709937159241596343604598322224169355474718038477795101806793747929276090834008851736744424585906916343603259156097965284871984548874467951224107538205057291307506315436844387380104715478875723833190224102980199024480759764268386178053321095582516705611863181003209624146968400758928430276520610644669093615471666513417728610511336882539181363732301002018988061832881882247095728889966002225082223584601145595615598890901523798083857710081912063414075011971823407731940224732805525211093543054818650498388334268149403251953248574962900455569685510430430124853251240156867424567451397081254948862210143640115237743326348775432503125404665116976359021637708808543030441503446046943923638473449587319789268016723284294505765821952352457415689759157734475818791001160924591971780049327060750670261850374305833551394448371960276123465468956575972965725561587065237230117191501305000330982020181169090046972946633672161280749426874766753787402877073548751798941571422434737225068092557109823140327069395610167855257868320221504141684092140517285754782283437986670344247617004787876164700649195130825561588754774920770942446020364029134738074264157999296696239034900020454391153578979273830793706778099797592746707696619222561353311025588777261342668666342041159682371188302589313460991653910698026868094294475248848066118042730911818055457684797802986442773088143247334624662989233884973356146540364858702726996538903387413381398945663496026189363432360487335582942815860752130640556282308759445123633190780856983026877712828958447534933232922854839745645344559250870866244669800970298479698951578961239056243528770164849262603354873033830156979166008612253393904920129617273182796770833589189655482148067652884796065388594341093701568799621714214875951682461293677130324749120936196795818344944370966346327531344490918419475878006587897434621606784881557815880071957375723891339201765669705065523249997902950327831733643018385897873131092374255511611346461816053398220695531935106307721374489878253689623924019483848640955742061726185204471228659952132258435052382082745023284198154771998764242574560494672272413530840183247179145375501862858375610398796069170426891254577723601787975526708098887579607869892872792891095642484591636869013308389863910666346854653772132406560770466854027965847354835228654560209641986701589240728089042152714525068324525125725711696577395590948882694956097927451157068626995181597494426184531528995021546768960251334195640807167234668588241708747538479979025966193787382206479949049246144831060778596950128919895371784925519123224780047103017492914486496602244100396981723193223305500491900078156696413351257202416214890327019111119042335182855019854677694533692210203967957600465041797509417513455029161393198710256180966948131730500503353493697320071809610068397514661028672551196514350257904102652367167694196045367448457145537681211448869856075845659932781052575285659711985815063224362600490988749592066162015183647480569430326580839978472082751449767802168401548646582243983290476091087983107597614989684607724182483818708001547950269982189494135658477738269236290720120735603661806070366255128879962410136227067160014482627135581840660007295189614131147839076502208882339292751139258863758986752668602141664305130900654879730060633747995410524194376122619116967066219596483647002133996012850076660776474193026051888471725489792418212631489840426639500459790689523241590111117928990203700546368247664620610352930558825138911565388804992964755032431567244665935504086520198507251681871961975455106656973436090694751062098600661323982095292676738537902771190576634192880470891303646110202533719960169302929949924674583871004218601626920051256591653523454866739985881390928725359898520897075000668323190580955261695485869681880602480502717224092203097783721417329097489314101911391181491053115557089760329274519073635568925712736035360346109641679529202526607736173761297551737696001247299281147056712617794273275152977847795251672294921883769051810726066286060051668733132643746209109605776639783513664930026818011451172442740008180107069834268172589708842156740886151547090804680772734193912590184944339241897835180295010299448146158109136463447512853186538092785264784598129871416544315029130479848769095779323865540104463053923516686975011748040445281340858918063421267263811805079641763481154702081071448227495059299379748006481416840748846213659556418724162418637649325045953309482772517308525451834934394752270768605868806772424498043561929132669582964635288393973046610410451835780428819824963674715585772455974514157443172937996722235717978499181844221925697707449096010827956677602299986955328126387865975674265931506606829279488871140783332885958954836605872867593282353460281688243830253718736203466559616790280365421623545659374360917982936556019867657506034550411871651394172765208047966935238147347727411846421072336900814676306526811367262189034448530221583218433444789492497805801603167147445251339997824876384248236874164931519642657488824166520109723382616455225950018819380014587835283676354298385709727114526008323672131038036810734612421398724004156224555005087017473031066030348290672021165786002900044068023008757219536877725141916989649378242319107320838211892104621802616749545755978344119663462618072673097575379211922773960933438933964751055900655526872263762319295613799193060153007912416530010855870469664106574361582150301771787958197457578266002115836963085458347688880383961958499333986033866099599601046703290248280383843870016941481582438964277366509770682905165660751591936786340990375583673144485420252239561804126598446100446530911677204242061531083969137362074386841787514736819536169082010069455296167728254643962963723404557960147906847353291840552551120372096962681267583156918114702323215706753239260974891513160360968466829306250744817839181539806983422536343226880452963119868856109154275111888011751576735593948406283473230069142181755783385964891575606082692763793793798606854448952274112388843171183061358393583784903203477057810798578779436213676486492941533510985331640250860541612833410449180370773566543249782293727293221994926723135097723456284948007349751798234749533352594197160442357847288253030806723050385716022390984500322114892136431596463292155945445828072506851844452400125777602194156404539295387227425030507591420313114478662958689517992616830579335049638801138181830450850909729359816338483062290277000843973127304869342096791563475322638523724296655248802793522924960992812025146751055028872706779250155991268174043786083398570840106391608998235640984596893342627614210521493956596287425453601854195555745337639748763029485854669441440457575857859202750334484431903164749007264856868521445681170758536160880696969884145535015147615113647784098789763407881158001247684250832383304738828335592104492515600694381160524456355981817385127025695850170789638716055212105859410837550793451657507785995184884384394793939221390187713790796174548932548712304933634503125386458684353666916623109044648029853288089653535447380145434428262269512022142061126621017851781472788953571282971333528837545415511913820004134004369461445700087750899880885476320988922918848290127118348931744879438060672816849603035684239294067114418603094635743654786297802148960428615350960693585881592908683975404745492764877380686819443337093573722984524630645520442490280206098287233554932542397435786841541538559316743938162808582344917075928370024194667315354879865171017615763946497904091681507247033172953777809432324617358528097648185050072502210441466842185119443472764689191803717704536591455222190123955207536219254670457804939307412614236630295596017449713837363317885807053103953765226790834108496685674883099463967838016302247551102985667411322486331880533075824338825575312807746435685622236440904314948723618209085145731140071490644039511435186872877228463286315233413176669044825811656610732282049134707700841423374073976389108179128896041843341483798408309256199909776647052407418379096325804963557993864181781109917994774558336844985640175928465061593720321299541108283578524109269417737196015967140861978330703885471144263922924431880766512937580652547760513508483996315850477443414949762319425435809778362390807591225234148132109361676904753791683543489204465664338276605837049932952094614279004582422427117750966016377113832873618450542773743764410484125038822796894231990847412197036079158399850247151656050748493335808734167281710622335921291561723474487348603470873684055694212590730229655460456000505636202747023296251274269202562343620943433003620136490790152735674273210273932912007498061349156072895140507699008437421256433458539962912430163163307903703964932527357592780201489750264966165407458861832351119658572570579565218405252628597963056513595959475245946139572830065036803527637383539365443748195484611355181053350235317542404633600566953980536699267090266349869520141062059009261394356493922743532230782598013040263976737931273147369519780236045551487805859978512505221539195380840192064218396907255120815905581459394429813352748626582889931582104991540927323749141673033657183653139599726385533201102390536098909179466324310597151377788622860545143518444483254905791760550394018936762322534546026998520609024395488088624167164897445990261670014489683222173617488458432111566420614663063358595573839007986782608144342996658096071083341855906362882563246699584635325744817721814141659718231562648532964558846922129222329524873391779139505321658905918642580340097309105500809712691222042838175834048750390243607117923994213386182673569300779224974176765679920070607572875272903468859408181850304731400650273312626387555901163674580064086051396554865920754282313545673499526972287956965387131293579048498861741403479624097755855712578993497040770071735061331369158360346073806949966224629905551632639169454712986550739168768927796742343728878710416761109352798928805338271918957791459318702479773908928399986789329336770108005730120244047709551739386161002456973683969079347350852245317162389402983020161062342197687917519132130911851295128735354119822950900119979525505187199171719841366780403382392441920785124516774661435185307104991512701759144495769621425786482967231760704611506011556156325419795244288998678128545217491472005554075027413675605352726197447998850285426338494506963594569157743569620105015702100623758527076686360325887806799451354676531175821048620504931536035417021763985657565292822113058956758468534036586733917419657402471958232643960503416879455823203918415364313854954351081256591521804599019627264679832510994314725215280752627157524042582997213623981595543933188475317492998673300950287184815239568433445153323490473654706157369296952238399130623853800269261943970588101552845801413211708492881868138321230390682788572995854632316239925724599617094140216918449349795415947726039417573531754035739325305185344854935041101171785327800165138754758018446581847173978760373176457052790111346013333482877709301518730383648681139519648674538247553063346120113032505271876098369643414240399974559399219895077864566867754018261125870654906355582566854757956151058133996807452071453423099963787614287494496009114671542785174668795725721715525455415678917442154570219411134640949145871331717329190321544970020397150197951105452473034358946011680780992022923982970568633233659063062384727413725480415894985223802801984193582278077634611910495431788179172613017149227177442820896324022177229322074928321644276603975595627452920174909020750460654498034921056897681714565066187070677713957178289688166742471818822386550130147003081999404510931085583860694825281080018301916733850628101091967013022739083045109267704546921157185027307613988328000363573274966641547384312322927527014777024546793342488120590680556172910585716012138665298294300815755814301361266883491935004490712571333650185860389558422401305565387694545556773854525855627680356548895361824014175979611723272122307910270398199700556639836578603138898949597565707504625790173732887160647244917606570752737872327224628219595546948737168517155554203462124227681449397558326817209290444759829243187978457689581571533353728597399077813504784092471886655111930524083813194771113207834954220321395897864559033217231808556102796613925402820213528599689008915214674214530475435322749248675739943107115565494099656070819519316412260585650773280405830663760734253610082904037249337984331159899158146265728514799334752430877189648984438953279413803899356714622135890833145827617582025487438035590237119687858119157683196764727811071602772124006627107733375377019074701371245580604820337714250443171592402107129546406909017668748373928375969597950464523484661928486824419438182911421524585295756695630928465667143485002666653029441565828158674925491503515638243995544080001492196187271698802582700521646023950486145966335094239366910626508760303977338251116327851896669430835784275437737122809009953042323771621924884754869633482926153636277634936108954892139696257536452484809756131048206386570389612883119815152514414265768987217146250919232960507838545867941703025693100618820306950591739456182140475429994620840600302312939673414036447512615623077404887155787669471787024550318056921683182180529718237036428212361243290967712843978684556144164356905191340940689221752364474631204721281175086365933520623274041056257750556851982743904600342955482732095756522759764800709160006515646086479882817058387282366583755345984581059404176298267320837272819317084668239676008571125516894067376860884706474914147376708592717823855920192481862926727363857298970287091849516661837573484110618628948097192409916331221916457579530146963124896331026523243159878344661684607223123826341071126225151139552409173572353721586688769622479966910695625018315514040918937986916720299735738345735586087768261419878553925967227049951775226854969154818569114993696877493907735619723519437828529887270758692154883761845217094425689164468229814213252968496426501348163752309142728682753678136775724970752409565301394999524450401594833163440548973006651360933591057142232811816697475470246477785697295474536781279714283900936723160370473404509138259351396394709461993228556584866802487875210521126517488380735484371511753562248579301585472122868725855287703033278961577601964797815788767585989786862966097063569864541145424376432631220678591338134657735374330756938179052149846613569236678376426608543302185045218057544759898480972624928620912014234317464438001736141748789035195028507183694921246503044900493998253401140215096075608187297378905268423160848465197708256816138785394144994083551624045161039944221315949512267896459919305704896809635157363342879115211810958314790739428484603640086120144821086931430997927608775353140145018076832211998396542093354642095805932204361699791409599741430837463006770067026287001198431309962472034359789178435914607127772703799057753757885629553567405860141241436845351483654792321636356988103211708409524611036972992972512215064813264669649810389518505145214775526252205967248692061166997082631891490243812242782950091316054637441411604242866401038419534039433952326761200102963444602218405478196236648404529994414789040930916176142123533778493891700328300754600991514938162921160398188028430888367450385769170319816228649957637916289039667055972133425218147119376823553579296753197630240858649406167957339232285763847766828811010402617072599741373943732948882706134866765798333149672865265840114657148409785485953155179593024150978181061447707719104556810222204096611166469741422520611389136659016603180216561639196715508166758398523979898900954255353505614301554130248415140360871199984472022354288479828351923364586563891261059455951257717626776289556827958478468909922681607567015319712557361506841025170912507849680819835502500431696477246708968053628229918455282587409645530881087296183623134078889576697826692141638219907237502312103823771638643260557768236023333001633587998625959712029760413775784628262173113594911129310632302941464215460093923405786404299098182014034348941082158210746470108455633435143034884112896567911039031113525202965686871428619619429646601027515628322730803139183708943345211635234295899243027455732116453907931455571433231756619995664124414379173713570787453563501712047279361514937774906328902822521558749013456608663760061390889900369142717789471794288777323437852581005773009772254036707646003951595701028813885494777175792281090902841141366697713333600733482136209805253904496360483584866387767738697628636286459842939431483466736646443733739457882708488554278433297396553025094407890676946894981920723445087389264070906988878995142040025827133543799836376206843442107854957975774960231768221902599538949558403286555035970038396113829556871038867621973534726712270268241501260737956307514324467482207128968486353992928834427868499299840813551100164027754269396379249457302349449423715594046340254186927037439265169555033133524522608199241170855560920874446792111009504845944414210539260437574464102014600829074852798492724384171640646078371334344110688105483950388254214110556452317742281422105740162406747171322807730788088901586284636774854988344084071914995612271912224984122861859031584169918893400346407607589441079863006051558551739481574545870728329514266744419193285566561249738577549244155204533569006550956393750581157292889557359943424599947556012827489033735966951474653731995511134737154599927654718264297251499791080232760911354688484777303848028807170108289822662015764157827606993394430128085464857852971049795544874552125512849587492371572755103327322034994513406684762474134152396366921927039619320811971664366753673139111732572535268569490142818175276119595443301221870750383208548792764037021340231391815649218467857109844867116049457776562161341309148233201676352033868941156731395812830990724986682462956170757925872612207604945100379718883461693505312400693324893779919448664720106273913832375544688661639191639611297216346684109287466378783110159261513198595678975062128016735289555367605278108916989342677949573085360184899767446556407953420700230076844822785452573412100340100939452471199894578724516448893318791278003694680284493931215375949067547097661540360330352075678536876624851684356707651545332248508781223276372379785183597742719437326524276112860066894086697091500995146817873029687353851098634754069976675987081007261745369426870546322386694914232010988352911209305155203319580134548539233301432464589038621600095126234656228234161002899014671693308623277617142766904196334616557445992903721199501475551920924101706691981010844151099900819449289803096170090403235323596504485777872362349545161823161672921568411976653087794234715553030066910016069692585960722389472050127257038341848612972817156650121840206039848892917748375933509642433263661474855794341488579134122299784033624734797235997423069560562934999281170636476035682249216802789201784340831399309207216720989374801140710300335970753318155175735083921795142179674368587177775712030885653340754867264207271564668219930194650126421797690979175294316929045342245379043815174905812998742286215948703657855339475347030096299438582869566817676126914448806763487377475906056326665543125130289318920102459072169223725301287693625988811659964853577401196066315068544083553819491839269541249350667882119375897695449631787491314475273391869936411508389269769208339564999529287956932902903269850733082983764133965339849648187815643409255842366731758643788216887611080546231169971573196333142563769943907481691769892279342271585689529320769648130391094049914665643099929933443678524138861036772733446179772874981416028284095637509396352541507960205008829103230055529557949474725912891605421729170961008320774876394810244669652846519917297927397172802405257637600041380730902263106897480671622167433818859250987560058538025834143951979183509169927305659369010605111642341241720356947123795634220062038939264526841446533082660643070886863884423104311944773129923964110167613311466640839113047353565616656651276679402859687622347342460029206040868950740925473091404560357131731559478419709086548176998344447522011250816539769780794512899598582549070517350151747084761421264607178320028411858664303898626116393661342387541571881507613695298199474902272556133541124058350627047172284871976461371781074432118545769776897113241399988893966903720096435966980026061920495465605665688751494770436313410717421782693586072398056273032755027259228473062965706026661387576503067712545000706212739340480978465882741506235494344110059474343887140953034370293228010144469599645853113924608886751208169898268989906578868534672304606053899453759027328133592174876037738064159978251489808676684464050701307955464151072055874263284065589176833299819018472969832092371720671640057739348137623529411780126355364326354478492511277311450862455823474665938194058858226835536213107756303294320780897866323895541888755267303313773780568124300959873139033711822085665877606117507693907461677498898730664123261613437592022454465848917166995024584219004168063642764086902355653729418018302992751730160825447620066146922844062754982175244573239205152960749949579048947028965080312265056126928408447421447079015725630621467305581559229402147652474520627051081390491567130807820448538007839351426796766545172087831364770745215382974353737428737523336731090686604862389067150820105488121898326023021043973412516986959283241500910229867849369845676617184721243889846746956604279974864669077531002745892888728022433339222607066386564651499702064449198558583586565614677617905463649850051953769441673100360593024194695671963527516213703094674032821570240696576194285078020377367783817490249384358823669182799241050424136826408834057608417579671382528051053120718673872670972271895374424424329329626766154845535876189617293304195909892633297484529291828283000340900910867446361294374730043619416805971724168975961456488102358737787250589833904978447335396735716911573370073251957897122883900869454825583774501287929471188329800077479210022724770383394918026676014072948465696413957590331509609012257897050684043829371274342139770465017926910588503450130300814949228132284730987543417745393165610249455040123403370018041095752292527274458948150569451805980738107473247892034951966079946534351850228851424782010125760130993549398731199651502653896686031383846534011227151834933354457684402409344613757837771070393247195174465210100078035993188338835227636802727756191392698618586473751890514004530595402833759386035251816829988702747774397315065646372745826796511035629003891533223446780668610964649868888509451622253135180175559969507827350522146928895687568013912912833853314381632842100975778096991222089319560792568799873964168858371663655793036446695724028528159573121735730660482521518501932984687616963596753366898439546314081204958004883496031834369841891805069047325712299410454509160539494670983892830552891815577109005554502666874385847131974295989041641174350670069487545823541763285596007557376006859518951910538578908017398553086403361921976916805964134515851125331430531714948103839356970379426950116824779070506968886742866285640519265381473666059065335138675156945271463846249442571204802937396889295179234714939266065603002013063609865764854547619388368565886301599172434312355023733692892905688703571945425983284876154158183849645464111706911107117191516461087733120199888438489122490066938376767688220139725227549166823548517478145848772250259594089655123873689670247360338461287157411584430165464240500294390002781876736668977524046032244903241124824041942870142217721417615390522463320718585861662308658429082679274208639311341431802593420819204541370961042908550585855370211479023501592791122705798819525745677486135165718317393326443084647284770390700892539691254228957774563676697605591562607428486949092037392600005211976378058106968925851378889975880444882741918526821235549324993900196098507864934421709581232991786928381476942281796141116396029455806667486002269020487388715768477949844568952881608496994992269152963156320731968916742654803197346315122908972538241054122275288851779852054593049208266953021601674614199476633364173038586421487286794790228310525546536870213137287615171343928140727410352356750838912602653947980860633258597392765931408515292821037036263342791263566388949933757022962489780367018932807801470495190440712345648729754351487499155865034848630554629668883855308404212458115774188698993876401581580004045520698714433838045870839609786478371003885012621187517240601247234375290147462212667559870288963387479479102045705127125356653108538770877479141647816731589974784970325681304131635864200542014168883567030128680516468100059436092704195393205469008886359252451074358054584683682430868872466020208530656323314532221457740454895971188157746931348385374080357832510083849583691029906855628328673009681608903390925588477066638150670706765813498220069612617027996327007162561635027196876628309138209291690851959330852250632935582487564465805495432854459694496675731161887302082086776998677596075508052012922910685232069921732872922038480987653337998420699309678458603114483388133146855440588473229986987054756466239307547352415358319042786847026809325641064860086361340316267766667568101610589345526325263462011267680068582521802090651225321687781190678238120524788176781592511321905875977992634993317752539466455190072989470059981542253324793831420064382584117971499280550776483869399783818356076505172647106889422616686578733857515706238550220081796875561268372276081506981786673851427515900624353869538051754256150905307139727461847692410740409050337226344357278657885048857177889610225259066731561788932896225727848686949895763347624638574768477053968867346894231235192249297595077702530660465162890245346813184504833751338830584491917295265523739307020860140567536324000920306351917202416625374690379440996115327980107270150303100837947788797221818867326734861368447905534789195724095528352791724729676709350416848053507260507569800739373252289331558667896855932142086524958820715842709958004976849379024510905409281332177815922157652152257006771521051289554713942383932878330471015530742189115376603683136328198523076881553090354574327037063311094389359211558200344958741230130667320932571475921010180276569958917751165748341511138636686124643253758077994334662552310356063274156811960151273402201501166086994466049350725695623414259651077425425525961448447019292753983464624138254487201474783589193807716759632418879262496030690617609991480361642445847589721497000499599544592302819575541638861499484187769236028665996618066608955814362144832877961057519856288434267059762649757421810491272344367001602888965493973728059360660041300445774497320271024848302911184992674754917080861201193395644047982459658504855607670150144016226231272860301430893703691976371682876019059673542427827829131257299382589470070514274357825914256816366083998675405298356555088050549244265215709786310266243653980468830147502823349086306339847780202689161070407613047815682510654764443248875401987571483643483179166154012981839852504453753603683699779867281398637549155186498558841768588489646961475060367962393819389862327359499109012153763476903760197546003648777884607138076983255332013481981647925847902586086576788589032164109777257370321370170898679883262033049602496615510703425482524258253680955830071540923027180262820337579497522551107599103243891364855881964065628945207360565470734935126354851858843415655744214649557356168265730618761202283257624677945359367530502148947272474164331874765485090733236410443113964950209995975233318780297668532594853411916765084630185158404168269351178926738243053533776218786649678953099789613828690136208723740517249813030085995960789818552830241439304887885382513012230397023824911334304349567779150296299895139254083653398024012560811038487621569786842428253507762496745630151881235269033257357959485071993953491341720573950520425081710888963323403201948962174197754233438146957926069991736134385695106173270690584560372495559552777405869322303590041726477023581112459405352770602381125195286992240061763626924170299116246940974209027391260654888331879298935971656648523180896425924169530265776107526301427928236064656770555083487210299358971819261832224231117120122289682377994718801452055665691874596853302206124502912967115705059888078694267840730158318625531250793473868068259079801338190416174809705792979100339621448630476784095398117272561890523799117349719719605295383238189625057169896768961454158388503321370205624346712467230742493175053420511661135166276650674420049850167499644772193857080457556589914263152900899198421005335149849837570794524436563646691675095773079279364128237899499051657373221894700731391723377545177542162337686971617610421239744237361385353095386833423904093761296857108122576848597438981888160101118501958859462458405080056422419240957024357863944142064173714998753460541149946687893230840599875349491193925848346006901472652163570818487022435434000745466765687301226460353608285651798265687167011563170216783122322116986928018528628228320190351909487290923274836252034368772795362909375802409716734584310904409199136312742943118434121686611855128063112155814538643777400025027001855549818579201080431543154086228585682075095601117605853820927635828047595071253605293692748247964091063361695120235181505816762922229107113467353465034535970586194265093056874575153030168524378823022626830858015487167366658497928765775821445133282010780398532328992025286864559812496838394197743319305140493578253157986438389677001464399770897043132022198435734422688272680628505950667526626398511255182478737570604835032442929061606036353552485292225733042980817899303880130688521820655354674993738144383913900499160495973006516790831376844782944785866222733006076198749216694888018983972019252347177700494747177304063374387980111151537331888286089382078484505427122467632247080253243242993988295197299800847933495517716244644125546465500235427001499985246409351129752496084384510271570993183301007217786051359712885371867000467269773481129785634675304011400651841348487933128962499059206871530455312923257974166737005619239297214818248976360591277330240624042438962833601837016286663196804977095175125956702921732712590647777327870306295713125016160494844465052901787057556539121261016993069514642401558000039236561988090537803195837100552992521757251451838439082005803675010231805405983034787666818052862273805285068212901675033799777964785399625548952678895832515482084360220699888267953612448943188359573005611590800010365663259938149159585127745122826968447644374072520069750581820305663007028660171299387438420069759458353020355621923084586248623330432667396657196976208193375486339519421942355178240121379987635865044829499616903465614949544302501122903513750936117815355951164013126290858772890603109603711047801790930775854037291673442598909106013480206153516042555154641753164139378634428081486047862327336663196995043825304795128977036722319319908722629015274371714357218162168150195300655919430140729457293759864631732435706166772167492838953448622116995778962171562352561396026721689498418843407460401111384757566177241922143179262461193370051536915075671772699272656272217308883411022573526913621615324745589893041044695514404341310748744629152439090139248700201337510779354638114442280677259176137541959531852153525450566797465565515330005292592732015902035889401112050040481086995186080232105523866719864470779289661891240439546021541269813567045067657778358464858207008173673708634641518878796549948227349138141607622893572342945397516886215149053748797342662499106117930639757957445702415621628104242204697421288330276628669181516169981950065637849419549386541285554782321616986185307032594187910017972351745033183504528566055700201866324516975685416443048012665670224263798010246998913925117183659471080923574052936974704255875613007669858620896424709360877438321833720405692491564041004157931194474492960845801448217115769186529131617625162473579729483903151136503146837263161673772303267167635116139210688386021001231890733290926876988951212969638218922184929097253093499681220724465971734121496692312185161684941500123766835258090617104411561602877100526109549281112556252701506780901183834783576537565512035474280093224244023706605685036500081081307589633255915078758982886763141798012472175849946151636072385256607432825510502933522161000239723645638464053269439242445846946131281405279270899589321650363487520810838113207166161911148714553794655250141107546702414149477246836259722825253040260968220113984559744033329595858134666552869611295290500215147065096823866979882137935790917753762029820191292635309749753710569744294574624098521199684080702106113916990086138470653181472210473190282925227259428409499165136435488645985478846233890447283983966275894239159896361584020676742401221636399911024247354650215736841795373501107667168288828058257678031496181398470486723121743447652598889542513430921347821412196659598863525409246183473846469256741648492409702785747249646782418604135972216599661668112793894382873406888936794913256721973524299412246424986779746567729319028977899676744609865352272729633476802713184923492813136094909338825491560196239680457138868124925050770274536738978731887581893610846244374777107407897656032386315211967556827357718178979994485787628944171548201223234689349700969263082423640591433490118140523009593012088056407836299360368344789384505820425902889972686792588017637881024744822336854742269904181149936475232076213856514717425944804815230991103168436561148279336461649040868180798756461531182151475308492003226675684644542099250054144118351530223276163128472642791614274869356902734042509008778127070893833271655065192225837814829571798451103802467189120766885655419068448710166357224489255108359014243858423833304362966080070705149027870598356439453764248829077982147172643891263905557362201815420357147930261940940151199771448712373507470618635695766151445833498906400419242775283775456319793310255968762247379343379520655555753920027669360658299943639041506447350457889010553024377579713675650147112594985952749348045980845639619695538327094725925156104722826064413618643879262824006345754491404690104396926646311677123278506519543112176822114255430245340267059064425181654028064629235399499589927015168004998796534689510082496949138698321367331325247665067917517771039096993413028401680622964294675802795575539431568334600730568517282811315707787002099911838001393254920159912400860794106192305452157495682484167293820111272266232956536278426006062773365503409163908812435924075869195712839534356068050215951680706456905359874212268870518678520591643360862297320356562152378828705311725766476807663426314599577975680434702444982611167738608854565750063198491292574112246376705927197895574552582336555962332985749959117419032412572209185451003331503148630849639091757681743804615258346142673848170144544640468687186106588746341668094391733565213737361553553647174248487085241915333547886946408280391163038891527491244407607679242589407088819593767175894045902977559788380733941611883168039073636497571721477171824189104268579611791595437597292791820108715808400527437889008340899757670715311946361953401037577496000606377578804301531216142493441984046475953142262721214864907430571821865775251994929142955317134954599779127946695922668011940009555729978289043089313024313578253108440483673668127512006175361581832185066224413529237865540388631835486000611853124232584645093975936694548119190164049386385538784842188943107708014241724616402387935479966525806784582122928363594858788903950504713791348230153870340303364651031869118947017187946795239589259745906505963990232335245178744589381194935737593968923335575252736220743979139199258982345458188599364889163851914122881399484430509675242789289367050906765605647171822478460779504253205179072607493792529900695092642469765413433339507151637140303380429582996587681116133356559873700272413089384871420155198579588253523395334270534433955497564985950530263134252527139708273958611685396254062464078372954710916542686488948502573453063541177757544052808382489596752969894978409872630761993174810756636052686422865815376855679740911958261648203433513345766393221103925789871165845008856989295880755136450499441228321069327801006953056927376854945312426559821890010534751409106000951273791046527033783036437171308386483502236257180366375929508603544528610594234551740936755974876359911130012945314961405580824504326364461801176114088137919140826304379572318947188995523877620912286995395506060861694639585792503147280752782188322435833769785286053345860926520361864887254533743368838055481528139418179592837643203796608763033489677504707573304776815039954374814230816903935254410861814932218027743926206964855825731812265520620505023402612072590929794355787993351794447760371493788805142701820440398564783639368199141831391030201583266233135120654665697939506127234500210931215914767961807165547194343089406678175812946012518026755449106212581605441380426437762454897576093796336437569282221511282597636110584094185683956657761598831099262032094068680904431936169745276131765574470393063058822544853643448436817765410003770702054190999838088311031708759291117998154278661329756465832904456609080496734175152176157899936082257104936676914307074240111231807055972295233673178227099067749332728339838387559280124203924826475219042893080795935690278831419342433835375941245010486835847491028760349410370633189112912512895103085490115376464541195485364555142704627055733833616131401221439545976665664878677855478205692466250235961797784803638709560748062227378496294394916187229879088877515445198033992296133552680768330997607575910533412845947450525098997796985076668737886197488089534999887692243557726045910094680853139634569732595521959448075206963802364903925454697415018792706388194378490525668178116744627746340426530250668311487394826817493608105784565852892095399486905115804899410932224758904182525696121215943828775742587055901790052211633282919758310251723275908066694108522680107124475969263410335630350807196705951601615617019817572832372892657838079500542430637871651736950739840846069364791455041689776882572684903174120216174296148028680005569828668902310744461408113254695013226797421554611057179922483279016852506711805141643338800261932158973566721761483906408748577428269444869190666626540579412978845223363480829857487552918218508548967777220863745263534795627761809997793973398835630309592535388633352398452270806320645462432905880918439186445472564763351536277517327365146499214779987263642243154791287381405348969591709419760981997128999797985119417067353105423263796754287273414558248762628713197259950073819814629227787924431673600150915320685281596442332565726166906140730017477609512632879714435030994729087572806704154353156013890429074701298740077666181260979230738938130934773092169966922186830223875079112880150975999535553811222071294952083812063040477742630677156569417034206751253420538729691254458632253723004377972764729255111295111484635771063028692983054966802757484108995944642315956007422713902255555293478869778927196928458514063143130634546681715754796735093693428676370923107067380646141364190783769546707462669137427728295056093939386878442658540716776669173416895544785883809939402835894676478329344503264139452289242502784716200981060811490365344135581021365937712111789210682480563530733643845921799795625639569557609318921485950055011458115432477474307180388919471298592552301354004734264325109142398899276017412857194495899249151034632982950120770331396235206784051007307477568590684075894216212405854652479001074894890606012887369355269937577020174962208497209782917720451615027965642329283397518785499559175968635703377424823483716694828079536916521906764084829028544683131431744870828722180987200187695875454506363524963733220769788827480583297668624744176911534763564973775034383930554350646751550730848221392509132544782298743042283694037170404694500342892297594116497330946108569379217629350593144729076550962199574610053779881779526976390384331292602381900326701688042588281005203713131446232749847913192681805650010758915948854433110451708720960742108745604630861920878770918232789391459606450915709113798628651700285235646258918763761784835208371533324895136718051939568967996060767741701142400906704819738433158293442569941823244701613856006505537829220121035328845274076829877226994319318076116470905453124453047850207758824556373113623737872706331146510654525946439357479677548154365795129819735845299944485066114434676942529465068428334557506106368240943375120926957784729215598482745675978596407932171131785948617111160521418168397972227614172182293450603401376348772852952160804612794758422763854143596436754766744219193006625157569336659248777054421355303395663270445666926096317578798345737921585641353144199771022076126231998634041349127079097576784588156509508313102299851177471945154146998374678042092782186428300120273534558600583710677432661377812500128881795395959747863438787480331139584973768940842183485192509895724324897456415317735902495827272551675774167788351587300312515089364183443047945602086363591402218549996012976299800974479741219351827522596970352766332419728181870298611624630420980126665181492356145113237858192831633447739472092110434619377569873210056711283058894716064180674273862742038549450123924248653048152081944351635163833299427062397856381217181062979569124802197581997803661695253710551258774836280242090844163296147045005951056735946985426986006881368466556802552504703673345556407497184037713865157073693432335626330810549396485115036008079609275313601314318227001845410265801868638260174850714014299103539794071136998328861325988325677009682639977203458491118916937822702691465959949191021763051985613176797785842227654169144117258376698851088593830759079038876463345710421506449646267218124172744586179120551945467302177454579025950863028421777085539964895557024113176095253580181946717719899064959234086467069604008575881870514611498908232329778050078752349483763202504698804062544945616435708846856539847068359770287785318229959634305616704122064239008655542876099259065662737395385642723475862319302037118975409401562760756343230673254128606512622535714897101965267434748573881666981837992104173473312565503497373762437985628019280935508790072756162415077572194506634259174816692585537867658172495828600895522684055478866743820241719440621297619596036225437013376307115748831634089431705399110360938171747805065003689300185023141633885760734336792367627033648271459359122345852118709292251144549287696975628012641280159124035298455927265357400314484010520520536061263517429670486414316503095105811758138711495742189320834714154053786549793857519829949458425953596002953885918632534066337631133724871423196966951264298414069914591070858304980058505216238645577617889588384687465766762596181929834466126217928247735029170156836560865492350042052865494953951693497850431622090057657046173120848946081318046260373905961575805064032690931347874821402602361007754937579077416995349660057688767307070600343705789264145638708339375354692167790484550145152644621654419885976707562466056158378735759110356186669248510192530460640803169027120916328483635553026400980944895817052432247835959074554201568491200154158642320342237402367576850058760416779516386749047438352598954666938227056306058657449089971219096557327736982506001676024594608962149160464212831334852911350666813689766497493903339785671418384235222192327860725422153465084745706892254444497594906280922025143624057764241418466371168958006778559888031308581366878911409146402726297648284106160264527390683352483036233829100529291127626821012671430559415653736742146544795873072373873715221165409149656167642839103305176833813812199370731924715931048660626675657225069136875110668189033131237965772148915059704531576205840221236187438753786058943113440972388241215470515613673168176907162078079597723796768080920539852174414063150524731485814826883178717081123330040589215445023881319188630978439157797655517199220935481139920567038831421970659250742072060088414711543608070388866486737259053963916976387059744561063480535583905947812007327428187642701334661286339076557588037457244620325283029770810765961926810973528028928001606411851106830843934529602668138835719627544725120866533823460496310865481286222076612566839955304044205097655084973789275272558553611078545895064183524322094278952373947985061142243531353140351648881056174176744686194241485058223051587077030721848203873598446628793804896550374531797751927130922332805583442819086406574585629073799733923539682812191776976499994989119192025353102013501294461748747270151485486734696959196972457792948682482649935324504200537205030873484467218103845817252651168893180119854802992992857390789518738057814399804663792689791958210010220364681081438937950617986087649656743841233632774961678160930491210177122671580933604550816956675713284806691441079585467390457775094327449862474055537148292957315685702675781210846163112071522600519037320717935210670552106987484964811007304068897593355367151669689342127349757725325163944176590674375444924553133045519802555356964535492767090647322331888952142813104665130242018823142717365156964848044031475754252688176383492925716990668288030789259708527496690195253209005891751099333195437585596423421374626554121470528197725262689491120293118987580161027915382200879599564733329187558511542389665919859015211912901658994804570611724381333683305494257448573183853271440588321466206824967592072235168835458657364378546210499998984794900325663626288451192510304222470056559540906586599636040223753413708185343290111543030836267402225142493084535086462892682532411836314087497164291078705867498242733261957612343801534965369514876762643426759299333513498025057385382224934046316127110812791215393854705906953612681206050498208921880171242020617784005352215836701720190998468208486471784081917336124350806483917039674445970733855323497749933374885201705092935387069908436994989129761864754873758540855064089893991516778075545118701803178869218591569387819779839464535986934207247468527820885572841869035218940325415267139985036525186991978740034726566503079972134796656319078374676014577805539521770946949566013484168554269002831143578808804897824963589834336500329927424546699348882062461188225075264252342517079391204244543669734120204588225957073318033979527406533456767865503542916918267172337993071751844759736366152989637693867328349164170691457938514525048959214887357862642115412750842636115826109722349952004483913383430127179414042259423530758558188976574216540607110013662618353608515651058468075944260664921686756396677522905217481608124408220744501301159020219531226237529941189169123096748983216383290823615294370933120444070531520910065207851834692696900591064926431425359208864553411823377014644038110411298638952649507006477897194503861799574956741421422769512752267394305029994743172689586713575633531523423741877752696855946723845549275529522916101943165339966970370185106912511609385244149566630365489098459679823877032709810156652946248593201473696241036606365411570058293660655011363704811840363516944812036917149160288401079941388245477614814353489524862508876947571288753448029751937681846577331001886767759315807133234110424730027733328218472629421030120646405723244194325306129577256973539128561759671760309135974343832485754685228652452779621278870242508777303494327206350377521740710583292561257553612935082631182002683860049489262567186994796010852325225585206017171597326075845044627644394067809609961454735771017196418882597204856469118094759661924405809545700913860945388243003425127469597497372760768062179961361137569020448962330432470777252093014483871987262138928407470542559736077850137537302419029915082443094083735401414228949442111391976101644730696188216377676618614779018960754738453519836769451123240778096098895180342472200763484350901334082359265617665284573571172327906810014571939974051515822425358045640151703838972528773796218718719929782007469381010385235188474281025045629482365629817490129893606730663768615846174036223872883387084270074674950585112549264296347694459306343393798866718073919407540182313818439211155205260708724747236665505467239937569619371925839391452136494156950657671514423606796251172486967971086998139560446422904229943192487862963833696337076731637088324197595470854161749728225471206749525071324413523108057293741185204861339159434452278324100129847430196008545785519889620265384785775784486385876891639157967694912027667069468076729963447355348224539271599567638475742835758467932750717183398345188371906409764982210011953440800893755047351222571572428733695483071625375658775513007064967574606144286650962223018972382836711461867306990390888786198189864757901017404754586538412373604585590135561895857203359912529936898273659777131143190336275771250549109130982552443902070775938518103602473811371497528923006832293214080404454889887900542820298946755151113537312736459486335997149360826710336450682556935977771277089003758078233017567550151022889520639768417527321783331973510314917300798198005256826446940443064398789333872079427091011583953641816207937749252494922678788557044003933019410459768034556784602598174121634000919269943064249537403508576123475801493076181196999298695367417920535346600448930421246536252032607804102603389459280997773558028144020471768170425583710056042050573895507541472447638498900897437685791359472825903180077714821776243834871384454869654638855488617771374379345312350551607945642291281549600252932075489906859989649378315307523396367430807671644606918827645910105278225112432837429818166285187610529493957340227795961180795853352582374780243815493456013067504108766331690518175258278289327002326879278045277130277956904046946346661458682682911397003499064522076571674256761895728960433721092402520613676629389485357685804344899424465046472528165149769043925568914778499849163900135549513665233433837862450842404898721745525937339984336601958498035229031500705362807533753272758834443578958439040729083299192208948279352501889425903067818647066777135870815720959132326881900271339315293258513455686209601299135426525271262472510492361761064066472839593113760475538079302858126715239412460362393617725229117727463133716460296210313890811865935092958031632438851362880172325954802040465107640573812130296563329212360454654171189055060534325900653645086171280217815378246090836778551608497593371700338603124254109171103018655849146269648897888033906379432959099362287131054122527691999711551519997164763572254381089851047049162024184020809108372546192338500046455055195800108769851154757864863550652171262067308368367523360947637018195549083931542420344687739080793654481638605693761677954795503117851496954456177472878678733500361638435766996415428823046327934272636447904122167462465794474314194407597283110499157649624518157850039920854230981744935236058225496455782621259447059779301745930602169451965414853000071021488982125511719332638419909866529635952630962898777399674296289999057508432590420332500053684503252909744046745942355881811258120897300561662415671651622732572665613204361824755115747835448116078271741821003094033397537008198952918019267583601384927635520559907109170556421169036553879138746672401074069882334650281552272361203173706109833536274165752160936144980108935749441393681258476065809994880913773256042016649714776066948757950366204692207239810652700456787578777432969877069332218912984374876831966149171470102508278917158575524300345109444962879502797167699320938876967304984151283503492309938070047725146835644006751624663603377595071254130916689295655997997829917805217745000652083022553624072645044118022350632183802969175865074362986394220413913721703604158065445394048989440633062123776768015019014541360393063923835916314813725088706331544762520425839442608135996871847706421078248898414814829579314513967300664289007662397596806810016472742157185275811005629487444070936159382402446374485215774658596723231397281299319833409094346905204973362390530039629308737622032391437733994203952583102240480877274265307431922052525198316009924871957075359930678506233139063743767285014157834670109200152529514121075461021157846753772456622798972611059227803434357823920798005702595108708075367027577865390549383169865910248449364541480837885209766330797795206375030439877946752180122364093769048586296000695458715091312619134650186174116638780854951044966868853233100816741186496943931049310425444553750349855309521555240911544858170184109829452431866998316168353085061268359457067291461596016132383764917570898570950734970142460289957222280899377637208407279726486683188633276274357410783175796216992744979448232594848648661507282592904203859895910614645844677645548199637066050192302813845745875265757219670984192776258963694191229230231023987845163767686172137194216708792076515563406769994745729797797234194208434697943351653295166111938896634787605210173320061306846619881394212269034897693743536035258507146571170515344825219784359829910053787351471455938640593695121243321439541374869866867040536201183457907034937156816048140199457372306337646054737695738277642744143968480076431973442677324901515548898734083532572086664268013730474738735686102093912654549635256989842961963659801590434722095598756846301982216833801038886946893662510046616557606289634111922421094073234865690206494640961452960487450424626506246614157291287059487460054588638369730664312778512200569655850542839541788307269423030652584579350993897067406481558049776242614471722871368763499427384257362356596481171460970037536882006142437440052221673822686510160609055833063764692184346477718625495134419567778568646239099280093641998860273584466756609496374450955788875430697131201554548040208003225829767734850871930687082741300311199840447366949584198438731120490504124924793345092546248628257778075404310265952775992184604904260768882012022813917301369120624385193788230454408586433935994728678333920446440529936888165984021840090173461774966357027501542669252515872572874973081602830929071338762515800840567709154372897860039471254561106927316992868462722969588848015059687671320477059841524800223460111010158878603125556035880455817196789573546696717631263679068021278002069544125501569907823312774283511222903665396832402460057808265083520542189302596151185454243898311183049975112572073314999827000896116197829723895852892099761434269376024447386571053731757961202296000600858206283293838151588886636179242784530471663848979996848639586435285844245633111562222210709310271179562460665322974395134567694001794705655132798090343459829317659899767872145564715097465572418900465388943965896028674550428054125517995788273590191717573539046061443008466038899943264854450552135917290129824794334782097816609259937691241624604461810401303759594380937575698544215825375938137607757230966962095110435007915916328380270014636652406994799949909136375561855139392937682222699817896918924553253325096611346525076101323536613839524288971093330133545592252641210251244280360598459612453265908428212213051788014851735583585424008016543310567177624925308116463781561734778587386364947807345663144195768987566744313584680566775766769486802738751473830568892991337115669104643711398553370118901438906119343083068361921571589362394170464480516542152854675027906138409254114553921040335719359425937422175194376700428651587020530126910614068536003793181015008085717908495673786722444207168433373201570705173829584828170768540816247997828431197080658150849843975380596925402124089210349781754456943262691943033030565726724543476839680815283650359361514958259895283454598044573699095969307441328170240872111259531839955477908002328518848788010211622399666836846143220480746079461168346875766465264155753618285101319923874536908748556413113771831966996704600937932842973083067305599608917919511934574648229838775907237744594454593798161237033700123524961890912524981271258802662978654713904248698425877900038877913646346562873579666749110830626503993926646460294032237706128471385908510099324894359428727315562593542417555437653724263256088040515850436016781340004650880832058596567012071435859536697679622510206788816187026600615459773141442588111910672693607395337578822277706490463217219320169270721951520880323562560981358932349260964354415100712251417688093486868559186114814507152575988282967075087913662247859369888973544820866928306353429019657632686654574805438741750970429745941968849620415833691301017137813052519507566471056853038574962990969857406751768095800907193587019538933835494922778771660297031054572453032186501694558913790570145951752960482215953886402025937365438124236724646957277597445135434386225928032593663595151761869966133644766033531311517742947885806320029340562914815840460993873185055876517631329901527885965918498523986429813035751554216624742276736974500499956115993415948848889997668153942772554898158237375378465343735989664919476114939184291345552199968270698434235637212368657972940353732215861735536381886884751779011528256758709739986587435581017407475833527310525132616170414124110536213294339512388921559809636258188881326773559143411197773493656210466193493478306393635821959161241100864545898496880958558409163099488054431383879097880095041354947186963874427400826659281311579751935271032009164938883946426939706204252782915304158637090235770725865513848263436752077564776798516416812881370461819515316700958519040379697966217140750139336190936069105168008502688994318421734619877370093957052657327843506306828444823677583311830564223859726060973062978428084692474107011539431784831839037090097673109023273330374192572046940545250898532803863771825978946134311293454727981843502839933281094351766898077698976070499178395774628090846651651021349263362472256481411901416686152568498038460688033649404545578157083292770981222558797756570751607752021885139208774560187041661234969325700673148772547979748192568341820919103037524800717206783094535889382880403831846057245725179765321414010578192224720258530429752445445559641342713353441270086923227572570611214936865839266157233714374740589341759565614001533469718802311569555051454490848164967403628240814650948496103452714687633982243857245147104002900602802174950870362421760991266843735905529152681998049996818817612297992975439882074523651707514996533454796862743179826660097208117445084321327092549152644162481961180816371204306491768580166124080707112572671065135844912722181085315983266060150790250424008860749994657731492402347561321898663324047450618418412112648637663421140676648099531766811180959903128817861313690429229550164410132791657575484084349901418532242651971273823470532596010629715900123385232697267309860280645680726824632168308037417431822492305008255210022375919301407241260292697960701340915788071494078312698388046171598600031083219446112658540567042476200187881715148541996882923287798958638658434493630293366597739269246257124169662763343234661143058301476722482370493938215967485705717222190460856846374634906503317103703134775493431299972979627787543692814457540250379114851319275287420469899702303722766285108630750731593125789657178879136145381386124258117692868270436128011205029866645562985975173427996571969410946570887595696761626265580692912804456357592681110794716439830470987297189825781567662433566980116443349662725832026095161160325239579685689969577919346693371991023643819048896761075637534756189973087691458386855697491963528249541367209052512732921641170645691183852008340094192813468689252477020379617767439923087979254476139701439402102631307304791257816682899472894367096581351745429836550590303611340510454221224254600107443871162546134094763710946430126655818503242229280338315462956918448504798750299833331758907744336872193060726476186123137297548779477383827608337660113722349875234277201762435437706786809895419829892143692496481101036897415545769185840502244208300923509127172835415141546504579120209521560405769069069183348402979175893164234949835402722519130153085853293726359117633808256450563804945783830714429358699071923697207720908733037084738589062727832413279120319316220040682148012694203855676321292929154580325959948671490230479482683476334962326061847284841625511393250387696135020674294102032852211364090704853944791760141900317250225247937077195815565824838638282859731703766828911557913636241561155431958865735046357805290058773114865390135854161951391843958653921906006598934551169054457071149763561859054654455853439398857676499898763396052677400012848833492034975361735185302336529183696517413734558417083467074360457940502536300021752669491112025603367180229810460983738854634642637435522761008100784284363020068175134574022137207082158407531851122478512255658154590512460089306110415821086115223581634803316264304623755496097065240012359819922413584225484750440744815605003425946270647286557299868553816631663040092316516626945089756603404252073764332635641633890156519453036316923691932536624988805641431823509406132561732791623263530999675489683030266141252312495824672356552808537952578099495805056742573170147467207811555050069538031427299476477081981496814113167174738825510322432209817374428421405103637530340355285680527457001009888962087946256709243760364415748056216796933111897383518281312635711594835240650807759319991146169468035778966156540052162413569878035443470564744121296690394934346880642085037961257655709862584559421046040945591134383456446090904021397383894945362945031698425622369042527266379384239198198398759357989322190581149122278759021236654814570559872846206665780167566485402095564425665325376700117291613258904306159001653766005792388081727694312554011589494055175739512208565388492591678284847805233961329569415663066816932035516859597385056304106400093055325728283681851513237437943770713886399750396299947335520399930711678667933872709275487041992892608440429916369090949861682204526195605062977172603811465789078592852359217409029129414053909051325464053854568326095753091493361779797276253735632472021299043369710286521764476424956972168347879984803411353029631003543002381229355121277479276757365885465829308941264257143626777831237769135313790201641148010046132711434148844076332818369350545322836490678504655627480759909070656564349606042492578958098979759019753322455360372748546626667422988465946639330667148758267992571801448230451087239253106322298972996356758897067093544483868911898160610298070388840175159639218958317079667472499210426423102338195756146604981639517008234752939400580177314588908174502942993271388654915641538321497928095672464002683437440196887721776737499064283535153107354211670394055209627567423800848592922174247416854797278169020603577688624529524673081753438685444654088458109211032718454244162519277406533970876049855443697607091373614070859531225999575388919937622865992529264460363556439424903387558015200591817457722811442691049060398699028915034089831472913797478430962168624581857059386734344159875019640033957733696863191320775178882812582283709635316437072779167863428747094229150510968401457138856745467141147553986604715116285808405503227704273205203508663035974361008727656706548537961602976422705630814068793654054896000289069098517393864533607702471967288966404281333077982151890793956715527454176901771525870380513362035532666552848634211662252546848234648408564938195941225441763956081687208528013810345025474947795249334274670086514247019656442895980509546440267046111587645440973282851548998611521630996779981829410318910668161478011875839491515457409135932376711034564996388581324255022025400484222336828004626365445988045270730513924697000461381316774412720032665760992072809263708880580196654490084502937458115914327388549330815154522157358939074059585453537009219708144936152853550776772334691676434274532581652473403000038337633108542114802162862624166432237464401428336777728147202108561653180105657377718563871704332531780438285644860501035492939584351230730028606878787887370990971544498107099983167048576281266082474096596126272767271188414709349563108452105401920006556643356872082304054496602486628170691795207461298947217282453435538931375937759952113361153181922428655779533165531632026022464003689385814407827031642550543437593423489224274290277987697232567604190350492099261832592327713569135578446386809835558910875270179658462589336676279464392175411255950872497209501086297317004577289143650570613423415345957301592018272751931204547260555884050220369674035467792155997585602418441726257827739431868905944938376968844190780429457146099647360066350617048508653977481093150680805744001027830674903275892040343836755533310739052118258399275773627172281257304514602236254853411850934091244820097721080375489991378389040022022436830207740992768623656686492856884808331829329767335622976996688142215392152646473179973564431624535425562883104627891525299743190146805461704720861576451110144127005223176933011685773300089033244394506235215436665871884625952921704766488418387473284997129970651999042395175607746464471598906000474399745311971879666921775483254550185645580314666957521065563067150253512047314348266048333776852384866772306819753213785804185656511466642951932581744044252157101974532599324635725710825849015632744379478465047790545136382082477488594349419040362098666640976369407554035061936629994309473312822777630095663515538026603020849023571441891787449546637183903780316446660546329681728365677261180820401308831358824738940538681952744685396731274651482902724615217300307097474553406904530614676580697464699516188193417395540739639988121398764747862941644633999668115373794029445139242409774311111850680251123510891945599230143177538198541285697940893048684319590305475902457244987751050810236493661629807980128078646712697041543538953192816531096248166558145764616960694714029640109990869416497009961894039678741592983682813782029426782833520558611074007438914818113061105657686417246826439714586832081546269310706954715313216345573497937504519834988421287201928474702359568353330937141842970785545139798662683234347237844000987108707867977131686074499224193666574430142049958887546869773908507075442259631570889503346249283727037010905139911338681379337905399995560848234116276014333592147544890943298093021707555885220091468707635808827879559169315545748628547315230629874490011816932861519680172721214374810077162131035782904555440876717340865793847578217072000991546934855634585489883953578159953251702393936274189600336843091221953965521922475535041204897865224811688329076340277737682474558910290610171084998458928151467070185747372871233782729285359028379344553522706845079467517532166339931838414789218308716337216603698844999744243286441963828834057973872478341580263284318448087771326871558226596920642420804349237416472685118720241986821455174640931571995275570573224267791042982163196015648001981618356346487195416987722627235984306881840221921135956726094463253296376308866757089716259561909437912530731007062643002737602961162078454195173626691641124997445785751051469457731269696773048761611976867639595710311418247615878441892415600226550803147385550535167722821994092995756498112846830332725762283473154482933943068560418533943732768013693644859020289833931103718590909850384976045914614489258862362402333932611284889766845563711499981939095345512921265674224406286132747593227626537234414244060622875992810665803873131550386793663019558096531694055484477753147962447901097344209258130101497037594153693700445602347108198582933771288633837399430054061827920888339138262786059036663623482892024649150183136966966168905435991401954229296773129654704306811279073502376625527827017943085631196132471754233893715807935002236648833284822042932650863283526890838878997892380676325132794721062428158270037792230550059382487930868058458375966484767988482159455405816723769003542139585392469606219102891024341922721237472941072192881332767554252063689036727669131750476446822934075097055024367273448940822912176604643635657185742333163581036450880772245826874964021313933168485298861781213936683891317090571493709947176242689640813681691658328084758365956312397923006237400203321099502506968068821929359734582452107775973973043491255774986832017627189406943468619650806658471573287047574504011630853153810983519820796626062029431704840353006195312015922061678544118737115931177655988374435517012310600803103503210150304477485689324103892332255516072924992485902986763532867208753667171708842202513791790405590955671565080709126183603918526526043874996057261288743730848786639800399372222812602469660302988146891111273496934510721806188168172436884139198057815820200561405868868054945953711083559714488627892261218059862273267116016066780254599094299041120957782467875769776174943599917588275875190744623059374584583363328326809425484491157278448050183619308219799721181849272985008660119609831486371430567021542092933875045778537050993020258728942374361010608705817572043409249369045265586120194918130591979853647470991209646899983421286941534168174132073645341919287534614973391828277995377178650180349410368308986908258657828975645333824151966589609396477546479739552033246468028789064498758285488256004279266723433878339507710421233957706040202356708634064473342946503958777433487649729726106306663791384756694278736903034788536787344539353710459603868499771625379744690511002593558371555222508614659255571018721200648616298095750444553964658524830160735600655532521844027178406238164141320765887017505618390051774393075564299468366720866201329937205502785357183548960863608551081316922279810112560457818280985097328481695532098170511044159403299925805153132069077235809709622992969721440508145780754002898968032293980418831889574053744546337922485082280961562623381279916145781896934364747203674802350872212360099067391372458834930558248313784611759559516156535529328372692514561666259021133774144637866789252027485500211563287551922835125277760690893859570036384791369404288329502551385913807733927273530774951500273909147762615155301912016391645907066041639431086249504657945553888848606796825696763901134009207181210023961953748343147501919081948144924103829241603572399720820845362379594329427654584342675467730382363734825503668047025993565591106079324871515311112510975765189251168410430776451089364702538361828507598209254924759580699509886742491656298163755113891802422341775995354417527700295438885946477502933744414922632696494721726015174524814837930560894845464060239158045644214557535398620804560488251346310341300000604653334566906315293760347258567950655203091085106540279904852082718789163240099688237642848462946077008114510957567059472617540122103719751500305649351286423436454081309140225959539863971109153039060732556340119203164878757201959030075846111509317664500880412356607159003287016284785918858191548388853149438126631432516772222723343641149712590264657106411421036844740364146948171605588367718563800939622413355353358052732081792662146862200227597235507021748527156016814965329886804736971554010505183862807432587736585772056725483926170534810228692234038764753217629820418824915308272767340447805752357291738639495859829623180545475781418233213166663902465555817126514040716118662845773587415425730078792520455459258106189389576496001602034886569230112048214562604531472266721128613299772222576552222935875970587964457121612200934034566801233779538938137493452046928189612460084692303108086184183656881839162147180973746120188194556681527552500969819883720880972456747756434829913893132737645874101523800870008702625734515343532801318916312033197316564605419589045494847485634702221471487453332975482128117858537409552106650661061340336596987931981463557764815018601570288152656678563135574472583075272507423618047763189680737514464312743401777851818184023499340789374977133632717142045683974971594237212238159626991633222005393437374899446136048946796281234628244645822375392651784586524012673228105145075713599723475386280390456587654997872309241996505096815259292006792408123618262698219559894784416513423113138287668915915167638289263135529972614167345699382812107454526731682063187457364939531594302355626533915150118675503408036207238598707617374923323096330019639708650870115853405396615011286747202117304097967858072482008629336985372938348063403862756133387767191100670333394285566120703712640228747123128743437634093000969444470335309662183057881807664677961887285449834692109921189695491254517787128891787578122891099576385112679293046174151960125276064972420183590321496466603892263649485563656610252271613654126887851731496996453422359097085788212914185558555172061487389909852340636550066804274152091261651718310717720109877145726809919771673458070355690149823627227825689452676179824380733353010053737478734506493945573640447599047226720985842495617189881951596299303766250638702581445333294531320013172667734854529780906966011680562433378883523375030369845661916467616000126297142753233910876997487435211294729334395284865983587260400013620647292664279634154775682864053741416477593650685674519982886939992324938817792080593772946104429703655051244415831558768793720402100266159871623461443359183640702190498650891421792021883393495780192849203248527658711837992378666450272627876151418048232860880043275420119778663571027945441965190027185034769375351763435995966275988017753596955795655514864320249391457681633137979313758559354148831036770971629788531044969000194817661189892730152527193694451359011230072136487769078538544353650702076823520847699131208521156286727415922566349445415374008187656868187719153539791607064259040651594661982033042392370662295517238739412304746970430129336146908173149506520296611069022119617412843530254572167203920156166978409299946780950271960432550232203401238690812630363952691991605434646835047642794824448813547933330826268056674212594193995441095535495416721628033517616732007320814148188685212638388889841772610522300882124731461083927651076825868606363102040762766660656715967455302816458454636714639329700885494664769513438948684904662198888022869818637291205677648617729145949781951398137715042683303424428230654642728313570007879100389447815128311750016663750949316265524128638266928539559052642348864664076128656771359621084288101465345002805678373136699127363164112289770458562430000188062684287775733364116144932258224778392381098447558821477528163781666211741330231650129103104783599027821753809405043238725207354922491124852309678878973635731228780640272255474912288734973091879170694087007140598874341738480860584931499490095223599368018616406929003725228500097053053086027657677119753854050245254782999378120644144364989896856937437400901661800906308693949899244081002260600355433415634447217765992546209478663159527648172746931096791301280341342683695413811687099772697342211350893896186300508624681212500762782725202145050815113710054405011530301329388307493294057059924366180123848944845387558963245346135139865268605826617013932601123338529553580803405337173363316174117484779674211615881191567074109138438926446580376627661544248055399892285288053980759303476442117736748536398555594209556728815423224729079078751086387992792390885258348779100713037754732359867457478574867717530006419270075336934028373029671692086961248592119115120784960094364855117706820814086110449700433574472485918704447197100045493359066018857923179364793673498559081349427131467213552102818043505275666955731759627496150413714478414508603188329674559575842761871980426818706895827955443615586868624559077193170335900823909809423515714111315843442957959755289784687013055618407014802624231111903167741144396115126325967059418325158154014798551672559728616970909429616049802527611141325306828873363370886345235207444456908673400401189541418384889316286227119588316292638597791332066769891477457653564562272370085641583593998738451529791411956756682714991708587862146463056392563869084374674985770382920925478723298389705882793646094737046171521746236862696607587056812686547645719236466672035866298702906235622140162440148661021099856657712177844591481410110859573667424778016055607162915629266412209627548171554513311123949156311588738548737252343594443844728160097963214655523328744430397859911036810437109127333633912822400341806444756291324031449272312004234923093579048236141967465155094861583516088688289618919212994715108387430335203314441524351926709193284308895529881330756762340852409814318597812752240889533008980717809159443138531741793292109983003035032275123583589442605425977261186410114813851222054839939601466113468111769533315797265942239000342985139361156135668501600633985563159247911390063141587798978014165406801657679973260739746988808149938939622956646284626895711836732700235765256051136179163995791476560313645881173001664359203357070208426198130917133862649043791920399219423631870370197883745144671180759802510327883472515503204077891923568162944064074339617047414971456561103237207050102960887365144291352339182427204577761623288456922870359567294301473379810600567807603969838406392750993828486188830258495531923819401780683206073014983748519013566188129486959348311250340175260620587629915807219158938090413706957275175392771525923291578082594186861900755252289924762486560004306250782973503306303050786241111583526700699130768427343629645112996371062446386582417250853974300697003427770758487145740045556298185340063140851081335118564969097303149058038088130331844394158519055840793511354596666627295282472328658506745253416951376616209697808424837413903735538671506941464078391149872278166429814506688354812953298041673829007925827715801614382523736469063140018283876278149935454839483853328703509400788673268830791387028183400393522068333127189031042354018410994814613562547379562070322269124443011874555348069910225623380226953033779958175682270309111852872820211647933320950310009723998150466090431910641498303985208940835092754890943783664746877723430237732457506649625146507932128067338921139606429063506223802173634209477080334938763280734355282849587042742577649985821442593820467186982987326731432028476932056934036704199439993015825283658001049222803860843406238734717551213363308341099660923570371537356326725675104548180754750845542417175696560754439560542367418597736640987124564019880535269681150323578491201554625795515507800032557073720444484905209314358076378073849016525387989775134670979464063956550279971175598305434029596578206004455528893723952217950655304426632183518276944977899277340781758802224427192343824581988127729400115356517781508301846440199483874039516474200160824119331437721682941442347142797290257128785033691864234164953659339006532590219568719829425024163131297303568556082306928405650451604344297017032729493733202927712968090467076494753781384765915151237830192314360383028054299715189188392742937414104717010892265314839464706855110452814328748169999817208520925547366814824948723413538189130178157660342627289765141403482572107056978174933590392927202434217054183234912566916305419194511202660339952926641409518724081262143655232332007500225821688911579825605294696705835018613432532157741918205783793064185661142114519480211419083939725206360617205437834969348910712768610946494818132012333071216829263816185655174401585439022878419774612683928143859456582176894885164244282270272713980053659176855306011880055976617980761884449049060418186992080231706917793895932766524013473493260792678223617459291973294923136357885996441083720345591188784203628476669561808793553318893873713783512460079086963735768660840495022512913442824216580264741517441633959471523237876545455886213324941905895360614909354143750878194645586036491460619428241746857874260013232118505080176706204718154746238521074285314968225637383563485743581122669395364684938245481346131211043859542107292939646902384420430350715332414352953628971937244803342281826141931112000537492601367344994541566812743424502186531507444168038726472490810028705760626106744905020254332861477320298277420423778552420844893108475380630732223351900259815385835517459217104044897737317821411472513856743257343332278514058351439307247748733315584133189153086037198628821832104660258791477534320153515698053741451676933303195696126913980733585919603539473477136692066377686084249939316385662666436425626099750515246215581377084219270945707283440660217234693737845990814493691159304758895279183151354673195436629842929549842591883244998428981357241739208470961814641154445316170509485010469741172781814596229566577621048489472709945080532553392547304757801278551005539506505750329168834120346066024860373447656853245963039380266160053277699956556893209635445078952280524715322942807144150636397157330343900409152030046939102351822638588576527671065249271939658878275097133182891313409702492453197655620898551614319502123998204661610210412165052390992346089573326363501428818024315592698187944862690805780773120021080532220608538126144227377318503067594039159826487285105202898965906963934813760254732703184202591568712165841458050417390675865101404743809976883878358473408174069738076372445853430717350730343026465564060346025535702177704895859600339146768233339374435882919501381222335522540905744608139666569376119593421077938367486506537082238763662520902222181513539819017074470850556165824272929595403456984536759713760630285370659393923615299413163821683577923091759442670811387795163702128602691873034352237324794164283676899570417750400793713123968183433206621033658436640294217960947802787156192327930130667943291107983462830981888454042246391920730778484840178794260972797693687689629189172282622047309884125189017176286879072859612578756478226106381002529757511468209379308854388070078330800340264518409544463266046457793913730228448356212419498413059328246898290905920389227781754303592290410335457854925667040530611064056024712202900156670261581531776583883590586074127274322792980628389023554256290088004162382868370335089033042075635373237949068100980337175047377212104689007136103375810251430460668414865182813084553907769598482926170889604933500503117305772264749757166228457429124347293338962075607720721284874476693308469830733896823489950041136645390349969213966211378532330034169630474966012531244407529411081755032987250889412105193474469479479251078243384385324525950879404951190924581218976786519527567261211201238290176630031362795694182287618333383492499475223571594972250667822338256450135405546887112353084707651372433780529065573111068623134387237813934681856892189789004301785995737329309900166808814859728739480192527597829240684833098835620324589949747385223316306372060274565038664037194557187037341942471149663581489447146670581281356300230248566387731118017080026866539721667781315486359944964844740472699969940589207082108732175569185867704809787679206977078690595120193921011769711792265902002771963658787988533014652135512323559219217921134913461943373296054538531398659714794711923587208020661535627464962988267043490586518398455810307991950509738058529837262379254682548655895465359409716581904758479805113747232188331089326037900426081084071619780073509671679813504839273883487255011103401385769375728283923384525238468697433531699047153852551466465086155593802705924193333952318769973807092989523684448225104275441135230633231311455066235200666530615753914134074470394633667636038732178973479848910927552989685893146056180998939493316819291779559032699230727693468403974608947768435334217523820949852504913407769947687743716059519999949261904225414348519483161522834465644538348029695770235601678967174398277420688111079347147692129778745296078969380580229718447879536914060391935535904171311755052199895390045140662235992306439124347554409007100648774536544299065229209850117387816091899320954818594059888680909767601267379993719788402093935606476110179207485551024197066725178782134648144510643166437639068163709659609316550757374159149969680087631312467913290653630870728611726651160900594125227370217533341492864975103835951344234268191043485658832212131172567632792132431760439088722837867810374802487686969676845160933477195806098178643913957774673663555975838952895921993166591024304175831423783462462959817482056757160839628747052447870758150809180501851306036955251526196998411660538300916955930811651865909062317147774145131766290958431793634754214354005386699374693418256128251833616454965179144656851793453006234796384453478240294811311250760175659758921941072689873266222036548357413890093405028965543448045572022264858228029505466730607708020805059118474409164240296890426030103154961378068995427349496858785679050269658921190290870335530382565476740042691488762830796925732057790417475786050946587954636633799325889710025749952246247551461428952581844092781510421052852366014562126363582851174028399099580541489139563042302172570778623737373232611353098117711479131031355124570341859177070260181677002696957232311622775192782941253310361650033490190998895563370739735199169125645288309865426375866924202397875056711519807149924886541508984101305563600541826258128795577095721487997004408137467077353299094859775278666578995665224420236359200217154990203110643034466038124420295352105451989413473262691212729737623107091614170073095448636903421671944574329462931127033973011074362224043299344987385369708184285675264168186975348139130723236045597927413353976911381104962994356032371801342824632764537177566610855241308311307868881871563747124075193842300558620966322272424644385635559874136240962658241252341833905747172791694016762162331287030851455320754205544502508724405634959278578159144368072258608747044769002451597913354109332607603996180910555910642075305505861063606860163217039196326280003863973499131992777388682186310833090521549163043750953799421102746236211344787598209287163823995680287944745599891587763165091050425666827612559941227011585479208171458300433815511512871875002966483074734187610247906740654013611835865175527993956255011384273446143494907143118312490653777194277654699256155366659023791694995951787663505468925165711394290929847963661353679559593859338570285782394361146553731913438111138415843784238061446766237491727096773645289548461105854915061139445848147509195683537088303195621685218036855474891553393408544550202356368378098087899268743377569569256442671096375504103901350800967196276835558380741851874920835232879401929171371553407398346570964188559164367201170431314684979766094174750948257289914790678727267330733325467139415403058585099315208275723384862090917404845611106516727586917061783894320579970639045632064506275595452899896947869279791882345542801985537745060253722751209089037354568346864081868003036060148787019076502118403313165782147873642406980715947297578495395746098275418554927583977087455816685731962711246177558380903493768148038278513136939145302906994200120215716803549298377914785744119715127213558244039103611494469078933136302861879717606845579432522048793779797119504536377200764859867052679058722785098131968298987555326225313430219791485006202810415023410528674432510448683731018575173237681112713273436167638495852051108060782564712633079134438200018459890044300602567338641935826588544964706836172334937122846950366949277787886472382613804134077583620661134326646801558584251083811637773809031334067569935215803100318951667974668826330321305811342508235425103545758142703593420818664795108341095888769683176032723919250333998446986091568240581251829173039887080814848036447910857682558488074850341195712896958952258933442839183044922663180762745902969230702010123948532880047359594455156958850435712574927007562492284280742338551223090639391624602565603258058410392327139069734509892605904934507555612297454914230586464601669029104900920813242892647907090345806583692271485941104098471917170844911322387619476601870585312897065485644461093925206091826224745534903821087380773830608434854384502673433756461538221470975556983338838339714474814325839416548386148001455334515799789485574699757106623124825137438349145365581520322194194936856011822457246479538201940491503271757276910043661159480522408410220741957173104814731722421088243018782876085239892493721809422215507792259301390955881894297840762860892168342740455537502916685012983830116637520870696712827744162177866539113818713738613471400171335184394518264853013056246014585000563871706449990927137065946949656211752118162337164707401391113735651343734735704814574867386583255798861491043296365229094477228085155882191521529285541504156470252513010280298565897639604806317802773541340626139497432404290374872210880064949856617865493420673117389220854412134227864840653279381718934883984677816369163032302972626373325188402693682678489092019004489975341152631439777206109968797266220634233647551082051929428865190782110376729875116073315924767362708663147515565595094132866741215842465177151122341586864198396747003775966424195483293959019648879619370067630004750043569902941159205530323292957585829816008254452461268430749270255192509729983966807231239839361885961308888448538161862712864913041450106249762547331395855441591339870077584927876287964042489947088448394591764406408276547663130574083832791965571185605428017555576059250571622383651072860808506833076300514396145494644605948454994940605901920020778174776940205518433931450457025604440950418598341095592605470721913419795761822750995820897568417964305534053662379932630371046065055920826537729507169152147301188336556237403145255202375403707532319388572528039221789765157365536155595052467860651973036191557444439138237777810592039820275107013051084348676928261557726456918877229371034157586374486212534053743628840352084997575012563665020347353961422936460519154344374019476767408521301496848863734464984121030770053955719612539063627135149597779962117159895274071421268806477082889387585251281497685739287755059001554413907868088754269233606336442394848339161712903304891464229339798861357549002719898131037871257070147136799139590402529077211539209099719187200121694530201537521745115640912228626405072335184802139756861852758901593061617554181969299525443003874996319993306776775401056060190208452324722130286285732560669866999442787369534604731523902187419181672770596515667117807039627613520109698494445570678801427084789698237655304686204140646668743260081358517886350655886929682205328148811736374970464012086774062434533216441314543932348308475032926977834191794391133612138001767661671070035292546710721607637848449673100351126149320587320693379119353519684916303702532112331251697510832368846765586744342271251413463100435453635416611503388001750330333762477202676937011668717758330808126951184546085992927253124816670025780229107040427989978515125246041529524673165243153306802384445146951405578157004029034932208494129706112646460837969396844370543560676290940662345071021151268539120311770024953477889915866271517066124669180921617315373710168962307511345989762664929010163737217135917562137213434827901367989587124430565003374682967419646873324806005494103269721770124031046729805401518938363715156971633313179124438211816618080722641481104597510343364911357759073710893627798891425768752513437189669271659937972042741868416659117946408446617741494240093633244465972446529585468596595668797507339956819463868477421393113953514064624573245613189386896790576336383020886609908827754440371608117110979111702568357235622228052720110004258236997275663329731129659648453361033592136409872565464477135704954308519977401606665088021899148888938185606341106083526436515966800828036565158092443766541622175983059407800560590739580102998664793098540060406442606982292500375534932392344788248230860070014123774759946200218911892813312223493111922911553454037255996369929375011707993236938225298722401053057774083484713274006254303517362925109589807038032976360793103098281823586688254232089887901486549665477843751344539491427178151411442484858039517266659758283173733548555481572150828721328976097250765202864485859701188798309342263849038592784308061762359229395261940848139000110548273123906022383732940055076826650444211835897073238503148693576946692210516730994231775747356774750103704554803543104759461997219904774631430572444174742689524737781087897789086693599105700034160138375060478267671937305282110473086366457055561532904067163974554769651903353668841784681555632995424233265576668793020412905727723030220189228693517118931910239645276186842392236401025492982629751401256583737820222530979938186207659510040781818889214382708831703095088318038017330036246100235838470820350732133228900312797546872567625107369280539274661988744298613789038911849921738730138076891619409208724573323015535505683219382113073255027320841039505052032226670107520823073678653652498528500354966336107389246679117392468347732897482398676985729888165663378833233257987341150473648499946176943679963631360917367278480996091258182833551619171906254304431190948294244787900311672831169986345611402751555370246037735475273833687602695823697344948512056981889131063829337102977773494021825845921881346791739932787349999161420804619471918444971468781482489318597997923767037734530463956856895203033451145323420048030317472157994910353902705503589593503697864250199109870327750237842084717063808049346844323122679193190328405150266247030895345707895518920709929196411545679391285031477504697949054689339341741110062252014402219180789697030877157633912136016735510686845696096347045608261155260490976029905404142252688086591178969717562968255177355589144593973002775234744526303146736351969599408841587322097925867647665212670001948418906982986504612425445141028988975249987156760126011523271270249037652485023429397794789989532751055004345412809040550922414522338528699730632220168396222445589840517904001292750825636254993571519945650239220667537447805745703687892177889531461682043996009349325478927893900315152289767492645878177541958846322727904425493940589072364582462859244200652146671597443482558264358798655152404882471827191572115548626536114222741989502938622536694674215531766625852789948074712530334911859163764802234906125848481460408770072783671401340757000065882906377783253081788661210291413575150224729932695689031240741156292810980142602629775094993980262653284047406209187917664469486043184992542972025111784263721547466293054447905258534309346154367068762337382528751989912427009656868239295768438052052654374335830128395469490840445090235221559308817505683354413534168632380311272268399502552504154808868287625199582561034471317575683421781832392469291184346062866930775966739424320174166696315073940846020004504535858208499857706169743280262064923966412930694952833849885738131804251817110429688944115416862187884784208598637959343540696429835839629781368253023148471486962150924186953793148447667155597334498806556837867185332542592116806298032012278955632841891342824820155730236035845106877236793608344916965764543924619162599850461998893836063581785764251381509877372141756098971226642559890075467421994020834894639884811228807954640335140013549247714946609920625641467119133348165545359351195325649977822952755402284847150256354244233732398450627939182540109513399931537284841382994036472004915554119218179698684759704960421975688009936584578652055420895837057296399368796388890388443879317189588377807755563887893575430198412372917929777496052130166106832690175041611159221035823399273019838643104838991642752881193699604103580797381149927937027118161212061772507128253611094701489612685320102077701080289784630626589403723732130499805139867220005503861469002021936759875016159440179222807450645720020085255357645162253152790866162257155802890744582126106564446040501337208398563408667821125393947074683881227526174047598761138871169934172427977393109513050486564266911328870971470381787167824780790605165888851305803097372875938332937162943132361868900841757740724133669897648670753733251100117094215118886854767851327901056336131652584263931819700077284859862501397192983703957678912543420376328261118954611117857065757239817792319271475500550718049080811416629027380662304334863957515147655187339281550237542308591966159069495989655289613304256830199325364611538207749814884931576743099560798071575227685590596708478158596547920858354583450464695398341931815939606571385591414775860690404023887133441342122838337728608776895852337384243471217661307189946669458025810381917057177591481577649147102323023309341434062185476274810680344853303319695260957499099244648067527918001393671855449811935502885674890550575506020258333650251156284976913990084245390685726973876727819778406441995491505850622144004925447579186929426804293656210879555674471894181834148930219714624890442436044214023970275679375091987243764933175753245982253944316065255783419445852866053389547062724037927509560632819022349804416250367013402745085266082038628874094201783971162018143689379884610520573649154501918480992766831641199293970169201809094365913891154245358053925442651169829400022279275428800351366263868638618778832321789544548538461134089976481969429406336093920179603242346583856698771339530953572749847822644484601986483033449207602828499711517088999001341259296517863731644797555474273198102018189786730149148729744880861227582282919426459495993261807608378680348457575606730185352489368165383147206520821412727032194022856025041390449146202284055314179156896197952577648019383041985372128177995941008467942160928295239292545293070836210840258718419729270620152713417584913597715875728534487133639869811311265888897424185613754271103907802564314392948818004103440718939839205937738097337322064820320840987780411799775452200773713321479892268251758362531379588817579751975365903995410707980514028331510669764138987907823127177271889872122560952397611390323475326307422431772102680844237467475618908265210178365261438809137379626190661001518375966807963695401506470249828656241005876688057400608934788663060730237680181132589804040584046253329318796128140400671673561593336770525390170621732732930751610633479141454636013587469465485601200991150555152323707759924357292724755634127582087479519120467603009941076944263258440438582753509145053873326985708707826998707784960528661176685947720645221396612566963705492594307715635489734383534026421724292517586146241655684146109561999690113249184387482378523531096607600083848167960743569698362615564454575388201557484863304074869762583995132797634142395090770445204980450496169362019115537571383796459713983836147458198464409491991786906850539040368490243217237610735135278960188929711098298245316815520314375646104592596405281462306846274344750800688209125834221178173512793657895120816159480322994223748167868122869808023664202307838677985775094497544689784897174507361244080885456356123811940184284886821001489427782672392780208254075607640154432181640986390320086256593981340409534410167761660241505968688988197498327275544272313657250657710520370707747253652111761836988125365063928452715991392482809672811367364781747250312694607324608392395348660039305036948969381376287051538684512071697558349060265242482319684157375675348215256750735851718537507618314984097500044680348554685978944854593514319023579070959852281228544105490108478588841699414382020159895749802290052969252292929548322156463637943563804397490770590693778358011364153204072251503946577047385105617446390595989135560211304146501711916259680563357077360092949907549839234936455023975858163188896752888827349435352967961376582828792487958913674235177963026428700409688136006796964808441629206883816284445505608135039514706672001379267223418340235646139118733214583898283026565904871746745139905540627635555285354822000133967255420939069623489961292761662379564580023356819501964210494565371592203673750303019320116906572135712148942213556211335091431418179606961453509324018339924084162941741698729493223770587266723952773423993052272326332078237910829925089542456463190814985990970059091727186348127795153111176352356143425960758335785521569279782342748958650598899305849572717815960093942596703256741265215607304873682753458784709508214275710288280781714709927396808712607540191199879248131663318101995912178672897520574650833053398254717877062056029321706353502355416174259917709006935503867830238730302209030229833206063066513908792205793765931568236600543451130519596106888832127576183627704275541242339715101619848989360978724358007508467915354448667500081232768004256481697831451564343609469270097408080140623463651185519331407416785565138343758260184953161671123775465393896289441159041228237428275919453363522052712492490040192066291199891746278416269575747529993613671493770365302699126533926341689715324477703223083371575356022702627585457436139334623464912789273179047944042130533340463470514032889265322109880442403305484980774437789234722223890129716314055196922446636963876373335228028336572401751562464671713886124236336356269009543366600230592684766843953838331512702968564088656184049878576928614427599878860055490505463012893869305366022004283284775722299628236393763824359404161556147440301238317066033424295937645156127723147914428361033756631703890296338154261562405110921431079868460672892174159811014472750533488956808988339052113501329842982640489847704674909721048636141166076481507909149492915527732292940467216337000031588330864084128302600992610522595554172403258845714398410174108901208668694920471679236293269900767071036243161785378327753911764017793843922235065331340915328641447632635774350768910972166748226253474195362483933046090625679704076796876404652497566486647549809408702077294815235497300921627327974761481723230068773524147529519749930517593879986566720274349448697902945037031413269264684550519117585542995132237112603630152572329342689596834839090862869929733862292384867505264802242979716822976565470047883003705813114055922103635268912951512780478790797134849182504469856495686810965957958822570761495752579086516323042405007261355854625173915118393280799760012487682709042360183671317839951909039418487734327722615119253716836891794400973586760745746401292765608932292328877847499025921691438178314798875481352296014964512529525409363277174958757803133959971647938629806205738034245000722343110808392376344043316345551035098526579474529195494416332751476616226936042286452135413554294516090800049445627651457431570854746457704820149583214458492328365211142483121900873470156723086936364096896453477475234975165843398795142156430638459286161072706053880592446837717037181075347753968598609923059336417779811222352926361598017073810791166591797854598721757218452005392328872476491156275515393820493529413036666384796346245679790046725081694984502907712820239718598837769820453601973310596785443002073935765418146911313642184020218573743547648771977925277274304536010133252834884491731826061207378553516290895660116027391031716540692192699883678504430065279186964219956057231768614527534052911279955857941357253772978571724252456138037315239857710625300487941072994854472588304147113617251923592647625984731643487821809608842462625460565772012871628074982987528518138066435865209099653900897706997748428984096786593614264236298312214683628425943793720993996427580694614846207639115825657797558236883317378054224336192208124395777100064069186622828751572176213680512836872752417413004027042087033023313179722685493231349587275252287057634098322784569257594104447075894377681811900239260644901378105534755032883118417788171883743933631630536906058604383207583631884198812062424613368433997375684354487374391081909334262355203785993744446939429914779615868622982322917795813406312518408430371897497672324369686954077156477477794012321212649320076258198939990523246761549880272651700098525902051936888262173589604907007766114176332143207783439186548765586728660298518491718679234886581390072982389181335377117546695593414794881273882472062042421969441902735071619382808003729291362487287621654497223693292408330205983599291299204197270716354694661932293593411354327604763579332462083248890043997712087186634129468227184919313678410448023478793725781581862555516700965004356887813525846724883353576414699406032031826563106514573330058757642331057519889510998474072776587387315049722184715455114300784615719222429119708339539015072558743557821120252849725172528739166398136516792974354900890205571810862039785818997623264391252464968799993320034402112629562926665506745393880493088904555153696302998411235508954108167238612381277848284082690190651978790162339325123473904356504098525679114077624076352082345090025884188508180015190323684352958849739821648950938510341320228101377258792600162318524218747655312477382457688454424057996781835296683617627290787716701602041887789657085815247637285343503435784281911650584951540787409545237345000146367203508257459354870577773621775009017981978641873500443972832141723518138260556612330009747333324613727751469715112325855807260345033834013747778712803970140965205745514597324894544948019026634941724794056232774545387350632834791473749912412533086360750211114896442099002622463657517843843195787187357945378895831836157057316372905274582400593705739174785731237065117742656960447094677623248070232288945636680684749117362902806775565830799396961281160082289266826781840528240135535784025324817456806453495216981970024287609943870646222565919280472335955705635782778892687423797854736514250668807245525964371203033615880942149845548467154640973445767054994962828071637122795329128000698505431233544343118507255717960655294647927782054218560709057841770291090944048964825814372027735282300125791302840588383788139011691166981818691098225082229942772242066895761285638952542994178061838747952731532786276340127986360750121714203046432779583783139444316551150545927743232429437181460819501160140861864849982478422280837458202399191990204189505451764893242109672239190093399487393631200701016433732626761709429098228781290501742715704951383688867093791627534552862049749182818460013253036823692529359861001481292509645917179915869923092273864778768787415363283052599004477025638301103177484058605256770836107436357761232241069764443754917497363985902329706014490781114419163182749554719310422125312000099102207056114458298842770565034452241437684278453251109412780111269332313386172239733041348910297400855662145992419521581784173538651717047664588934278956981674681063013686114802561171256640396259071271593672895528995750458787534916821728711061499481294814270526746338538256529216983155137263846500199058517851253869064345532804517999708391912593269935881664115457817619909630833424374355903359869142941326119688925634102627831565882928734193371178039474119745617305270000675018396195021318584582832181172169470640124799856803162746692688965344129835660614711855716860134351139994578914964539697663244489719314494058400764130783237377848971496370886470405594365963778647328927088775545498027122452330159087072644533910164487539089929732196623378639885917494553862681064631723822337572547388796292509715346190423694974925661860629636200355814304456153166478867427632949349925019849639530647333599316232288804181382641150511065008869517450386404371504719270989406449637565150302853414092632780749866751517667007181192384547128474854961059115237761082716520286130109841567618681313428540428065468859422956598465121752589214164172433373883650559502892408800121762277768544598707228341519635339691323888342006484928042397276716441986734124235689491739121241741548930658002738886581281762903791023379700628578613216895594363031954304391720595207676591513510049050681532830259887706029846924036830095099242789625675458855551528392721522427640416926896541768188604699700313801467146167362992566352507502767004607841998887433861571279563535264657293871067596861880045446151856517313163385584965392336117463257673292310977222030557495373246455143575516264677452943792803613396424607111033821039956466665432659175628669876389750665793710611912375404680888328947421902925261460762750872487459003796311227136427407740324598427151807082482075399096353135064461337716291366092440956379010177545510120316247119906219132376059278696984738579717181570706850777982378467627905544552911208204422060964674760438579328441421169648128367068132759922930378223488391548825579505469908790163607976066487926702648458702432628874234176186341641755584376399822181047596006431525141328037341556907548524840847725116416225247569034010107024986412996275456755801862572039538057127779526575410360048767264392726623103410677581243925410247233960252658809923694456027218689204819660728378302709693997407330732488715016312658321428512175484823352413979247455017324710148489324492234721966819579966719775845186344557646294118250062308797215096592792359576308774370067859137995655015206348229985488516434259430906051809466049603820406957758770633507932615588798772737431431594555077822279445560038423161899183570757682891042751438986359866455751286591301565857798855589791064159582336591558144695408831006371761744050797706547956042362241285078714824352851341833229917605288212493518149605379688119644996888962866523327577203578160538005761312526452409688390881119687891564830543075302734372067685544018394848446479024356303790252455746490380154840890498663089031989538269300259486136136082655781127760278961161828617460517871591026200226290747781983522649481056886526485566807808720444177131929280756411352961198998537514173254328036193133523738134316054710249793547739142263844027227641056730598610201696275950415922489947915150185889013543928757914125219091424190520343831302454400200284943006972640866675515890631961990751954767461483472547598265387205753000648166689349612054964655159576487560049706079023911560641995275597454005289074107663971802108558223291668092579238549869139105151588860518557249780029786180870059862758850070266844409353459658725320780505580125387805995708968084742283901261816802018550886246719515340818664308142019058905432300707813251642661187201629684788082795347536407090317708940247607872409441734178058614580341652093949502306320770675379835741466949301663838483289353953611421110951103783004451333939733308883584273460670137426702032792347976119932756045874376782246307968141817862657826538416205776945732357306049165059715507808917025183508576527691996344469653479673340470196671628249013497057879662217583078369747444626137216672070221099254127641412532301822999386809345754163748474320382739437188452567262501892756716092047570883345927141182069856261799040348173697477445922529799543629532822150302529183497583811000781253718207033596563508396845237788085177968048574531056156461575904396902177412575972445850099684107354476615397326667580118491902873440406042700219602588234190114356821505349942630565928675575315723748340642226717592651977774371250118006745897701078136467591032822908471013585472622392650100679524670212860237406857446768624524017443474178036806567060095538441471758732788409367037164132698590010994956365158179799806395650937811222160113226522861869703839042019627039071489303527448353921601055853449859448867399191039678019002133426530273169595874398999808362977264022514593680901790320663883004261043837250602467829254168716591534986312585407311325099777499803465579177113376835621550548138519783720789403259180068841895253424469800442196203615447157040676997806641772055511282452685281988130192453903257010589799487278075923768730361939899036058637392415579586936572190262290515299975089020586446015347544107673130215084940869485867314267681172590608204911276036000081904579789870423601684342494286318089060730189136098877428410806476064055866935491413144737516439516074030562267332679125110027085560385120647287415432673585643563242794655556410885990483360831548699633049082558026642334110854855763789826137698878069369040632616984612096848742532803879706398520467207872308885967181216248225255610163885473117365184920374219157420396958753262667317959483218389498628813223044822036489686692739015100076828352268084561107844966836908652180305144052681228939614184831617430463459012592417607303026963740486109300687478680024485295385918839574362514195972173697128794662882422296147945860438132282139525304783468789581451681039252047160033848475650229534085877026319781154623517801216902369873906187594170574042071207106269409851549784251848190641624660686237790491320710891092758323628653125983163493822517548955819419378227490032663693101290623577595623865267711745925283264607764764622514344415720975943246418513698524797339386168508988199610315523632937212694998066490133864385189896978080148770565057242081067942659695032583446219535067472862239702064875497207052809315927451901120193014404487362702329825641314870433638407524391930500967497946605464524469696502021711672326784181868343425543063260758973444861747654548475506081076630322753697946912728161042565846752210825946173887501557652053155843249158622216395293892043653809561838204702100524223624384171676988969173711365966955161206840030524618144521827875319888637895483342328441484966158194675304317218545673905747396191351383037680408227910433107799669295047511883478703348450944579478308872169598277054308799951753147927090263761907618337251001031015919540049689528878932024750455788282943801314149927919936799376104890028975234229244641471496910989491279236181309810234920794007719968637616250531800921947778779396194555712475917717016777063406741454941563837613893433385339359723530174394549234412728272419229338218651322768683886959478297383699457559780977872998608905465407558930136746916817622440070351244773684193019866478119797628207194784990165489045917047472284285013884642835571926632740453899716630870256693268157344962046795347855580207069292152565582897328176781505898450977521797097237679645794850721172060010644883496953226180773652574018293811310393453520312864435359127465550727944163581091226758895568076884623380995063714972787803990857553902478380369150492423816955277946264813503184449107968521008571762014676425666910596855964550281777225734440351624184842537688462189967190353997294391750666990899735140987907653740546072584858057692462079041500409361383481794920441489606263019277919920448334593845516887669718880536154505031176216032244008670494234639946432107171045935058545911960509967265127737253189499346545200557716559523626491952013336218070634621774625944255657980796265843513678911188875570768176183561907976743060292345832569258183618424254418182713653760030931562237370985207018367377477245547906874006953870119641977502680968979368579185837635828504797210801947185788102570052635047286185155935271436007837908841029618366032596237491291761388768536738351679634238491402070954990726372052581588537148799406977036320632596017303442474490159024615186814269455031745619351254624531479000571637598448848073449447785193988738213374079212739760026812812864972629700851501822395765704463549900588813576134592612053599087983366627898015909179340335895940675252915864010313604809530778431860525333868185044690468129182187308044031679004414351545119311074190882066152458508720547545561397789893313618971640958351667295196329073460162248286820880350907867858400087063660235287805294834823307955383342748132567049304118010452786755212244221449585505646172420081884212745571877368004406779493058980867146900489117558558968269117584075315387565400608749241754473102046521798924950686227552210264161873923503255010162363709439605403377486529957789245324298098401501972699475210296939998524167861085401252471641155059682521450284699458001117926357028826531959930683827209328655735527250575131810170593073307766196928011495324084263092904580335201506142483287285825170783205580541736718267367354736500705580975019114238192567154551923410814807438773390047153720672664572980440956167990752629356800896379268847507407613133724474370169694305217426821352091692925575623470268835773208357424337691094447022283183702448671172249494681336270863667940582152939210535897658691270025029462192372575780277286066220446579166015995847984470523603628514131494002635775533001404479580490733967018796798612001540404877366261214266462639012284557601205359108737143476719008085247006954204132706971381848084033699017689809485144369870942978108195315485080261248193994799047722368547516256239928909219780379233818602997930842263245916568477217391444723901902688096726190197485571628568016984212331769168189993813357034897231535662499828803777985933338483687027129504746769013116776217565573686181152658621121098815530780275828868379659890507886043623916873124873925909138179563950709978335502955680100062116346820999949764680795095928799176748519075864955631822220064675374142367554448213728470309723988128781897981458181254874749681995222076558213908403658894003626406701903091501547102431430487514037963560116431035509301747307528438160408807174930822867262406312997113527830476358451054283123773110809667312072869552312116732599178886556065659734734117732252459095490813044786163562118285550964825858957829700443732365102821725233072805319337647653774137148042525136611726966542248375733214838651659286711666310518319384623449870859859442460586987769093003707620598470013819213312305544385132346297757077220184694249701891801667997906629581561674903730720511028194230133012254227681324641466056822904564336361810997492120942331665978677137490057640039788195501121405780381698753045023329152850881326783971707266561191145384533700316042034485702790366374621124769513477453379881125335254720199547472194728068574018550530399033811896914242503737508644647586044340699445186623715440674090585350563726932585096633495278954938646311653796774383775396927316921790869841508440281915017534085319681265504846419840075907399527256642217908905635528250695120729144572070926142143463782983502157448430699595928766030234942523921004351413137076325325651440614877543405704064046373136205391924812837337256186586103297887209989738825250364673158328531335138164689250416765077104306499094483502911525593581934607158646532374511999727121109750403390315171701915870630338788375706771992532268142395026357786217150282157984258808161787203225379672386737129169070877643728480303678923857894228055498086151180151030752657006087021362062239795139922741287282609208096330760562797268859466245664810668752697410347121713897652221738706420832638457820173942780672241592487808816786869470164109877773514028071436023365782734739193060886380774094034120246286023570546484656735773543835612088451264638788326743920059972095718184135690217108439098007913829678391732443903990111164471386140811976295191441460956881579855738675713003864855635856759495921292596244247813027502005948214150971309815157909938717658519079758710262993480624736423125832815026834685964401288204603254675353474354910676473343768015957292719703782692201479107296053102211368629277155865372851578959280061722075914108725585683202086968337947727538310528002829983406176584693861623297269153375353755870090394151707248504451000405069995341614984721073712316787460649259741895912375271448729389673758654373510739916634022229764858592005724254843103589488840241396844559059036565435810497037553016661741515413579261670284962288800885698782967011144189263560961784719382820344844159555298613851259365974916295445540904596869352019391813738445682916521491377310581976668879359272999099311480737577870633271673182858683150363873054531524591322560398311021273312279965839503591577302090545461639640003386488418481087491763883992974823571982125656738163873256431348822975608297466798348423755807468345211236324382918885180630287924099959975414679020184613288132194352271984247334493428938967068379584701810455344820173942898524252122495611108395962737171828211281467589415039635988727099815267882497507683367371133132275743006286514383880027561010888578545076446417049971739132100491174724691556082597068400571619830095038093005740052213997946673579572604759649526730425876674590833499501607351757347497219358995021590273524666238224083348240140419664905257338279821050055774146699980687741277536510986765022212607192450732120401341134624009714048702235367060771684601928632014661735017335555226623288065655339451879232275261275401200600199132031147877891533019195819611883637248235865516144075790841483569967923414493116820018928554794379278957576629456750070129482247660419450753224641373718957846996609646494461327722438877864571351408219045794138121272308993131622272476301009757954530248799333282689145000241129822263611827869088518599940164393090854186680745606881552208717606167057325675850482230426515924021141077399652307122133382435012496887420734110183673478949993937609071425393395215435729415012411258889167123837845381803179356323801589194873620096291501998268153246676310304771122060543926942955610004655469573344541611126733105851104817629403850517277604971244221249967816433141803021331442790205157902622727469164297748193478479141873758815386165751372184838042442987615519193075550047750899573720100101360304289952007058410874052739805201194468310375205569935878373924514885460551801292067865327493353480121742061885987741610022536731834984764037236651575362115668383799283038078290352187345340575603040457100373416680072219725570985215005945455045791018674482404100097512806580484011690859074028155694306612762671131698396254630527037536817834396123747872028803056767338597307253370455506129250806668757449292491555060319512815016129855194610420383282965897042637346255879694790761357903684720480352427658668505496259148072778744271951407028374678377135479232675216267565895409001011358828115696929097522825544218825390345304515668891262977636289975611135728748454684112633367888758563683243533476193826768576975825030039135045179571994931683742086595844057462702329559025597311575144611458955035163537835610433362238170770512741421203670741809069817934310496656263304507607794416384972325140166352550979727305567653714563288693669582885535109408282362356152396059742438309534816989195102555625568531710721601714802298279310541392585024031704168635950177862758424401068129820120239570077358208813155753586863911366205353043160989156578652218644889362399591400374508567256285364182002764575866335777133399633040461367354469789880902876308836664421542664484750129271368160926084507010771761982970599348224738147139120265735428106086342790633044194334741816910760930848966336846643473948422560590684855802829971331624529441461677992833800696356162920925085142706807311348318674733403840089581003634123996722337239871628842303208057271611046627382090002375968714705756587004152130491781442640415432475236890345498674582607193110581525311933758900284841564837380399045755198564664800300952057418147226834543351528342060267374964509135164546046764398970121948749600197161490640602105494379842243496881037205051667913641109430531856531832671492933121979481680976217947238516967372799332793422557835046057088339885892640745705017290564510612659879575559017544020311596072295453258950859767261932200869523576130893642923048945402952387948573543001860058354520569726854528876853485244182204992637085310342543506369732909447296191078567301966768244055091591278432526413583249695441971828616869373471059599282433156269609868821942216233190681537912303110616746717529779054431210022341084926452865982972896276484730222755353039425553739677601280763219616668103546833345932493240474481382154431961106834186503728818314737882694162441106769320415694108384201186677058053793104305704617453759299503175804156542118655094424230632990486683871669313529659896270875863683154524859995362505801837581294349109512307877814308734081172419901790953909728568576445415576145878652269245273608052412845423983514738638724326767400781587251191249409948140855163892020202708648241291642398526727989030507092542873236895964994042124179182077404246699612268501073996667256326542282272962401125653015078154204329431259855221856816269353057039053078018043640748511962444203129994240920307317332625355715728007034379362954457865377174850472003828767054993565858069641096940161589503968943746316302114637731642742251760970501114027137128035290383284758258283432216220920226091353832800384454422602734489955988577137134866901854873477723302888332123189543459002071344764274453165352890725758523206706296706921059428234674368408508656868761986043994116808556318869719530600733109810669149035778412589419828508880474588855247986573262685147898176751358954716937123796944017927306864330467902224151122508254109199585426671829770233615442679710876776158631062259158852923673195106037849654273007755622192440230366650162374321639029190251326827619395746419594336172904533421831936585613161093070288109815665095730460230453631366837000135841557210186612749474390665026566602973071009893724020754180794399916017202788934973237089455922697043346901991154134729307341922759237346155536759246105199796125478478099410860686827678205752512791124816585461495787486283703936550275637038383244332416700287599720919982672073276771034055237745632327203327438184419664296790506899303635411342239934386756047256504668228966297138297221215077841222721306136802074538314197371979593985408643549358139095752743094108036397364629378220765961796728391476704430259359875413132591956404513167855735539863869401861268958600889583826207358978449727392458955064459085425656269366445854270524559174752540863189596724539914949678922215966871946485787095053119899147807555928829831032195111751037343618892554453800428781641858115309373680488570846553597877690177064067816761351597292052702358480773703998288859144242916005673337137711594568366732689605864644900231882064284455425544299189251184886209420682268666740065679228099543088978143411570345257601260146087811991489443580346880422982042307065644495933928283548853601974858890205316175133001988791026123643989467337717763374958154781761257479076135109262877660528679858012384244590372733129222336666417778633302861966741929196192355937066919199374004238033541746677604299609883716649175225481409355358493908325638035316587638772543225397209433074878172330205973958202630200951117132726162416618474763913202060183136886074570715548048263860093188602191028767241700260732589535433014058431823768434599961952317367920049131695963224125761080786580043275495656230559865406775890752851271392349796069494754790907558498616181371672087288663019032856010272231485856242818062678242535022364554570269545757681777984082741586852424212432289023306289313052717694086631117575285900264535698199451095290294085073043620259593503662758791544592483958801737005360360287399336167060922249737182160037253753198472988403852044462848201390703742451193728928325363405017287938549002652459292831825503001549162250636725292268162649497717225461622807886429175003230441417087372427982634379983335736475404513193771376594076829428963976507392485616017788684737796380202094220522295965993476775393728053917612768763303075295069304910844107996342858202264499303179337006442154177241442491137777784509539760046768620277627331607944373147747799401042635205567509333463209969951647063737039101759874483065292910074358890659615817221211065474643797346752662629856598439485793758886513900839634551611954770375371426184598782644823741946818028117138504069210135716788921792353800813751401702298176725163867445648591331782468814813343737245586797884580964476482951923007077036039169964138187295208103132730710975403171097260919217066101733682383555126193233869337462260833532716827807982865494538366726348948308472597430149826778487187040606386925163838414585243526359665106141914528942088575379779171558378207064200844697767928172125145034281012437602345210938854171788787546795191889774934727917606702885636857848478480685931145170377889417892908001306080950761176114640966538718834228726891632255229340856023874107496888168242934083229643992318350411808412941499191219545733759594052899866690219672916304489445535414884870743155507776501083655767419584759336262936739989759140316467424612864590809757536211303303087491534170774095426017880020234934265748430148537958714757407782219600917161294507439487010629028839267158868747387015417371986366495539938647809563447533000610162676535848082028126612036607253404797101215620684596481662711268741025188818377739124939792909449769856484815794786885322187560942442520246355454978961091087311384014775495463981999600313724008398036000091278154574489934563867577841664753762781097385214117883078752866515490178133243228745672285714462893688763823167906849872876510956558915125427088871727040800467221825733577837839225684163286056391925435610265778330443110246698175252228980687070294242239640385482385412587114343703957809451335014987905130950945593203941015984832609072269613479566722895644289451812240977103283427216547565238176598747163524086696491930223862826093076748496244062169557660372479169574657604030940959210491987439511509548917682026355823742762390170628044523129863305080983371077196244315350614248552081578493264415423079456232976015119644611063573669350313913918162281739907559470920729700600322348756353522708524954113380302542600021380317959394383672768060033782959374026956464752007531433740078822827907368672700891533799631651778429533692412465621445921416143001054177521600901710138225018095608018624755928264113185045471187326148764189790862137545536364410704953574602058126632495743691198348662490815304827429418176780457329125536426836729311666470761329041361111925325236900130935725422955336871358421202042654180924660741483489017162864513743634389604006450961358370535410986767045987668091664573168768421969123165873822777777726242974345284352621219478137401479998245869709679517720870489200676837864065508935943478631857107508253877021204698378919499747143317112205374938866504145961195735707255533185191516432295629172300700799540546768475180226462823404345302612802482928004971318030876811768891552408953431581848591793387766461669608540282574411848187860971134434697343374468832101140697709750002159801574516119940578155857068206232897925173087000405984913899495045011697205896257505061639494856904189586096842275368676873677406638718494264608923722532557880384454148097022248785988563372079014211894126330366756047899484055396837908262302578418381455008007238356499239406953133690449299287697822945911921811396843084499751272405383550002263680288834229796228643017132884893171691686433803897189818608038938915251012023736148760199569529793478685660706521302395310297524609687084321562335571515830241562876594891349021351142277479728175002223114644929777847366833171324418921335668062188725999057626846170910145830919099433803619639389131285491500624701512389891000600721018138933263810742793801571773689038302232080791882625639634401129170032535271419029379992437320949760067807023755909546392284302936334731145292335062400222280625652673121240499494146917862396087795943408444128203248716458817120626875299899447433732035347816573467566550066434684853593525593039569310001588061245103564384812281185824365821374286953375670394243492322317779077523745547812473007300114221349337582251065387838225332589378038648223545167058230154302397604871528060154187622596216688979538560762087812037222268043922406924999952199248789586141788007533512658133850818280469970441998958933342127193095947419522369874445015304900823819859515784241160497231448486994840723073929458437886239692143742351261491390479869170466849571551347419760483099101668265706838758616200353653573851375394918541962975310161849686372094996824690906689697325922911108867089009521436749196697384905500183135157705093043138632465969795939323872608020971332059029963164174627337559483341294229214049835334636098758901868235459893529852053951903759601922889095432385813876764123738579896516119818529024936513005312910411102508961135837419803675466288393029395862189016206773920193409963264054025935137783435694695107494708311901304439895439013361808969045797964139669298941348018331471858255997248270834659971877301115433968492177245728608314611455151474032190133680840227432087108580534738708358045200171599839648173867175574857345996246805126389625090104724854522872745432827077680149942048693402988798773280282483779020446667349466089055463143010860772753906085806357359951978711864650829144437407924111050990548398485419581048030286794755319048274062093954624643743401280425545638486106829655048469301428199798510513840347336401154496966685076224959856632108628411344272887990945390995476874681987297379667778201847976598023247764058134571236856582231240267639661079694215684182089909668595272226396796144929884295739559900398763586380719036637814529040772429224802432565832735474810549345528195244809945268935969336871308014196271649679152918822464717284931077001531682245479670331809429584227092598447499677904225076783440999142709352606369640121765919074464050454185844056599674681161623250468955322836693479476914549252805490554491990748291776719919713185704243127695094704292182544554693645979841280238864726571926309950137511372075787912010496808344829873052337333650540619505888108738890389664070187685451169032498372753174528638053816644444561892149046142384394603869130217030761521612632065436469295232637410062188124819765500890455505614450068126696242628662535461295203347829984569510357858289052240128567798134425859035366512351968799646873889909266550022933477122820409324908826061366504445652545240426315236055855911180790770388733523366890009051534665991630369744319064649599170564689333956323350635420823172129912606570714028877023652496907904483419235626846670081850312973048609407229704296712776234006839627369280804910816392100036303098808870983865060589016869283274219239981660375931256196666403466698335625158443882282686123966344876961346765401563409386928997052032423712413214082994355820170838726176327241855007908587022439752010313017796304088668609599151333641626711412611392157137851078086442112399467346072484989506100793932604707950778170643439703892831840466029832941011723496964494027536650396071877424438758154435077177141959236179208419416277493213310437122705634295351208653528489996811404569587590094392067248806142215111952758223405227912105017575063953329385348097962783118029105116582628312782157641816399291684038973134138554732479732047964756386768780133198873937449267711875620209939968645424607913487275981182690950121534022353802650614322076854393320033058526376122687162040426163197047314580377636375591414851948618055938513772043002517959041751728349229130773866572646995234569063440639388444935862311602506453373582902736577418827578213923003024123790724449244302405988811612341097610990786463167533081004757398246168954864336365250384975077526542999933465121409060701377097170793835798659136748148379991390282186568056184732435357205803029492313389967467694894690195045762845732358583647091609611275017507639052832556726847551167069927620086351295039780871367629214705550279629043514187733553497335677751753803005287693054523806143191288231101156535534553366412443969322368077365114804926929735369211351336625250700352388446583980856593676831492989198022650815435901707367888065839086077069406147829678257384329518248987665345938834923217520250090487145389187797630895662301305380232349850221009140114927827254691240843983155911415580426181861648141054804393160080953040898261109415468520577065427424607055490328294667770944489363473719705839580678666649078514677325367020244636691652783862801490839891710151105278445243108447300673204603744376254162404085359476020870172670239317479091845673662700848657265230455830148170532526930844980601252017758312140297675571880582526873397657414273293603863276756383792318049125796252654482658818090713208787256305733775899292436269067814500959021814702523643019853750488094965087705414361494520812639837106361781900051669086880993252102897240052693707443455093013153000942535795853459912501995657906068306625128280048581565661016835321628485318089394823700528900449457319817103759051326439697137705405434731757056218542639319259483043263316007810622573199568286257922485469347195152182757721473425991252939719156031535707036404009201101154261148521368376159915859367053526191523657616935806736207844946528804477336301445280549347671447107251452624832421211500210593225747373329700921326348121810647030347497922324142641508002801606694272880355389564491600219716410684982264536259088138225086129014845605772414262313760387467631924094572372536845171161602837504936433638081926641459115118159241395013311910222089903233302350031739139493695053068075588404056932357323887704623526111973127695654584085988228872952754675822348380148319733369116542997770698364678134623460269405628804126792499366436240860273838485011143478519570954104733762818478352967809860134956136249224625648209468197984158635235891406510898916467518651545769398149367989451211431415248056573317259546514663925986196662190337083366015219705089723564478534849061217896860649676507906794410441396234414405318082761703212562751480074719858170567112817231707799568121571276769519615721510994090235054815530745362971108352382041778124937920861642708874534105724840080609079801123871502705060557274669880395611386014022234023706904262037013440109529727056855067831833873484174258780181643544838809947979093144965576213073752235066632908014703814969136400226233711335491139100476516254460775670344177083120951471948876654962217437618949479463847201576775384580286026561477290794789420294963450464125345316991846217846507401285689814416459303841724019405203805187153315389461324057170584504633972645719272045711288550023949128222031623301653390172681234430977958173694122489786919906415883502410838306919330966423161315936152222784243940901457337445106438027496799411265734584003606544659683901986892207396653120205206956650300159948456045519350943798087142445642954843635927175610050789760104178285369002081120612900804496499905239065761676399897224731772985007099510498671493875263457401795455995366245835844862007080185365173951483607741478366452939239769735948833002435497117536657087602164306980985648042767092180167537287099687218056257783729148002582262492515409350463284775150498026321003640656663868610788209565385066832613148079806749164956132930285981287315758933457729135062451787268442471992397305171244844942840019706470519255123136705012875778116916996366111010253835688119153080366041987514637159243048700149257096084631306413730299905814856236373061636536755543035600899278716330946558882565490232183295316762082970550110203567955193964641540419313065839757483334173706865467176173921445567802789649306763458853841997518956621072119347265239639340628568942305742734934482342153723307244501572968368519550945690044994984304349950213249391996160843549728502134323381566989624523970256812330506147532322133024264608329625017014781167379345569097300247981002604269887831608203896148289435265366808402891902988621381759809198619543403717032789701166076430066146087373707083671564803962820294094986882536507453903006520158632231196640109674930856194023738157320473702031569363222044706544792697043842157701040549672638025223499101226317820056235311011300235024982417112805530582656942976109627710002407613414526391985327312493672454114211634425668512120738437175430277410624542283693524829544762529424992837959255668340862686597648165282702690684995780729785730657085067546019287025347178150782379147934229804239333293289474919911168854459751796920558950577843230401111737158546602468789447938552724265235554866529018418656906039265178880957555851680674228016611362927682486371573770016508928313113114184446111387598587896246645776826773313587542907555189840253089958976547894957312935068798021941330657032860450991975788117695509366427517418329794192194987792870268817318519307232896419417802754194083674238890009973234877701623667935636057608436307345661913374212384611714399764129760409730734182126989229676182241637006498023032003318216526184929554124240672673242450057632245643800712135856207383702104066225508941497314779000757230748678264930270966339997975606960118064761957076665183414936500835700842867523983986690652164261251935265572225347230542772602892851147998331349435876049929218937041820208016703276075749049025362283510440461272154654696022777316843491855013204025670726799206875919678229766753119543989867637391607911875196625755340567410884837009450208370905040390937164864632041190158834496698100808654957582233489433363249887048590750795340438729382279901813301591442328526185019628537169056693929699318246844899104988643184892553319222718201579333508307682984418444274832325926603667833302605003548862994772169609205707794727687302195060248191603883709017803921231282136008395968058612392503295865203490492681458991628914978841811091334963246861626036840749326820718001883168745453833751091514618757751533573890781451742041493087159043009671037148412451851788742709569455113997826046790922603870485976389222648115218020237159180163425940796692016940865689976880254705523616391314983876059280712529136656331842123471823236038016740383436061474577120032514546490629898313500708877189403304162079308826670130119366500139431949319516419442692084117797841572027864974712405982318789825313785680766955346678720152295483333965898947422408956127668638355170765078366080706933363050159294080829317890795988659205246944048803362336263346581617565640741560033893737293445405913621670897929328407480250842611775900307018074238177888757646035092341598800078521112511288259919844019510095067002983028071327521284723003091833042892724456978964484399235049071823092888020739640652634809336015444680794244267537955567627026702283275137672403193112901673111354193914912671552083637917043107950176080958282283612525014990635921586945309228714518444585207054545066260396077114192573504646224499165832312325498354194153721290756766151938208029095100181012709392967797777524743683227636572123633591256743787592155459174789057258051745606114921599024952502222509521404672164840466387094865340901805963738093790080655703698286581527509949073477744698429992854672803748945739923995599713498764723117269571105325440934800454226049867664779425645501870731667081751360435500821635173224197180835806570431645101616903625414599415251415154754728572864495366404986428714811704305732429925253647805136271342489205843449132754801594055033426788343586595342735112797526833103353431756518497967547258882872556483237979407502909729797302150427552811736708163498075380075168754782562997630500821765982341859289226634110947754485424465112858122924068423458421088498875407523324125983551925298461995870653293336918099772029819332505455996604069233091814080714762066904954281593150135894060346943260758523830523372441065982064437482059431895483172612770544129237277452981204035960788623208003103157453774232876431480701437744537862641032048949280398737011020866247864492494493315011760426006452844773673066901780107734045013718314133212461328879514146163795609863967817073978049291555390521434396583575625689656925305396509309511730557397408285608322730793320273034640242779706134109617685859080960723319150809756097453374247643802509205198513431664242864892689291901096788386114967364887928009219051549485812870545786812396839421129062763970154346237664041255025846881260389130205664085933761236490405832800726206533994804033417056424730316674674284050840948395688287643517626590407263436027706704722174199029013443879633229084355388112978622956512389309703962864863444626442969381509648788382670014398044731178381987382982924334522204587488214215803036670234160157230088523834720868751011786489490429949066918869213656559207043341070868747963373575353453511194768194199925581464280520600601089335138020774046032169388327677597123706514442104387942377672149233664866350481335526251554109766818218268097714318673919562492247102904876362700859965374648774248736321496449100117757096143069071132382994558252503253444304746370751996412617238769898446303106646936912274419945280983088743741964329579913085257215632470504395913989198882750828156956935246474917927097878331248397049830995329207317560296416945524693897393833548752816720065859020791201951489312180438909621799184020522984385113692748127831950687714416541196630402323931338949554640214142570642220555553107584193897615765609003463871077563646185293748715177154789865431938533721402049886253922907749827082496925387514871079407999279485260927865033860237642032122372251546957438584789155708732268441611866904674321136980230336171591352972489882803960906027887713310384742026410260535691971852356521839121954335911254603890054955510357042979386433631119254825263678424679561366044393855651609951139551735955330121184490434678608065091780953567101153394701562845860063224833534060113796620695929547636335588383842635503812123446120687275144758565696073457704686162311670837031747493509283340852784645264299226728293681237537554539484116051665198520281535680819285416392743414991324827074329042568207126073742730320127688936909954570848871502710930331547236992619137825502626064502156731905425892788233913142422846097096252494508232429613937331499654049936679109481586810175248767323316828251991410135177937694421492762258699065159352930591651252792439598382924973403517024963333023916583052397930854409654994829883864449271065567126147128716983394242374997202518423251381187671856252661650004127667878478949266987431261760243431994229788714717494730122532916022642092069709773365669354252929654414520634439298768108764489336535540903513354734420252096353680039847455719286315373942810327467215897054996330016370007636408111034185415098347688638635107385997693932696628550728427014893537896425959634768112943165350882650686077507834341154370086765207340855308494067916616190965040976620027950861850133626732233336935028715189510458267390457828210738655375639067223375405579071674067549305118371423638110767877431760207579000454391056145482209498215792375215483571907179333201804668834871418466850651726594482019645313069847296248678696911943470560909423662729463486962513825038655336600505426201875256662563116448022836301180456282905669274101120453043253823472397544021396899688777230326825705466817892954054444193609190138918553770915009516384142132230884170438176557416083641421657642978182845143627847225996050168208208591721067290340192893939690209829802546987960640523907060632363885579250931552829523897664322363245999689996931585505326821375885801243859957288105105374517265003466999124357014191136605125440145768911000976277270857365217190942870567069159597823968311992547687391826949197446180719939901789795912102902150006569544979281617037471582156806510664388168408680842346076332361979031027230555200982598077051151488223034405107570927717421250073571029985348216793374127416104825149988047743911785819087438627821689292775110548175169667532119172140400553900307398648030203497543315000153639522833967271666298259457177741843712000231295877788911217490650524682414803321387335769007350712948312201718903401008433561368276031670777938898388900329921404686119370050098946014658031791872648261626075983089317971019664804139316163807545263528634913377271650553710347705593200930447351640637037958460194379033729215706863134885840774502021011677707829834276566091644924418769611177560501896027259415292981137867236773478662026625351372881567348216177540766931180250630146120314242437108690265120436928719777427719874543258039690418249027413013140327014114845821220138433923018950043832179284568129645364631426899013639165405255722076309180274707494774428428766834432872094693345910467296427299087040988925559533906527340145010583440743011764706392770201040155793437926751443114065751330458432884952032740819481266520663220568664837358236498586829025152496473504506629902801820524240996516624050936997353552423327451576946866016386484664043034081930861885358956231295393127461126957042399735817493547716663267753392374168509709706881535899140796980887340545549312998015144282924536634689988074832583984305570611454189863474571696612882225738319297100759481891102171818885585580375300689249122598209279044038742260826220867397761955099070953624451465043007622147565937652497830254530284648279685592213859504534061753785522528300568275964476593937997667859812368782776644775118363846187689880126348490268011191733613338917862029238319343542122084225417739934145757344976058083520523809300401845361265593013278836698238433423129384901326369033429213738168810428226664350486894263914688559962353824474845919954175304427422762869189641989942781168550510901412864857010241984561085182713392043168388536901559431611784941824889268530827455464828478402106699613186535958685534363943228335741872063283846551096480892964895629107270603658757251498809723091059347660506310769116545808491631427258313546769829770652669325290191632402566182935120895938676243827508679249588392791600879259546502267165238625787216101956795621715337731358542287131338971681143431439625033101947825402950840173573527947903679843724185153659071007278167498694788372833903669180591672123196004438103086991006545559559254296212580646505135756108815509142724327195893075645171626748208537464186789700722450775037276494758270517190210997702067610955773118376004718909093407156268817891634398449693900531221931278577713884770875661215577523834956729973935620527344782949473436790042830367286960297921237467282530746297792657921526539900742048707803600119675439040309888326661436521543317401363800775977660264254631591209792488971083040391301352507781912155158837682090892270411036725812199012587803931572259737455338302912920114909728031875144004793507467649847017667871422161007058394719392753606314839770869266081355748549212925613574496588377553090717511018844171628265894473210059930334167944823991045293015208994384669937212494814293779542279386329321431830964664581220799011066469791121333145314867659402975700877101119211898536809962031723658418398104070473609912239018717878830500698784465473542088079068575222623919218956488620047558124072231051459287737228438909978116148884247842992134313653689975730143095589156772516701342673424305804546524835472956832959746464092023356056881407509550569865020564332667063317596015599757031150819965056059052767638349402596817395436480520040113674295147069006987967208126238145329113380080243414066124859673369727114358443207166996485639442806752642493234839033568035316811539748757329238420278823748848596813452785285520507936798241079974525096379141551838980185935404583778892565515724332131835972777857660766954463642220904563630760889153828964640130612202306199202300240933190384691578737970519623407076106671183806004570407612079156906264958698934644895264837979726411488603851217546834250050191458676509912870322064497591795634142157624609808708603019791767752106026698597590993791475639293262244305037345979194939922505781285190366201906412381340855796200768962488863267862457061995540382928406907033669929150224053652705473183096394720360063569949179861088439464920565639124963161608149161910174811278552126502172945244416457697716409166772758482121266251652671520218435412836107836597467894224233921432498343473581343390904552299762340136728680022082971837803483409104134852705948799739351125467027672045322945510936599990149135118924704596757761184679428185238315676491779762298164006101626778846971964711333741848595834917766511246702283446540563588190027630134025917552960820201373507814007430821825383151737919496198147896770305143430267406863267292870202527959352516465262806692179021814623783590988996903948408471582678628156626909883898853281516642284383977149336069810584687378678433397579769131967590697076553525637462955191214596246364806544698044996646327784847919053729933625267681170409032783161427760536327949099325930200116510021330077635469596254609990105153665859833353480335626196363470588581121496347647108738014137276582188126444842043382948048749210879064974271633911766921923675512129709333238621834263741293667555779214799495525013675433292486777030183541615270057716573436403035027906776647022110139122043307142717925258441098532855838185047828457843342209058118610084464484222416188702631624844573870899265507378766537046974065967280826976222125510924736666647597576082347220746940076832575298311587880270291270621242037687820309403457939441743703678561330760364551989194710051374112077299007089659929305321217313237267320864900329457597438057953369765040537143978981978526339160825423076755709643690316575170796331435865568348988848267599802961750834598829106450897137051015537985248874246086845367946039933093040081885319462610999176918095432196102765895365251367999631902477812382640604472261670315661224403414123534059119458034407858389814410633669963909918678267440512934750989819636210482806801396244505156541037055624599566184299906184813651417250928108774809765980224760233260616683669302682934835673052706744182763538066109515128935191396431528553851369377280751681432351806712589716762187751152812938298758353085189095009874754065012225959098934094751161535306675556405829645029687064588184687843567886441079338472150258637560321759589769916092662550370905841592176103025890219574740047407155315823416984451711446637483629331661801744391993278839427261829875509206006234455956730564764140864714959729808223644758546755497672951976521098928617685467418107368909916851610110527540867105960907117192362160894920064352055137882213530467128708823329268070051250964062806174537520504244050301986325571373800751732509292782863978577938170939062403002192142716821800537963232745892101104808747178980157019868116389594730402679878373782196500080694788638153306026710643199749430760857807852205272252472025503265526828539994525763086132170133380647306477490219364449241068202032228449640299404571323685617638172047231921593827057250502206108845336789378944136970916610060245451482931626680813094359615468618224700749858734529251842956805445336783821899313738589332687549060503865163941792306337716001034325164144601178930534209050221981799100813930473383473816278341099763759598899332535306870119411665638745043954226299450512971083133078813127296102834253092157562864365135885870392601906337309735455922255219570283555789402417249412020504105773988478913092051098678884470859896342550126715094413342020824273781236725064436480337459407082424808337230294607180472433939479466305519592680041219463023976777265757598574551172931574291257795787927729781576803160098581332412742309685573858952541681954891763695061390971433601024936824437345920267385946764537193104670748481449990467378050502027652326203788493159864334215789668574890983385929617631863056818847445488240826948753377389709427338374326165146940457758284538319517363127897290229415867324662229921470478495715959329936945964002270208084797700774404934436525587015704478260869145557447332502489308029238159433404107740526526149660579468704669066833033506579312456987679839819236089163614855748438635087524542866413529129592635898942013104701294514162952264100916498721134883052865682505279547180247391430599441679854924272779613516557302875226639999190183666046556844536603125418516232336689253413913395326454920432196755107974236702366286696429181980389956588932467567814891619122845550146253684300905370778317502990786189373640133427086869759607993960520882853308144700931582531052368301364835440431953682301389669542778390808666393392968884221238088929406239992787064048632418558840667417256141791239853028824599357737189995441943756331485704839243645507558497903955367530863914496841792904414506863505123625870640049761608534301783843400055612317798923798815205648711150844695995862426128450253185575585684632147515032183193403326788308905851257137608386908430270184257325857218566970650814608965153310462719281030102181152552310035773959750324402474353259300252542837173530781931060612751992494516030711097270226435089930349138054997727784625660376506943070028930911923920585591696790188982116762224908248223118341204416204203998303869344856734125961054063596975895665380328552844407319528580408156249562870451681933217456924592016881330758839290514555405769111439169061245506791015192885745822700422958892262243354770337274359323726913833045479492405574245930971397481706923844951523715920885663025397113420759430547705817045459076494394305780359625447550122098432789114956293713317845349253616324727335890896781147361448066760054158067003132732087738947211560373008248874629794401126802880102519995239405595549247509942274933096080238797219480292181682203117005915472004799783392299229203638178135611881214086358342118602414772305785782403394635289175156487987851280747219740122789826155445417450713293112429961083385951790354043709017430286299336225285958818478692645521313872799588133548325930677818913715973928449377415915468669598014234561256726534038372957689097808083285614213762548865677558321421680060982168032616120467548837897176266890227294632472940055297635560397887816752588352119207867920440623116097126419774077619785820034872003613867741476997545995211885232573064840454239936655385768093754775093156948921611412667341185122138382824516923849426083088199879638003418712523487766942057288368930793657547163231078424753364548701262471265190324099947744184628210989783809498633120841689181172390086870013460715061065562351171643818914039862544506761416677717399905717071869135736570267821337768219495881176689821974610410634235397876170779813210750503487506469487736329804423139318957242815140174766439378065250944882277192280851175678000140049610706817836100206163912406319832744776720093801734166473624232629170950998408896703532198615032884133487289687502828602908775964061779273404063800433685567043313765939710340671230101069139045457198596752081646076530955410200797550172342830725970811769555303039314711312958865357773255346680418228844112299452571752540882833530561875550764010353266369905831963709005380707731112500749600103423764973467545411560751543452019672339678465661135844171163879484584089765781393712238599159166436062257284037469197905563608379681040480675823454157621266083551557176851789976708036710266516586181320541543838490662181538905076182678961165497054952773565992209749083654470020451044859121219454323538743078120700787811527537140048938896465065780044442305388212100528313561607446367204527506623951172443265171076344933136061532242846442564089330070577899023138984492805693561738258617086285017032373450678495645576975840650457335906450874198448212646997384141559202436120702919662682114456664252290187667287503186644520262637054127708730180218203288030343206799285517237121173920168481355357329789749183983129422391409252368664336317136007361364367621484913889170291402136934230808785346211501064539553442186023262198113776024502953823288357506787831624782548510157493518701030250024751916453147887531785014091071108087786433843764579504942952790502256745303435712275732281511506789718413045767953034251306615958985549577271911780770607693488671203657410811359483473200769508382153272301457791987372081418423793068464789136038689820216720133935392241412934109406160272310072848216511021006953748105065054565003112060953494746181557578910999336987677783936352445034469942475780152374818297365835668384794124016845745997942319678064098869799956827710654805045061950228615297329728225859560074022290316814791289799263701957660540907953442596142771520856163530814196348821889662578025103173018334740752486933568151420909834916061478002565456456362219418463959964046172515755079184102845548329580893319479718778084861106121281777270237850619108851631199060502390706013226689439174533693492467407649922559006095132060972691401949731951857540334250284255747393748041282290352267299276584953395117732616179596663182740236873593067536341945608621257636105130360196668498901127566716717609641997991343572817457217803495736927850077037002790788180324898081650117837133702998206684363405325850716617010585710779400619927879815728943600681917708310391171195384281934868606510971368359177180867669083286294219329279360498611987064476274025321503298094752334050297702470348407904514911975255146440343775931267997648294238818269646176513977098209497105570474158358737430819090724047686561368145047892414360607670557186112264740101415357684796143901204472195549332302429074581673235111334221950205598822286067238138275882154460840842593224698673520257833030563170177513400240910631142310068065334770023492195256013163973944313811920437171230472169840460800856201315707885458937959474585008302440220922037278465044453954200103116893942562149019504762115128582254413811699290208462079044175584895015242475350479575120073959490217005668896450791770293216565314609105080653348389780516476235674906663561980248218458372283817098848615575265677626139668989588914362503168382312231530695575635610793769255234624283825209068940454553768440829959628437705266563856566705280493101655849684842486798226534525183337889771958593277107531344868338545144485014089409147125875231278732904559392656565459599344654881670618597431736300670860546583450514991741876109818596211465118162666351283947848162004843977040561047749916741433504156485498513324365321628937439839243207397827048629954535553834794551293604878219178085447451301632392697408345961567034724673634922274894633503087122001425267476430353615757809693875463790827481106187165889235786937454404204079093155941567754631415864325361215163109133782685462552061751232415405632628690338917778294369682902371142921174220370126624841402639453574673090871370947513474812865833941504493760911107599632054812954587366063008807536308553780987567991399238583618450241084024143850869767572056072033493772940690458073889169002929681726804796783526193559690732379881937664666100357406683214348727797358443153305602519097513967583391415230990634390015628286214803286249852110829649302139080007373140143357756977962983264811807132550648357111037217080122828694161993034432367622090075720469857565653793485222896524630067187979801659264921462329371278047086890489959127797445870387439426580638960093075428697990670778596926382301308324780940342007620765434725368298644831704727710274246528210991002201425198812095399903172479443351182420686305523760094282312957633705811609442711436189620633291704584534948183293356751941936167563518634294191250234759639581489510044698938550183554776780506656044716662944390587204227554481415535060567206101352750995706214564915581378671276793680146639600519626923839003448706750841301714540943969992861718059606364423150543471303670252449238885197532729559885305643799462073325744392607672820371854827586440893004529712290976029825425858030911973958908595824792196702674825726854809275009760813453671972761770616301652516635014005387115572349218889364978893477757303770694648488720522407643429897820880699088747606480510595797433297298445770734407016889831699042021486141060728792013008160192017663047169166687844425558162947618248825078629838720322230553326215742731801952941237883382976380929590845419188665896822992193084996868730715045895975261884853371137560422209637004411031921700353181669611009649854175654486609747542482633456651749269534038736318685622370916066083976128101991457628976755198826825998526193403387907724656073323752050805688275820063272437589572339314655966538658427663481596342732573960894863445235613685130002729778922364093051698238447431579310213538909897603092990378979293418065277859147693771408649298920196524172187446909344919713578806980181860790484404763721009133466201103895751959183425127988348641736172819489939817108311192667305313228040717630477063793142803107234616608080119902100043384624873092325669228543690230240876440329405593096247206279837477347663120356303340408237714794448728298606648557591972717064530000075611172825678108732181957548668375346463375052738732582826523251225581045758192118633014344942131420455506032440253549880853921310715611179864443167101101676372856920699219785125984841676476181654845221749368845311962339354616597430877886537401787955911503313642289015406117067292188076068903517335931611093713745168502275149530978473486404187251818266115639902870859053594372060685607893826166071897532742546691695395246403666350487307760642450350783993840926053037128249465923188659223934224721934544961614875154238017759048694238521326128016184421035592318218460661295389695534040720304790530405387004342943851216809244822837278408897732889130419061818607722251104456778159862434919049075951902215289943056155312970168809285397669260809914209450717844419995358758757177719825676975780805421528015268126690004332532325667681219150728943162250134494989170764901583239169100725889879684524255533995520747661554158784419518048584048689607184453155639336466130571604934541330911663576250288360543375535386836377963054071713513003853516820602782583242796994297825115892862445059940598487173884746514993386983652912074195516665166694486863254163096871749499749986877938881702595693539226217919530846287295882944992811738021867068403531385841771857795186187119663855653675596571854695939817489069318597035622110492574980934334496796436062165203215572179473302765227393430917644480005850925364497002994542078312511382602093840891534008613955735546330076678642287460982152444714756828852929346958000829951639550293246094337596404357346850402017568574788215314628441736777259612420334797850548696010865993311732070436300418423079770045135663258903942935976195012422120416845907517905403591919937024956872447747271675411445882570554630593885832091214010501300144015558145937188709825006671243564842269025033132069017438897544135291434012163534135657019983638401775922396953339666750438955699828709035911706285496161487688588375292724759101992299250610154740808092351103828507878151667924463854271495319854865396074866162520370666419037674215419385762326031821878025519203722516134438549497540034925731440703352277005576459634626817963943057744560677868730471591530317688868474241924068805598277493102861009849308624266691438212481623381345614385638681446250186518884759724240637246020018630272417123023542302346321476342418010506877234005251373017998779266907957170879760814375775620117992223300686768491499414425467869433058165557245557263955009629449162044045579521854681963232331787051600720212621421914544401920599041138648574927267554509868099612221931545234042156971253854219966590624153417267129442887891620300456296746473989415704007562249982054938390267871906958813202668018891386866350646225934911593422416351697205413790735408093042377927897386495708354776829479026484582028865122093271870368641461042449436647126754178073039427764163988576473082414432125553656607140036193332622503938897156426751923652293024693604773884288581078412233704240646118963304184658066831387898716376161303851988628023216991038256780409180600157470391296045928559472268337881855785561272833028426009289335370874512086627044929155707006229330259430771283499145420185574432545732755861885586064162291401387875344568622272463145945058954342046670949291532340278815198778303426520506811467008063593429072369485402937307506303384264477231174662894498772211942670353297069128089060966587101293013501919562276826662939873790924668038429048271977439595255751761963160938794786279456301843542365233755564280543789339499459318942139929153523359002151257338722368552818542454132129289451806410596440958426184862845154364218867315803350807507637892296150925651792141415116686500085224740817857398588604603546783646648703088166287233721386530304305178624688177257885992205000548220186930324825475097364777218775209734319648758139129847674755131077953711775533448319135326101499998355457746278150533510127245855447957401832538971153359712502641315158393931209021713334026812014847919191071868227314649056525451752783075260417149089165941541079224529814122288601541650296374221698527696987040600410260318132189650708602108520857289858326632826956882637621382049802752311000357217017586015678812722141629803076092429467764712651670568722480938996745116433891791045735705658490188014721371370542025743501839567158365359523630920797269958187779266605447631268207880144851466131442273441728072215998035862539807980547995866886659001677652365506391618154340346840304594363625392999846260432581259213136783663460920575297797608150778449140943544999558403108692367990077542372128232187274372063491546415727474749621236010105268548484432797741239579786927695067872254511914217204869066824231973032034039973384210710359338085349100107486127497380975801589948293603778343897767235389445641076943512047033599637924553397350161828263092832915727197227458390315728364076215119451480254652341762611713727764468491666901420766916754244816014518404592060994440642090943746064862583529728632497473423820184706177539505539958332117185140324001191156963417557791447714714187522673112366088021414008057856861386845000604906862126908408642344774801435451103900566284699084554745513462811180562069511217951291642922172571210116701975975746505472211504935016245617828422588384653504814158440282859206255618380773156416212871257099044376061415303299342444297089440331228934983368209127997690533356967354966394086643377455299439878153415087742731827588983006986932160910108146637043556782768856558578534664354988056245898899002712989971366994132186593649754754646649749090078071280957454417784865217864271128040491367453458752270338478829086111892365024228699755605560575751801523190091891564095304727972022202285671339286011682883370160531165775231278803507445154874431290647442982283959796138789343892694860469063477171438848095632136882655064649295680331548597627416335466063921791481682200645003821802031600197909536418864805050077962916761242053519607649817602493469275810917693754314537323585186763180198795077936888538314951737365510837396777986135442104136094022484776610101776731488907515124008397524343073035248879942257715929473900296851118142333320871610970025451415223403965432234446544955252133376585468831619443685623004891713090563650656353131336181060835501165940825422882042963599754995812465890657303364306596558839360692470271328333224318921392822726430923318413249710339764069426464350564932545563123483631111080205173850517136357265024932413142097121142356008221561840252868233123504055252543661082204046815773263048489023542748911056438168376158735678439904833915703957215008359585884390470408169049904119007246449903390292633017155663450868627805750405993518977258777997136873083153511168630114216865385161678642817454407939220640560156639136933129024840640232687429712951452594196307251553651805931234540269649722199697605300924218868856232019581517359179343919065887376537987074613313834039387026750258530433472791205602217803463647650108735383210648425374139812954803111740571282964234672954777902295018521274834908469408418553267388194896224205799009478290905638161678390810215931264098806080327020380254237684566664680034235630071325337001856897890928092288579710772099762390103017433263618242220382004169073374603371152591174271443986494923756160041070620358225254116221252070575238229403935181546795005431029830452314538500964268084647489164988119375730773335771926112091855433612182576348084168595223266795813594727136372129383495518448704210981844510501116885322057628234366269104693692655152982195932289207701152801981839376917444098749031798496228723648686527933685339985894802606158490906348557873803075393596826049247732134299334047736004399609063506077669943050851992683859226623315308057118662048144101448594417235167070561641986477718877294112528386248219970429415391180873274934114637386379542242275804766543590369493990159186202771599474756601495709649602983977757046954401492725257042977299400684663767369569844056231444834748637222292154712382800172853450685766168674288055821958479643814221897844222628861138715551027944054854623666256612299785764559395065859117771331285554291108514184144170306997237678198786454034346955885415693843887102771446164320816614220391814149070263016075393216217382876321426792082129352908058285880734541841605000246467552433190001190435344003365658944684154925336020879341296031396791297928002693089751099247060855113219375496289217536661830752708467170299492406885368158636373461547040566658251389764201581341845308460380040606892150077862332165358422781082010242586342266617885704553630434149599529388933969239296951108708330220243278904371172557294312351092692727435503177111288240876498261775814540089681340894206713977857408024536970163901873916155784937774890128902731356578203096971523609042581469896924857453576298125823716490953583101035050139218520958960920619381397913706827087278689530826456506483246141410434210886710359274617958451045120213962833990986310919668040588696179601152541576461963945068512077919918322132101162821592509381081816263406315969765959968436330182057351421607460213693815535875409729401939754557915793585957464051156936952603249833079589972250164118757864199976284492798422182311713385807466813575668669898244475015675785061895641900383198257098592166714847584517705513691222909956678632858107010979299241048033288220145855199910794048952923078541813618022194257380721501010447834720393645721760465172675635809774092179041571133923741635043348252497159519539455923054979083084668296120425292820070937304466370097652259267748515294201427027725223267863954491660652737601911500665117042941975562965238871853057283683189084125329915301370739170687954845235848521473177963312856093652245102312295422788048567226777596975834905501055592676937596380351649513074500709305387836887339967419929814621414022035393283489038814123046780537359547702638929836519412054915603437018161517235035268494164470485000381165641972022479678109238226167746786198030877816213822114834580642957807340926506811276228307339251627606793795570533587208635786241071490495930358693417920360205167643886620581272030431915003649000336914907774273451315410122121218972664244092667704950187705514643793064994694318942875797980320730487899105999172974397488173913579917545510078393248621078812200579406250009485270494619756780484431675199234967727854902624251511270718393581545394084937897677483238426126267040800697150282817329654317417651150952125687243801007850681650293146752560780312917542547500753722846766232302640883415155870755966437767454794806514492776014243106130361480983778380044890844534570957847046518154710635880320726824879840548574070105034400073133778485377554960489919484327886480064071501651766100458579438587359316018473491310537712406152271782782233785582162214234092365570180840213340478403856597989990595650819769764757361688514000573675764382123323673619916379182088917965217490810531979189542537111580584057704097634677120138773732342410754319837642637036321356837300285024598421787180994183287369831514086014139684618878927342327342788850676983800741400474048910379328878033100809010759936296458967618796806161152487790011788286857446540770835392890508219594356029376063200756867045616583833152626660754678322631861284196527272231861389856090645590561293578782115467200305505535005603426276597115157224222842679928846326554220788193778873949597326051753518903305706652933790690512841559224276158058358708286655377044228590627371966148805811938772404713959999691807850120641636932230408395294861439079345031273563223817873872380701571740229355007670977245545840986763864120027307279589453976967219395907430876901930791533888331390728789653125645897174533044730231927555032054267222035592292823863983996920708080822143913450909485966297511620664212715320130366326986720935588144076997421580499214434774309235188257434170440842253279008680619277428895692805728918768370342006832519669737274302953062996037361316102259885297277337023317341308346223846997492141945499122429498875233831583154707765758380735976249012298824570425888476956443148289822731519462672216129927689490095573819956435416520252547502231787105255776772861789533860768687147456712131813837840562859735776856638374345299224655035379573341680629209704869663613263677668931356157275727998873094030948181311383698540718374506146813798407645152609822451610361986203833744146037426471333055853719844724711659956958720984097694257239352136970625224891609424185694762545210406181724637858563072747396104173320362620071822971301017509431766838473125297629625775743915547013491317649579964241055716773276245965820682171366037925789959651390511940520359583840943987804690793098727831149508125884294993307281147185841742292187499680507779704212663154303728597463477622082909349375908407093329975061677291942493061722369479229836123759376149314312393224805186292162933352600240005930836772447676028685298323191363563263226608603439982553176008019943098564254812521543659508525962622779844385606123017582095467811570167653488128684282836473764069647459069607069034371575973488443632505511385081301917745233270796352028182328006112620160633068320635568366695788787444079282292627520399760556473214441699417956036936816488069922168816458473808409416778787984344757674313843109415586135703915310706326402209223904381390589166153932925009714161771779101106666401485462992563379419916014409991445754985522641958934286078892252062420359381933438000762141487208715732566093496537111346547933981606771427347250238222189176160743403332412764234107441533295489540614357996255152597698075126179096110812565549420802369571287727037793413118931650600332472643510818943766619596656339825148797011724936656124063456575274268434853147400735199630753047515047318558667456037720825702212275373154133813790587467863958140512602940558426225361220723915173313784443464357277118493549770189640925563170272769193188469102292780119682228274361792791668954218356014271091736618354943372971682879889326543407976985049064004124788367603294951041564716404462022068157945392014569899509160225017179123739526698792524401444294233995565897708014105415798667989102290544392526753317640920514305549023875820546492250209283412735796508131276930124734092603046060614687339790459084501042260755618941158816264398253916670981605705648309957303066276247972252814776730004657843576340383727817502673294300989974506863901626841943218991978263172094305551158479189699164921011257346860339390640032880267780209269082588865439037834874277273759198717368840498048583746177982461356488807380245776141465396441305960899157779313233719570971332368369809773052842242125352735377087913892875328942622808220892942310487437827033610179381702340497470107732723393318597457244682936047851500414577866922801148882479750709031636616352765637712082186108842513019954048482129357651099022892719640968429664485465806442188938163240497834008967926369760920522685103006765224553935522980208669725523173651611922194082570446085828613334436739317324316458079564705676142685692377673267664272330208532420939372310051533830815339139281539701180481006041796576962981835415007067657883952579563963868261395243561663264976865614030970784626067435940847629421677137948882629845435280442372625729425774996160559500455020463027046264142808467902125721241902794258656159279637711139757114642649959597856947563765514241475584533074746502667651771556755017490584293423174457647575075125715909465301416576715195414098646432873600107242773227451087159880918186646030293317734755215770456167527957196949979855880836106189718456382075390042209905808648550352284142334811635883727731805549420593663933609656764286967960582564133665409807665962716037842134953268611713076555534334070734405521199598728126336629554465398020727268263542831879098763905578209300680611469073195218473747466867264291967513838621365533259662797949091926178889793062062511205391560459230234078168183740886765113772923436469512607292437664054549085954032069721348082781063417408949549832949273414134799012815919712685422154962237766761712889080068859666935594447627185060260176315912526776929994412249561022738494029733465900768554705151351925498611029690622530958960069362407257689634470950286724840216092314108103164913925646565893241720522675176340140990156547472176054641879411259157118644946189312557623115497935255671608900699013977181799230434243113530855081012734264521987456441961343307339338287934032165450366707038712616198091530457340467223129531709328231925260406111371785367828826638299531374082312263467651575609795744074609516404780778355402885582031073146101038876797074408862382091671741373913618935268676934474334957589083353461592221733310235527404603703988095282449176306420679796036718097276889538634848132143590478979480907666703995130594393172261379042452192113786492167847936011012598221612991879927753726321845206833851669657937049319021449115864564566637334772111940109659392015263632012154188112533041290494129271146708911258242511310696983459257424545843302396694808299453963195585174115450445565818741401375925413514279088429717045348276574346415004418724206062464217381525627769052992597591027016061614959472590368094672559828340599554277788675664157061506653842706525828823306318377974229287298027827955005451075508380278938055924420631832053264766543227400817964055424136444755266158560117134772403569924249611933109319294586191219605164671074420362034461007443645791590537208496882243236181071080593505093479892437743044801064261445542598244311069429817203321297400680800219577514835549981442920224655441895947440585806850578033493767761895122489232512845937349414628387423430140465977403959662176275970284150835386932606480296998540135649056695369054626277110934362945901189901370033023911398500301438026945687735584612977749105428047010755489554873899993472208961698150026255985248957954665992606522458831043555927052234644375844645391851520040788919299735793375252327568641094283337866258730940629443101320166468271241820438790906147720990693257232688317792185174667760395292922430624635368351934446934776570501595756184824755032246352469881152115229206452868851528941849891318870590222198287509859404455310155875920231487128039722304893224692679384240159613159240056125746063860060190044259471719803284733474712804803998066020417664230253653471601011292854455118951413927202008205966276193608999667282942013308069425929517421543813073880441930248383003799508029716634987815156160327673635136613164304717049785539536320059435272348766225585185379251084696476684232598939898584760452139238150409456844237012223064118313814176917410549511966233821436646739362214637557231410944362654582869959776762324406127005916190736477509880399147301574034622779024020135397260571109583672049279848173104530496584791568969335504254049266840740679641404579382058643160559619553448110155135289361023007997075947116413249931500029095163683876818032702651945719097045673363829822365810021647073293684533518443860283355936870458002299420795000619703786657611772090393582137230680267903477541236197922145235373688622665482267208175935028906181834091270620381720666522824252538396434031396243833615984943071003869377899261289299984323103446953547148593894448221436517490201223758415394919463298679067534307153707763592739470244962415995403115711720792187577365968366799174294241993618869671421227437189482978387807084619075623446895758011263263795676219650218829292542048935468082666933168468637986593658078177684690965292380176235332019862045724133536162677825636835815254969209979354592712811703035598599752112769871947306267838759807365447122148270995921930414289073867809252331674523236732971910508799249320657539572261416488089591132464333483188878637501427433003558636255755269686210876795729072682671260824762877820987261295709252115824423948818304057722110832023164024951561509947201168332129283620354937586101118948345624975566966702592371343535237107270825746488821689588204423431462777814396159292698998758698433325006564604464914780870300890684438947070036082517881039991178066422539686306172826250698393003143420531493048788954869235123425823838535060781449313678318430478303367777600256122800889025365263228826329728780629211031638872396846307910591432609920719093471960020014075376221689654719593225819658701705294736979736706576778139018426813102908634645412683700771738194689774734271499190899249718151316218421273093487465728494118594049877847135589792459915429306797466652035760784240713143955217317721526057629777350481180151583525232101521506112500957192697068329068338947441122831750934621536892176474187102540940175184068662156903088120150033468586153197992220232029246270017623050748649618337632308476772317056639898788368920821551272846223291257825633364921385379839400369555589037889445349351894458534900742723159692553971244175613885173762988019193680024865615109047433135235628511726713873236408602263138255517376699319777656380254969927728438947773677350859822419698539797640452178933451101954943921033635041994362587144112793066279724385528314902455874710164753521686516593763906975763846986797304863101834970065222916582599602674454726721907447081922656477462387343893511619620770666263404340536697550912770691578574537867976846371406024319228160780935860095412541120946722528907173467357218929238834071680586701871922824028507400858814598453083333545612803296887296970153739568013826400087112916528268402762502930726304546749560767987135826439144180023219148851381326404452403253605111814483573500485328270876255779350024213408742067141569253190872065928046784119880620357608694713146608875879455099424051427512058575685108416654745584344859835728663607812194099820666285071207782302071218462352092681573520507446832679241138211724107950519478197447399375757688687719905230947280558825588341555218170591079084422521020140344909857187729421470888366756740061519651275364787603794931522375606418662916635867601344983317927203898283686028684178759735948602155539097889567973193236831022252729786267560620091558915381416857651335843707364016735571874811598594068563151905610611669723679430038560037684201793616847475992984874970953001928250985092712444330743325451327499241787193414321802774652345103664002745140572929449718694699154231464744364500694145700442169919165050533503051403933975043758875842995355264324990812087617817802585076827354619878913706364808137297102475812507936197144021188403278992285742096800175681175889113099733595157286058866873126707705798496154106447876613434914438339279752370492058662464184981864963163814649332493779071769035313070201646996334317197105625153506915634404566335997891285377938510846279661855179480713236389106416143366810678334446864376135849608521699825961095128298199944391594831604595672145128596451327038128913103207634796483817144484465480976809044357130639081434004570499814464962393689902189798869062732198273222036852281422752106705993525704397433292230205008747510504021263430297753686632617141316353429933452396354869689658817427036151201056155490420832207153645610257776540404828722217409141704278068083481163180358970665048896780774344079937169433679542459670219403275126886783016463646656464461720011622903644038977627096840316527891515417838970946091604639657736659060482146869445085593557200847344725883857664638895464319026943708100310846041442887715355288035879076465112760405617765536791159682549019407519206683229642948191852026443034998239858067613576962270199945869826637267110574053007598472394191021679618039326426634258261874979999400727419466236392800207384911845662071463578871308515743698899206674773797652657520388156946278262311884389970006292697715234341221535283353091786215265282873513614467336117587257236702031183802350039853047455983436136683971956445041508634990811979375271967139390028113909715293366762167583579779341173291067261948476824898820550718520562727086750304829652481941772658960084142253337245537318463059168394702036517508630814681991078544059918581270414665209556795213536504805096202281199654127302301957508245264812227660347342816920890338985852934545214744551442226419993658757033620527034375648048031551766622993824248696216229973215111220043026616622728552309211718376517419781261962118630280380585119033710914332174276907509758483965202236907142212094588835370517267185090057433676570615923959163071242047795478438998814976017404471962402036022295024564796541240270550884907806433543925993909752096157733205104279935255818825644751069504532784523955986401653027650396549675243490095277934694211875879185226773211206067377271154102622311200745651518588264043280441258763560960024907436144595746224314896244115989657232010834759436683710508218823723448168110508065886356630358340802709802909211444008203531650263936940623388311074356025569059812661344726741141288095304160551931076552570593618512262973956000158860130673426484213197381485907195981652297888491748935749073388250291093134387551057348054039458536645518955258202197006392767977975949026371570153418993441676027624534207025437648283318291463611960360611994819106127629704160127372203022956785713678196401900823614596123660307941439703864945226498269401570467347067731680984116330103645333131324401907198871251905004555808315383467048385179594658391567746775112701675649481794649531833229403335010124906662327016428309215167842432292358727624122071149450344923402126957974350601442639530914278312714937685003893601907328130974900018382396675188258393393491078743990971294034388106383546034465458358947161078944189932236494668279853287183039832784889733169163686498149968052488860602569196429106555884831756476765629658597273090235802179412265298968791627680619419777827393281656841176387982477528379735275595029763401092551225753049528344435760559266789833224344418542178572790060098629497563526204325110211963366314232195346381229373373968377414275284404242168356411529840734517542037657076653289010305950768381198624166493104695274602176890948934928044754828210948530969854434822096480960471040637212141772934366591314021469298168656969693165129525138580936604719148234753521898664245042995586427661545457919217918474062822303537455087241189908393647788891618664790106653104726927707592919901101495091225626008059259521997236982778446474420093395837610679453893132278821218843725220341683093886211265625578686001547763809171891178153810329984638801497800800237646769199306710064309202810262557054677166454233888974861811055825978917142186647009260270924610152575595134080159632580736358386866080964204552872182260519057408000171750480475134456588696484818155302310124763884306528906753353202355949711784597053106230249493574861637498450972763667084389995275204594690338706045210359376760231210889392896951549419139328039282231392704077570646780083511098547954870155909303494419722728367925957345494562018613203820274805537284096928967320944553948093561575542601393682013407813871037526369145585298578402268384803445074592215689995761379784988028606221532332032266221542291522887449427742773919144081650828612890937597443221725649101284316592031288121040034328843041563589317166139298775115636965532122849166813134305833344326832223119733482359988514001011794900730576507314860096123958001457324026816206596593573469696097739326091308704689845793760619236040998568267007880913527702432501857845953945400156427728312085213892204869320469941197267139924398595207477354791721305542600797645386583023966275318423867730745065725633734884547964994245692454209749074629022486492205830682836849746463387419527582325295324887867915830496719222522712221316351306499646860781443569843670271412702255979140966984519005548783530095427683746829916792761923571721101087692768751128153882741768174388375212322514842998649847648537142566904719824282289964358014965318066588586085938926905029814009582895967788580100170566502559503631058010626673567845006987862696444005571278977493039257971449825232734352202121047584777953379689287315421227978241479111435124011270711323931682468242400874768150840001628236544341590063428418935103289088972911661829864249346858464396035936126546486118516900697746319837503358266509176376337137550744713708997948365533700875797744764288018643824756464815356359734255408757502271495841404722953475141383449957183769838727020369136727232827523951138948831460655332218655300057453992569722968301657114711773306244436208801978657760730594694353335934357381269528493004606887899616765862495147105899569488817971597609729619402382508336036136943889594909019474439459793112589121669066242394178935226043625439580553187328021276740362378024603652684839724528534618861121345229899597337311526990219389514328013183594704747800590293007698341848018975408897411664300224750379688952047699642606312589547750202596919605401745262516320173506114819759689493918480040741761429239546044206045704903838449908805241838467924528672582660328839288862505453643856407170802262225933445783638241802412949789236423125568195140059719549367452133807709877284215685479195932380121247057951220883737723525619466190633987204642256100560658152597120856630780032629858735879117644991659732007467758900623193415363352202863992168844247211635929219176015215637929979845641200902540519701534735382184458836726408179055581758732437646745059504683106068527601667669962819872365240813126439029382369029736952843488842761025999840462536458295374579118466054096934207111699010217092857247415488801717903243201736867778343348237037438211824458180829484678654781734895210982411595803559446519331579360973466789902018512017132719605586285740345798372467829286175974592443438025208390150009824715312477922575781624644948540892573118044417821386659017892640321779936505814901117768418179122312237768101003316310085774618945244535524489588789254721243352212752251664045199625804497390969733352245746037434287798355210408277252935996007310905867439669797218736774747777081959892334924944805453052464511837417099657571808815147536562597052579721869135369518478412325680129319146059261405037867920952228679017118285150399118546176368779505040607881104939319536184150814117488422404122872655726910985847212053711337568795576588870387752550067501027246255227086686926750195744894995341314319071958565772356022090772868507200792460672918254204768166574187379982163584865637985751081397428292821572047447000961694478984847639395218332709428803089768309666004596032364196330111223979647006922361875447734423913863648769538891763771322425958829509276723256882186845430832967281242932505151316843085533074229804208311590624556918781413656775346376435188775908211296604413017949776781420138577725950482546843998714268038635142039849852209297026281446561324680324990462565958926854035250521496967143348540373575217952563123940059219523788201639547626837753360140312877253292196289412141579895848485656936680828534047263142852149570468095617140749044411910505667078820163385444468839218928852594926051319328314839905514738797111765344438466738859919549280071230013477619163157873426637801457062364095667766607228345917374931811562137711976171270702347163806770944619216921755555757931107230832256406063502892295735690181953923680265949247240523486025544756209655456909540274732476426654301396785035448371829578196405976767863027199285986840435451578646607982118615021872657895295306912816926611701341458956684873859107341755975052377384842017251562084713713858277627893898348374099729452704053213515179141140106758300342204850243022819757494015440157664760714635116475457068701061276526681710412867940855377882454132141553046914730267734667351238194360456273949213927562480396579043005497476771328077371997621985838564931092768671360577378547718456514689775338448227513755441979495431539670504905520105286780424371214244213811504063010999190350013127460112045472030770639601937717710577987029816462569055681440034375887966854554101115765330115607674281589222272021131432899504188734250293141673098588886303976018707034807531856588576312686266971073045161196086808402735150324731726735456444975135189091322629633840595752050744216400546880989198940529906169577955376097390356960410467168739588589676889909113171704063398350827004155287248991315464891109920835423037766119269682881842882180553999989882475113840620740692201758114782049743133168165616700355370614540553139194862498575281779403122171195448913655184686171392658454109524436490386202024956619060882275317550786509029732007649323544241424136086487132275905428465110163099950547458696580395268261794003665049847320984114084075829141890714426994083910729294612079139393949534078229138547188680315145430792680059741135527149493040556613668851919897941192027614652738838246740468555123638364377198173974271428190214082037531415953304127403246981869883365146319148517669480662097295026014346239337551107854000529055457067965909541022702927276687670251015552604289081276931018618497909643247606996013465005153324882673302573552502371142171626927253213862890664155396409950307479065972450130242234111472212128384802877836065177681409365498354849434439037376359990566560890765073316908260309372418698694566031061391324681175385522319161071497071731597254693022627566522862122203534882007785448289963073375365178237781596609546396029310984099472223848436683500857738027732968805713526613928231161922171949198709177775773206090471296514165480506389650801154724133553565670094224059940584870724967601540094285955848417083355620402080423992323746408434957371575668964412418686775210147117240399911117557630334020553689728040490884384910389200112618487233441214975395234583462733156977862042874733890784242101931386762360179332436273806644048497721226793638826044157204546541349697686359059741742243509027404937752563076305398163953882803506893307979930119153811174960851567444794640878689481596601766188076897052713519255694483501901959154871942668010019784346711795371261256394983385958847231878970342002512317501101029806045005237351444052610889221465268384736613944564358086184445326462569691045716602056837875323512395110002906530733888541023525687448928061843163156198447180314424175454100938387388238257855010254309950502582538737469988267859707716012049875886017329114552739829105031556289809711717324339190252074676740483218290875212373712430554835475756154986743026814135366625299570823855948870992015089619284245238912059589746306659100083548133825265579253567743917090352643434728168788915058624474868347414210175805769330654336159059794026449632070928078676665397567877700176044845120589955470612646110871607114638561250779516447799013377925099708645524711380950301005426137673213232385807820597777228326811176570900178273078269391339616806295396267265456855375141609916398853588116519339431332576077912524642571155527111669881098202844871041582735071563740856200285564161346926918564577606275103562690508294994210977245495265640500080153379962695672208162021909407487222392096306574313754561797772942336074283907499751318464843997157747421243907730363512181681373776016551084396923220866306205726129509797618766776046626194656272055508706424931229816993450578338270492898928274614646625957709726013415219017018865917648963875110170005294079021168560744012528799655491908213720957883720952336791871547360299621673395742474887815606677361818390976313690565239192488447744458261882569919957833936437857098103201661317837263868107111070125057782260218286844173932445441937178815480687753373278667890741191333757196755072643168149290982601830320214191359802981286326485793849749462154437855615139030096687921399464264681427372868125253820694965647621714837703953882687088127195973021624116436695055303492371608442291360812110559631808542232775617913922896173560354688162755202265110893368806662823136496976898955834385904175564044197448156087801899478788356248896191856130729240396849273220169817467050342278452604725369004205437320971027516006078861747741746135229312300173960400921534371021627828228030497383267828408743549752831330545938359180041096214463009217833936805213318915316535511542930890380952481251218166139281397945217935696899044097260586020360470168700083226742018590118210533811144386002560936371757991615997182226543684561579959401996435023298252591505694323804667183675965383723086316561906724132522451475770502352520408871061353134932975716620601290484222066956356724668117741724361788363923116152118548202912108326461519721893908331252015982034657285161843281429845374387917770435527545766299479146776322080600329126006630423843647390939281242485910479440419342532933945321206219824308364950610618413350785067504880119408018348791309565250496846923864966951485399452665703778997406987861682114816048716628620537642741921171219764702944276439015598887697123420510493498309849728638759188654126177764533862020585172452945343179576657978073685210048642688352612934012814163232854542656631667846857271198329047702374184056064406814497364103415555597229401363635059210835470978745531976805287436250439229231403333335714740339441312371779047547555903828511863169992134277554386746704889977085576566148851803186771271844279985889039222222568098997311650156052961946397539342560374900229421815752753112436887187906554485078726105863018663417545827351594566631718911182219798487365180687847315651145879024543428647529305199212203864656806258782482565558180395193479450753630205980559107908724672690316009539260291492286407068000331179569482026418220159911331488758349023970501437150671384567399570135330981430689434078173967558056935445008387055347785970337473816238888685375888661273444396613243443732127675552962762507751624735356254380818890467441391742693013061272805739326715222099806739777616411414571867876269734579636518136725928014362818124197378240875766531303718960379097985521381414486071173339027480620231349391336945631836409957964828001774125577343563458448213886887780067113060668371610821936242098090128158727615824044102276112415075632343005186269988031640971442411708694622215280589596070043609575415223034626495666351378791573381489602019072789378464578717687225210798135822872206763391185715103597278141432595753947440479138485679469694759170780849757167685635565424667021805080631082946561622077060038476912165813663913424847494399302657277595435114020124208170303689788061193996844279812379567534035618163576620582458337868722966733698603151363864539055615126213413522792476273989432034640369395642680066597381947624579910342871895909538341202751303589358000102214462633686579592098748129828697068238916654437544801986671137060750838890013759421527120621875255784993268524711693124176030176142239304540140141630447539233193265169782919844877620282497993430765319894581719218354293057565918828969301028011163185448561604108848082367507823833527610789025233538799918195778185665639980645757244886077858425188831471059530016753467517186604416980787218699393693018352485394803906683401021259381701870452883059413052551639267607035481979507871599655461258189812773137102273584933328699349995739470138720409193157686579242583635580157264311845386153972348984809824841766139983396954134435225662121509767458583342734606767000659292833207782637071479158259700664905373867601827607234206947941912072513371032175352229234776091060289017647082013235347830654056950331568315444442373569019277328670296841204896149569403974673010524467750538489535583195699955454886472191998630591961034022034921179388817892181174871988609595916313770027202764637177791168234286362352907941410844612484909505545497352406844780640148957956583202752093245035756576284185393502589790730955604627083720633090927608540614707337810453892096619072697043042609629522896609970724896312583785365217296943890124473871782991976790846663883435560036440000218359098921298456053999794354219572768288391023487030975449761424321828121861532737648255049732665299089583156797510165557306512015718035683883883594183787290263494586305243434679099083460201978761402053446489291076089497528567457352030212298852648451028075238806596182578280580838832549874455892314056065578548829845483728204307537466796197617616266019870244383681406218345900456440741600331306585270396185042166380738373667237336419300246516142624097667807642799743050036613637282743167938873537258315677763630213780254567858445561215396765654573321112029448614513794319980093348217320137665511501269487254864974207947543150864374970983345035184448303666806643720985435231699296122614985276547654332107965685783556714379524991794050608604720761166741498909746763562396437129317403098813305611820300646112259714559122358733676285445250075956932444688005422136448098155791910149506345057142871899721274986427087933150442813444326005884071196561341410632686481599703649956553880797186653150063974905710211232944438665622881078018915846574338764420342874760952154206454816413728312507001216560206274649679116173380126023310355202844426988295100602566440722959452413041946710330771714620103552677706070102122231284732924026047472139589742160551902359440690052992958201130078983255604185772971534811733011600334213713083382325825686713639476524002666039017031343015026724030980619936830291099984262351738483469424923084448909848804601839070597636181674620253344667076344929311231866342618497643822641717926522202773221813226788914917132518280482852878926808234294319658427715752007563921193544811948514670859092356249718893437813050184697493563960469904013893242742555147890615480671788484747705649477356947352409862845288322226840314375113169804216037318326990034911026004156862998449436088834125150109821913037429474490316891056216403533825458863965838596522275674148867020503303889867350383640306407903613687655834742572636211172197480168521086816160959494610503597738285452419085700689843093216710757639532060180177745710464790303241203750758022561111878116700031141475889263466460923994955087957125090864630217436706367338729352186136133206249214668645966618430738310706753859600405464871047685274480247332455686027240925005064828660158440648761093182486436593078547684874128190660288612467000432333961952316575936346555763232679650629322021978522729607394334051299412080585854808260059086754041622035559284189919054717475680264731989766233940586094040278442463313966615374274305534994119006260619938062540881125801937026327948705155228357921920009049360937347458022278631963753649787871951471692900039737321282020627199775311430775327555264753867191619180530418366234940279723132819947804079566066705799802900885605218433811528325594812050152419765747323733964410167457330521635847511957299512212604806434346627765142974675934878297456667191562617822799056429372868527015191318350235592202831912431845775741383983867613931560422502319025888242863681610736901307878108283939076754806359439156861382365223721415106828119821505037955136705091661318171083081345751310091179696052428693774304898467329468381699473951370251944349380425236088292016238179756171341838223751737562484238502061982914958714060200241916272151901989109903226418491306706330385379295757395881185612894053865696960987798072865800880502262460483621532971234017574500947007271659458771240194591651643786957304329274275072364281596016363831507574256234900442654130488273413563840039404784873356620955596538920616959024208956084765895533786759115824675735209781823284732065044084249513550766592107816543589662610717460394444177431118609510842895555216464438285960798329829756984180824787081577391640162786481804674098242073055303019999530596778164061188820578648002635412560702257807723948860298590120794499786540715264395583948359465241660476987630754158362908899890629065991266352083225259692857069597313889553506355141598644796128352020407873799129847298183217622337669828318887082755165221338281019035033984535023506776428555124402585431881615702953585485693601600443043450506072129963206489809522519058410054129117181495649098822316032617283354198924159536330871427695465648074635429244323376018376324348148782624284739530929474158612996575553785156396992917652819321430087835488887253436133494223517892937319191856852226854943188654329796865766658547495401155974416061355690496797463399467610277276507757875883128367138477933172312038262715482012596030528253934775706765204912253401373390844211064198201522152423040047496298532514924969374219606873099336686642321372424076113782233386890950771634312187549474793686501908160595565980482002508494283190837369248271711041216815434931439215474436573388568155740244754973565539852565124777930980844188555114588680188016700494893224717027277505585460961459445086078942565865736213105061299527312230025197580313751550591207391878402487537569328803589942803651448853367076468528326931969259488423775176256618889428510914320052329353926936161984570383122210177014492462364859631081019322051192497490239714807265262388881650954927685614201948269263551931502473235055921500981499446576087197496288517027686203717758485803725033810125691863372357775238779090208696208677183026430383088392137356840206594005771335695686177092825790610767994072291702589017816445480454119656832251252757132918564807642703077659483018126142836019203350581019425157159587206878429047432423439915275021042329966719703379288836997155678374747220584605619044593226234220895210993027191024233230445827810203575790189416335457884574865850561744186516678753057439724764111781566534300546336330117493929295920988514325553113243031790943922189094035513191387591205021859528107743877627900225785855286124628020747035494885143659135505292602131093634313780418282216131673409206368770077352299229059844525917873079845527530890189396281985220001852707844054588294486837807635028752191822118768853366103214404139759351058748053315476202099722137210412621090224564417320755409058755544182898246693943450026415769517293475093882093346720496490085661221157080726228698071931815160648643823280078848266191311011146578018735086053716451744982715440601231532353764387253725851777569918999697926175989052248147112306679333087546237865937936434639400326031289258394210001094149618141463847497362671978291507029672375453189082155792208285808612300984954359200252475328039235211805733720798760169363857302833098301644167551791022301463139024092562919142166461960009526913264518764894471630393920562565072851684064445215939182865848211932071762544049205579158724605314857324294392428259170490391240601159824322723690709909227885774027735461489027166558382971405667750431351253367919864889068173980829933218093420712746192801787340140551275141894729985256298556249545300457770500749843063509245019952371569562560185965460993917652137383527194220610640337257453017640254400028957181285879110336218049792112733019957458493958540326269492370539259476092524276104400309889101914026543856492794253451582793862332426585672299385616291673354203913152240120610092135338472622738020006035574526568295037006948510482125266536393291716815391007788882992702512181594822190192279307011216588879288568114099680092668839551726816869653994531845408990653510524897515418244721839386014832251630726287723679175181113265200367148064338494130890980779202103027438914286426287164734535086757223707820148796027950833336255542381962189747120798105189477272773457753612594355286477648765758118275312571936431874516062837723260542998689023121132531009599291862431883840363947188914624733834712343398520825451633904572743256314596402640109261879769274957804031541641101244608615080275860391349364234360962164409203572181336765245625297428675773568271483374337185004056208594274521710901172406536940204141332329600402375277739529904478200885444481503260168264225907453142447285435238291572826207200776398987364425620922332735554601838076354713930220526748033015934183174241906605895625958818272240811731398547505119273194502388788802634593241049379549315453272070304449670983074488795500682997171968051915110928325868215076721838303483824561267961733219466467192067411437559814780400797906610887299539028468418433469612639284600780781262294867652243068177429261495188969395167584304534571994313385924177202415848486067989868410638074243979600224735597515506503817709133631862896468047602573454014741800217233935637119850184506424944754395398587863897151095819910392291306375162201052894332547031916904102646738591181871761277933668291841318351882378738733575807996558224376682381139807233588870503132742729788797704867627590587507126834474304474752141561247104022872190396815291550948787181699467785976333563644340104627442902205613942234378237989225628276560142267574260390142899598959529468693514944155061128594293497920682719747842189178549431006303239100692582890252402365051012374990190540829461375307722431444049311689214181446859244002846792213075447272455917142356247479270056042126076598049324282942236721990600088423447546996531452653400499278458913900841786635023666935914249214509147218733616971691870030828534287294108612979094788590127116462122546038782522138874303503960921817547617715616928748732813815273741691241269635445104625647876612365504373043692185637614130436451863797484855711061988347335445316625748817532010991078836247035047338337054262208074419137521029035645408387934337170032069135512677289638072344018713163246329263534593775318105708249206889093937319259915606352542203561676781968281732560200417519824928615260062618241105728058736825590111690297186623902718164857080903213737084010976650320614065578601679026992909290901256262849474302116429258529574176014949723778366313339131555216920884836998621355583415069590792841722162618446154987952000910163693761238226134769607045074935274695349832445425142916714550192274358177576549393356435132814828345084854437071840744000599620333156661473594125750906789836802555220620462596591267957382207638261721495484459443941658458677292749445221683148883680417709685782748946720650974167402749673397463546652543710892751948481480539257392913005383988537425056110796755885755315590647014783717140611785215699902983059006891211906933102145793498411840390248625559127969366420435255855600642189312516195309779648292837517240818508489600116047608867751039977927992843831143753776449453100858382982890780174960944737932825359973576003243629335559993201205932414621924768479690881505089675025631433147234289001418769091359133529242635464566995215743613367024349795267259786732537629028620025745745041252045803205958500121022141566437964720664211242521170318949074787894108714919946672548526548963556036220229332898809565452899393116671774688750348708422778015405012563152166172212147187871198183126992504810026002265813527488009476406525613393765703423596361869744507194736105634997481919002127255901537323320771707133943775364189519037748882837976165482398089739895020335321012953148423538220578368353966347833746165059713985270535098946534707908964987526162157977747925730266265474541305479829453966648274261099875574969834049758161329948511031894244983529130422194155550123039330591596074909854927328172197572416913603237628194197282845116731723518491040463473172035650178865101608136536041109865756598560793254982282659101106031044815194225188460579734384179977382781845372403068089881909262893658220982677966017823938022262846932891045034049972984668642618847542876900418843459144453399378131644410795814317545413411885084402624378645028883785222085303331015318638440604721664379500104758634218973241464322622566276633229061726631266217700139772240478825519557799691991754483852327487925614486073103784408095649773525072243360332154024238252414004208414799009794289360842296891522033392209089216767721517318716439327918902764031757226980666957988519537322486499038442897638924902572781287339301508594227689750305730009160849581629923507769313597018018282733516330134313466849483197576434240263751241026179051270451520894577752526117814116459922750226365960022598572205919341889558186031099728249678119958904893514990338097409438467760470587535225454088484296990217820502674286277288420193467616885630136937825543127998989731922010186164037629047144037046809045846544394132318195231053892032683755429536780744495467702454261483135330531954345254295455268483928934802893670112839739923949230108165224382652319161377472082820802398872090026058066445767580739047893553937310703107121601540494201829544373897178391450713225194256896101919953236248115201372848345698694804791225055189844675998733471632076079520198250365619845343742735086642328412067776623445110928832494741913536659922746060920397388618484623909320038729742741044997373833502820577786716888115779979300105184931594707293957182759858795083174026660010635901224875037302291356155771939588042876409607136252493523624354922681684175480335094763624931404922286068279387751156413749624737371922686436643101463877289310283151226680194838734629217483799639959877724404661910150039836235945683644326839790747044052080990941194129873727782554560031861364072837831418035448762567229232788548509131224541245923986605945480473250066319286589485822942441278675727394497592735952141497375029745678699402130125026429052916870812056553710889079323121459560463332643018640309058782793841273225097806672647359654547017680623745989251660074073796778494199794543987158437743419165722388121146788353218900366135843182139226491342876140163487252977852865346093502973172361203514256422364350506682117666084238931243622781299719443538052626417198871268310660882746217656719826587613498525512689364934720599391013025220073293423876911935590898381751900929654273455422709808704987320565363827367706440999073678791774288527326866475834455671162389904245376158247344492754057293259816517913362517153818531359434408192671593195630262200947270945610860215035611723642806992876633427727816192948168042244499832810680049141495937741517028370182572647600175056626891620673679813358605212473234905328621598136332636519360114559234046017097165296909914625163629220602085078899401358882597267446378596569540577359905592646349518651890286811102713949553049928246990892717812468446732463586802637875377917948732667708995767167706340816676068196929009146372673443704503461384242423487078310441076687363770618175376012614626241920396446948668716922619294690391621293979142067648342633500028349300504783387819348896216744378376292627788913337757905746246719357777529074124366016296572357525324580110290834814247820092983278819343396418784307749887696420650287167845345291494939669353943529889832188642902637870718132436792749869284468127592097153949299500601103484050391083183602880094487926150424395306122044486053794715756412037639928368494004079285722618709170916880327530198778873042697452956465387745809970607723272143033127962162288199217923531356830984508031977395521025571327763669529135025042949086832933928405161435052963443397328829131797334628889012256601597266902234394401227446782709855829854632436925281145711988630568750026352670654746190074940169847010251463219866131093377256687964429733256279742740520561113779198131377499192792803598867199957849036140161576232586353616542991383824339601336518028725419616803699639188210718694057293373639765266841553448038952018356422043097370717956066341521601350643244923594053597619925857296150697238250917031319377377531795266292853903858080882975074134387987711698831256049414654963685144833112687476098910229961031100189658167022603040497235856764642340191881314004193735165334181942055982505491640496080241635081520749145753904244014927395431829670072903889805826052110680269388230000727057409448684371358342184133117161588232197545478166392801457177102168411153016582694806688939596384636886321039074033157760920063113448349364528964630799528760363790741044978079653378905316708925715419164584263875689273204164511328826658881902672384164221377013608287365100741274134238824504518118312130430951931750364818686128031893742569601733949165770142516845047684107385686325186663817530034490833215409262557213648407195673427729609821539992768415470635453218881303192834644687286315253626491228812854461681705734308225073111629007201479581143983536673004783637188246546071024901216149678884226505568783874668005820919735287873163142551944440780612513295446771690716600785818614323118572563541584516180699697850140372501129722336672220638498304511270018833319113624137897819882831192801265709834957135930118763586339437624055179805706334735692871737465804609298153243358077690904255921775926007374183860267498396197677125616684561352987524107418410637790952168458780351958487235358983926718583881013442497923453488915747910357541878424029655735510664186759895847830857153838562139563301768844140877881747978720806786869484473741285767563742600842304285020107270436935253902901998844674955842736078380630276687156009464219537763718142361131076631308741901970487095245893447000102953754361212627798102347258106802447646161833561198272062434056397025774031955825565650180795863148373547830268149422613187724094298095022261238200330426133089487295927339832318125924290862530990567776503274160488269853963424458201292197340949696215120872169832319760123494567722982153524109769888555784436548993325038642407717968458709210469018111752842210639711409232988530378198965638855023709599336400375688354829179979391730794776783253776663844649250824814901402502650599844411982666562085430087216050006055048681403468672432787023528432222475538246703401230750313004803109964905548724137289273171871814866188078124616600076414255888366534197222896849822296767432702393144639835629792107001825376158013465070733811059371062745517846343080227262711358272652712279321678047881622252300243961137566150752317842743170795875101052561402595730247860418072790507145199822255220340383584361781552496346403122292138695064363565107267323704448870726811649305918992311414212338906086215465918556144578609128576180794852416860307440746380782359739957074687897229342299993222859662933782076609045284346017121659142211720941449844190107183583773366532133925157484487427842066912088350409263445448505369460785796808493033318182162531794858016393967866569902321965281921270772678225411869205849218121305730016285487955530612534233102601532217346514993171356856376754670813709600204096913508436300636168004764713110570694386448269708279963639151360769061572208508615456050104544419060154039031701394282225760099699925252941313111445019089917030458681334428735374367750973541817196844462743555472747614663730609236957021372467245300490241907738365885789060191847509542240275261624984069598977579263543547118838198028258068315268445725672762988630421423464293146424578118961032354165735334194733592868890240779883848363482521833160709933555774490818638323250150313351802844753503819791440081704867208572174869032745533141417375035698111769197715484722857868621098161007751753370547634598264061804055413101158838627226919212273469107923792998950660833128413201604561636196606789506627209897491113177605406183990280602439802855362627406985365105161008152344402554841626472271036485932239645299826541084330606745074818495597357258553471473447062110883586002917144510105131635680192393246082051689477786761849985705855692107948575075556555669352373268002588970587408917656471462963191514512896603859281412621349766727386861145022588325948679674732716810553847907980611787730234014556160045392671373584397004845510192715330033322127584698621487606019850458307791580179975806339194741730834822957542317944269536558443039212415859317969059355082772532352322273662768536305356363103168044226726066464383242624008061653633409872419341054681181124366299976182794347266602495272871771923651683799319570904250868715433726066281495689123928044337345906141725373288959664718480388498098012131813512508725586752314648441578005064976282708403960205720847067375617919885215458264677340593110190075421383716244549549413935283810836930600339125078930038108117539868662551349806425281400221524786993657989047002049964579276246313364661397119681664224926433517930471430639369302014067591327149408660132887175982123181192859783113057904323462558116382151280169194781399314556469391664958709102434306310365466834736031607421756735413794472256698668836575773286909844697320256267591921804679338445245276063724086007955813405937255386766857610235005383259562711251018848519049708602795380690918204477740289170507601567197665687764299352883887831240948606429119116280305322712746168239936326663653391413837200809438217085478016587764227426718128883800517468184168380373295562178071621723519768267329384817029179590883983932988844619228276563451192061806477707238116033548078004646510064240934076497215087435946687019601537716295842081869056321812338514264435737687927078994994053195524669541229828528916995790892911694700786988555118549726018367712793335977226052680922675813771565147306127858558173471245627371385472400103380071016268049296271063112910276965370171438531523282573188204422802906619959776958165928779725393706291462952185642494467479829448178940432950181598961754165045097082693146846866910701210185206980996232783774274403814162042917136083963049188337397251220740613036944145214562524189157488712836994425768329219688710009574067863022157728715487775464513528889735166814822686373557322063100714595745718677595958132771414979658866942044687472157435006155004725711048949701111113780687206773636527550072489566751339216783045515791092268417430323846572059643243419001351993662750553750526716511403888411514245026648473838833857983562732990899764387158637014003917866728052537209720184707485101821731355769932090564418109931316990008617840184316334381206936689049676821347700896683221259662836559251677450993771010507879186777368642301426623241876260832399710610315204309944622776944669169984882522325174365361046002820723121311958278460193773006090967371984354406840353689964551653197777572526989447008538914484538640967451068353356925523540330389302568016603458112225335951540428524471087138148061014842281828945680670065515615792726611579918421659169928251059398214058965904726130221622036639278174131232534213363655193554097281796627733669112281457064219539326269306263313146454203026175647912781818962876711013943407397869171842409818526358504880380416749133016671525886568951726090362315475291904071096271761881068191020028029017321383227233764378243319926819377071755384783069078116345087056938615432974512254816621319097627661312190805368917438227947225024518951880912655371556357832608263115698914348934307357975750675388476068985650079585405515647360874220487133796838842502026290725844857941234812157963012058253951717128923483438200813081186010970038863526210441574338717099960691194615307212494650452674872507523897697333960016725006605613811664688498766704072032647956692018864150141094742904998945925714955956787127339887862957767576680588058065321153791989186335711565967912566387869593863376966667514357755158550774139814378668351927518422146264782876049533611433342024778026284352773495281666566609954488649804565031660630195021367060939057251923171647610442142700555797343244310718708763251210194382638828103886611600867747895161950932992001863966828600733583798433252312807906744574531772665420627320921587173973041663042075052079955283778164281817063869957374684676076404295974575186138865729869406804849397780020102444489714278338292883871115603155940520150637393790291159229350606494041286248409335789742366830858788155281750952127835466839323718979723337327680041378227138309421512141070570940510373515892061410325548112087458203827630727743164427016970054140043849689406280323586366087479138204281918886943018907283412276191763391860273660035410473874061468617552046392768978424155427021599162581175188256211624892453537320456606997739084710070251231583001036602234026873131657741336301056633196239427113592876803517582276730231876382590444209532458400444556749497050203768432488698768332260699744388244141974688632180008665574430640723701758634319783833168525379720826825707235565155590682819201446723849046604555737059411674005353015985638400456658045880021573621632726248394738532200936372909910088990326221897053030533075601572173027902980841581067075824469007163078071205239194235965660845360467142680188894858446498981345913551895407019745191994699383811670832820286184389614631866162701347468557072751744700280460638516063506232208184985264516495599433792117744768171350574028441736027496700577296199571829184656309964095207623751796101614888678393087482823777879722740717299241053117610615087889509389918980639446260739186517984110162385898073359647832080277212304467054121878967014778806342060253011459927047358387675528988219881512346944747941632017818736197072934727095010244390037677498271518984081119454712113447222714137493053320813385116915011987152619018291981069470561290675194601341112163013593740699768439173559164086303080925967529939435766452909769314281196138384618118403530009561293600914035502006121634892863978149528870555394238294468676988471320971752250400266759000072497530608673531918771723233149960726961125740033918459907107655015812663656285423054615828971087643542565857276996501653481902104374031418822760257575028909512869427745623784282058281389778040819001558328941409085432814607260468400449067299910643768079803668102276349742997449277221507939651548974505392617320114009956664732398414951605878257843562569307897393468916387826010382078611436477430960775816900806945820575233843576231437643253208291304217542887140860140865025407584605076981113887261173529695390442749459341073818468411088878640940110051771965903336356284667403587573876601342933118606998510024309941662361143243793662668682162340321056254445371806548247715703789472909275670322489153386391545043517684993335820794368294875965273340858023950120593958110077332091908324795234260815663783787451808164125523763350309215469581753430097133745644840181438426861804446553146226422470992778898808345412562363588673077377805852637873360650154474638268525127873523936281374839316094320914826796833189658170121714568060902325541706956414354917467110767653138312946174163172897152667944108442420097029932829871192376159874556402946774464342980151805408949264847664007085115180341497362782596118625179436915162599375113273274849226806130734716562628981261249820563094552164277429683620499088415471527608993162602286715058253115211805627178139251440295217811323467277908590191862844372016360727397841695534051461836182669642821501972894334458427043919833622608687250925021020847536870378078769350209448481723806958206156412984021967464822262698773270051583719256975311485436924530357708140847330377570544059433436444821781043714315672923918464072290279475616075794971803771647900934939888390542122985327313521605316114186462086974529142677936741939209555678840834294443995393629967240233240121872248560776993163650394791470243173825221920199533238771142125164765530592089717552830716586764953100523033309648200290000271099135450384918516262910920334725613957426109065168507054929217817037028273455539533336249002736320355566216879942531630429587429436684845733514487347477103512146742354041242476809586641495739262593369415561003206877269436116571867501404611964238661089106052831872388350827702072466029042786303179467081514325599505074541485245852225429401773286786721081178039596952415186360779415530606088236509820015438902606846378250851807529963170137657000396311725831175645575061785254065526559412035920136519892472277897422000524807425984049564566600198266875375259476927871139533224707028153744274921107652295744646351462664638728395630772792749541109206254468386007443888193454814821706518412140293104677097154680749467331941465048701941830450117348904161658395171386633244616456136981917791018969484146522286569698638850919983017603380797965006598063364042367047504927176352609716526770175919048162952735784112173653804760382433060868588281518712245131973675016199601099360477318969220602633439612441728068904245023192719826842945763048237554778084195940079191727818553030570198463215673755622969286766119807162229286005867357873291732534341701332240034696795829898626069787317335288109582216539215707850159214676487942247044992479246043110477455431772407682631073850511144727433226676581457590536888643151996028482028204488703242722907153436279127912255328810895520873391151957882242014483607978880584638480303615791637407347399142151814791798688795011775282495225746042368185490608383444564075395648672774599637642521424999175635726638369013873382293051828223693374856233387624358129282688641499694674577922801331769804354578130019121334219047000566875930878922135197109141950659445922522730704363011192065614020598979480143223941751207836462344680202530803002335485332094801263615528835871431203203154155879865171833771561627533888580169387637460290195557593225499778664370669445206544177126905595584824281436437737530724208910747435464863651426299054857207924257340876974888760026290442007931768346131516174947491344000959894529866301760874881950060663170596668009692627300000287684663335529714659987858317244271164824755644980979450556727095748482220284862092250062107969802666608886047364993055301437957645207582108061150102295669160769354908817883123446536172682786599604074651389469709554872361660465764361317296777617811529864921323188566856537844840235120714851508418297831877730449253073233262589105668624541150066852681398156520272542238875188766602756872349655110245835300210021333578950568031129437564646082971577887146662593942539159729019740706042606246520094262475917010091688505935308657088152507203325314703885115932011056423929083397663483073784646677160408277855479095117765407363555158023803255051385320159156150490961353655685315122713907405493098269241540622511549777717586052950634913662659502547171283103935029096374222197513218891002625631079124119178174925421652923123200160010924713108785673724073627866557933607141505254404644656257176913791966726953053357964879696523306076309397065297586318672018906370179250010131569669944724736603291983339331011352655060442926522598211055270961782051871465441540954518349965522807844431097593187073012114247698197094624495202775853917683966292066724235011660750050793831851457438408832932091864001664024678891649226530042754083403438130450655764698128089937360998862736743986067375973969878392391523807706962796813303625114791376970333533921896935603817333393951094083780553044137813413609293722294572948998569738381630699246534300551693950564006116854743832331397440236369837916884276186130326087656994225567197651769619013412092262541303615718799355596407028191737428506130331491597696694566097277809463189673068336537541211587340887695245718225820550686556677851414755949844981430229935446241578799222968564017118013104555349700019199449112543415818457396812906368638541086709435338904956798226812913286851659512774720959392396818706979367462393533642623634613030060439417062491308436053844905421228625014764162269350956356420483979988414982536338368014157120277425076289595233885102410275651966837604827952108701603971610828134446893023295814562519965062407215107339345933292542056369199131688549889933799191269234621926391853336965294286916632043801515426644274210088875754085043928699062191207136265855052631204749985880974081608567158540080759762061806673623458218282137270522214510901309779796499650841498912332343833077852366988366897554887552614241422624058987196415639198618250257685277063463366367449297692841969194267846995951460703386649085550376689259269218583960552582143113398631942818000810511297134788932126687532762553217342657259220896920144582263420247942237072764696174393231387065358342641247947574660230234470666758985812051205146848812523382543700009770182816610660796087933865506922606068268549996868082727851973695739257423232183307014403623031954873469707665207914257341479009380018470783553210145353202096525937044983537419977340224757366125005871253231113302749644346303265009118326996202429982090652601156586679877286961930226220900580263038021376703216599384564260511962421375637608059133282506970561078774901342892686708903506834658871487514617501446526007770340694142064142109196497159054119971832687847786983297310935171178493773649011926050710760458728923794056047984071121917267628032147923225645660452368928713693889232988804441472195326208934586754614202956737957192710770755493116407865876557482803779633069626972302973621353139152562168433101929164688292898812706199881415182234384264991400171730958770844447065257789691090019358019806347167992784922102683402188470395848752413007335633350724744699161471512011847514763048394430604437240115266703171757278542371272232425012638232660177706532206793645514384961753198169124466971360451359228874650808533600479097717783198734084585666651510145625585178628377553655658996314260131152634885732696167721139755908997333186140885155209123130235445431225646806759772837870024647601586356765846709750889282086433571158752430354777379169710969995800861844593321251430195353117114347769845989173673323494448988631293428607103901694208991672470177538091349603359187251312861814655135559832183202627669217190345812935201792431193046675678472243255596532173726555682372641312405560900738823656531752150737134546810569464188813691036867485539298721972300224418455437698074457953341660646946657616872869685678007800254853847658442092986085413473929184682030722158367735428383737898689987487004069866188479089006534352686600828240420210466811217828158822789294841281030134805773769193542990939249424649027779797034267986287046440514902030202713248969265182397020001857082816925137720934708024235453251174176391440839930788902128874585521742323548916857188892760580917475241689755904935284796336241830118590485041778015282724809716501817193908503632678023409622194309267472911058985053054679620259260524893880496557405431827022444023893638731914285060945555979856749096477070009767446543500532658211699511916927689612290851492473824602845740565395650437815064148131023383186880648955410211167165369682868549606453595525783642765198579079319745761495964957449061336916233335820197687342465234060391972856874079708637093838292034953724261117932946429957912766406989607637297805658195333308000779184231117163985124567695294613424109944022734781863506760566054794960163423977475061491961000650014320605371624680043287102790668258819500007769145221918279177253133427840830498664963854220340401657224361934945691958961146873934593485752181561458460427388842203273571303121131494948913062099407942084336893795004598799550133123643432194444221289185038381342480447916484158372010842304073992521004860466414560101905236272429118490527796561486921221780129268427656620561701239059707475640395551585914449366228377025715933382915126867439463177801400280153154200874532306979264145536688646450984920915166048204515690014976422349212356857941160153905868133667017851294118614121022020698970129713333676362263344334916067046652454325472259834267225724294115854428827995286052228147785682453213474023057739904259133274472999386281771294083677931391431139968023346538957227278861307575051044722515233171514253564219645427528002895298848772668845841280160682306224301659379151423363713069924583837754687562534125552106063192591110051640420003232941783575984375681850066754572641563333892126704347129834009068528098146134530831874105905575463107515365355548039541214348033881813346546103530665404861554831122188148498970515857789800202875157054523188084801636985920609998838842907504375019555044850498592251716411200893392838775306896927617317578545969977496155981708481845838477103994521815854000486319326555835816073111859163452308653638606419910442870663175624775379311786012587091555984684500541494905525473018751512496753755470570702203288512495156897121270694579791852135991524101711078892779935708615001428541862599954394417348273689805702274063281886922025266814396672468916413698190395880408460905105554931123560426563362519124951125106772703324449805653283086978612130536947597466860519146259959540841751934616309166136311806866725274345494353094722486821970602494151117098365156178030259054499141904041501094145912998996303712345954497970702581858761811383781245411712981365651872494099838217601396370100518982562202168927543652426689413497317331438442426424172541736572527146113749292682706576634299317138954489793070006472435170366519441245163401363331461120100108928604162279830353765409866533168893080511980076582257101141834711577814301889599056230552412984767826571604153144097926915600630125742001813315285369006649047484951363910788319928875777852584200038845678116089624873221527485917363769661163832831631872017999350484791200555928099368043634549791179004311071363037688751513912569310923027295854100954761204177037171569594928042508089207146209494210826248721400722509373758197871904481890145618539210842705688180385117778204212093637707295108088400375897379925734251036188020205472746218105681403152860650917817193633761774160988628139947604908509528341955558692021864339494908079146903357380331476803186194296330979672537261943631441610606752496876337739345748883184087665163155832646930008422307667757072591897696184584739980609222726185384683676431845814116381350351297672846113854184778459837663375405740629460863571385508645317769323637064148358437333973685187531460521322182253451522347576473993899603003777265988269332870949401397712543636565940764989924800336561741983802488396522019662540946554386028597197612479342627165864669377266686024979780756510914953539078014122279072730153004069854208537430701958913330960119781057205903851822761966971851777633355737984353327114041919054240581200484630978092600721350105809139388380924052947503953203358509722938608970973483870586726389907367700773254711755993619360542233103710513628702007046159164068886311615567756392121136325345483948396445754882353432196514962978767749590349899491553693213378390702079804822801617982051406810379741211919074477329095035124515289224416646194368086944057557650717130071827444904180378982118041278245505936994558651979236106696352917916827797917269370165031005985133767618364079108870433334130937352954594285100741011208328593077622472550064171064084290509630691458406436348934456306438444960479255509127826971992988130064767757467866374325955426452560004949280416058378109999650500322781582948161625068661792547260242822412335700206067307370091895021755291349672296418865496613195790465223804634963426269185511433037253114937067538197137950911421452478898101897712768324190350117910116047825849056948257707039209247678279649527889187303276812146245324579671599814376756005320463566740855117114139922382899336743114225272552848677269650103240164427986391427809821167528745800405409674580171067312398954596390259062462383312051669380751393851072245744619173334196587910070036086947659584121443569124287072414822981585233037653219206860691115985199139954193065784641989213057253754762025845132977292585980945526522072160345926024928681935786145775205300600775993568491120822041222372066464205211497547445115402573788102536188196885073403644297707988772211724484147549594492281221958570343488271236281561210309984317219342622258664190050195756872605332678615635055402694194678908681335529679975194882261917433615866206281947274429315367269376106430627375102804388059478230039147516118224186695186568151266734960785029972117529443587615981200348683305451360197208257723382630627352095892717515514789112697092318488630549521165907384728201004571245653725083335361888586003470334929160677626505431109912855821344897838144804281786413565200956895671557114783643626474868387381388837881747186162902939392329619633915732885317182653217830248765365691721330339193423670763612594086901978376257750609739284607981199633040019599505558920908730151412974655615891686141299754270928219064085411390386805732141555243126643151409765324227974485407413709540437543763165638069129236514312609497397018022404260298986847436677235433841514537655413648183749379558207668185349005842763338703663774875667329608973082645866134366042966989544425675832964821775152234378715415322181407408186499246774090014656070416973696690299901449110142136907660371828185930272203301720832770454667977605981895864917746960744309240143020833336055506921514337798124508206688410696539905682102084212905539400630350691673912155157985718794904559195387344691386563963802588976688147615424666673424182443933260053697558176000800836977119481604997157824231365518833280410836441901562932608626357383551977050146445314504499785722468991931903142318965890987200964016087386723495128191954855420401380904093367514289015178952704060002628930863138236946531372931123780199700408182138043094860936966592983459219647017715565998005991444514787322044125928052419332063108579571857901641340487673913897492328011124201977180262005648948323139777212172577363226987505376469694611482167928777188720435952592900530853827631874750664679251939603711950481463585978195724346988197728949842794495996002365267704398807077956987449780983870726735545828842836328539922575575625941993712865656177966689087274128974039516665818862478649790881284465570025018436691661170705652235400244978409280989202210700759767645952068544279196950009043940398614121108013129555826433065933246115571052870221849631739641243320312577654822994002707091718893841314671364985600942405871303173075583650067975669036979038114879026155304465328602127546510801296569131456537808129821499238441664204603054926828388769859111660475282091678341380242053280875868008410450982167865802010785762232719124940606057570920062035449690550808155482653996259213803685817809957506817644050860089608083223122072012156082852811692687176303964486216117003144805300910972260858221202699395427421346166109397697817526630869416400366726573400409063274770483584365898774002395360135772913695824418515605915469608241461858781354110747748859567734703857623064644923828785394708540223453057807032542465664725224649615201475528973860662234275951586422314539511481363099056257532749194683443684558950282195337278444391828573232234550139892495329601582162118152059741248849514761157083216354889068205967103854603707677670730840723052631636858824428031364108104248638584653454686329435710821041871115445017348459667507670092931312882398623700823156682632266558425971823206227400403606459729565406875816907633067741339971003421034214403340903823002834072527123405852420502435448962991312132645121331184083024311429978540254767460912475321345484797431044759255613723601351351284589002069033348333180221793453635540281658745349398339845278471583765497298894129633758792760022340698520505055651678247613471153798773630354962944109319832966813747490255071508722336642547785731085515221211306204018342860375176828696677665335618873620625655973692585213565330919979023406290131260321425527990641758559187856644676280639254782774227626238139391274527133621687530695482385470646272513512386981372223208111067167680841517431564077919538512572552281928850619799159830550702902979245646248895529586805376480036716990644713261302406229661835066637441047026125238421524113034498688646666374588473667569638440812051477672761438099099490876704933245954690603432831532740550557531402002293574859213928652183142579332372291924714707859295073683442502944802012716840497907417360608466837978762676866793720706576407409630750732159819911242433379642839146096109448674937802641159729576389301861148644581956357258385931847346204387520826187213981047347991486502836932913216963480828400477774634215003695263822225017342753601702896183232500190571846045072779787680367496329909756663394977065514822717516850096385567665302712613986437006015413024112897986076672309457481562873264877143319376324586559884627004852200656810496080336068324113382924094598750230584614769774414002845553863271089964981131593600135518227022150088427396106226848419504405442491902563837754206235124767634990663811572516718899775691184226763040560668868965811132911339517825354795258332343610731889122303394731980083531712423302355871277138672503574901565008898586643994437333297244901875523374566470259115192206420705152104755401707906587615632161975426355253428531777729663553702418732760465641328558404857548970302364951736301612850179885343417061357439198178886318228239403292440855187721029820393829108198323672339752498605024388699014718143476809538217977566606071714059462744209715087128966984565184480274332092458201369099286987281191698812341785575045755193233718075900346536470943221697531586033748802580760046929967458911125246343376730376460041897118376066575327554027396082763856005446543107076548935631130487851072956650941511026209610726539168722053428176651139161979677185457193303708384495371662936417536447104696662878498314850300448167988361171472786914355594935182386687524364425389022991527183414886357731837416348078831305379531703841236978750462002489635964771269149029593335039458943140402392002686272017006232575007306169203898914887304244906713831096708333404949671120670313051097028190725857177167875469983300837256996080148911687150994273412232019876936235419296779444487826445327166069193878616658549142692997743983278158709097530462529631822004828112916075684502259624395287288237673287485874171208117795804752936059669541192202235058691530415836629642324323936619031711705293245120224438763086086286071584167798398281593076753896430726292131354113069970756654184172860438958285073334265075166780751140950332219994366915498170880685202744267675037925900325949758421666083800811110043161047076852798676615069488862206571808388967873819421353988363988410113980524607008894323617761254418535144484662651574091207674100586079931240339133109657770889965513713586711365861140165728994260825624119118193338713266196037174729470132889395747239678111470732850246781585038282517958613574174820559143438029618162022472693713752358642200092500639219152660753935362185458583304230028975903972454435371592174587976077707414687495010355293985343052629747453798060595361095821913553318647087368951319843250444998271141933568389783315641441398218965148050866494047204055445021275079737967420810380008647126974443264411096926466736644957671999486301125844930186571527408515662058042907475413391702422652015626496000594898090499744933160268298416110761944686908860572539707026222311730319046340077316065033645296005046276085311369590968116010296207441955663664860417784274796241377166862100894788162101633598532442310729619831253846279555683404782779417749628891800356446828916944651189437821977036680642604274187825536468175532199513460716433463278109824430706286010959743464728243060387489972625748664563676241460562131593093673939734711843034864505595359241717630775697712855468572681314403321294133146710565688177285749357707472459601446316056324339995522084339346080639147092634063553637688343221788201873489679363106340651070234582244871643051217609103386277251951035161754942679833580802271999197018683402118939848697314983933197394176534823366245838349481190690168449826616374938961901556059498704693677642820484060585101197248496598768417107502512646401555735612262655667707651770243311595656322685764059715397347621501335857883341726311001682512312540912982595675345519473117102329312442484148115422183966946437362780950029905532572449288953332908751594384527830737215300916319349402630237814921394733348548515854223884692465047353875385129149291623282329635424835045414808096295102915615127089886108492115610250633954588789580499711826573977852477461296472855035136260309918788781790171865349866134165101387839058615538133179246166648469486282260234739703994870288402341713754453541429707039019288264737425472148530770680526057105535577108565544173915115051585523985088145734753047606229228857263799227375080861735963071345684960490621842220256825235149070751634018011007649596493994392866638643010525230322078282884116943303564778902002222267591807018349668232068231449042678538452111140889167690080211678464315496165409401224872221437913173957754208676677624717341397915046110297486112713700170374569898239338398350110536911731942243392727526442898490025092699256494804851749742021217701489926979636960169931320968427543689262282502417088514935275690838720831596029355478258296067408931140316174126447331115411390011610561570151426955100298571348667750066684587761570562556292163762822454109635630009427255188028517421450997557750866154642791083201439994517640986212666692556148359624004987609735732758428624975920279500519350620814773333650442568169234924772190150977908311376028018605025420650636935010132143829181148351829891712910748555160592386802974800836620400227032903346266711844131668419386424153003242292972373750400073886318264994573809578514608725535134648109221777148671048528611455677075055844427166048112326300746176371063214213064943692029464977124563828504637988736014012988094640260381124440394866259266912399073506373741859135428354420723739930549469126354813573739883976504309168584921812204603522047519715135029982344579819723790986984222856863724791815369370072885913991587745411436255260396083844358055562084310425597479768236731419106595821401153334116343517235304395189597114840947094758078618975375149681951999021589155974896650099649457141070429705968460908581666043597969707011191242479475101084409269026527230885388584380666219752837090169410057267513177390284503104569742655161277785483637810606195083385412114895824619831299647351498624869071556010347003302523174035275063394182188109375346075512828068904359878565049979217570815414096101640037408253080070607956043988316771903062336787474565469260236484595664056421329492656468984554091033627407234222872638039985668600949738197579807851115529635656504751939820351144903035347403465030001688203767218065768393563113437138434299439146201871580831010570739796162186060332539921047588615434095222030635124170450450648606509555192834915717613865131114093878444404966506469290933714073657834628576636970766677824038976375728600878661263959235839422201891755090211834013310535816110811724269103256353477510412963752867786610232175193208783669214271546435794639135345255479252822004766388141256985873810666985578539297062002825700488821076095983485193928551732246954040369348646777475463719263777657507234618504804109645840793156487658249587303342084254068746382403706597911734311256678575292925228198238791943896103686369903694780002073937733889787252755280021538854343327584535884331581124225702688901590079686316431013666126454093355380922928709233605201935459326802515716299559522361927217451872407396814073277275857737242091945439399568148245822264595281222155156514020259492117374732453974746259012076824565343272557504076289369111170430327439985299678172743878636023901771535704271692465794173141733804862408938736142761700732872430979877960233501575204811359306707109364787531786825406517822801619588906913581472034111782694741142707458355247169633849253233854706068517546282692386852412715604038409576856360534935005738305612852847264275858249969006575687066085063806777252731708530870304655135528601741294177165208296447897319470829999737993887506632836537275793961327776647155460647820436519385702681450020072131083029640523692771229909109450937255726867480492501323416419935564939170695950107703639851435141183590902777509542928054954779388633506800131821474834995095416769230585827278367210042476520578162938510712223991833325396407463528144026355258250190670136252271229303137646365410021667257507083197902182948232817149804278218585938665340492801399461656054447395160597328703514659567744170886056058001240019895114834043235375290448764643273769340419699216265029891423963684514981508116569758825109510949802359826681378715765293737422099896275553820581821531143398305910242290152320596044147435733910480631898479584252703616637461573704153255141882773871290949687986071042141277233234130303015894855112198156354499438167165012783986161851976882345992494509362668685100377697392493521128396538766549243267547973651479628334138101353822387565111957110883782653172385878871332353850651229455430797466035355202140134929597301130974848284460497251375516065658426449678290717553800089955846716100930826479218842120175435740231378611300640670050106091998522610705458226837875688582347852085202148925671894781290825088064644629419829913509654832750897087997864902773182298814293443917773942491959790078587191281083029909566448168131666343945196448115268720290325837256465893716220392550495172032893098430209291130488470947168242737901573123039770693042056736617282114190271467268095168837537835364445153264274153218382042742143418385542753632071835091886873595737297110008130373712424410934965097012541832119266517568800350886101451353231235801154869521821330381385919622443275825040416300300072249902729268638299320324564839407688174691734289224637054711748401652154855698487642413402900768425495282414249786242703638976088717014681067976367195934448975899760012449060551430928380456935897010092347697985371187493999199500908623505914240060399077778725615783218189283718447987329547873418257926638125803007466040824987697096108658914515925881190364435440834489156917870728966125325917846525313605018048706455174447899074741106465223684750608311511979662067001647603136437589349077840189049898274192295463257977006821611033197659103755386381848238604439494156701888174070584479433953161401095912154481880844161296722288681210219170729584485193065424172640406304333627169929467387234870337034722711298151735473178092411874973704113840783418163762747875826454891458939712408153828646295105449036069425315986578993193468542390345935524739305576976397278463392486379426898287674550838017224830197977369349137011994386123232310170156516855731902844540396322733719651104129310403622204739744656082517937684818514685610144720997118793945738287639202690835315296179461334503686068212494571853071590350224399053817493929414602090503384054471341760229767355614706387936903766988052374915021007989092173592047267613513973006312123867385851024068523117235736082898179571257357645666984105737712908249265928499452346445332796392912957941087495919934292146438625333643568149240573789109121024220540132947151987156406391054208447874992267420496735332824686923602743393210419016158012475639660367362929709514318788888228819305947649580094606585449361284521110971760888489830498415069618494778218779620313753885023697886653839344803376581187330218511952722123867222511226612199134311721825652832617492122287235764391423626439964496592698152212728463396616697416046028776857037846934705204366203282252032064476584508604624128594375436434054038478313514068550699131134693357968624226552049206075659958284505787800086223047890749946003242672185557279195272101384712931180970341356055228627428977679365231047151160835447658508769175772753130713236410147672655710615144361697979924345574076020818212838393914150293656597761112447155302569266931049991120347405183215592819509530518031435218284775877288456966767359005217884235734764226797936860167486718530559891424436255698624550825119841123113982167846785214565060349487288346809167471383587227117571066440270477528486440322751672381353999756430090575705927099418704798601445972412737889845122507774860677709623847142924380098922822965973396406169117259358754577090835217536730349390689281700029672143166818522163789818704444318472744872799683393070264516187134023658081564017602276385847309805892092909719681572662902591663250076006220030456964988322460377559548373646728693394846887571560050311329470526592929357984010128887748458849757847113575320435796595198949087680574657893171566402590225852013143362567098254583191427300549295039032087179795924580232378531946189744337006465125276222746375950430279769017262444057094647034879933916957292362771901408406077229386464996522280327045420410587053151965415007161607274825196728108621504256846633037769174117694990509020620805153000823941390740583869124673590185634094639179876338428558420695686023484500272918549551788442799474419284822207102356279690071137828632477062406251921297016670065163889075837250269361953909535229847939182761100163211663973277859353675816473149393052273313641263480046070451290507496822468779483400351728724579264641831540197548095105515478879884138948389455248354836077494964875881713104988053216099891668357734575489975169226434071835446332419602944753830183096501428520295838078167807255022016482684418978761483349512154760556137449161101005098047836042593278472946655739494090661541761521041350938141336799865183993450271732159894708293398332689156491934451062389566602389903712495226530866238356559692181401728524120700977099954616007624720080191293918514146967383474575327954877174718648207338330684374383072798636604260149206924236803138567490294567299548349155182315712408309725170955685171618345010508225257159356102687582228739001653317327253862595941663925011865582823736295236752597615965285732759498317811219529872431848897040877028310780982476300529756119012194859630731651986741204496158142066393277887630379066578582820036466749114214961588672870020273464102585962413023485301057066404216231285620985362567017402218988287494535089328517212263503518003289529915649346236860344515988274954057953481794077417580441818167640282498110675292486606988511686669831232916010781099142131720499402595597448292700831353574613587642823095266429444621078679153388512185106038470172805738835509164047380986610177334607606961372451960156792976687759101611111846531000773482456523554601119929736963447785684531767916968998311292947560631253729497281110588644661369560814985916186855466465622394315651246202825761923193553089098565358972955382799522007988598401861280591312686786070276463144750533186973899282653727405506067628600277273394549312051131913776431014632251981708973014744995299351713842963747824275888157503190400498413290089407398526877525062243180259743611126008182281126513102874620059334511675557024903467680174304208718478550964062242676634022725713331058898603298303199871556311930151954893853535592343483373277082292615886098851711022056616530516902848767803183037469261766068922352061734069797197510925506640102550781708505191933253699115500186634183721958745742895951913724856313009704136966061681125491327664339663604838567405364357772066348454081302871951907811083068074803379101631416350342697371484119939604881033760193246845565909471965419738195962951767478662656222612064861673598280345120177681586433213503271080042293211111787463727925642834831285436377013419141210683137508155333435773467215439302304731172773533712132404187731978304482280418821458417903751489451367912709798869395794430654652295172626495252223737548215966054214607869422468664821095996096913769573740075150212508086191297222118751701973433904666092820063332262005519481583060422896991142365395739476090049045107354796172312990893631542074631283365764562236838733426765265551040274930461295607060602823205031552360071869063920950657614174614550475462019054395859662622950958582956949537673893962090396425304484820571978605152886948665859996069650043037536028950817583019561433405978391866771611264366725892768515917188575762199805912417976696185256997815748607142876223569521933558070745517150594977869544486952584258031936509803795382960649348962517060587856686931170534662075464035608191493052467384050240497234463752581742525787571667943140184226646046073213305854015040033799234007462930554737741790984470672681048252084181355835449677699910279561576759022228767406576338832395365379903666435048856424519117373180050697994150464837922663373578089368943683097566282668402776516266849532864312379536343109070417526804169630342648254172152029481529785551003499722281047496483410513600449125283717674827442179807403180341619592050751363986070370839717757481507152896774860147606906692398894296657503306069508086381789986826578004464248459292193417404360123679473320515283500929188273733927849883724014355941328543273821892250111125911444007627102658189837112844921345754315662932976890022125158202178975595099506902096254394253842765522010424022578042568617633975747613489528679621066495562860575550941635387878883758360041855439929717111870757057873572059135422037797257062996567420701220818150401587895902140718049608885653498951877153345455595307657360684363494852317514547069000090290177612317730592006748155637408658647749320727965788207287563650589639422817011423933816633459252702930739841038026811158231805772613677096513866459541446534133274472115551107894022455545437820464228675055944861297101565378891757485702631261484044982197005985958680536940506864201424159186598781131717981614487286509622027651849223478868905964620754554605929190317281371710840818726606922801503671779839667544843243937376341732838976344805683205272303112812168760093598566892202651902144401990187937591315892922259468936152073931976057727503167959277623828442469668077246176705652763018343504876122541959687243748611283827126256578201259322034835905611392024422411325592784868439799377952931512734155440731640274464181361263753655067861825975988104050375278313272286141718660492346420016907869491576579665411971012949979913735659242745568273529898887145228734423730599095430250335596948425878788779170076560161006732576549324774553810170343834497956932471259872335508860345606947051673643583208643130768414392543527769327368380558559450002855447099327789598133646605226751819705564573323682529357580684218711459596527069309270158594780296491631201950963490048614798738726022860087454893311799869129087527526275065206206133145457004696019744069478688184636145153942458452715200158548264623589229960780107814109631633600150879561147916770598382335456761006453134062014447022678878455963767376614015445056177185471340314610118927048028269244859038331361582371854247009702747362562510896618448627240211566554120540410948567367811515111344389920752664673939252127057287200435089805679358186483787709814984042544367014995419332666984316190237031318404113230302274130556676741100938499368541193556577746203974472733811025135930004679657254039181539760291455105843560665947262745772230988980925590546487413420230994250333858735884249516315781578817205915920434243862139906758986751507412496769450690793774736663400951449519393075151829210375979295308589231852830671206239930756117368541089955721250122622895504908626545922407095081522064862068492216781951303796213500343671133477488489157829445033105677364573173113700574689854926848660614423184117615444163265806479017131061122494762652311535382038407146035102177112985032500307109172666275743858159488487263423794110930651750122240287064556574553591855893826050720795403552146115041007069111104673467177721557377276163721574095145578960321367627365071951377637269056762891961825930352621450023120606812612079415990143866103887695974962837554419473546316900155111600326549194076938419659870395791676251048568256439509592934308081022503369164406113884347174340998249978093923033693262501878324567800057211649317146993050190480894039271435965068280816096692208181285347311185220318876439804029023045351637701506933945864533471508444888824906587498579522230638010921196540795363550082738213365064206038610585441610113217477917329911471212646889326153212970863091581322625961479968921347705881154416415850510101791118078805219182773715665505423875589439619762886101951189769261847386500631976622358220093252484737885517085684215259068229703232294963029634008206552990446221310236769276878546042917871392701764263771411545277058876775712940173784685901541122995463205279845539802649364038755189020050817865067483388070067179575000914579121248860695650605746471838911289822465550477233996579412141858909533012577870191754743510208704325940061655391446500135316003924783465325306703144569966120443802483067469720706434883896047692360098059319151742391542437434450396765550710584178902409967841639081337657598525369080726118119343145323451943181304424757879877106924658166724526063140032231196013465019665099009343020109339926116599313028847461255691350350710227519596922079119466948608851970112076333266983340332623935429960576735961851875186366789323448807109719636386833114897751172721550917984474121792326504966965561882374376277902050737289514669887629723835985697142739382244208859662385085692154620151726738177252309583098552213937840977250795329090933031718950267165364967054924613456209570359379040812444561085406743953773957093749630518563091385793786104130059022158602628211897241752041604790078394053661158885448307379158597747227825757843788937600996545757210168633794127314735432064086699712861371514904064386842590017744271122642848973437409209387513658540640039206357678108330849478796876948945079380495395499870989650698196761923529744395180822690140809743112442593457656367014156945705753672666369119504676650701876916628798976426235197252226983995027397624601164684049308762654116265115553615645396994227181601840810048000817757324356691684264879590933438877865060028093312411875894097595601867561530808338894187707711248230956642944837653120554804468763622202187174919947921873484572859168084156553823748794040207860847252056689118310432897030549703979795908599835150762504948348825257414391971701660212207672889327601997403274520844890528938091248693094732178121973645526173337331162960776893333439135258291418412082621816254861039726667302795400320827113245202633411093261433865633868901329017077041137852300929858144777509693302351552884480016653480539410158051757746015388011479499426853764058303414799620399218397398285765329050588253367816916835368180808423493549433813290476648726755322185696932122904643414629325314124345652526637066435535154185157721624282693640567304488441645302936408153693328859745768550735316075398369734522620352668324442276972378859250800266375867278766810748148503446023329311035413648062982956425344180832205636418771464539774282239009668223210791591580231117365268091981974423378709468772465330999863044258555459847314412103413367915634207122361560468953197141312999150979217246838172272455043887186781729932409177557015373891410134394433287637771113046707794317948155787174908903094855851888570057111811205720479106949752177880294783955983198378604088052011093664921424302085498857782164945069345685173873651898190852824989604917120594491287059998378884450345288969609299340383300260583566786964042227121981126532781748701176942186956322232518075619486761769435515926361876655396190678713627121350089278489288597355737258859278339532794192865541577912501311327775318870319158017375910042051046415350668792689675939158891609736216012765539010227795284531089810610540834323655412651311751263476667163859424019543625450433567534420193213016621500829727227538783153350355512995488780122141468745330952688988366152108848654225700354712747294852697402494534628646480499434786325825348420644242737105996877457783501055425355521722360876964870243368216094443256332615361925470051788876349243099192287904010417203827429746313742276128134548160644681679906005859928089028733170422914506255823897489367046397894548162088614963276321595517224724472350319231519343064686224218394363682722363098418799539531655801583030351623707498507391014990432246362030403972742752632554646122009262860131463769769081285907004251373800723649387089668123257136267318539136252318646644701223045116164729878037675849106995413686343118536734998322689296779066594697967097063232110807342645245543095459797200893883557553492241549157840359984338911589856738482027574615384769846370847075197722536336381054381397477236715347410722949682615338436927083006599999842356902229195666792717570396811920337183571326774693861694050033450439804724308793484543153468734823247284984929826776998585463028777358705861385344179809088040678845160129732385791655813371976099355416072219756868625116820218174760681832392959270739435619527346210143459097271357506616494388453065668700131420205012664224515561941905179886865157738389557398285364822750013345758432412036809119260447210915488037093900245169762319782422525399663248988760388441938636726656714386073858319755854101328169258602713182513578226495893578953294779464864151069124611641833311201033411709575979398681853904329654968316181026135119999571025182283929569120914294318347286247679951755874506730309914635910391890571973836601138559086537896046095318208811591728957437456827607180393433096519020641212147234570354793401463653458408118368793954127883983404071492478664230050317770019877693539231109091347400087404942066500623591866844765044769812252922139375144257521611671221863185260780591237966709186122334960190759760607100587435775196032847246797080558908919023257712200992058416299072775614733100705821775862554253857590145168454383924473000002915130534434418747105168145015123913539470163944415663157532097858377549668738547052721561180964453439141727415821380433993007383510695636475190764597470482137202535950771180191821656794763903683124322350698235863193674917224367889755226342555469391863904892596610968046261568709568015604357666772618175541240749258061103387327091745857132610701166836929777539629613743696763001032605297830696200485695021142243502277128562553548058047178464386144874467174509762335980999145028991407765615735637218778304138709738576378826888563902501888187964223359939670585745207173720768590748479578900307896734509228971523907357030093228407183713848177451410617356732870294332142725832866746289946424875311780046159001539893746598632286276404422804976312643604192878838970089572990722969069013330717649492919015351147606939019683838077620369813305813446237820039269766985161644710409790852885841764775234084403382620038404711817167880733251801078157867745779500331633600239175967658337545285848700009695540298201891707853556728782115916118297887018550063930824146044537520211612618481511640841874087496453620791731564539149303890274707859951363890475628244914151944612371210483350600786886101065290893788759421189218748332734373955394647922302118072677965935016876490724448038439011873905002717725600800291579372786720561158359083466740480116895096682748437307788041223974312899553379874342032685353729004982226467434531634233614210238126713254095828314120788122525787743460777884936773994253896936946264314918761412847156386383717083091261440600287198372783219111909823542884945623343345125355927888435557194089453743334431808349445916258071902991874628513790388012132227561334375563586163869896151491153563414998772897300508070849797646803469247991575074329135938291309759300434568950162248308590385567820447015449779817746687583582077102221313092157083197503570653891049215468002754322865103763585228234967264311992390940827612176855155354454824921914971073823406190285263003691190651787828165011066642520039004375913965466677062266929078443467981383800487087192445836371758250528261958498985493241382798677182992350104309575515791914189765519660496104469242766598888572640500720123059361565638684028045637524574481294179745727107950409633377715028418228607908592334543109535233193161318848570806568777988245694360408564152542364673330343686112985652273835647399703266238523840988508144218079585939446912608429422472541216163761824552456888117327086521703347806013549361565206130719721168960287173482006664489636695140745166099380246269508823448023742487715998945469292825951713364569129457870531484680751285155659756844337095759586476631128656300756534742390344129176869396544095189924726574288245040633955434296921536367604744843917444715518301774862165472551709090023326106269931067978389253473165208921796236281426926273635642841578635615948691882400359526427308233865910969348256202954704799926415649528004895256954267388471153609384744054280775811663109497920280902204754800225384378390077070829463781663653019448413176354805484378909908773987375052165564844726801111101569743718337799680598554748861566897823198922579456098017515935201189998885215894162378148654297329871853843544649378338465176494680182241721785914618874269944747773498586736226967508795812793398071963138932318320652535284368934356774273786237069088945367887996491095995454567505305464476093627376219832763866568400495809914852830608094981558004129617686756719690522634346614239235675372120282308655817675472482916274376713748408802475472335709890094917399455696737136076300490488546571944640713293583011470508499539377676818441950114938073844780430565790932525909626602755888334527209671759766145126020360311289860989709395244779693630592433462123984430468663034858558722283553438628454687038900010301347778736531997929838027835810100609109131123083628860049620519881773715282122403555373519602969570883739465403596413862165084521221590540405069464241713829013339896103590085763199132663955972408524440978179299548658554256445314213547334966593989305280501876669943551651043732217711375278114636880926410066244424351687549554550922918143329133203149660218716774532170063791165535537885295723226806344694091539624769668175370857251041356910027186263750731701338943953459054691181321551169050054177813655406650627735176119156237600666181932355997637419971273481630715760445957529190775674175963230377815120540265127523749382181287009309485520586762945425952175828306498122118696727025245333122359994727202131931481921121101390699262024610886079321381462463186588551147225840774857922121285384353205283117235541835998550637754092419188486272991581937944310688139590588701848318055140715590267574213823881444000902223939365640587862138758758375066282448494215919559332613943584476794642691755520328660341315759349274370191670114725612685117403028807423331020920784113565271794212911308935622153635017574418206481017707695356607168229289852019697478941124304312009478365707549741232449280977122847637735586651350083518124389158873441132429057455970671808153130451149368186426759699885591361545255025203125235564681647404505548326874572634283801608221727305360164201902525568640050343981522338207998722856193229790501913893927340124603213040828141013676797416854229524700495501891198710489582177626286340667866322131175592461146138007139282402210857674374496330354146282610077719470470760206515579218486211637616388043103760477667471066591571238541901267542803932834907360962958453895151183905381378180820052865797704902180210701929208763139041213525764046107919041969622073486735255124194409096820278462296354587757623176342849699568792408820741695159875647565733994382381534979748680568813927990335512280967583581946953265967782055055358348243822530314073809477327012919707805380368657956310607349879543442344434786501687283676385486239763330365351045284178216849881470381771515148345084383514476676787643842401477966678488473776586695261931515504091672709005086544149606689305445219983336806404416820042388351920177519286328659362649075640955539249957998975320678856374387327882175954597133262021696724512528928216754245819911782685708106494367045962196297029871444628284265265400416552205727689220218848808595452629926793922867006090523807300312518429123888530462780141586394768770002744198619150141565765922357086817505593831022520524123822077010862151319728805031217981197558320370667716352164009862615727966969933929399686125435680411620037229904990340025813248162881163244057743105266023580488366263289459685200929606666062324206418859331828371309435426636114951606504922023068582947024087869234896004100983097269265309376694603490615598226570412037128797615647703608997748669810009430207539234175724345891711750132068200820663565058465375592518725808278750892925113355993370530963589247339878999525585738093232004860145866025297485291035969051092383774171243638804397673229476571938094483051452159450507308377753243340161230053922010793699825733028696632547446424478863266888856395120109873052926513727351343543548519862172934088889511546623823139137357142574273735213675405581966250962089179129584403231301401089583546421644314638952553306735202616748415032275106954937296897892105637932025591803783656709765307708400302402312760615998216073210034871370089427615694384035765440793110207529146901135070766207770975817665865815143904849010953962041431256611466983985309565652277636008389784980415689861201936357556885744422296378814229706085794298868051208899568548395323962085368102964335771281074527445776170514668857212034427904708590604393955076579542759416384757518405918342868118676924984613594088130481555635698048449492352365696653500778589369828624808652168445642846999048511826417340456960304603394432179274014124231455870576616569987390989739031072651139093095030189070783725876265946881752022030316487583384733088877089248973228170127642838494511040405344701477189882563472101856946148441880571911420967340407328927929176061532118184576123476216322763087041934963906815959452215717172829478716039292431762753323994714487382203764944753604726848882520427578878212071677382389646495259746587814267625287871861477148463406907232620093506929114163982653017230168297988617314072682233772880256337221005231486816951538493134602663259501108411387190403133958331826585768322608136962208931183038548071244247556845515918227637949573319187339578644400918980184904945440526703793546883583003944880613334271009630526828100847603565128994974783927167585767465801997530723674502075106649282835215892396218165503832411141343684092539251008605090277261999757378007041377842388962686024869593877773539389112732740006575810512598457372473252239346901435757419724063986729594270140351516116578750235307694896361770205716149354786579113715592188872346361742803908221901575433262491553043732258510398107908976110806962046822953775980162367994631766546846343808938535034899955894626857428187888845243359276289126103272052576416744151697887930288806727410701741428165418257946350810054128132808089486591875946097857104243286028645785154504275600296031167732730132591305101683891371213150336418093822498249060618734275235443846089886129880638029494616899419936638343790152927895912525576907141009122976878857680057093381238689616342816651104521624400416388172327311841351819287241334540717202780726272048460055233350868501028682470137039691473428394967737287325238151076580728329013791026519875741610932437285646560249229125151997688176490146578814485787831706147103679902697638712616460375206288917129639151353397903559097944278277553309385272122567343621489757887331432848748257599623208090277329964293197869198962090975109408820974124113774662232310015656351114866815671164757221374877807798179390153978836637294418928528338542093656937878396129955222449344017242404588440857634913619589747310279634955680077687961371640043597897966112445496289521703912085901200253872110727961672231647599586088701186267776409751128587637871627826616494686647232871223070524359420845435889440782914031194681441313764639360091509134450102707917850349607587536398009769305766555596002189849019188901910803419987717551523881496229150035092968959168603018076210158740233633972556100595569844232706969383085742036267381704657696180478969370618237995994917549036459060176474608049914493472073662419103368613671646864230587862625702236679692909199770807804938608239911488816969537706050178731928456381486862521077753988240253664455173057541186416755970702610616401031289618417713280270336489436999651577970590379407023025586007277668845280846056611285533877386387181725059860690048815005504495178677868853502831539270239833663863032594204735487254859902343581188751176257665596868572499399094039658216777593603353470933473610007062114458160593816086767513726232090491385619537851560621569326174182665339137796913629759460209469017469985076309658554578402938314729155774996872126404769580282102447708132529868067120753550995015035005844174336736807456441342656144799529351032789600145298929935356513003055193965648276894722684094733925034281264557369511145823274572502205689713673839643728050943967898108191855606050394725373426186127308967704644331641002305311729941836155131659306948627801594621835896861603425230533745424229189280682120620597417054144999534559365449650799760968319433473380905442623491838848055871834693845906887050096695925199688032858645212049407749657829824435750621961496989087958872521357606166348347671820942475901105388600767757699946307228761018186313599546733800822546598483112437797037328047855996430038868918794625374276142267903320997425718861271073886879539255215558883872492625564967584934649359832177946890158517716538246155399428625050389872801796532249009736045671436036805853690221715800487814571188658192089595805250720655469085898332935028521042842219627542415313627617333981391041742397127910106096662550132252038439556077078937453031677450205204939006744188271559311605619314013077857207482916322834279598243968386589112956880213841824563309183110608722194828831454881056220860801009287934993262694341768930888284835085195215011843860347637559010415996991719156814337883622349751619052014103060424005601120150236625334592933221523924069632375449705954877670922035451604949556487315235950791857397832404692152852665550213623473376016669559946895261066902350464424448703507712336546254627870925918719988185698537122645006575847647665758016381910078143673976284942629015330384266945050278858475214623242828494845661351943843002412747155720769600125111767651392110480449625621131287932915590589093727488961163151878221145602638987274370247864485498391701401300925011600878023719012491924783902576448944811104741729573516816779072712878589452407695972888324395241973699484407044680470606348119222932902078047024029783000507320365991360146545077274429266585656503235342576083532805818652572069599355284686608025728647415555754227874979415768223029175397315360658542541117724961827221555287177281960349434574507789186734877114466855204915657163365502482966349734487241882211711505056937789021301212363290087180242380266486579851883694828237927769779093259192471584492330132065954256182811538329920555983055186724770843461439992083145569229922913219798828006360083162684038611106852138874611999606124851713503165762041630430533025747852170801497900635349482236074464183703979022392830984070213104309436648353863078330221475251035202110444718966542471006091720036219543745153448170761489543679442549509002106270753726374342192959814427604703473478884414833852697221076609028376469824155902888664640245023727407385348187402993559486200915548004522494647008393309961806951854664642424287488580090465250189732051577875279252517772898291526931508095045779280539501881991781399536185520204730950570346969217372138988583125696329487311653819396320863898341615348977987416901448352789626076468851837496645555932058077030163878399398614264291414625084727012310187446629617401035017496945298344439644319013033135133107933660183923517313380912612252452656862819709231179222163623397938167215373392152851851685477440463894757057717021860254651488000192478329820116762331305495822105288192033189253204316235385468770967512416969428579033442007039001215922161217415908305770563229997178224887444141672381894579942721224908791819136256254266234824887161293003553397319482300279428958353969098158610457991074218618725777123448165976059759885797345341379584784181998245392587728570569624731281273613760890015870529498856683378263875554838008088211209863029286596885293741025435707882020151581164436897248108246557849980893481936759616238510317165317051311926152669012896963826911351311055931824343689472116576542134848079717949509392527812176444415143468022108841241386152025339953959380819604612147253656494298213407502833202827629376514688605350286100293915939007016576752603183312507298842255930071615311951848379077223994407134520349094446331110345606971755605542521656293655052309976951363039066518587131546565035733060375786613461525278978811270095845114255304077153552049785389884628289358010334512684069684662025366002739163679140741135264301742742156085004100355789982447791295501189621527946215515134038228844107444628016881266488598135114601007364906722620170899477343794883416098252914215825859634757067444853189873282470215738304042851601367330680724122924841129242016576192163735690098181123874338000110547103512366888397854621826364932078437848220384521613336846258797777605699766685119557471277425216857667130104960946518787052753058077980312780925070333450295997741653706664200344668303831517298290936417082840350898148960695709440576458790599026917490373261512822242929906466898510021583874246699808310823827103464539157868727298450600479371681943856545743003356033314055005942903902700406710919437477828406415551903717928424771623982622255297802507275418096196340613827154384692056461689202579893033085499823065092884184029269214545267036347466735223918697086464402169605441359606481737615491285987605708621752050038997903134321823784346679674358779207327211620050900959563177734573101041992225073687418018279401643212076010677078697900580974735755557189444516370817623841057367334736729320262811678013965049269176377701237444977574503175425189003703817437742204879580350048662009898961151298002913996761430791982711876305712908675633472593569091702488230349163753427413275014467426734898761035771364554675339945854205429422370231991027989172601192499429485210090492229742885996798694060942035321820780670437616290941453700624823511707961755502495408131757576029561524772390586287558135505064974354758808851321080625771933546846804878698189162362971996887104505671904882292125998442347662700335752589118209977380741914577064371504312247597012461922168454546527545035980853750410276610813923920065423634258262021977781405724163528727120271343896521120043644923153210114217887622011590421115631892837030001089435357946632927949044212828426499674327114380585298439850204752186820187537053771152749308675783244260149830008816388981668678505154960678996895294831403182315398860439284083104684524600236783384488993317138703156093788762200632144717781629152623627740795990260489569586272014370915695906202338103094804458658665463726001883923399964105928597556391414588237181313536463595747729634196076818655921291663618347669905698751200946091792808847969961507106136332470150833095812807630030458213590196584024071498633476515213317776101083357415811265822856456056507841355973645775196784043753483376352562984416769485623604269909362678920558568179023742230001620743966057547708923507036884066153191225695921195383882591617918240780391592693681315675044815075456595349303910452937619421696988572407387613095037209311167247593581688038891133518638830783785677868086699042396895086387270793094656906959652397014196025669039253034327605805459967840503729819184849184940604637108882897348885603850466329983030261276266017442426996088081942640148131182801541604166688343079274898236794523821126192521880244193782136090600276377879730094673658836955748871259247389123690042523621686482564683952567311149497064893464156475804005287370728341087905099157512576415159132537493722884146912235539962945169358432724843235102018784418540799003444962145393197451079326655454808306114020394428496621651736124365830569083029450536787853281053020393167252400974406226269055406560223033171059789939164246914789750439341242003202441864647018502929908892943019231540518000169585095875177335585857965771230952683274930267768481230057815393536472078636611084531455271129074753379706859629868622996722556364139457513368265162853355425125575864843300916074181514765133174642012913474975629691186414347943019287748964434813373977939608209146291112928556083448220490548754815390905903266116875683448741524456504711112912699032176448792382115452056898888832518972244756327989283924210703950898905166677427528554660385813997514071527893905207893267211579016545118941521020429408528731931326556103849174239807169737181429100575357053341986935410376476527580748238779150975895582181464584244164705368419471704621652317221266261887317209820989716722591527768210180794254936595421605948307059415560848902064011745827091526751965515850175906590376798052616553215621140456208717833767724511673827734899550448096440612964337089509390862248366668944655499002850642369256090450632792946128417442550337133783312766808844251095903560071139527490965528632873852769803491664416046737900098066886504365401355551855090647942582345964124843844503574430326112775679532434391061992793407660218473448612263763197804630466080022175932930255624006569293246391352897145836675614045687425725288298324394883376546262307685464371236265009636563251567567152220735527055609364071031253425351598169507777926314259561518642619730442229605888113965639613583275438162473963118566712490480106813774926414511627405820626480478567804485996697415091253421788753621674010353542365870279629944532392306404163909614347161738619826210824167974498638858083678884871667699998918624535923194016884710572601141460587702947308431516356377585161735728741492911178349874335911401646783880872217438420082372929022241993580940243571661211147815626340676630027320144204408148286884038873334399088334767514993999182536425076288740912294655052794938532391979359991736443765358472629347696106949352012496683910318581475069327023871939033207534369949643207392129912966307576723911834642750188216799236547908110609889861630076344293800329110917209593081695515515318243751886924378768581364125556659524068256882365733193200466216137984593322846340644054150792316189185094467678708199835675229769676201858574047973150063956585238910387947447998071913060016847224085852186233803791003767303704050509821301875929499759475596981425216305338247779363352812685396965859397986585040389169037223338588664726239336740383119001982122703315487362471088117204054555077956258072946157449574425095797538186776124803286248181988682885163283259722898398798237245189071205115095059250699783376841413016769966329385215561077977574503317616728015758865752340094256205772402608672451773306488497256009969642016469592998056380932307032296483716529823989196520573604124373725078787438701199164728027336207880077199459228975901332438072962644678372786940705683564699733113989481594605898041688445144345861481893918421156918102723361414166556055867237732843794895364754905718168258566865849510938991563146860219429155452587292023960970937971756126521774962525900750614469057718248513858799455405914266810234538997973678875978646607937729476305920378212200648347681979416302163264713445149083467599166266750856664576423602939245165839411522586464131386322452313387797052879218422952553425476116412839859883692848006171970990629142207274988496849689929453994620737566733179954153385699159825472725789196096018887124072844906003944433508978886873199722217640285639950529705636072327157474699233323734388648677417443513350134043796099033696608661819321112495771645370771371952567374845406794299514830223726015141179231771533883558286117594342423978735415796740889399530161919113966350635603188966054132742550373886528841582055663330292330390561476053414592639104189195064144618503290415847230637117093929066394480627442028448911427148307499287203666251092373784868185906302364679914211889229831145700012005830536573302841506943028920571513372708573959296389588318854357574548709043117055578317065206891567723405500277397784830652686979566537437881174108748924229055869443625277603529029431310544369522853461023561676907498211743850521038644210510835843778253494926305259773436074223447317366015497206090747197791128427450022726787441362773163679943201800505643325183095334088745181275394144100042172143616453630496785622945646166823793270912813570204404251045428753732477234104745208986751381142475656894990564259530537453165600407169418270790499982242998037168574138303327744162308715431905625173662945212705777839789028408104140739955704880489274983368791537268364941039714643362466422459856808448948996136243209363973519084357688478425116571754927458991166441890892911009368831003739759300298275558451517449923368114204521230678948838289672388491244635253717018588635793805744782898749487352314428776255624340278714761281206743792465190063843160560230930296728933369483288122236752887770732584461252175500450187392451275457070676723236258766345502043704807815246790547200819279289253876704233024650695814022378311158144069880659406842433500544259320818287580714113933419177039035508987800826981499488922627817296512752497640788547444386196752383697856065518748193546378641330339400577380415551382171696807704226348890361692507953105647138208259738673505841333728474968214013903755473113343021327672385864271202862400048282495860642711922810785533338224562537310900929093369716923538713978707690993342598701241656150001887131996225797217597633047076154889269375512276660073371218732435553948405912010748627266030373658719015558917860035037636728751760660768862956262175635665659220400842085160606811174411232319077456983020224434850814859852548427439769566950222839129089780642111460583037857918274039935697273409983661890461792706313424829950332507487948956252878682745323157260607211427627232919812861055090716882326968204107700306832550911126905957273015150529614138786132888021959594640187040974277749599049366822353429685154753839929458145174906384682489611614661253329251677597023713506765368669361542989431370506595918450415946366736463944730781637065924683994196034911251903526705233139092675611408453834284825879753755941356287680767202568986765713981113886220787310139285053265299236933203684859670126106281040985380896271334749758849180614364394352160918450670860330767159173939630299908652502394714557891314454079290007197350283156960096766734744969615235861182563299631351095189746363243609629818689060581612970899353995591882499744155555050041987181183633078410068543251052476132325816040817718786514878510474876030744882493823278657093953426113952917161334659589075081794856601367299910049186076482657106503191727963123587412957760058302307309727027725170889249043559914710860360385098628618295637429050613001507971333951546704594320031481624020715528868233961463133726127226591965650674640087317424662805923795351663322909667086906376784668206508049017496445389951299115907127983328655940420295069314046328325463502079667823318110727705065449036322695162883140356409815948114952114474153843943032083795757314439408052637385535631170872822104778207761797858755736431347544531715911969817526820666443820350543793017593002112730654896196945955818866257971436794356334501042543201741060271247583587107270963811931430427651162715344455028412933559744036733352402128450900172636588384266177151775694119061975748797782454746428845674000105765619639474119744375032822676617412116545806324080363237779721380150098735391176308968172028228816252272712001020278590476030167705929044893930083749904447265707152194493131076751177137064902664100763749947048608752146346608665233895409537142690733574426273066039378560047837794830773668650191360983228434303941777796878052303047015691923447465667571684145020608011895676961322043771379263049658886601533963111640548338846308805007616980708868802851008757419903919956000370597313120200288738200366560298003797275644512991892206289178807448237325119008669350819125364069352968945982863137493600082408194299917114868656782048435542164589195988339331955704791945052997312949831850474368887152464746769897442547552690427669747865856972466210792232951695370011654013195489441439843421922574395950911957035912602775239016166126384013200815490742262022931764257860888481618332798839633052934871571459871970953669285364493089504264365935644859394502634068296131757800198835076847347115189343543127368387119644407242002922340604499191057252567114372878153134877064922675623364000560697861897076595629750354502047801787357576686614942688375202918879235616017246897232446010521438725217678879269532136929395380200429812642551103934964355929494524232250718279024516044562615019947543011487171996509100232070439264828288317825348074630279264736025297725121847390727814496568186680404690843805071805488471523234071003152027470653095332680547605187071293465172932621509416054565622258904204619081507461911795164450802534246794909130195125016518099539162165886366530586273858450904378380874786180895415234528734982348617053915346742797715063719059073667027731965536397369083182972566973288921555240088927038663506139606133789430571561766341667477097215301437632272188999945409027951778716282584041745775574559430498858956692932906890384713910758555908492060213319070412201027255360832178604856385291458918837335458957919309050868328744529329799632709570804992899682339237650579099244605955787473602618414823843448773824406309911910290237605347764582926830496441932090518981815514025714772261128672990467181740896916240123688204429557716391871311867335378802704880053547563113229570568025029858975184427457803539550840452213530495116111137113347940687818142538701913883786251791647931762417859548226577679732214294222537727261594698938573488579319632814343296777451300290738098000919442067712175273943453349706133346316606290278231744713366679641790251649970959462428107472630849591721237032306745025578529215392573926113024292173012482986130352948523013859270449912606583982260918434607801068628679310200218359791408247944824991221942362549400822927406925485912720378974723100013434681996882211051788048455989154069291526990071826144347225607536501580562803990554582663575045086951486353196350883417313085810258239914413166215435903652972353787335288576613861751215806709653523259960136995772839330918318193754780167027903758878329846463676633032209537278085087114734950238516314179386763064359100171629228444481398715752659588378764477285357825383792342355880358929214163996647081513254235481162797334573074710828603485005803090554011311230595198729155159969514201616937998102512697098272531498250908657506176464544261475204257541501185007416762287606740293429218079246965812042669137138573634685421121161051027052800508932324961619779954291791911839530140308112434593374900028639365148752910380390190843786162483605798496346756821717171967253290308936707041791080121456916943905830821336803739366637831620516609598144244249440548537495024271675509908791828879026590338220106162798929889098069027331080692662984735657777879198906271109801442418892605541794240003155461285229290443829043886525272667150636596982657616132184294232511267453750413945919969216462310786878443768158540174650406520525333345791879662592758772444730552584005678872830535607413192681161073094795562290595012941260546730391347687404444803845006535531668868278514788141583212506061198396894689441354669539243001260984806629977355208105593514973313748381603990435787436829792598666884055256025026422349239854149805466659789189175345432630535966258973081189628480635731182892029144372363822858908753755932951471916384758709775209894478627397921003698424746133775898034780785241096985430351225157478692495733052842387941971040579051589491105099309649116597155923485579542802162054974201137664387123283041378201084903018645410000198682742131107252265051223682010855284701237692265506015046331901321876601958760199090571590839041097591440318778223963941168983979395454273047955405215193407780371670022202515708613293719685098863154267301788046238416635641157702768059799974399249503943685294234212170606431491241262291288051382290623610389250592292972820213463055942665733998683137725819322957149627660944647623647536171429909507206064704546084928713779656373611265698567710536294509855234623893683665173718351090012130844030270088700273203250946593625910468496820684719891994237951680376057711884636828225012521453334030749001130844236242824011624197402124131721502439649524940812957170508139667144398636111864090445819223892671207409459044772968123913086356865045533663460666130592991864772885195910039204923715988873682759837820676795608137346912874737405641821111227160803859526392519409176021033991773290000839707971965376351912900873964637255857241033390852337379344359363937440095496643040870198099314057914272008093590624099880296235267513518202672972843688160358894832168207844380378948019256566442221277727720657723866780595708547061564701341219472037729259272730850859312658528954650158276911698787023809185580564935688174085700959546848291759100619623791237428398128151559024358077902478551803020731745963662645842164953842987298284776666610960629772992517354602042219320290636464108188528978365052985586512341204704738549551226507752073212144909701296751338097424888097692837336076061058055436682771621874302858550429349474819870902031200441749204214115168725604546402849295675214595311541576923033057803685888871808833626074897020396745183295529486991115537029717375350451740212678069805142373607303272293670535580781891082859746901143117836730693387636481192328332273548445065933330829529798158554741807395235684973162277656052843347984030946825551630572538423764151570712793584006969214204437819840605295846083640209184398041341691952629908889540836366293971957696341584768011989966161502010897106678047047535214709687892650703085533366612950575171519254307926144701726430837374316395955455006702139241703841732880639071829658163544443505329685320530074190762067465612033667468292291092257170296195950769337022759473901692291568237671707143714491810135466031294952711946238125705030323708112787892273956420733847868414847814450820466116917759516702183637191797539025071358706930019219724854346020755456326695320886621791015577551191349067879655118911019310890861767503783626319190666343286775149470705088081566953649131003038571074003698068125633378848552757882252051017769625481928656228396439613914446726353794279357869869697418130287384149638103794120616308152844826965917641441892427638246705132416147024010448303285007348153284296479698587950502660152334518896035640450423146998777163479934451066851961961586793456751758356483624902925373790465165648705139572339470460301684325009034465532306458768782639566511635934549194321078132704223573347739787281122071077243248074520420513357391597307072433317011709805403474738667602280427227473053283289058260189888638969009568931765025874290614307845783923660743725452150750422118629539991396533970334331590839328205841759387917391243911032503209459848415306123875012674548535383409447288275726991820572787077206508142252758722828066267165864582475428244852472413487889297630471767506817305578303827629543043143876843083165113418701130815278357743143539410009615867453852488800907759285221126301364659806803740595363807513203799521474621661741552198399849430389628000609355142132755271392626986451264002810432585591393798858459160874404822239592459665655299687817026970029483527666031454584909031354840978476716544269646822448379350035421123478235885978672389240362517194413481185115594360417248437796335031960936149300728928381996961220102400280170967264099210806527328398638372346029178767054835637928750629543021544525467590487419909193398332811883042149329695653663789242694899151299354607119738261992905642988559638278900719283647031728918043889036516844034101820280151091005052437865985517051665534883336297313179668171629217363223257998112052153657992842290868350008751990829645941449071909930472489797640571303114617399608086377299962824629789686933138911695630045677807800401026367396642518763754251039114984205535667371222602562235903762175358914589956968734822041353540072806556010177989882247385627665834975156722992488629541187798360384403021746983879020705227790367265938137767957519256055996650621999875399337376254248719152681652866363949819414788905338496513319069641794286188817300290315363065125465245501492302196519860234429988861766528043778884047702168307129483406289199000123268085090088126287384280863310045120402222947695449745823198610962891729837342760353841754417334446368172149948774926520137377296400258201897684736989709395189578821330954166451753987045599532030251640385954592978436646301822177604626546531704975983318708915709513126140028781444595286791058668737243750806908254445091283310356927285904283957884610183460954316958225191250799221562922023096903241381773346399545527562855555101013805428834726577696306070226011106575867920585551348774081336546460163401093921770268857504860605595122997696761174789704974227390661398708437221675117817994187165836394070329305801131883031670636820780902253867052252115140639433215477986700461693370143537649516288929450192574151687656564066194843191704154714610213050544736002093229566874599297782228643481410019721506413984035959261820072067833864915820490506856051129406009691796369409998423399362381095520065595003182046901453176119337791594039077832303218888506277515324868305514466839091420372691536544208273481747011312491290940909283489320231539230062610440016293977256897472946391068934551420131620469141413382640648750626753297455656724196715490918044072975058456453041829573567556154666286042992320251789973013224905753138050702382269351364225357949968358888365819370093931131916859270952491569862870823116658211734305748779430954069589266146690065904536181596765478233440023485523233541326320845777654066367420257791604915830926415432479042593614143890223700050101170279972791089107681050297762572589703361745937536602948069062856267922546840916450192150500003335545553020802062715775312196621724903420319352016559858225865937599403962347734856997800330993294255217942241225542095553884709963173203137962580632542590974581091978902096249294899178248327959789993008577230748101690285570395623186512000705903561571662897621148577603902768304358043770138685003350972898433461156362665047099816065635223650593742624653341291928845509440451109321570070016869897373251148613930772993993807514793362692038375702351081992722119025424663544978579364070712755039794495522357679152269019824803337959358404471355277972406169456979064184850566591730523656203693065240275977557463473204256288383931985802092373277889467528521053461579944834066881376171001548764988035565323490026064344562684944477216676722319253557844209461505787319314792985499902651195337848548088890651586192125203070969660864508511164467700287697250548136170730015548239629031115747877747350687386359562721823979484703103724684029863136603971961378705881067705171512729567765223711180682655900565539177172109130886531770596505227476661097551132317507328093894752755032010921735582924803490011218586590811557143484384654594934086527162086432040713556428236142338964213627687789488265054774757469774245799526793500702334212184846736102878424543024711071638361362325614261801238312450957907832485290756262330056921700688463370629118020266272155975801919618921262560212352075224956692596057399021856144970391973852869071781408788872426853368785146996288039465280755443734692368564113336893353793804115430266603737265566257564989070233036928639836768088153620080885996220229528893922908574986146021130216909643233145432044483884681527007404202586590349116320879013477518982303608270237398700283383139792165462288091540977155776762287842865718806326360196187085225824831779965881467386524483634152797964943079589930911020695266265373525678121658414517580605940009592167580037137839517949129812027031302435135676683477909441127774703018152165874831873574015684760517494761947948679825392720263191712686414113364266965615000548073440831130652928019679228156227798666837358619433904469245052877687660567105320053484815697977358476316399250529800812611811895364692811216613717658565367773768198978020113297146351030314622432393538499315180097082099970665406088473184163749090479506564326543489739562916989676850041262885413171825555050859388495977933882526692147522320906599128549226851003776855094449898660786749152109976853351296404752548555790569049826454147637152043842819896378723216731549209887624549073907672017069879473955116455357271581502169954780506985382749456834042249339221864864401258904807410478227374393309147072076169479933711818988635515425478493425335036955188146283859107674075652977017517872394888746323128538193072914693215642797972677232157577493401929383571305040337192493383100206407474132972415653023689892574482004557633828322890489637613959563061817002438284904662646697026503076757331689190367767007655941399332139522302174611405704598666929428151692911041632027292060147098330411176791961414341066125716095956208495277700704921832534921748343610861164650532221216321261981470721251413569008698837122914135940517014327550343865579479835109466195485553184651127752499625344993181002827831812998243341662371954322060781755663631583815713844616544672784336328781544527934753256214322708824539858870103588140001205043183000761695030808617321896222996337315174212784503197149329069966081892017554043352826426463534822692852515717333895215187120517908160956069330670501093807955074848359383420328544391996778013958513894552068790285027000010634013041932155834735336694508325535085211588066458029467898853789097927261317332700576279301527434339857864971241321606868951006384807604710354739609305532328025515586020686708022852703229188462465827093200036541529132839543250685207505868500719281725599467454893446463864516773341066280455228356994759661393618360116486968140404873394516940872288780438620687306430909601243353492617743955568108100917412961152079562547698939600193535283804504349552584330395772550133790996611494811458897019990056391116110168358478842737975943820488386492913996525380290546155390563234679877463756658333785528477709318773827310221960442292592803031343132345868928067716613066089729528446010947849662471771125398717229339396631582631002686090506383047183172856814774670556395604899497316849597446327967605481036407231394060280414391206807018986202533791644642523144468174000269164608593048760099273468860866713227596682166093365718689957376532824977853781068164969966209743887295029434889614957342400089885342476063812845324626322210178024064248466726004083138801092607405419467569604959630471471503093752669381066126949075256599471425443670870184963090439559008361474431989373828839295217116256157592562281306116772595360051196932007007463771755119258739188597014665523681124135183669370261403587783702370176402478049222905428526117337464570291832939806389524142985407060267434940283461668883143040304208497412958898546775829778482925376920125337537690038883189057099015858846787456152990682469687939607377254817375675608461453735614390868918030134917439992440926776066840362233815973945458541120363209627124287970569102400044687554667811874129575191802789238806202408954945078879292347973042480776457503889841316656940372697726663777510793456470683183459284326769333143516074529855860305846256097668876045603275057116249527532637499080096029017411268201834865074829597375235232706800617525708087218867601168776597954793763784153465844959987085773845310448944512991728457894052873578731147704903828832107039073451768054638597772931968719739256183390554242844533421211672139163401906458345494984937873816252884969792295069295594304897833076738615430179785865223509754499139496966667171937684608918787567475388290068027256922856789891479167171012487523738646463214760942417954137871453971444522505802117567402167648110273409097664025595448836960165668621958254647560250660088000830318935093668636121828851089759892873953136787671772168185343768720396605005724934418879354210314822369289514379203920298202603922793801778606569653414402066136639565658400610737053206870303601219490002048938274750340365054537589398605842304483204604605946248850114985328573818316911843699980714307181676434450340294916930087474075687712326353633769905904565411828322159221586900926112380680134303983543983820441244299189875976038330178570982130295599183801554866454140132062116548549296538536711020218932034927454207829952100947998657774007648491382082408488757010416578309511738610596327463309411981779807547043151957356630056469714897841267778118621923601824226418220456837265547609006948238040787738427524588150978827661752724562303354260835658518401511101655331201805620984065058189954024740130792937222404348094946093736499363549707755130480295585372102602169223807860602832294553348825589852836059158029408993106586916108821497734177578239185372003748792692311442237204078827015749103300366931102224935914090325407135578994908869805532442104536702932375157959095127450262947236948128613227564200988547981624890695521634089834951754695911845475879211864923737917194926723985772274902783060718500943445705960623171819973106881696310063251310973672739602333356269058552304986714496047876632657921045271308241734833002548584643941870619842072210435404492214488630974394752917036568775332498664580290444407242587018058399183190219152342939508778145901243790408239615305099770272392766313943947875780454071557327989477354594718588724971323657633900962476028972217118889483177827993290512684811318659590628065554185752405525781606947612356378914547679134882428840540727870750718302924162592925309576161709396502136348203988864323707690767132413670050419671636295175059801895054754591004901951327454782569806420531514907895907130358619457851838218553130641741767243380651082085593059730532102332483234821792337735117176118962718524838043606690915913904579503267497258730817700302398153239249151440723146943487945836706238425411460740105213719650648863773581151867543191483578962013174809948879941265169528884282027673020560743012566565139218385650107251907862107220677158655557351283189764812046361149059205313646112094412586689198625356304239658758476462687355452556007507498138939936685984252063979928395367245234339042846756691079361456837101204937209206571499581167516802083756957275176474373737629561871138162983472336677392219717665956392675740970283883365276025883910248587365248134053708379158469371423114497600409396896395575056604381631933007231037086781862713629670085444405628930577492883931555692093229304191640254759889926024261816042091962604781057163899213192842494503662656931810394943807214294146672157778481583498538916107747036285702308028235658612342506793511908922480473577198286184931030594634682451975660725118162970193999136632136596881306364817323691209424099424201375762599248709231559153827699453852334939829866696905786713862360608583033340287373432531691942607917795296556730859292695239653866379741809139875111135605264363946759340244984187828335081703269368021724232242813596765724208971997779655311549458254318874772661495027083577675059679363090298050673355967373299263336186378788473949839194787034009423849012536608073582881417752241609213151980293226594383436211333755384877565797886971882180224704205940545550881848809669483713019884794412297113427087737811753073172230453116346943548816274546652839262990730804427043792847973476020505265069660265122277152492699603668847711666379486668265716111874717938371613715136486605328569008687289388291710595247009536785297651613435084456549289833337191794269632853380823937210820724240658553896905812100956900496996001678603525934873015778800265509738629246135531797198902733235927654670680268534584950405034101544358316869252067635504813008502472776608817455240189712554027074481100381069849071568370426391514154594918392374296041908556793152562814945963306068240723860880340752450856668466611240018095235831038417826068872277519734689572301585154220828475734897597872773506320633187388906274036266578374605476336304409104230321086862483562566938779121211662946361928337237310283593880522256031306543054956377114700199767526105306505136030002613691654976155077298734963505999350308316809694111763999299549915872408688105505027005827728343137927783534403402607493033459876130301486937573108998893038070908513960263869100411415205186606214146689658607437673583240158297279041637114075603015189366966828621742250637315987127089699533609761820199492463092929385506702140225520924663754013617461399853761932097271054086473968693390211402017867753937395306866236369487768163073342103490657774061417877857580076933364346874170925392784088785187041755417057226278623968589023869364927814303317177028016158665894562239838357365364241806920865448236702800939320941465416505282851865071741841445159313898798253321029310555955144327175478267022161260366973350862590682242540373428516571725519778298755337380977982793638121994494140589545198468225825685411796623324607536546849500771148753931898149720715072435002632284938283957599963309314271572210016722647341985403099535622855517921560796659538598732808279148075493749958918172087164174266526888156755590166181363893324267297114980192097756093249906952548468580058558520143767507559828872413090802794562576218264690325433863483395105176557536165373969543848132179488562311705566998151299307048049927957047853978721898496958607941131723215431964824914076728387081783757194076833530313543832562783700655018309528729274034705173195031989910467573920116260759386342866007681099735859434697908144165094848116609490313012805550733373030772067055524147524957667298908873714777617988800815317136869349153491878074805786490746647080133282428821035382820136445325988462399812966953592178402157335550570914392367014856687393284379130774472561271475319996242055623539043311874699360845337490941157756342150314848163547715599788469684521771467755789307572559594421620913790731087109249755633556042513766314861526038875205777812908334934495343515799123112423671807907345215722983790181748682509960302255475384592974584298949900561363013429960607766432986252486771877796916322631075190307894183175301715991483178744691212610986793061507082098692218446907329615051704478269420933987865218132712285490665310254180460310590980832820889035005327327037894189784660761770040640990587719714630879492419456434386556958825990560369819313389224522083187955324897608456142986349141647814441326458498325862598622048556951581224875482995480009266820531157121844602603821867330997812649381080715051631767007017962703626946333131595105534922776123564580254899071018670811120850987003321824998606534511269311141563385833836221994496117286939078641418557114692538214597793505815294935085440692092860499461935279849893701981837701999720231856979059471919044285882522909532099221352718570369077231802878376138240976820521133986529623428124931928708128000845457498896407017574038931424967528543634544751294855038503966102896183099589457387505163029922403671230804848326125302838828481193384302756209835907624841639909661117454920155046953692171914476577675872999307989990313054006514587236675314272843495105535017982764424034432061684136644799235132825463093660427298916781914319550728979797945034626554154685464108360988720644120391195975989582428168162993800969698289826764027179918395764300269868436259956223131970421600054530066961698719724248859955617128273023151113442096238270865638472675486346328625056346395100367569403697506060913047408628060076492646802592948642426013395869271804084126218438023093913938990067557500570826209899002886071284445583106078486613561618503893422293364029281135424543399500229485472427314013929824687780150830622923331978756343041855422077307903873289691149596814723805567155116973210603195032204330508908801982596560847060617508556696777092851864885168475805609184352859640146251688419758185720006814243467831332280564260690923008367734217710350088898873746177675216352872316212740109047874432768713922366091175959590920958798367255615900232038538836978581012583064157365680314050821418050582578407230307017361896776077428847611817315965949913052385783603424855200538373873304181668750738647998737580995679513394950598072636239584987862527339040317188871429604840026054887748191226726964509277275480804999103328279140940409545568389919907530125527567231183007594069192922126225739195637547818657316598159944378947067155621464463541785654327341828144870136411262388579681859573111853239654668932187797374494581097746443879408465608579497719542336534152751574044975015626828200593624439376266222268247718380646820932393828908937098363851993766775226211633791280852639425663365770910834063929983249100998157397218240462666491062789919139089684307790920145841868031089078815229178335049913457454200601723389547430303671046675768422250284737307603225070632972626819655644165674686844027034733998021687400570983400704898739527376332544761360064057043043603891800643617330841870049235990058625016660721066901473348617092811620289633043687505183883535668882994080552799047321977648841761627541837943914983606402312356717599520085106359031274036311951413229061584223472170926530868468399965327955290819654532317629817810505837001760618641504662982781708252206954661377428859849781321767338436831383011850597356385675963655545868308523030342533656770607104958454248950852902493287886144215920334877906975114950804179265728719164237910811646377114543227672914561577641523375515360540629107624948537710102640433701820185358309968392802913432422062046847502215370292470569430206804897952827201370267639280747117578701221260131749187618662695078134434870534640939480144346970342502955897816623600760417886149786426708921621987885579591477783578660630005997628578197009851187822759283034626573070189885145044703007127812240782738717025794640820320889816269141829421289773679535757511775618833995224525484794185925290524333531222359860233597002099553726827572338706035359106788682425859797455881237549956911619573777727230145657264757718736880200887392745261639803465628319008986184752156962423817985593054487226014391934393276872228379147509644295271139490243671188354659635270537130835383347996365144373529694022496543046688133251774903896314030783623823497485603722994968649941795547291577318866546998838763887197151454817638354118124879056881200581424212590028687384804168315905685344803304178396138813622492138185763733847944314212173634080630122457132883448059420245337611912260989681679189207735010330972651033502146549286017418607924391194089293381129216109400717607403096029151460635220339042363032190983435911538211057136917305746898118932774210403281980143868023402218944987106167955866912082321037362932829070299895192741558241418803146685232900437469373549372450518932863493945875518533001135368316346775342331716570583110603355054315043884232121948768057901549639889114623266842236855862901028462204352706528111007055262372034457466465254228475028201041298371202440103994894891359293527657225127154894964044872696989926585662216906218106689043875101967516967441986730449299424078542357275183029406805036692444092731998222122057992786269842320578647062472671054321493891315695916678939358207306793219471687009340612394156101278831964888898604248644636598857444815782019666187261129567273616734139338473740341546231376743942490998934479679383714757686491405123906332055059389983622987971315624075999730655436204199236725319368853737629300940920084322208208431848026913743627511467096350627488591750813767746722077558856079786506217120556515647210491029980767100400565173760995895390850643766584666141275276524669961740902195357852044025690814346009028620330528372043430150483356696040825099967639479029655366021264659661137717971485354738160162132669427659864087702400741544238483640404743675304146918783508766956496848055903377427202037837410457164514241208140743399054746101982474268596302387577347380631800030975682835639801934712792497366785217940718774022521338198200014439610068455600210764147139196254629742148322327289625155893767475045155870111341739863674370046791281137730335600131639935775510913557169608688314552136212692106411424758497337921964338735844866965892173716759179616700738337734392290779466150407398526483827308493687218569133050920742988372272052197125918046398203173464034330303553530337425877991118864071277128339130844868621487136868005186915805743246218092148345179430641271136091424501145981482924159483240413594650569710989402259857703179718587597726607642449451078650587976524267344257094483235873664326741538511754238050310307112157675316296552935045895886673731891010724502656134246978604731353886966902847089766341030194857153826543758911256455892288431421157434746128905104012313098037884208455583553292464304733982724030781400260375203004165528262306847746250175856791191442938720876381066527954358411156182388584303934312275224178894047713005885629276154402078167460116201846996082846091102399101184198973521122091843538631488170077818152815437967666964479741731197654231936875005028433048373580326003933546410947129551815329630387889573596219707744022497451576494560081687574534558324060003867819973145342777927440160608903461497641780723825570949243439404862392436366339759418284986133127576133396168543145823973810996961248373880001278098546689364802838360064298768598102720906563573781110706006295786557666387221393722680662633407693324891734024555299439403422636150617458707851456649173429365940070389786593762255199765726092025493215056430574816371831600631271807097348931656949327376111317601870366693663883143759578973227986367267235854179536411853118553733118790432938098063095098231075301314670713665899120231363837901172532274626278466296416095458858142480766561503430888092422449414309115918989913064474482487352777464748879100179424100775739408814995218837609898558113720236811929352262550292503230116864875541671245265113641335830486664084162242334306343221810056428748794212319415163924138710119387082339890183176847735918124708676924813958261332169826363738050253911776431303515979494948427143876912544224922645766508107452017122994469568669489191972240756825780651076244666234089397266298768013641030004618472708764680580860564350090598924576949728523103597170452544424897139963428986227878397532109573406733904283429060123410085589551888211047877344737499683349471118862359045856174254046448943912203640629217912156823322408943525837490617457588039572812474533337668645592006079183397853665644081317044584491536461182638881849461079862290690240650831474063817392461081889432591089883575035862686636372863048727245947418170547363003613031354629923765839288392426207554604829973013720318280847254447510320917337583792332214572843657366418536137049087823187195666639463724500067310312893411097583899263039535414057548050471442917459573727016008290624934976660625647215045380362897686738101568336412060167169098185912283697008525162227785954869742390461695503941905045272991878827191385537590181968457160577608667488624140022133799698665828181808044816344911443525624627131212562045717894714099642914270653302088536898901808264786448677009624041422564588509711935807733818415124664388717231682069227703576845949401633666071514688576492194322227499857769630057758401147032357828565283925609546835536220467690768837754519673601614291908952000641112579183370827143299611014316625657816169615273570300054272030000126783136653859681903487410069537466971128299333673340105790537299012321856194187106623031230125303212385880985752824490711077175443125641229652541244429526132136932762521349261285153876809509537234707411893902280440773557567360845120291720799963182712915538233213315137971239352589753582971437330649566305566055030936225243776402281579992013489881902063617474247780183754202843036050588302637417811686675788005633841102181155431438015600160820895201812040628565109508762892939860175252334173813802309267197032694982266064910616671499489335490796382188833749227087922446300625859997322573983778553107385459536151598210791349946961627085195585444993860657185841720271235859171245248263087289481332855546150579276897983319735672279440809446916737367924220561368521018154946765608963632991709537315449424840090453663265955105063557858582299641291340848906486344408940779588072027028965490113605841958610538019133830805462683480260876898873922469477331830647196363393567887434166454257332456247394702275087356562632678523746123870655250122018863241138119516222002911404264579298064256132127700010050606180955461717655792443308531599589002544320681056867069175103257857128892769194359595041818634859423732322149725158120840951282631377232377253415076107824694052794942707073453067818641064707991203712294515552762466106331880258685875345835833215928269974211428305544628629939560561297544762882624927460925181494310516469402254803066391254345908541165082670413758182862899104931839994449302199373293478563038278750647946038563552066355857130945471448060703874905778038400849933443524181295519864526091232199226866841870854363899314206068890229395316913276063172517599402836618575475514332255434986271219513872137651807398585048032461051554665976079739766726029759963369293317496544514131726222686649626512148326251271678437302663548789260838653601546659642013581122082904940897457408777777992501974452257481685092999667526194897489844860612179101392675806898323409298593661718469911209407600219223193429468534050627454826411748533048714185628911235856847854902222528467953532010136576630381528716515963904378653402425198664563098215173961274388454886573747547169677977052761034201480104985265917954385373542627699630906491738838913911096055792300714806303803560684758253656570552424831586708830389371906633344582702521306822212664153750140431397627823417099011569475016127002083280187247398100773477588911720241805219121728886095291755873509826210997675057866874925597481543892656484268831680905968233947790319467762758470007381622176085101465508398774810037981601083894498756515363023110287893165264003168043293723161700483854435832703584926761272400786896188743501452020806299639653387646037178583363104635784988767757545477807534226061387563895349386207604372556321584154913986990454699980068066193668180935640391671706657581593568305999555363059862553293685924749551668574037983849062939668454801561012155007027538749232556858795302254557441265487702184792682746746670411382773447165198555780082053005891918157955607418715880394952734373951565388402558326030003865864097629911185389029986502520355977154904646047203421462326607210947148762766575597641235990688338307098231992829096107247459537318964221483952694255762172809885493069268767176743176089222053922174509721739651902251215592053925263770532005278327091943855999632036588520480302936442290406814566574836524603309618071826876838117749574940120950565932743257082551002250286483411932009612408221828023756236882172088175821611305063740794106081551680266026071786933867902615191132580634677043301632218569011975324008162227902296074341866601032846059158386331219872007134835914774967117613578680087539560748934905722905308601737977656099179639771388493807003852933838849209102389203366233100983360634288652838730566453871497607678373121973686824536384548326192144104523770976661152439445769980392563960360634284866647310526973288560415326524352507274791965220689458529026321271179412482568801990695204482606643594632276183150134555369733485331558399493847812303331788733410481938838179270551588931192105634778163613162467838777492296309787488709272494833372441649840547673324038395591124594085944625488055543609250603007884653533292138818221534653718986049908391123462822618056254245660729612933666658803016836945226861575264403963903370243421481083712082314342734800329575168438108454817865723803856200063737511020239174147777948174434997999766451453078449926162093299141948070017789854751721145967962748337597530472284766951518236346838700987476723189637792581456666588385954443863884583001745851202200064128035522712532509938163942263398141858926408393821266074504387424594108959372349303254485682552503922268061595040225378826780540709147487063165959425990418357700544296695531829626762176665202510252467049206662822209084532066254166209786082542622975274195826261873482418706104663234089168322891156265421322895907688845231427634383236993577241729417026341344764491827897664364646409550538943474604999250724649001867849196208073381200431437756826371958575169017624474862309529723006285570863618081352574766488765658521986738561064566236671726950896533967641783430843308499599258982126374528778473841593010143522661408787969546255861398477072553258096135873631238205336480254439931775894841330593087183467454371011732830119474485353886399762078314000185199643048190613897284044555992363847556040824372602298928648962999797685724616535741281752744983133266128105274181318846445932497504094840156641485996995705111425649986940370102918185357665787717809019908334894398066786806100405502618494769324257504297392714198588635969643167332879324669032633064882207737337459341209451351641208783965382981806586403134204514647817872006154502949884526516049882253154939128733473566346963968539980257836684170750665806888930869826060887773580641670533632721532252396292262293942574375410868529042694295255801410841076766928028301677014518384805377954760803668655704718402196135830159566438549868087810671486478309931698116932975630316051724801505365131918680014128000549134386410030341825545735781709639054939015718656291668256820551833070526273221930264325398217021153548228367208167673556045559096861567105096422923040102745448342276181569279677741332752797056595746153593510042354118375477250275415747916396686488916049553703341073427775413229618816826426609098154657069338131940510394512659378597724145496557782735381843610751691567280819132968076081522498583200648791069151359557567186670903932178358522520923657329552069661110837581486717963472656050907175808385519906422756882378094430882100916006336473775906730791422540131507367020863108045246360697847746766317610706218571538448686955838048625025929931240827714935341719766470933165691762377625019330580400202223670034953230996858226518000119237564002293736154912956261179026169344309105242375184120856864522198998931957661023302764774097755896651591701043489013538266060490839142387412707661663070296130765631468653400958979166636746661606557503426977497891739937632085079539178430430946107794568188593006245361509737347333033162785355125729550889977360500312796199241243942083075077846977891986087630052882475309858871620335183227414465583703667455599250743985684568058177685745650940262392887210424780353779697131761097411013677081121619830602297986723902455628239191898359509173215076635203782471118767099893820946317747041436943392251641907869125448489844029568606826671377004625431774054484906050632855890593584600075738682137864845028821170775113817678049362231812516804914730973181177889307785211680401994545474778919411552875134101874248149117127788959716090652471506270842730959160566988179850113007286036852057813662605410170368047540367552249385266743624893225782702689079825816959245014824504811507563503262290416342610767930076873024726437142601330345909329168856893028644662734111004844749793298458251088110886553225757657041170605370292034090990699608311059549265601397987471131976591929848910134601436466175110025014678003845550237667867041635432463052379814705015218516951194497493175182376517289466212851646495669185336758752533329662782466456506049880967454837070519879990150601951847978573519529403871197291143745089056805889394402329094592345276099664129853871677301611646521484333582763327237966453361499101980795430003845911810208381226643663664154961366896313097187780325978434558818912548296365271735664656674991281809803751590930888230649728864046710804794398833902502367283719208103386860787234066197024804333834176950359476802140840872096356575283666181926130724146969284648616012902574035664780441513446101372752790657917940967414533169017102455710640555309870800487117721254382641206373918270471542207926684505607885999194685945422176222122969167967957026789315676085385428627425117494682849288411595016069781638558739391033397238536858033742703685904239732925488587387063120417424547371678408474787120591005561404018212305070942344653080479771904798598310051389402514206012907986693815985310002439099786693583302448463013226249277964365055048819637056754603360501134768600601406924916217955439941784340098813914966023506313739145330154867130338413030500560313436799656309244082542749257690278661910374952195701629230890836246298236336413258857071093400720376161889620527146897146817280836092036479487730814480289547734989060199692591778003329511227685087560659932063351849693573083549825801734118069405744255897509309721057716829939413700184590299799445877172516496536938324588413421018378840321749380922848919277167939369745554170439971827132979307894826248022853642653746399882655835498533712420562167785460066432241955762444924749633033172093109495651927232716206736662560435646392774656708346559580143526032830016984726626981301196978766517834764974024148133166363849902952305718656187429729430644246692632555267649927575052810401582100751281423810931078605529197034838615454127110941174441625906025831365035867125019413724946048101911485902413801670810602220278095933870766814361828904612270785250444401422749935226510043263321435786554765643283656007028245923713290424654110040428236364243349160596021135777605108824257020006368044614755175757223781115569362572005820300355177600583686765175464723771908413188789931465597312778702206389417943243793384057552806651199823532410435786989912210980709492456111736979236612592013960137920851634737647568472937499347110400208308659142456343621252354890111434760356209971202439094421774674956128861179555363188052362498067175922603899716196136764970462010106674357729278152487038041552816303253237876843554499038935653227446988587401434858090959479254316521751096556092850122083271424750484412610832545018801466380106470015036356282219761631152738872517658153607773008145273172917114543361496345895307213915285764352310211460145904957826152100112795108574826114552652786556949074849100932426561955506812040276541218292896088874854131921461325586649006179860917694403537583476005541650764572512180950669709843113668660956885109721464173009943539701102913864095547541343752712615845169143873176114289601490636371118183890945212564397020924955848999586993178649837228570252393154928064348608691935717690884188908612837205941110352983370644769020345523165814389806448213905944600056182118960810772008759719237530561267321383446284987589912356396788651203246418387986667445706205767856435582033729477384677239555868534364424201823697084813530672110075306272580415870112269735101251722840241784513753962301046502939628792546669602079277938249092062271627066657967770351673655771170730725444501325064170003420198939223271944227326176416961348611318563745300885352324452346926140954356880350161838922913729762260909485613075446340205506818383298249504190080254434332340772226908098424188201784710315409232175959419253710277476605027553533866361846207409355823765216698563164390767282413255567505886129055219918037300252397406997702883807462795198161767646468777725025524007668653035290457167760777992945538475667252362211049962009348847010429676800455566546290731552362657423747084294976420753100537794053514615484102492934223290100137938944629192728615572246604154136668496377176995044288581849552763840063146651566820078003623195855987378580595753835996265141048013379666669354466096000956082367595174532223248457132522315962764778545944701790517024602517680042392859272437968627088813894923989756409253270821505290039230854948938516793359026139850577471481595715658785348749473038544471835657965253942515142725735924718786626086919883688897413311671128005108940040679635611622311145586586466633845870827931452888482356303039904105426212332701099912427507777870203492270980496097906277961449783570839672994661876918816780558603868442809764934903868129247540724646536799323287505043318477258846312690469906002220579540377173520030229698136971865753592905428234477129656760520856052586152733051563810114269549929785803453146128556409251779818206584660940391133639063863990736205989541880722226698413258219871559918762345060125891686517244847045223382676019526816608929989242259857758565009632520583909045645574597477228998902010566375714039436367409056177922798711194985766790297748852925790923020073931397858733610577298784989134069375560007209901389436305445322647399355715841728983555923184881783294676886791162567473297881437280242962625269818055457726473104364801073371058383196802806641306035694176353473474705010389078452043353754893333813184265464668349824979117321326401926450346956671729423222351815561799183716948325495181113915328399320712977903042384807483902620758600708201225797947719903158543623411988926741531211561478989563227123918499658311871792269214222821306104489380894826429843256562349496439454642661754967952223982550589066508686240926015481781183444798082272722169564786062814172223969747725725405119170836186741326533382556105578062269726056481936363217200635198974107274823335104807387870086373347084603022866298588276081077011122521900622791966725800402894453905352435250157427672981946461190095858329508384328319609244762737577124611197122030852173789221430167297913403854625667879332467670989139113170387728032720295432078968676064677848391622896420985153303533814471670746612622708260768499450505345060727347676567413858923830040760896453390238624454237538637906021974557223951747459214043022423505036949403834048941788409192841988044561205213295408874063459975197662404297823703401275018156611099020133374136791888954421990109574541588788283702329399233987346315013499748996262194489368136053111122143053072240394616211049469338395227765911296339525000484759278023064545943155429989407464646018832831586932496451638428798677788497883319837208787510265925550477630696101477136335999555839202873368076375976956033255603856571490399773823101997342475322703716427362595966471331645616275355609725045989954433655784645235803370217861970584295871528539673879731269797861793248939418893789136357479538365140274598053340339333154453911718908182293112066053716604453225502778212130172644474824696371940110793678037390845802486184282134343671955481757515320212732647590587408434540327185028891970265034673612464140331471583089225379664849658238249371229050330419276856930091393379390267982153661484533836470808001459608285824468218664567893256046517130976671863744672772090586965615693616158651581634618521742977280441332574900203551688350906459164239260185758023462150820691566038240948356420107375959759257601872802463789462184126652757399905486945458291145594837518955598691184023769336800607398908205772270174477212647707654010940166542450778982088236071700662564166622563198479767593177394865517346423238823024120464165857251994627661882070963409646359334688531740552515129663002734341844757947624380982338490726077831687457076683325794622648611602152383227307035431946984421264953332907892063109341991987696578937064812829571635588279575185719730372211639190746069474071474341895481687005050349301223965351136347318847966507424644808483968425914651893304054729573733192448659236577501838778662434169720652113811163457927442530674452608640576207224741043064252333793756915553666945802702725990881981164336824684144397341511968346454607534788931133679704546029402963987489510965169191514816398072291593087807691552845973914488487701592526183584139249652192638166558504296195294075349559146381204688996734157980278311107509082811250129676353708890772574798828902250909470023566561200144689115473071818015330798526527002211409155115095056138401803927885434736872503844729947017457223750970698493424013906221771841019930561420389258059146985144834794915133995056980915680176418331745500656666971944839272970428788628171182219590920820193708890715554352202587907001991230637481639209722270735475804598951746846280486156851542257237669643354071661299340546401718735244231284683601000707514994309788113635600931820777510824237360489228312853302240583762154751744400104731189517261310976348165921772323244724945199636601886128641017567296233815244589018504079408447488538557480517589310207385866856376382511270088384882102975260857530779046972021512385666255357271287846774644708463427759881488436879625718181751566368186606898635386754161887730311681187390194818354008415031107756955602791691431669951239410937662942609683526554994666674699290741779675998157902652356188612399848023916770076022611713085408825191625593903058359854871646522998722778349446629176915175303181681753821846698861262710353810641035148943951363572911697381191835424162709909502542853581248846387684641276672147440430212442308255991384934284802573632234028761838048482804319536525525329610892779061949112263117437918479754708996983139607817784091211931425724718240520798029459773820841642976614936981496747195730558649709292321257930568476654535555579003145991255120602558322726228659401674066798779003061854204694455256849397429948790202351076301123077996580179628303209555259463395967986635041466757714213239180800970547077029049379617629647126575856261739189732317976974893663733520111819060551741476173783782122966107335320706598767402827853623823538150167193723769109945686873171258299725486287185998753274643573078153775807041822492165336513423600188331276143346090274220640311684961458928652678645448784776715211123350203263711567080820860948180060709148097999362477205951125390604827335807663872591475189670480935950959553410217863035966681765801827291435000033535168422488459865307962689326372760760198028574478053166404504894419018011359687296404181072483903381613138307649797664119614588056809482419911373470738264047013905032909395457836936883284006809942570005081181762048918964619531150547142490025083334809052151167405530828371184168975651250373737500020644192435587871079444620295633237425443284520381193026460436305007865449707921888714937379954265937331809932935102500593404289881838523784536832509938478066633748930625671319991929861338702849940792506100756354003665064383476270718229279220481052964933576067470618933690989770439247270709168609023447557769718637248542079464780622615903980280688372526063250642680478341569487389270101168484926797407737698600709556446969018886262995599938081964716839948789618666514441301433095298478749318602167688585138949863939225068083546241898909487326928666459291836906780062003838178850832303535622585591379705068605096273205220729733656555081308025317836587778342905148851952390861483398402162578511680410433063342678062856470633353173013785900657909981943516721608607814492738551323814641315431553400610305412219944395909462354964783743530364037925462889896482116195127675097154713352760129598768044339159263846201914697266014249885455904396770033090904455348714602062057833116634274326291780468531593549443080585481166532604270370607859050837726315831164434785920449261648831888612612959225627721238334496961751222576200888489995956879125416863061117191480533805976091571503916638793766163559565941025809486647325891202156245872954574245925038360135162923222608692392627784689214611047143373953107099159447363818448988433122182407028763588669808341537747158259730218268968021615231130044039028236213063239401304616199904738503973523101411188339173476821304597884667859271367425884579894980539882151952159176536751571420868637136467998955464521660200096803418124208664173438505679541604811662028741065157422805954987694266687504642054437148028937103931634777216983889990247996025209995653887029504184448058387036952128966034023076543466189703945861702586196451385131056222058642525661286878492778942223042784766297217301138320106012043701110649617203510784913376581810776436088604617606766085229547746820204549526091197810838507225942439235116631722797805894998945584581620523852610049575150747430954409377557312585845866764869509225100751026038804414267949125963047864687526745826298381325039120806847305391783780231335154118687045928867988742165631992198772330013117706438299992762579352774249284471817009681457141105049835083030248037542625707328847031096120198847323950713099605840386158873954690292618932089408146397489819878521757305215197839082960595673103384608678166927554383855619482592049582162314358227344723879402526379384331400762959948631201377774070964241796672020365702198662294658393094334959534695015368948144465535217083020570423670065754442206437104009794256781942712280386807478554331691316617587563785530944258327093874257755966307155582279939350898982311238294425201599333033091385872445756856891841555130157596213763420249382447277801342557416672177118283489167380501568567311667786788789440621587301311479489077620945363288000310830126950431772919171175254542797300883284166286760251322092584323207663733811870818111487227204313724855304957529982722813974365015990041187373098904994191814195428609964423279010103474785031224561791876254462258763656367021420236589148396646338317694782712626565387244793093477020159788993562906515586343780595302331627328133250338268372110893374345838877745385069731417852873864169705419025068158747588926264363115529014591428133564282336051359037695911210658388647593802836982731721092998968739805825570695444803155428172944448956023405073949317018340013135073045420506104503143546742538338363440124360250021998652480641617643650824766149208059798319787220170415463020594704633280087024438529850323333552169082883041745114484349286118153342014011579193160253589723614917929898415431842011864375558291996140231591791041826963556382268196843413176456046554453788472207773606011486827029778852208925087156390791463802488940200608562285875955734463360094082372127088647765940072803374037901786358324982979385548153225873815660788465489898278001013742382823115720429872779456139975675377014828098343961459163525968056638550110023022031258530326069126639923858872778559363425274075233084532342665292057946980886455121595819899619424788810692181466864264076998803133724403104836236000458404103598657951374112023977855193706147444411426462916823436134311165206130938689824645929698928895147426341156187649135717695721455585491672602450935123638785066553365799549224412335979981571858705453811389255975805928705059379092625667858416102355148860510071082058944302147971131843606406481539683923081782089834309402186612614914216653043261833242245714914558666923278254038058721053135515288123714793458621644898691629963269892301311989312783774829561908381640541148683100606106764759691418745327317180707231696754070973010857001336767300752706698281087455968245293481436831761130435624025964239263006173681419418274312519282554325254514918335154621373835242141770943479841565015386109619903307834767836273423922982826661242783770324196242093863391525897903363885477125301171990656517593115418566673958618995453657679149558110371906239711736226126928068762718278189533839786939828028007040258159218327518827277047152567641129747428450695661021359673816633297776816620682333855303128490631988777201018412340541361347780958083756584190616905460095151639252180505969113016572339645477530000357817322368986236979266969933549856064091941744918530995629448116025566995758486073483677068427328109679203327753934611256183498609153700053882234766916444892482888005877729172998285983137152414808386493394810283189380095868003840893616799643810879401145242993117663451207199062849538679611749979380949186513202124160588604197593136979329053310637013400112038192746036417060774050438789734510993146216732231427771412720642991679474860165411638076753584131456147100043389736104053753320033917193195072902857994119615954244970210649641273318464183476633610868149025300851602082910263159764469180118667733706665141474934532432767352126238174305629165623187138011228539938286807309277665140127464423243975252153291717404261462614835723618016054476451190148656203521289185783329637647249511999626286645409407988887746887557190298754250276382291841797170513033960769113675328828661556511680962944717327452634093214961449797136431486327065679530107098534797534137363027335735488304617570133279853148860185100081816984476879051201673768345690459890437119618428301136251884963305873800750534375809104259702012022407941443575383911884851794814630169510849267367558434502553159714673476426059525683354331735687409831543247653444598433184496876901372678461039022369733592656972335055792023141165299644135181533068679096689438737166408966891419457980165540232496664201447852463883934422774669128190634875519308751043934495373332650736240429135567300553784587301321258670806754940253213745015440638026225238360886035257102540929364671293274068957335839467556111999505231968538088016849379236277714362688055546885583644523684379120629792231018901287498819844945747583692010800679784381258868400630688458592408931724249403506747679786859757243493112088838106583220976491704883145610983093537392891864796304338372530254652709875010909667118836341252951402879344755612703914213020775048616315726555401398152898192543859052383620653239011589830240889100065338048936103348225659494964176097532835581918668873924298577276732683635461407255535778672335556885968702930157777079759217464991441172883358537575927668852147540670311840907900781982060435664856268994513761131498255335878022356996637681399575229721539361743608759169497533850867248964613099085791518785128997946381777930200372331683409222542980200055149512829930103644085398201731653758076618886694971848711041125401036900505346307265486737455727638370671135797233522945076965718173577767174565481722049953212794507654664442815233621226328761195476506441528304049520961701962711737909808896177232263751396155802082412565182876728719636770103464402970463023559149388531450337535335549485592560455937224074856731895923548377835906387605407942597698313926346137664912848061408444165609989284136641026274643067031293851572527449581417038588946291077877025539942722131819154148628077254988265350643899496053404175027367565541460989221410100250262067719003918436528048905414048098993273812440319199936430927829193973417412356860604660765207403042918853606029112712919763736302051914399630114919231116399755619067502784003450715886492592345967296822369056915477305087365730278753300941405074876384785962361534939444151771204621819674073064764384325034072302300543140859387544886535735362888450414776490706923056233746882060504610745561609842408646574991368651829869241307235070887299167999679356712973915244277350808802597842103782662250800404499109088144415494963395914829584723362152164230789533086011432844808265469715276116148360595838218063676732127999773939385537042099681332355530389646291397727762628636017625397095557622907567220335995873522893281508589320445031242702401948102330025371716048232848010352103570555160939087345483110571238954162226892830823007753463244163486306548483416720631935708839712446291882620178433882501871888072053679021918106786598632927085070985200606180650681201235193938013589140821449450466925186075902343424508448403785243131358621513687241935806776431056465054199886807590464647342603006335292626361830292977845534393281989703309278779801411701834676628884554993010981922526029206736995878737684883390332721429162097905253984902909680746822990196848050769125358608412839866902599436873024071942857159796129750039623740593220118830007153980304254514716309136326457312025156500355785538818522077950691898269863502814259058534668344155102481982427655314261949945777242478656311573451428917248900406760792093675518741304336216796992332270746883644785318928662748603095972551000828996409863012115613921855023383741688874201182049373420420775698308326553820503584990465746363293513126061737823886544804089045048104135726277227141625188536472680872090245598046902795401337025582652439678865136261955601537825738692046819916516528750827160996062920604021558042943344493678230539313783559189359661624094662744915220903495556893264078151626409229731889877518357472380911827510063153300085189433069108860769995503377217432042827024106750139987347314870648010229185471773593363663515156366718535145134145810767846301995081340320833819794253228931586322141735298770618962385078159323804145941020008403464633346663690647345669272854749673434466905251465407867658393616371810610690117116870283046506413830847222208402302528279321863325050171038508704145060642701519349895579372010942346251921523535001299263680241336493733663201190599908279860288619943052172102851493781535324640411728912819013774236308110936637125337490332441964582370926407347098954314860692464440082548676178498536863567465389472337297881143545304307208270244160450212539492352338161370372194195103008206531802941364277606984592939653799351483604293109481423901304738408561056046168144089536899818573779710201386642805541604107953377962541848216496404749561193351549658744652978935644972184621024937560030457067083045453866459158223649075545075835697055374154170308989793316713049230677954530506581510999046272021756792234705616761148571120820641749856912880405450444188638605928839432045822036188003395065410232544633916232491551886026573702185096474683330778041412262104375471409051165482928988285663138435064058118561021924777483882116516125358817790636641933107270029796335535341376383828100983971264599374205881628141117674452606893221729390758025393820282527517844917810180440592871907147578971491158220357234394659164072594937405047164535615681444995526216501795196098815963476652083414838419534580560698562831583013230579511901190897908288612469935005179923848052443005401121964285995143688847001144759751708683476224608488537923845379283683421253748144707280058819752348015677086177002097020451512196353397484376616169766075276422331995470516812927227731680884542901954222093704443970712965142192651429271902574418618207207742106555039360406271335676778067205806809739825166099376095295522852120815049207671334933702397790203257416666083937857902242788197632336208120617123653194872028211608957422319590326016707600233044834944684585898507536848816173233652298176463753512421228434148140961575575556518035404619327242700091527723983385606560887269769640043471735467662243028272723727336144879421139642429452737699014259386383881746564612918764738430958846650583544514020651073412641598857723096380272616359009017295538280695622511327422377531333388052444621707485668626088892139049210596323178586222785629582234815543344836327600651165081965708967379171959238775277252278139968573296945540142588805918987469151676601376280943603900338515995747375579283255799330959906231871600517421139902348609307896607453841776164266305076226920135629703000049875136865044633461344480971804219629889859107884077040929068202496635710229145260821499753438855255094155059632179349343267170004142189150415431272533885010269567514369995857204556206790532666403580034067406693860473840813382438168011446933151287638675694851532934878405571897506026354657890604475865746621424676708113080493737534691550199083407188020890090317360468879187590098268395415495070354120569504421996789012272823445157618132589875689955426825178761273753662475103354350009352614475415810977442740792158314778974078475535017934729260044225890078938064072847430882667001062062903153395770768373595248446416592651077609191637464686764754667882313417639967028248150718577428480870170085011637394053730571868850330475796943624246023615264559503843060233337296684555840684582871470725273168923350293359035838795181290487942275667475335394740443656863215755893543291561644081918547050231588343730471622251194811756853028556593621494644145009495918890867382018078994356006929257445623490409752322568495695961377559099174395230603026100819478353519595863155567858861891762023747207517618764111412823709908251274234960710829900661420592092150947302954646084799473168621075636341583629258754029531526865657296992300674822108264159430100744009769330136931009646286223895644083170899919219517122402024789318630414429875987809300973136980669332568174740822470568192489025585635028620631534991141638923280804355092398365716049184219758980664508775478516669714509390202296591189683745927415243744278319281937573285593799435507243179446897372662790366230737265105954918608063876263414233870464162624822501544813369586136727360918378845109580271633500561397348292472367111219856530711549542814833169142220429859620115060630374927474385211399033974573790811016604427296273945118081426125359566863623744686417768794728020612416775768377834735885238675443892566855644535663605080804361053391461358505004577864780061126201936790084829734967372690911915761459796774836224305220722431993909169776558046055951651262324361494081440359938074264897835330023834291867590751218673391041120450299133648300737073680019886160972833619381026311218254713181194923430527921750026301150027486470225779012466990916752728254026939415349995207275330488156392888007043819579968355076505134638248095443762134791761565317119382575647672036642736517802186743901365243132894830293393820683425841666968762340751360009814236892673721666903912278789883982140610940191806608378746057717379328750658669079935439208398745039207287827286862991257203294489134149051395007079646283919467483856895504313063004625637344438213697390436649362558052825818071057598878212936483503788289249828762021662196449413638334614740914204083364483960749761728765573498777178731606967223017086733305430424716405952647420467294852038587512874078846904270090820417424933206718968116570155054134532735462552733125467366766816063874900883189676079573890319181380396544798847834777019948343214344397668144300120344589304426836244775584397710631426732440682636505520006107643065418705282584679525204743585337645898944093037964007642215113299696223863949857894301474605889835457084525433563511241221487002628712286709538994157206911911579386775603046649869959032285836842920325678280910165702417993182888814148546245556908454423975560405986869155513326668010880386479487720266355763657927214076514406044823200464860197921667058997182386077633778617185941327796845117201714040688736465759316250343008576554785602177255550792669675114910917061862752184877341521450039046514887215723894012101185995813306512171157203083608360875103765551056319448996100245860149883268364595055695207556026225010937449104505577638926538715714310401962705754406811887097556593182932599573070083195380504666167363242024649129324183366284618368013406516246324267076859309941802317606804306069155827299434841983352677389732836829190384824896978510638341700947529027196677099927915558299559557983079111691381743990487505683629350667719401113123602583225114381273507460224920052636704507876815241899585106133309879801304162664660228565407596475798311642229824631843505906584474113189909612178472723755594879472959170611369604311600702674611617178903976516460580639568136219642638952597235531884268263768818358815555461815118845545935328930316812362350864454470368948984904922538546722313480022180199568528459036614994425768929743915644157605719883142861051055175811352284269518755459930852107689823276602998608118840162618241776026366979199424430892848027862883687676668585855044998375443629751194311163078732711253014304355957620440755333008139997184716159472613647531907925995397656722733183042598440789624481180389008499718624859365972871860092852551817415735656630372320686880983484865623851898710716423452533550169167693084030087930401957561906100954482253211681733503650434230077539549232552703844120359272227156792950585977245064116755804637734569220946193325946849642687289085034111418923087599424308513182496598707862840826661569207813950758181334116466522034069333046153030093240804509892279962287007396065648183623321304063492154104383705576256152260439167207127875654295028366703481828072090303064711197202246341740101114450370840489618196906417771918972267435711279541838563440551728976722200584089607190216079572712396918030712759372608813292546993232338357899794638505865284558901911760978525706678883724877605927922309602944307350336543893281297552293510533045387823212871530787082977157986466140166076026248102920228308995270717340526545600876234520410568773483763831209500256122286270254076755949697847581743611716944514507596856704517743554415198938268414554845031395433507840923015186009600097621631337572087654891924856114605200216295813560053066091817444004280055158657899784402868312251441632386492848632905064253504003703092929572583472404778529231749294782157172352001972166698284322033254622164889277455523024398070285833755496714654770676868039151800878902373180574457165321133301702555939309421414983730941462605260246605658675377397771004383612154949111662071227738192416277299461168007042054656201892227755425543335452466721406138003311159290933486999036959463449765035097912305341073469052445360857303746888356825773062400146146605823545041333641760122276986063733518136080873779113510208893541764206460505560576722748405980045658066086552293493196398080247382405117226007435819509251431585397505870135439814228395307282810536486514621505185667273985759116648298579311765043717189543395185605222711296953519748626630155324737474761753586705766895677552217136925311481552691351888991365649564587422558520699557570719045560813444212610502082491015527693665616459623661913894073982811626923457035757600942766798505786822055566085961378313053475069801242618253632728264126624136684506081918734696468867964194162143120885815324710112970902780923547469612840695520586749207158970614207371039517943995003194535556208545291501703935670034984804782163563994153944980669018507966746751799389241892187787786346544145881479045642716480991027321161791377648058061233509269725764982984639281639509020391741985197440820835208082211726099245896554929418830086768108938707631574904713965219945124234740476824617905538444533337557386369276964797614329136203001224316326369001678500956751474083840426878319278701800072648817680191624260452406847453118071271619127637704131253946821325545876447407406125991869792578823900668997419729207948905332389292624790069333863582740501508366541659576343021340379995940166344164192296686167605754245258524211483661966809540758264922851575743739280395914916616389678862245180501034827611162075256919761908994235842778235021772089000484276597725635008031379657595894883231695112177009590804854157011586326469788398273324667041660705339338327402151730815108995882567485213777653732635266627447686458719856843419091766819268038436582705595963126247613171136058177496235089191391491262341978704955012177357363982997000407557288210437380675144905784320484764490241701909727764513159785762951438355954715998592592383340725043463962020540584228512624562342437012975606206540832682441159097022229373927034154597868623869133791966058839589675605332618165742850396955871713081664924497544597515189050031910687555609001433259767748843020974759893744949771163936787085641079702704270467149715230423905089233565395407838550645082715979355158930500548834949207545547546221871442805512497305093504362926314788661943730730823385303129837868627271413022534419395106691278314638710939309323571624776448791514240137534743113896515377008278690692327267505874964802313803471398938921696584544446431582799476056575064863919100012406058890201566743584319358918913832128536499227992002261793025605055793044605118532686217223079284533970596349590192217027563940995400470800765561334507415284239553160816952745009270317847845260230974539931056491810197221031145920222447183850002666698007454410625911199140751764237343036814427668238737993220023799858792158438834015106225072777632468048670514580571866298755804035833506954222468930127362973515949395637960472288840076905223665448576855741887479406915321969579523371221642730119607753734116301410612614246075457883912390922300842843278460641740251820435541575760581577164323080604629834649764557198900648944284609822369589603636765008383273443385804277189556580882079378171587521812890337523397138354454272890537998929448676572514340929667139843740850922843463279909518176929151950771537060613750482629581686857638137581786803683486449246920358353376200069924311962553074241348237109983615147894046386146926086425369458038516721308138107538482490232903449463260332416665689221445911432673675155472416275018889344255250206938984947346661824391896101896317458122750411594361876256855333005147442241056680581499679217782861375334736048785062147588111005657397711767293983666982731063280915411243001972788208652001242881751294253493233582833998288908481635433755877488565648369026879833704711596299581398445885351105285088190734107154834173067546916321078302880111400637103150947877898936646070084413206028350564847844504012636392142961628724824258760441206861139506001432513744392281786551467121420886116484398216067767637506259371490052790335554057036093972418631592830628543532633940202054529480833531534126181516818505985037857505044897912005516678000666678318633300225798639354196331301577580713474998492052486342122284460625639128798209781687731157589969957755408153700405893510145759814476017738454160694064241147266922438384576779412771455728892642020432684036229913184175484287260296034357707749941967177733911349342430819049374978163203901409419773283924961070867334106448453643604741400740358923288954682717710474643605516197984364836148770309880324555479913314770166380585909519505196472868810128130660061873273863702514762604630588078674302811382443664298529800928521071187921317449266308448607400368320609487959190137961672959099896818687141907837765656213807446524575935254793902632594567684835256436693523552226953202198764941576585399615856190652594868832913161767044866726965317445372378765760758046015314123648627215390648524743680486898665116256493903254198339966986337225741306890091112453780906136219851963177392568496781777267311581363052509332824299950694265520820282603484903949443255686599356965472139344316219561449696341464720432927771203816994161296343896420573306977808286004361458510682520624778185457290825551763172597889029897374995238004027722894649869707110130587975556123656547019612714837468616674668123952726293094016550520034236708642536834949973021302904540168560687209409034282873747712498375932161660830467966978969123614061315073565383983446267700980662843461144607410543456614122888653834390025471833008419904350240791975797366111686941926883975336302562686142100840208740075599059820033065927204795922786721910693813816539288806158257068999187206517364595673787039325702700921908256499736626456315653399031699369568980709912788303334674850389854614278732038049048451434820915225103335217445913661553060891630551063939120873130367733648133516516846052499715057219503160545137118353091105460951398666970341925301644488524519632560045354309415941813523730409503117992088346145846928509860257944513261417081386865824544493986765323785269285022244845968044731247872030305986516157704401294107611632543548833316071990568592032003680349996530898910141408389129895750935885014680592231958907171661931500927819866588599812461163422975568245655170151611645666284662269665077514227576499195760636520560992380047425080348904898969834761601994375372448318182125103467194033659006460802397732941442098855105628280890392330893037555891175836128582092782239539373008447685780793474483117905056906521403699523539986945191770256062755459956798667902637780052647270234258513371020235980986111678885711268921663963336721200224715075013464996657788091134074758980150811045669186504025391980431438694517002628917045618464891360663630669724524224462098771733473695717914550288227565449829202352713040973927019597440915784403409576320144057519168681638777911586815231451359692121634144144060030529583050164746042108533503602047865026329092029403730950276503262955018783996218139805231757198461615057787421769464719033359407387654714424307373571881495300849681754922226577141501875709768607784442553105169033777058525620507870137868542500718841359043365720402158568993616008302818527348713862672100224006698506722253847015405679123855665713510986884859212181546027350182360498972209237027073791341774454849477535028534185618063090088550622388537775535954209778812977349445227750325735694178640500418534119308304235308073625952894386118659166820409996772662122820912371939845678750675721593444462488257701414609909888612774566431673242268731771849674032561481766786195821571681897501386194459013098790044644731908260693066252902603418388849287075163291741495311076493857016886116277369220457394474912988027722036231214841015830609292965589425404638969494130338548086555803985213329926315876779764681368131178678453013189453158137491945508925136392600071988086602491676208892627716023182480545724560954069589615771335783656166677429976110161035137097388775109883833425101844497408186313731906677754699107644661874138904957413112002008668750081381657977857895354783774835168840852367214992739437005511264899313625170615941753838599143509805256004295669830666235606218475091715488062795343323956408994587067975898624085150765732381376556984768956881818737106146935905455463625283997554195065815360958029611783259548784184874667332892451656880666640242303515783512431701316415629527841345608735294364118906096634183467406345174480337045853797786763625886741218995501795851201624162065810339490730606250564623145925857956544709198742083895864494973109484958897706335941516477314049480294134347905650681744947723095010760434655398815353373251483424391478324119721948958727251332715900195434622384509252780149852749176414949559210272218419074867369007328915860495580960713038512444905723520499690877845652148084758473343425835880422835928283254131507779209221395321437408047048140638905483254200317408693660209957977677627913649939809690160421918768846892027430443257192663719920453023805450510985569181538524770673041658969941749594220236597235256363946898811525615232188987781297741548016337657600948339944196506439238989367992458951237046521807850948183469873523682640546520642658437713006882943751394093572525933790947934195519654873915325320123439127245400184026114503547840549628179417616539444722075933508357901476398364499217918909623496742082262736276349779422247133432655052483837361119250041777785654327031274371367503984871933827921616240440237610356689828289257846072793768277757928984583566956149471000744945264707752238958755118091896837507869855332439922766224128124003668557138651499238673827869925124547476249556778639130987888295970934497092701686228972737935568530208764486378310743645274281115194174208619202201752025318716711461847461628700536843819049351436251953596031836122309688574545173008582793418343511906559572803772425207926445215488715095669652821202615510847830367980257470483378536173378266867338120529590701781689755836589029212265361908011989743382258689126362547809845975479415661921211076890485184939787620790203851488367902826001050558656778150572522465917398880544175392521190132924188770115449932848505551966640675472865005049399676991002551669161040116752662212659165476139050176148891781800238766098456953301408262522402930206196445895326198803958919562613357447730263070748325752217204803631543025214946033308666714396575894337031838972705862370541783489880844588230711824668446779641741345118379222728613158763555695270543234461535685879905020387752783855321385416171136915212013257369069085681557384745021476791042306099243809202540475309905433628394112149575152697379771990027447236854753776952425033486996469189019763597377773608924872468842966857270999290509675312391143518875577776729488334985902938262198975690574152172890017263453349393900174182950583987232437624762884468111279133521470359050430524521418479038854447880643584294087664265371741853993764053084440124362271999873867919165832136976735405759103488105194695949900151174694623174889825611554828522580756565740163349991169986513197921636283889236947062515039090554954801336128601582214946653406999110880786984496288293782449810858207291545609083112255726494022057753185783527934525784598309615784281657865027970897533880679759991468772799270888481275338688192583867987431081175566329534988627856953534280525159460458449777858939546890410452950053812022024382742667568229022745582119517587133531065979529726333952375994379459949266642531079525719299588357775628227175816320551913872347459246696145978371484490193410655936737813342105352009718040415456793671741002362948617029799368557800151704304042989684377923007121980725800832796136396025033289914747515660812819773075669567040281552858240815042802908503223051119803892631056284900090090343225661341273009535823965417182263538540967941030254415202125723439517375405087708908154717013309335770509591123835081632150783337675482363256588176655988503201362922230935322325634838842513129632883965680443814409372642819259370538296598364095624765317871852873084977060233589653825954321992308418039032671211017844247066387871965177381298969967254404893649405754819761434367909690616039359801145276545796801286732762495880996924432304820890982637465854529072078283821944891200792971233835804054129013856685411792449659175154574984901278169385822440926161745919069171277049323518917826001850283283012160917834623133602662593651952783866578198311996692813418497086559367639415012663089193910871158688840052356835183373598063606566352874242961856097585351510890862434002082904722476653529197236797993841992365572604246249080379576697653903895395845555865522750427699548537311051929399862249950078053076224868844965625406553498594892640586961695124195352984683407718445949453796030726567712421559856178817674317868289158523866476955860644394990947679186448943123411297018831103939522879168622771929881532216154343660499259767618420148702549340458603847708448282433882738285839685075437116159869566797272209017410910703787911748644884845269192351227358924493305850115351345319095182461029839658327903794179772833803797298072542914713811879482101328305100873124946715990492575575589086079841167687199584230160045597286609999796513520095740953943665342618481723224009112062771633935836925633682165130953735577913511551261555113254723610506967768419165447715516429726969872366022431194247801055745736826675378811615325156404736670376305406303778860314267940987701714027395797823488985533750073647988685216876091678871512514395213078197027020683861340180666109550190488167151200198256210184128554743921111974329175323467505998760121351341263516681773878324143569082218645649059614543283785085466329444481442763038028987706146075952636563843455319844763730225148213926217748405804519478808978393101563904974451502181318791070730875098539051367485946429191728721434978109161533852882566885375769286729599192586756978443348927861897314312901962498130132165439499493515927371812003802306179101176852194942321965006369728881590030092306998658314512301868637556739920866379036743217336294903302177796949313813047772402980338880102788431632289171477982509989072824697402956934631739589127782857463216325290226374632975530641207391214559680370528745677118685852877241647644640444049774090356497178900395288962583259151444962854019936634593641350729376620505550605243236271268486174365095830042833989787103399352340389196639817401775063557460064938044378576387621398977267250011272530517702074983467656952401692777705921031079171761133462045958454372987645806457835036750690632686741233504231528562471124387417330673900547532111723776914740980765393165206084573445821061012908755829858640876712604487525628971870675341202489003068591094762046811873945036413055440757628664572837627632748938504282246416748296860716395526197231314731730091420871791409783889438471274275046862283231123973598881155991310658801130503754746144407665274631582538730861747692276499076484331188269897557752594225376416390945465106134778846210193013771671912452203391649188360814124093037178015192821179747390792346480938151306788569298259326162346276466584308816363430400796102110604340648524037583681809543682807306957578782555879092740026812148677380729110889923070888614853513457146529382437988322330321323804377606930816465698183202968887391810100190080136461601098047811957641181808254709716895645064418517108508838309185029925207660501809728243493696527299175168585887547711622547063062934841887698303738714890420648169462836352718795675820494059595356761139310515910285521930620810947335213652455205622673730333453685636114038226275842296690160882909496498231052907731788998479423694913150618524686230867258348868821237429482897608952568660236190142030595378453818499837734057915379765852714039135160681066700980367349062121678746084707196648091559387976289493879504535728077588044698401500669690087695229097937967022291718371775026067543523421703936665636400975026617666661133429685265909950362947761609386420134101989710424103552439551098965805627012660612332007796509539819522917391562373867303510727108292743362761121050614338478114476200826270620485784093082368535710521475078356630283118953982862674170773029614323610778083724296933195371164528987178859794941811261783165842611480984627172781185222513674903051988666299506587561989921812996687920313971979350799781808543875183335010107475281926170725273946925918514642238459171553363548130566910026708891935684753883615154311708086088676286748803452320161564816006495966183900766248420519066784696411596082323353617234756920902332450072507785193693224879070605855105837007703911777110900521942534077158099028713970689698302642948311524829254813060831330674146067376447887444418747406902846365039800003712623757207113856838896782721962687007575447918797094651963942224145571506253334340579187004586308466066631238995303855154052724372601314471489141952474374160820103959915533406191573651302983180299826370586333708452243146288842782393851738044021034015936326173282984754520883442157811690974304092235304513414336803129620370161648885523215872448896970693215950973889233298029215604899180562426497743249572864981469443960845684822394874001903303241098531323097468178218184060960323055015602128626756273070494389776527572299404681022542933343066969304518109338634592912157700542514685875164351921509019454793808423602735447081755055671002166281896142663218936734751702573147348823549428243518189986995799155472606077751639213026851262556658469469029829475822245860593477611623188651152600968228314336718785730427918354827866297589311692407526672360824096959458968625135592573048431382793250798389199365513945993235117333074953862178484410565168450723530402822067751780714215870446465495752805018108743140063079533463838222583671338291288862971065271540013049254491633588269574705710762556997796798342258714158614200142323224308446102361787973967437193831590563729886374177706491189401878653689130254998111914325441549400602980951114276451128311718577526326635858497646366575741257768977439737835851649355578118885672552817729710975986496474368569159823904103214945011258934497999589134881866652676743074159884281861743985359918115070082560960559341425437254249018928810842502099598464975957923817586955272152922695189392649085507576858223355638768477133959288447400137638547714149834212430858207699783736359886225719683158915120543419132467358159965725314976726397930313224040630548683435528410463066161303979259460193140243265189408872289209955916238323339160764505410134891815450618895701906302125437629345126768091006855935980478989709404779793741115860739115571068638237791608180516384306786037985264452472849050143664120671573030749416592295952594419959165400919061993057412357222628164433298502814918853567465167935586064155665628158869251007444795894754847527881852214309114631877338071466545549825778078669036056747110231097029641682736554706024490347245318125670375089176435009297059572304507200100886600280971000771272596365433944770415826575859246051778094770341789452997311152359670689949558882921871774625296560705592664599437696024365089099580113947156130330755343551617834151094963746166877851117377407290733437995659459171274140341081908735123945804513870375755233197903022256988984820071631188180781154761556773924906371946511553049135486171770854126355103787109124418967861009753911753062032604186453332469935531469610323983207328184048839639659167215308336057438357459808986951828199686496525161706847744363603362609112616615424184854768160497065860454079636116148007707295465867756191123886583891136504072142191128215657130947520117967374959014518786993777877914954280575570061667938272353029683949335643968834697930716596684737675471113157709344871895340569964276752034680205476405029370509912240650143904612519869315872016495334421732279668022099388837809658265260769191821423736862511651073658814487872503752460407072207181567175655117761337376245296456644538396313324198524349042351113132544239616221005390023111771293701923396376852502891988673886081377310700883123678422365982334602226719163456913817660316334799184275430424895128957180885392441367774026429619361146727302918224953010249293034635025573569706705605995568820172759869167536843109475951924969995623305702458584893609321778135049054389382252653966976884893472314724125774709287964763184066126009024309632140058631277070853330656411098592201717833795398143750791623796007642035240826164641789652417984861964803466901138694314126964435665997980844880887481120627653271226922768451094340337073900261087197230879936934680929757948604244864254649129544031999142881633506312194299279331435747060424196256319441078388138688590361810127797334373741604499401721588738795806378542852509824866172943636502127798729873730044176680327900353915147067996286398199997557348778588210275665641453145992724425394996269292453192192639841931518361513727911888347977723010821906683328805957154982575006177685731556611427182854607918168198998501190870567307643527244269117930880420538965043888747953581673488582363194691630307405381498417230354288396142675184659199793680782132368783437979170275475003132123110778608866912048949349713289372258321549877011803039269252053313765356495738407714656203560435922295044281354157355894519748311713833312087140243141072883635225181357885809659050959546850507147353130541499769973523877892539478363649002637268354451524161949268749949878469638667583975173178187591489899570904615040902044198975274899312585393590897682687355807151145652137663479305196393865744479783359414541164051891439151226607698449969107516608936079565014309143759904711277431241940672497422967900209468713761654437570100493937671379388303657413246108002137510578722685295409895232355649140920649742317267341914229813620143314099815749087498271238803951605647226816114944226171159333962448334964144588909424013293176210241297061803319158504216710625361872397304991955916511373466890937029544679328699279175048927037331237407714633300059139548302289506557182697149157533755318112183183279973598347342410306452796068788733602479228281906496061027502118868510505624513342108644641026112458600963759542153864188690904161216585210893443139396236354390917523797879130427476265235108921105679693152533017479173539079071590716651018779282313827028470992779469513927498129013778814908779144579617286876550166461086986938140222107357263951221258506039959460142554938908707453468711543870017665304362144678809121480745507474081912112556706859440584926451036955704471081135333192650064773516525163434105142315701088747049130903734161265159531662363538632452472185499034623179280361709860617327305240991091465675526532524398935625709251125166929169693734786664753003298440925338941710538147947271878711833993580692810652188653793376581697537671911091051215820682493472539245574665043201690319814284991466014056523830398954840550432369675009858241127736395361813056834734075151324892089054687313515829765217964202635158414854787017496516926951465063187900673401873149464048183056307469112821556762560299548300664225783332913603646284160259026989618599115847170999409270220312390547587123894262662459848011776673752765181752903115317566059980341150298659363541881713490622789225734772379347309207892403238263881933311907481806140636728597594878483687299802784050674324110072629093511045791883712911674666338606349907956526650270787643333972956361275643933207838171570010203509419231225400231394754676177004767752325590330760749922385335270794345452370324031422962706604070042800095727481846449667151914322617044624113043935483553647394222746321071400356501918746268887687855079017130152679477174324154288233113942847085253266824066404958951811369832670262094507948440259218774921856603591629571240911552425070341215774538439406733476498214231609914463318382762040905771080128566887445999309394168330124806277901405171928678902734107132648762626194200749305795861310771049390056876965366226615048411817357471095593468649572105282794567309118158289263404465923511812539094652159284643424414150569982397410958975457943650589924893195055944754152480870182227335699285249498804758077682562310416606549052601655528282070025272192756077329713969971689602206897983722625218231039439345452955278876601719109540217935732803073742888032184847998193128402641836343034981370839418984972604395728190644017010883345859883604110657142199148348855436380366343669666198431937594024762743579608547330882154466990883179130941157521588973055920354899283958472419595163026102959836618492976564474774330176234087581294210002444640787989080122661377082318868497063481900194700299806745800948106490828255700636581339892905584126159525387687710725280117995742194479992824624061879104841592609684798403472520306202836919648391149469618751804502177899506919776479574529476601514061670865817645595039979204045207760585967736254945627988999439968518256594427926982034722756315847330490218620500477191457542563681170414328212265561763265137984586086133241443761403209981049826397332554252575943658634008498573473083608767434261166066815547010450949086506696720474323260355256054300847721166533052269552985498506600421430240679613324075533515114518281026299808197254179384065227692655109284858716479755866489072648935216069576001044894364283163039772266484900725822925992125051214666035972349962346992770528718545266716484345618551318708790214702467491876784892395298699659360380631121132561906727505231728122732653640109868594337455318826598087748223946403192738952274424087451086353199873346783645618713350967967308278445030935837351085291610706957776420735458425519390735818017822730449479310462573392490463683022372537750816932509411847938059811347128677293756467279293330885669657858978891477747004536181313296407249813619606143876222935573631576811873921681057013726880836098370343672076606624210128755861463082035802794263024535610360184820129003922120238296090061825495110191108563890727981732563702075068694224096725347715464512633150303853337706668135000670451814411476161978221777685970907406094948316129533176417094336966785399171109514474126692398096366404092434226468322330412646088621727803979370752076831495793632659474208285911902962352964019045026361318257083417163240585347495251902389547822561451363040429673135178112064214648581299564733080438868072582091910447736179244575681308703927485843001100654701639945755114244903283568547824569010856688758182050823551745060797373387364497962295889180003807873212079961441671253568485334413514416320131536672438001581400330039688870553874529545752104901428324603109782922222000923178705192276163831736880466857211730236813062397943587843274847865616082351752758660807697403097559116292797903973567696300254283135730837270412120550799810881213569558673372985235061505277914318229697154182982839079745009252489301844254634427799875872804101322314004384372418177936117457541339167086325465081727852676995700903865779157962615424190241795782785600506603321051435895645640969643477493185315993321772706694294287710064089378152716057847448078005964193392757807271341832495896630822483154446390891439171149717726188609186085155274817482277661106108914553101048229287852771254456959606023831307453831749289127419020488240550791673617886430511510508498852001590405863207047394394725479604526161205894092198845044435626019511422134045094395358535102835030052106849003356074942110649615790391064766647583211510575062828990883679250392084761335240689193870864022775313804690909219016261137511878883569190210811939767898289307924088931551501575058880436043157480306769687715032821521843200118249137147659210024411452503987109625756500644905758435952470879649929148778776916203856174393009373141238662958631313551295116150894774720572863849577622151344064300129473567606033216152301110824473457816633115990816272863026558940633672524068439474950868875560498191156274724377013490361744427868967151699122138327562711805847878381703791696731079660218243565259142889428257980612898547362994899093356011366717212675338556159018374070551830053281897784711465718549879279305627355599228303152685647699094125101273269893165378559465457250175708103200758639628788711688266354011698263990411309228463329622349145325254285704707091764802006891788378230196309499059201560464738256520988282619456181761367375671397046308378375761652410401519493754475992191066940858058524381263528064792482892287146392715881180025874074481704028129958567024662727134331503160063488563362804449597014326185395347218782847129140267558353251378629535842800972101152110008266733397902053703088967213673927580043471490412952277114239368182624142817935129159270744015252095091848955039199981300078572219559345669682383624219424171909522227454688916401331746627912417075080985708613506286748487377041276423110142795414696354688341163915770236301006197223539579746914564534491463331621220896796013622426598441957371563539382624502964849151331384585294688759266365330003775791536127609979279027638413109772879224079621482719056333414353571071812883866472205093901960508314715032103507472144456559739732116008117826859433582413945322329370436317797423154906572867925013771722575848355998165771207878078667008834857628898688756129494482386483125305334487351182504807296419799559000867837771794378041267097107441139923643000225428238047580780454474545239114387476239730354572655472650013556222721669154161959071965552599504216859772996407430731294333688882769187206966806040304552443263440877077697638757733758337863152894466753161955424025725269172244925959078452906653480553223147080411618321313498256621562138494275943812342438947725812888999748216779845277510562317398980088607366162858294309646536927326438669919049552222967276523119668672149168789948979513502144911149012983707549224904342897102007849951173064016533086474672418805980965640188188577432522761802947290255469276436423372394692938240651599941541326896731197564478607105158888311409014743046808889163236422474337658203777982130610183873615727263012551380301767111258677963002930306949336007636504808992905912288212613247105537806522463945176297874830602482877337816098742137374375777489028274013650085232896523700253211230024994503506206207672475163385047226663518015769282323031692819956828079890916294225752718551286817223551892050287934059755995429593966422052328696396585319410115954661030912283040790566505259689557510102236563033079879519975971729687032954045326463411214195229426918839810110037407939575216347986027282376742666104149279150103173954321698821471199621977245329699836453950530162002117116289527238493594392342926590799040686797191002538092331422589189063403530834651776819675171968960811997763014499599542700832736645856986724806426331387774127582444364463386951382274574803876254414009805348135156316418891874980373059806020856066798311176038081201951995779263000421509856871489975796433790169606776182638247380615497697881778153857430436609099888868011499082131051316272358568141579146322454172392988119075577378841917400318935929042646668832965727997893414851917775791075097714276473604520395787713464646111359851748712031367627456829179706928064109649570077319791674391404986858362854526777341427262739682087876471538317352127548902469872584212241175651603162083990607101506677115863466207443880652278631637605722387142589116377756080542866078311918959648671451090877192545702943851553084575357835643630886379293081084907243271292455022093438415085512754550113116208416922292679607507338188926596926313934181374263807157726689343934870718377993238618443755684728930128694408960676906161771669666153172815022101518073463555307208864661053975566996350224178082127505141427896704802941240387253513767524941435800825155233574430776365728384609255147310892804476246750036813374400083837912694465344356973548681309955403992675062366317684349582744141022711470361551097281113557345644215660010620043230144369064896246083291982167664153737648313490010869479867236384203521236201787784195763157527347947576745766331994459356490027157202362432647856086222574417642938120289293720842777303669294646371668611202601262124316883927548793851667366171808232515606903698303473425007999952738021072079595575806740071465648647673876945588457463857253783713710241771715244381712210446796519104912980008894429336937209701546686876886257037148285667530454169277752824817135375310818531538957482642022432771935869779370918171085937467346902705280518945755529628561388048433204849558070097299411503002765483313495411076181845309612498661151824022911265515087184552375983351634784952311699407004172465946061608959993923463012371680357048055353737062156566335161100765218166136492167665648953358767887075374384272093266986371136206878596693708075024160721390379856822291724015442723948340487755365151083209287932231906366436496287635750391165126238016890358426386828970143196104692065405769622066665345385881062115054878000848508021696796052077992410548506129225095628107024534359821004757462962868832839138350723403012113283594637615459696266610341383789323297269449312783854127410136227508167715709214700656204611085354938522027514843757518831904805508378933041331134145574005933025894546527897420274635206319754850366439971876305457635786661131480488585158315770429276120314883372684476586729151070238897524210020607974585451507095140040739977763768579146432607693146954641748992705753793466339891793875105318694954921907288733146253750596609898604479789137388819647798427810782750575741546494454937047413581080663257168497893065829287327092890641967837101292174135046020087027003048267428471113568756035932268945297077520983144020084043522909629647931184457211387226133457646964386610077815200563902671424854117343499749610848017307414554724136078558320800143308012295126438802993352219982522386947413942942113956145385736140523874433416383595853763634737703663484949207853490613074376133248754268059949053889493906753362701698226517366307270985823786165130428713228054247339153513419908720414183197974207892843563643847736996971857838120571808028277842159551853909824531052073566607462067849078783567579713690761038968627869436228104034810695901628717611343254507991412540140959460313719390017150852624874135717998553111012109117713929881102495049763503830538392118031300239678228705033297001639396180130795549679813257570436625818812699893677906917599994717762368902501654588497543185461750898192842141074470959059257962506432217913803716902760143578810605359525910629969375598416700967663716457970961766913899379584863811882501895995813713111943319764888279365990736585157638162734860014390191031076517268849213905562365643039220933587383712743403622449753800907959958994151267543198443127266766394537252107469388323104228586639526813676055017396840366685435717784437362895682738214269135733232949406713913245629435763435019977908117689503072582113825376271456407446394933742012442383472752864639815172130638306671569739694815039157531276550864262663787499629442743949608708432566435250362582307008970913442683264826640087363861366381027157674877263097023025147171587140013524673379962240252630685526757949389834702603937615755537877157779097893427912024807955546495205442583223359724677980249023999198177904201230126809337992131174417425577362482603630876588948404856432251372741599184094098668662626480192848360257492346528131079494792778375527675532742911987403149562205880069799060204347341709555599964399551622231432850199615235723503374715330454659640053834224769709042007210856917197515870921794499302359370852550755976238370670385670757036258067608988232850201286342854417035667915972238125629474953181756348260360782802321737886490407649765135951672873830993726516727567993209095899645769545095851871186465939524069568974158362047014367063893101286960538458465835371550931422478847813551505260696302437306109032769834418135975035758591332670159576970928177171760500393870391037888993658565705878446381024086687716345638657943157522646571762278224382987031021462163190215010122344600639947393072882252339294509008267563304557866505697524723125991830183676640555131690374841431896911190529426285114799240576313352997520338520181631484948193794450426629737311719767640206429005516390897457652420947953081466051001464735510843965635837735476309207338081977027941113666937141105633581527644537803249590530127402483060510960205039357714365119054417346008890383987421603862922254990917373932964650027357777078771690681496826675646283067529294443954672866873870434882061205159648999056217157324362380674405193785947034125289321307589992121592919982341969384772662376387136623629699740465225386875140857344866729577754624485339631305885680014555417463661262916403420797611940353212373078367948006373114867300969999493912448583652695918496983339100780112256629886942059666008857576524466583552586067825131840397755332344250420385196118572138301445836635422698943198825444413539819431754376441042502654536204130532854472530137151747778404934047459855254588738812033045627955231118678847515669410764390585472329644265913115636010961380463974010928493984933267168201769678703679993550428855906276395046210058366242840495805791748087411306676781437439530637400042777721122279243960407926899001104110927041969241995178481898086063581868546025292535332151716419263958443560800635297603998514996811388936592921853804973427811064375486581273787082131026538470633075415288722448573274796979526268834038233315580634055755321152367787195753642168022191549847764056285276404833775488506436398745835529254403890834478877323427595757606149832888492748230052308247393010124959282973777399097741287702322936984657286872284008329365035515022569696128105638991869995483324928573391670943591530402765452984859858920430800815027326054935888717327285933108555150563180941981718641564620612810856835117062627320238689319716227814979530541576912537823865572085343407403708846579166708518433749143802870613454165612431085637640083901600685267689203216137953391912761453957064692892883934876302181660406440506938802170093906050978578853764292668342205101582948162676923947410818428135311993766073022819294456990528158163297663074395851704726355774671735709597979548534925396744333737698447913835736310440380716629359548500613815693770679985402598085656795134175468945465680312872783156691261556785369145451899165524568166605195385496900923194943507653607769474195646127292252156892650153419297435339180225688590771616799472311438766548496971257279965565992965305849976169325885220650880313529606908130962069065135707103825502620560507473416450759657957444378297430400003665134207307082477821743162647329768805494618469118305323835154158788809151520908098138263284180790144731212202627796361684167027213152075817075290628832985680523260050598489422600573725035962556200199645844005376244484297898487859667959565035390454857367028788902244679876513055296937990217652010659678716175914844676045557532227519566603448987664731355559102735195941140323644399109680032650572369472769240586510736980307615747888377283489053035587014676365585411322529828210167000058241660118968771527063064208299874310653490410181393842017241882571888115929698546322053760461710949629269788291976788659219576896853396593916900702287661094595767862359071371825339041621112354839309090386389288496400859904647219321011110146375187122532439590577716569224775737923051899779642604280269953688164985864650647104979143799488314846381980135944059481301004095504027607708246464447266749202694531368872589605936042790315911541274652861437136733617580334781174000288328331247748190952718919674957352210172359777498058939997635713720548584812232155650675059018493165084138672635192768423121864137024712578868455721949615767191532650197411023984788871179906832493607628030866857706933956217329582106632457816172396794953464024836705391376174684539773785461132418571483217347423258157149756194053724078921135160049251682936550480329874656539217634013611369868821177363993848439392693280953383198683143415664493026404900617018396125278333801466050382517436980594273826236555852418613010900706341935171074505048571553338364758558409471803117475669157649281427938334212531818028239109103144016946018233829212751632258474261121454535000648308808375109496029550603687914012414200884529742061057351254390527248587923617382580900441021708958369328482741629432305061000774477131395028905989204626857758084073187644926838056157618900824684558031224765134603626856045388481057044936204789103695363294758206793852074403266027502799081805337633497976712155923783743207703927189941190836754140598145856722627763226846178858275656709282281251504250889393091860854911930551000955327729228457661794275763062328634782159101049919170378121565332246563701716070909650675111956806370869211448191894119033656686483219774815899237452693756972427952951567921427561428677840788031106563772586742535524098952107286272447991653246683243520237582557009052543024932955958467835907488207405355716660771634001350361373768768752886095764213283735735205491820197403422341465510910223505428683199580935640580555491805005384044663481743962572643141528644010031658904971340111955428480083054768782816294647932551084237624871215863724862347425252224119564600333353432637976002036273563013545527989526929021405303034275816203481451063499278568870740138889819298640021838996538523808273192610051001521575844661296642955992877019229339186322075274816396308655689536497291215376859522592220329305438112771113623095797473482532346378131384118697287006804050427718685804309077378261805665471286229705032947784623520495374057059373595978075105281538417200489831514356457133631626668998916928166818433299186263747921210150876339345431343295836525491304669900653885219621106182407771150979034399155817846079668028182278369384143084070550447967222603259685389754608483375308883234263056962978009629478560600210157285491438796551398076493534781111442563600067759387842350943702010352223071632870249209476993292216862679871659976355167584075265961807162989002325112132110846569376788668771480760215156984473333460179167360965383706496751142180339840774171269375540692010534918755054454026805131989937406945084571974082608414200739064223984030484609059554030069399589518644288528607062172637537833396447406642057514315840305378566427116171720659565326831206988995232481971040691152892427053488510735922033568179309887629666370053753301442339382117882678187046194392528504747199364454021447831451644290368195430160197818761467045516850833315009150836291724181605805682390233149098150779375208445231111609996148689518730833053981851828514862952315143250335366665776203967043382462120982727703880266819783865188533888123350090792189635778917931661850349953047536381144015983486751457529664638196687428349516775465838489914850195907481669588802103357169933921357015106201472510662025569235505942733571098680324787947500087668124476038950589919899436707148971322876266813860278995101020367200691774076094367218239212553265253590663338896593195360286918877249002006711237301733964557945742167452669289482079218916028162798496217584355755879214995998297450888900401930619571967362424027855165461442383010165957002111231664725803438143935497157818940414233134150690252010012407004247801086609618707463399219506193577173922846178962820708624679025975266900751293242724604084650117163557305842256038012709554453954316225532414482865169246965488323418105932682390089973166312701173386080384817892618765022709241120633263772869354550583377651602330049574823920864199562304777923960607472512824936402597063304222033530915686863222902814680709412054458234555275724391937663855593267167315712663697225750777088329734437161154247843712105778017976746060908720421025640852020745862766998482922652990361758173125843927533201478243510386917212487774843482675947086248364205946339643376425208550535813395027096237970860060848312511326830760903807682830226582264441897485931853447512424787482673437077210839494976789813093652296233520663992294269935357811550401409600041240908002634906823944119623122874237578017663258121685691784746943710995665480691148421464833589437239325476659069622390893416361603177585444756107429674029994392351692851469703787062312421024653125341273309871561892450208387584937488016396099053152987899852717490001985829123406479152161790524671522987114524469467257349803646333320451560187734876154387390765605622671704121568204456462077249538373935701491357607819028136893038454348361426403648988846769697641555535831730848317919028729545010298552792410107784756430433915272159995492460605489852923204923803221635969992406945755012246720089060073163115044157466029794125012417187907451690076207559144708620096080000455973926561417916773037912186268428805149180160758657514569431510405689576681246379587373755544707830068879788744897923069251468788032706767778424854663648911657086157419548762711393597724011464620118252386078429796521917940755599256851735056161373052000050389854463114896508106262476484989600893059866681235989866738791749067803795189726864538538096626170274084179886081564226968341884512408216431625717618286256542696645912481246486990997255284369321759408363368223331279034036921140639719111212355854497945990274509213577006131975512009693272324726496249128478068315501203841416886182828360818751922361868724122611429805078618485875331800244140138804165334488274712967333469537600036954269030892020381471180697427385748200879105160108614629341646805192417160733815188672690197031424207286266001245962462710827131905709410491145888145106233849052470251041309148997791167079812923265993183499335593792045838426517114235390361285350686109720608256016500455795440417337895581517456755499567532754432170363858571016789709613576845485421444572617636270879822747461123901128653446018790029944467189436375225631722268102251751381699529355199949354780965094448278750151612465522913531423772254453479374802175601214315469396892691074869939103228294394109368890167897791537607012653870584013130991951513874408380702488089011194873337757104138082314671771536834520914460761925454415868037155542740346212873427785385703464999218087810774036882716664477636576889846951182394459162821685948836307519950435671844401379168405961148903481487647209290429336605943156473986606052505466362265323040767941764943563508948604744554195062067225117343767505555282911628322411398420692532569480510819536636509631703061937154335224341588947256358073096237074393749837325289307695941142257760539363742830796924813604665375813936200442513229568965925515726717284567771829910856851029211155636577116681328524315576892792619611151456633606129453487589619358894522370898752336896369553943175246091130410314931454197645166084908532222718936817177198639644027822772444555571539020486140181077651838825382747095053502462045635256528861241944771910167163504016686824956291106967464490498340673559819243331250483354159776481119832226344169563912387256110179836155915047277961699381755840720286371260366382771921407265333330099095409194695409098378016902011068935577284902309334717024361087712743349128297993321324289159935766123674334124189045320515143292876328390367134190919298912913492376284348161332168450213637997433601135404541730136025311173889287990997790458155206476163400580553463130848986099370347749111081016202106051117743808200176483027215881726372981132943561853945650121846617862249874854242297836514773944860530331088395339283788555979932988946087632786670254606370487371814865722970119512171850714761876264238445998799637241098750781864850079904132136958914251161666588673380732603890901659846817892420953952881745688573985661152104617335323858829535530712368749164680342492625640406056702388104356746012697205646836395187659953689766356388464981584252914357882753680516089205849342488868623926455192525273060048314578754421260338536837236528470446995155775524457721840615756053532816827198418356901909845758915637239346882676028304244561246649217312506680328251801548307297272079680066046173587924805018814859284292565605160992071393345073648446726743949284762443834075579262218578424373178074243945036659240058266822561876569549808736370223321172620090867405679569764971900840407050610614540650053463622458542555376158049528478695671031457471052602564512999936747565152633293705948945298581371681824965228854208406394371524425081647770675842101567222083667666782837322498200969865555139454136676234489733708383267458727949061986406876758419329243048987847114916116103559382369649606918572421165214600813915484720445501934912190803950086980471025766194419435024319094785947703192004103108742574310693541251380364331888917016758800945381532979021482734712408378902606967772321483711367587914262990151637926239484831072879150491945535057210366410176416944214535647158482839333127785365375142045965343689465790690389578431627126710644560338639533383412532441675956883002512717777888579036590028019251429977404823240011718624235900805396006363525491101967840574595336923639353152150396688335900992626709214313634757797620861286560571130220309655103626140566684040084516698320766948589173464761580863356155880981238710484976162378448122383803053438465483973673725230543228507382081027592333449463144333876921220352884838117531942831602304624270153651370357271828039462245779601243891805389874808665055835341443599938075767484600619566291905167151822861586098347571420725521297684018760842353646519915476180631124479958630472671865165233438643987029656674874429711540818886431174052896217766950185226044276044053946880640626212928780551797022855892732977556487320701544282454408352545704263999834410007051065003483608263473852179598902312018169076312357699714818379085838261333393140491075084173467923312134839740197240444261412854822461629526775431703016193780258401131452650892512931326320528016189144811579422540429853776880123219151816477566607565091354682361692114615761872410099069308515461667564222978177459136668818730795608257014028810557209228800367157833122857130353107807704682303353033525398780487990542982106780791171994792646287486180455833682774057929812204695181029498250061923319151862815351574805153117987147936858678850143567296936101035103030592778874927219714751042485709433949662435825390681934858769956957819494155801994122255762763404162989770946168272160268696542761741748631755912972887746999139511372700346945398499322287258156350059852516743440363447172133823798918911693323220128555510803588551796149933515565797294804662656315647981337026111495203827851455541803336418139860147208004627373160385654579590388524832150943778362857747616545180447889454152177037315831331942132932389810064211255327733877013143946768409770483924336606340136626315276719483675060554890173925939172814658595470790089362089425087205425360782778433088320599855377441402918875993113205820731440041779463882527425026644325927613895082527941712676835431308019640030755708440649912762682759876564242164632840658508482521003931378452763678927623929010014909201384472020028841778514457514427614370535300416141343853627288000264295636000375632635289631182199267003313018958279545300461936059947807249212885509584968300375653130338205320579347983730327801965487075385274062508891425118036000259207868210489685251670217656575000233837425776118713624520412859717192717328073247731647135240847694475601598929036723536962044162281751087560432717562961201060840993346978787327247562247385243952890641599803316417194827651196387284895531696853818443450355826909261969218180678606231921257440448301802701872209060575730111293835889262492155066442077767449545512664184811278858785443205686159077035290717839890794588521487783076179375811466471541072249588955920895273894495947154933699248082212852671802761399071140889932619443551656218251334980368454004118023220275820777510965798892221549448047577239820804225073935324836695671157221182465431378994259021988455444337039363600623555710837692121981055810878246876264283741064574621219369063209409623412914799608285907891998493965671400644077359311540836618820060666347750445248100079152184055989351063924900497488380545123661728412014266998137939414485798257862350400880887281752450203960845796121199417793599075447459355223463025081338095771774174089461717006242019407243160059926404456657577680314456788777838727316983074734811073511355124005068428747665684371113363138835560238645349399221963610596906875307988637855246542026396805815254219235456407106178312008715220580567232764960645544963771895157788234030454109133946410886827625536000198277649172576267524761461423833926948108192792374104204935048517742169133569826957502155336505732214796642162315801387009453661143268033545108535931931487681590684098713345055893251102781089324530302324059972629368896149989628825525489509156057999808589803862020770145569099294724038227441289265839580375713462217882200976417659119899480877884260228933769842901756796733081834206973040904963790515879100875901293988222570183968500509938565976697875431679156528635503244875243126866666566791249525819429268200839366249824972474369075725629480096820947898594740666874561162547348652443899583016098983121419419064063936665977324149292832674559984638565394550064319997240108982761120608245826733551743355923877664169998632803771587749369739975122403880515211079579687589643368135250932228638809187141173382014159372115754612610673909245800355226099957723774609059775303748040465127582592788838083030942023448754912960440483478876056082730231039789878441133704111704751357880118229190283789799671919092216580367851652897376469194504641468658288084814241828967966274931974005799107366400097704221909191692328671014765621203408519145133138002322570779416539258857413643842980388267865525433756884592342813865317033420131849055367618012770019757602324314769594313024427136386842799369709961565967784298956130900885747619887719099362021530680710850082843582428162276214974132663575978732434523523121390496944425720786665627448360917457353609960797877917230921712364383338814334125433484538880372329831258041519669302737987351893614544041465387018367151600361822354410436810367303840214491274644221920449058850958757646619321557698584832791929498929023209134790186765929771863178622222372301128099670487925489030481014381261746367726093595896992195857690620319522121802858253301126716852995230987926227056878829281661069722967981649424477670143228439446560257967386577994710133311672693345202440283392290641180218435455937783795007078434401557442049854543740254190048329016208067208041716876616839354490030928826397258926683944855154484594153140949409929692967151967610369262545326354449443001080931702919484183227759891931529165061954783058177680817582724710219937937699366125188544706542670153429446410920327365519596213848648575317237153888264070616889092349978028831246536779624877342074032902572753663149989625457812300502460277469474100509783153021557242890319436282125110870638410388784127783620929275066715292371351711290228344676174858968343131811432943046661634779557989781412593724941300925721722430057075852103045617944688487444004896246386255251922130705374608734912871669759896340243835752148352023667891782724152747838917172454127433308007364626296570575192636253037296608675046086480037505495762656080479651110556762937020822629443193820244008514489307355996323872668533017797098344772682481906716792564287789155427235512995711007842659274858365274765108881360766659358152909871491091044475554244116123096123214556988629744390109779653322577060741120703517073248471846898217075769949468691388802671017399353596286384515325662629542149673009912784481245681521502589830622882247625438080384581643997632924835785597616955209054167782284373306533268385684639957427741882587904495756523993940141290419574940019655155622592018549748683550421632415340270235193637354849561684847817161399675576317005400183575537302620467799910398122339464940950198116507042790859435631366995003012076463742436942882460149392130708686955315194808334967464192335570703079504593513894931818172415281085957241257181039875734629478500521430872890832871159206139887175433492628663490956964757869376904040629569549624955451769247900689144967376328558834551368688302829291633077109459969716610039391120269740953966114210751979689299208602019792949821725360238584751244387502988502787469719182582574323974396747353877594908303894067335627366955164865447533400650822099536509240951742247623414829285976792145960520202596104509212175854704074479506189984612192228541194610538319896420528667832557811318535492534273794522427445914233657015167307538745954054235787631374396558316210354952795610692348378675572883131601117743935237380334230989662300341728870334786844205429993883572811559955565638340810478808836524776995567125416136770050183158595701818283207861715708200635586655602654285819887947145247577913802064381401259158859808330976989833273900055812513753427134327568198909949955927438891437379076385121906972097525526958004041006318247613169913331397524007677407650240295101237168729934162115580205562021618351514605390448275011693685030488470476909382775145807263397282249527847932373803538262952212340134284536031973343258756823941884786979709957181751324676508224105357394567758133775522600928856819215840183889260031852386221965074942575841835703111048713835214445535805495868464175651553935784845882593277840038456918992092398496090004041489077528624595228214951446441000828434048040817513314184750601316419461825435574455345676819796018265058669871447139222108604005241663364738409239320985684312809667870842592675418313778796227499634305394527525307151815200699801503015638654254473908243968973061325830600780523991143198127367909912554959988983264930346105339152308708621156044888509330526705808055327962561438911640658044537687510862997889814003121191716050622046295153481508902973635529521713717318318973634811061643570144684102034477185170179969113912013516091196881545904703646749658522072359679308442366958978505689821465815602463493260428071714260667874045015237889213549123501332599311791947997945676572353623688014229207432906468230007109375189572284070839165833363399652442685226023584154684138157840563910579370780916705955414127775993261556468985223615144482649093507667562448342596185267768332451038483363283136691241737658367556750102872015941472293522094909405828447906642057414274552560359100421570174167474391749943596621703221064057973235799267601962144020508318385452671133562199416889234531124113236005081478343863462232393699286164945777390819007046873860431484586632417745218374810862332202113774963276506182975098889082813551662387690430994820277319336455849434851622181448547712367422980820003481683386376853186423658111782396131266326262772764625544753704539689030992432602467915034493807152471887791681104045220379660936878648999076975544105071274578033644609444961233735136049492518910219726272463755108132852123271634930754721430769810580279601014977225144381232686436836758452359188803638136523813405248127304258764328824710280057987028958492999682334331190560949176840757478216317904817809774902361674750703024243601473406884819277756184156196812707225080269856619433777858217613701055413867897742292306694893235777904595455497612127783676519756047585276010379163731002781404786095493303612701509055183310752002784552680342689531674931360462568887715891129117629902624926802721525557042620513241572470761257591514312292172285824824864616905599506544454534511609274177858619889459951026442365287739551711500831423661465815720765790559700957242157213352711379800717178903063873942890030443231184166421510322222696256253874583400898029090035693141097376486715362973170312181275948635370824127725963581985063221685407553624904634825583373241896203357668408314002685252858602683036492772209113112608799396601373402739203380934622278141698800240396200189477185002070235537190285275045170762185481309537476624785693350096608881176763167269094443567458644002063756892263293586741634816796440587156362111600365191998208834019861818070462679744093392753610545001998547542828450422276584315346559790801104101083173015007337480257001785279223607125413281839164570593581117937551401965159835063671432807160593518921009045762664477228385750039676187000950886946544327707081228593804004055346154905750049911772140636673339153756543580933487312926483164458518215742420896311475270600585692567433402441724271017232086223759341094869883192976451770711366958736173264889118088353011493752507954156435064481151634815931748312678897593349698874160922806701938332384977240919419946236993294601605476231665294597734504612153968603379566937953911916331380665279880682644617508488573273538566273274428925262875983521316745366184649228150704293093439939139057049523121769974990251683007195383343507781880466832352075097255839036600837282217848222545980246107693888010280099376225045362952587200031369165294789547475650824008842316400590733781741962829069928631525493417558279489524933163012387898379646893323858542287353690694631459405507770810341142481027929120124949707019335299387447086997615963196961393464887230337358253426866480989373371479357770410785319024505621498241988088820764566078563814969331491272020200597458381643187251231242997891781841585457960558027972795477989798468424158758477157705629770049306998351245952570948787726652962255768308513084868583709615768034663804019022890140168834336036021732199144760301805994836557060560494773797892730925042579124158982445093395969450376257436970850215768947041647323868710128490110581178181323402374956243317084867102229060009754695708954034153296832835076649009186776952078506374294448453521368576460590337803988355292959292730776836018397221837788758751434753593287707179001895497500483122778884082292306197804145520173267306320446465839898387499336866664410633077502781269622182639831512566218496884648538997302542413486849324257268092555155310169135827270988342658567657712783943271932809038699758315372392658302394488103809959853533213325327279904842519962328091559574763309510896551967240294105143423240715941675036406021946340768928485367051537003744508091020020332950320719473471619568145706381943354937644515819948199234522529445073434061790736590239123870219390879343484713772383177214573060472380679013771488460894312542295235667261514343136155503915410664927412612849854402947277922550885567280092470434074233482886426757637990761589911137700073857477525591016827501668084569252954509009671314125905402277947853610943076389078619493579477839281609782533397627806637418472689144695988131749298143533379306863351163581832517106870629658803732674982596292832940072057759913592217523190748906127965170824065356769615509835427255835783517597655685780217967461061467289591659547964742830538296311882260694362950104344014056012474519434319670834261980491241456852125301665900394308648639601616116041919159105427414022437790096553098563287962276778969250219340193908081468587510285176925810999438451107506076135620275396793004571651758404824590769179783886845204683275344983701820484849621103564466236503795770878287137441725706241234552356799987017094807896847800598772979292453188988751923575616732579842221982593610476194262475788615797447983278713718801289438583197861272358191219842012067137040273303509317109311064914336896342456798909335443261282272342046683989951851313253257741256231273891193252511050056272011462305626999851215754854371543152671176249715886070844034272820042887828208030671192717238724677341394776420741258312108637381200451548677189527091980985630727190436327987322660394560541798113563102925603523960965277237823621604143815297173321653641664250715135537473111904694880800413998372800107427373211539614756055289748022315308413323361977028901253806876415794598973127183353200330708578972288643464902109403162858156441351337452223482711487116132371171976227358170049560834102573388717134625018200101621929416402134140826380346471965357064912271751301547976365221974034155500083573084863471103936239075835570063751881426616179338085375501711021859001420073112438457981492480050708655371346919693451579273634635185628963904804237570357529602771753039824352181643676378094556998312872311262711958005302926303537697019993819232493879113588285848325796903132874424758841272400794270826378946065891679916638183614562214200460187502272653490304270911588521487066197374319026636067521402451905397795348528399638295549767096763345954108164381462237631186320732058554216070904844980371365653198958885756324326279018322540793048248218778610208705766308834098179260810593164745200274047287276555590891385544872835641308390621286716515496245289352511308280720272621011905133553677555249261206217307331970039195392048441735805359343701918399148325428665248588621144192691582314500256591559002278385147888732551801698663949912850077578665947039188841048331968606000963614695217235352042639425429142403871351252957387984657342670562758677645124157646856895807424471227931577182068652478458916768900310077131813494184556879760422581609951048254670504763920414642255722668008493338007317104148913978944231055934969554884482382061270621571193264751785418790508069742836700586501147803449123804717003932623744936451597696592357362991033101616559576811202864219064108755867990357120071578425660152414486804030670879498689538298996071147682085709442672010287678063671783258142244595372585593175606221518617651004650685824921078016003569998429901398062565520401919716588775929922708159148604036579659414026290768702941801827641980854494022941896248468418710385611926884737341240990629874245438607716602219970364926981173302290247635266168847287653725136668188566998470869828024235221319482886172871860253643001641014173560229641710374943612664341458010350719424960606284125383527974824222111018269293130430677668033812199719376690757581341560242778222329072448948746790744265011087142484842617431411365567393060591212721139649421917979441504563560820211640927352548446239595933533912011527240568718868600684882062015961121787343777736811096969775639852708173883452832969875978082720976642055214978578797388401808933137674335471633762622334004198136349505379144508274726692105327991676424310716148772692807087064217464209282843125949917527605845367961121586469177603950441967682482225216434413411024133613651825341327152554125830754443840854968057399685659729565234730972348706170071288924819929157576319874560634878340727925493200756625645216106183832623959861409676787425997228259845245120922153874388379922227263580279151346659060782995808134529484858071063663765485065908174791176705384160176666754969045251938239062291486431512203690451541106097553820549808264806197384962340759390393114292452919909437958946226356271395547674904205274091642161199331679446424823025461395673811887074638617655568784351136540662131228509041897643509346618597367215571071732080805036279190453263700408522459130420827337243912816658438374965478538930353263504486687205344661327712187644374702738801723037780773053761652896915608136320041922044351940188392868111782081492533936074154883391855142007419969372023852024997607455530435011049130358320222575964121632143581656386745041326691711263033105917937214989766717241214018665048478343179644602275805178789451845210524079310954489666485306958084409679634599445773377025281004129870209435487970939916918688291140966324453237326497634031468807717135198962197967615261117494360610308682601503684219432040167628007307005512841880388063302076186407470181844367294482812595723150964086602348194082379150826825531246906064418787941720825441245865309058024232426448177570114925972717842179902433985064731492315618582224384135087050468411246699989358409421429610404205097321205314565898499006664858667506849116814071925200492495188132638328037423834006453249747637315177039081448806803496943419290928127127537264957989593757376303577194114935494966819439718071326236385381110354081256563913899897556095365527922052896885401404137560058231753436859407087010976787702695039998177488240165068972077414371100176328979799173572083462863844044639703657004999110839891517596521354690656831212677953833072442075498938195818762000603282021616284774720392261263781370396160106900237737944281656000712831293648537533703446368016570176806850011521329210652002678674398199529519653113513364566169938963327334006188587367168156326966443404552003122063836592502480207379250964705709952798253978313586469004238480527011288584287182981404127914236697576135428664423970037649033345984341689611278131654606235651783551996055815525426465737856726058083477209048200438757465447336238900846412562710384671061220722379675784072754804357961545634890167623603161968355467553533079538824672950689161322565885248256785673213130935078934709431822486262089494706293781669255329575160900297175999706288944621852538984804478830654278732158700666049661407200119891334784551702416800841674839253057950821883390457034197054175784773702960595280410443691929797343280477252213942807303590020116759010071925702116780022450288494507734611999967408209665520830644948035966987972669139092302182363998616705970881476583433865696389896284417630844122686289608452854216214314999067399688318236453289476578181556281659854165002318168929562576008673664504579125457852686150667570171756836464916822036314339870373473266245650341827641078190941090486415617698263248782505433370986557066941736210191262266714285063863483776572968560993727282183042653009715608849964469549822934471187498091802632712991527489137118986317542004375071138553296598051493784914610371048135218203463476542640938489744080541099817268115840111112237713820527578156207514867163025285990231915054473144697784313086298223147650092878026536929963490499589982116810564837012864149951707875753108535250549668439679483424877194991696911856544438386060571496748648295895830909605918980585455864115707417174896090202915195536875823203932740129954751859562781475719561034952319648184695809281896615657979836269987063798385619965218355320708355206383085818841235876182733970543830034620377594222004444376771925788903181722231487639376147166658063897303699628077104473016820828872232950119079806110518003530681734018635920172902500929624110440036243799029844311556159220044848054097404457566306515635573357215751922847182298223310796736040976280767468273236320275916852451332115207973059072798631180081822988052257657881581858939991226475074753657343233502447330375132406937973925576657113992412586598221644027314908085562700490635886860087300107072335317343023154543484369863821102392580470196699952029375898581833557474458174779203890606677526197970384875788084227915655662225644239444927202749348379026760716248515776081384155864260366233325066255285519261395265879601675696117570054225286701138437363065094487322314870901972465278605694133917080634958026231481621672017193483985615981818722296180879396025051924118581742406942206890181998389245858463035285246711463050539546765173737971489917222865804898746768821109900049605799891576315705062113965324075568098290724847387391595432152402505531387495900825149651878381533390818866131019640670658174335639584202510841116136706783526344858505823355031597403473401754865079965598807379356212260074064333369998095727645645797696549265579095758398706541542702654518473316550819971540357465641099670047526481517371665144081775338068485369394440420440428409083474939073711455046568876706424352959513526725592483146295867277272115990936439870489227334807202488845737808226473488191486342676422266619569685476916978049387958951993243398576368047094994006299070249822444159772159225682284991196941840523383682144738181014301546850124670934198976486625679482823130990820459431247621748967598319776947407580340371190447879114751294363818086778290806822326900815339198583136603989758253417948772037162486563363290944679788827074204241390574756229193677327789266286513188991457019924995709769355559197740299890768370757933607835126712647457596390612475474101877092248532721254072061112020561583439258484648230934819655645924905954449859094654157023150279868410636212278150177887750906787820298810923453957108067244177777631524505368957799850940497533131265677340980774466332819387019246677030740439276538193409878125933966504770027844696108749132378891908624097834574063154863638798747042603061065121372058125791102688171524259809068788620805703770218272154726760586198247989206438102876815582673109890568155134514479967274378461856860544718150852715783690645336854801356563072901489129494718017202608897566871248789732259980381771138422368008543576085960841445022724379932029996023249341964876647796285028219175469684929703895548823631019170821018519115321596610107861816374522299136277098420493826779804374052127538698242452160948086316393046464561762469934837748796384101626915185988277949225273907823345518062490077892222795351393428420727714044033572289051765848354811470700214368896855879892096124507638145271773163042877253537466648442667083503272868087199957373305593571425921072432073692387917309369748355050538742666670824783390649595524443493964938329197395061381742673576617127561544898167393886980301604067067978283546885998888289260785299227486448233727067199657036205331912148226836052909691596989186202443731370524073235269183253788451719870646470375377080416808807401814052775991852619325303218732963862400105555699176060362267191718676367760518522046219664433094118883345235695840373878739074701748704999186549404551148101548031770937291684722749373172913112197679072673627605489675840332690349290629057560145866124476450986772163405519402658463100734474224404034131648635950297130554850911165205226017864594135262616444107023975741384350445218835911736802065442499095090720718273374753403851440151702947999006124970006697769612436864571996651718042932552453546708993335000110487515175505286751774481497647099689508893929588582875539543488795863818888641895711293446036730676003634553421759564431307770589533967060996808356371412587044092796245252045764992808870552272388127790407395809633377036732865978890271670593982848954031369865511445239204782746919408531684652749588253180463257050234390318660639116790303277760576150281383080193603843599412588998810491000610401343973980264085312925373459678099609070477311644208465736818337848997788214909689028941635620952681611536716985358979497698845158625034911961763158877677274762363320957313172184089658384942503605943559548985765645416792913738500299403890042757509679591219921333607279410985767320457252372753472474024740519912651752315733373380678742353368004294812762624205508568824729488121377820125660779314132619194230774723630155249579609918756767938265753006287975367937874176602892289236526647688862672688714063056403544654534763006549615302998705731897724979854007665002543036576886234847997424389472423060979598259286056598041836788834228936836430605950271819014487712404323967993071086773229139169892454733224733049738425876304395090541891005907122762986945417994835275521089016344684076849577984724331847645355479904817735463132161859003321842199271440757176208391756372508129024087446406333095156366819166023588108808942146984215678469411727332356168786682212171256315209273919965605824604937145841024276267147278220729553437539915202780155820499292297272576478272060945898927686491231492584734958733647980238347422862326910337022981257014011650020516730001198855619475976521055236528990663908871348830374539614290514251711599728139381215805494840724677855450190008139601000028394825669191457154202726008287434630555275870370819453879409770425113564328473697028951483106471329723722714361202096496807048250043776666196094611644700581658279064051643073831292189813728549993447409284677631679999955654954539740991176411791945377524661668846738163678516924015819802229738206795232657251169447139466460535013419598046724103045751412196780876497805279856453623831157168004935985913217464597225652484769099182695948398160751629944707092402341507933325614119312053176874107534572340710163129928380042034509574851021951017457023963480454097521122248354963016940595904233946733286131490302588677367587114649609985218098295591700373647754174679918124481795142113419883787209527254635862233830966976679739406458930840665965152220532728254875330111374191446847613251783686034659588273118339186003424436671955748994298119138584510111647749418152378098362251455682636535003383532665908926119422430926746013290024612246531874312065158708805954725013835817348389814029645943996265672872094451118347459993080608253147828419626711146434054439890344255889169585289597609028995505109834869772032615203197120800435101947019086053931538436320127860478439244828591120704876962676188020440392697190145911871258170672666406321092473062426000159728881959574861867687184286864629631195905527691106907674791192000929925273528160886599823928670831870129036085833595198497016382068300464054616322395982629124777277664144754014973280599066265883523722724099224341295785319599549236326837136793335954061980127072286710888511067122974368253956459719693167061943266573421130530402535889051786247640118385902642786766514918744341170336968698717623013820672643674986366225983148204077485603206374039082741875861905171643201920907057452820953907193107555934375278820061703797652767781344089272131765097773019309875478315737737718561101632170399206759286378686223633271837586042208359330988119890208743466251369206206057031181929825632892400773609431987411736596674249579876308823011385936612435745398832707843125981071277512184645353605296807899132030803438511124539230591135537211515642534701979322663108642432520111274565631176558212858196939606852718637107186503968680319738995745564235575917462744312757548803070932368215806609750944229793695331741123861880941087613819029696997172938801993303057716688165080304656647993113587468155377838581856663711896951899429639384311038551048635670187930428523641925530703310533437928853477480758808650011525446405057107261581937383922775047213980999979312101498543149252701060805879135212307230981132302113876218957796922392828518135921514766180718655412931203029848838472125605537047700556151814190570404724646505643701160084008673311463886905231759861736017148036035379560511742342816992552665349034563184319226370359602067775932455238936944905318356357991221308211049250641464938597662149029111727544614504376201650208184947355982328967355037345497718068881794296865367662468355792531869010939226263209059161347848745311882676329913038657376972239451447125011399445761994030387290527146711726190768413579709589298402686279265264265768861983106058349419705341785902951185641804430886610348105502512409143457794536315115687612945120645429044609194367638839312234763235712017750505337362632788607007844684644579155072538473127252151247322838688820836721436259438719841870822506027355299751127657109406123740505007640559738436596629641285300658740849009965707029092348947061942234376082533674847343809638934794319396420129893308537624560668981269536973806485436158257663453030923389167148741412886867999699585928689744834874426134957375715335553251113320740664770292526265244849012967378590658474144626434019296695500863893793403616823672111604374788055189404210334238160534403839035835437501484974379232643947564095837846387353303023115925149030290914342943367094996807893740899288074361974568486318033776782437021773479874337267681823908107003448892728021813933933698222101722982821294695836944307033060944995286893668391742403189120153925444304104765915358465980519621757765188635106170472292922442680113406140627761336439266994623995741324525583667312444673236916567039984121288249966572088626783522709363945013308605425211735383252332626016395952859870468512509776567536928600801299581079871669824688180080790540818962016330633846880930090154721473453547696228194238191502325013722814609235476286322513687949522793147103185698181939512722865585681973689712642295000803837284072531173858319333363701828010991237708747841018178001886002484972745113610483557998548148650609228770101116224633611112551614967139181366439289974439782282806793481996122532746390946905675758860587400947135600136494720986737508012968578498747213737177751996557367301723403082339877905802853077778648896204227244658045724518689168182257884279042139231621937356146607601865364878323540619155933467148533500215646896449847604852948363687286357926617693840007430621708597262027858117458676072197264629352037837544596589570805819504482769969958605001540318256176501317402608600631075067395023784401667589661247421151333043008779855557139530979835285660710611017168612276981185535512129403516954069487224911730139480250531767688005036030383177947026425008302404413947761352320707334313119189299689571730695366999547584355372357101024161648901166391255599525927241232714994144336494049242150596706695737346666551154481969536359458148553747372426766566021185954898058656550393845701635045761078871086299772782411349350595577427553650741549924232339155402328234176007933024685350056432912943204882861217004596380301145220357897178926217624322182784533413232670206655144184864552540671213527250312966583284808801157633450705816460058823931357992693573378984847342345803491604484413710723543140594383243824684166517131081729672731969916380013819522979795105495569614580793739337062225336352616624100347634530994454205102963809921590198330085600145525116664337699042236632162833812060570748799811316484090483972906252858516967951316357380708968986844233120531669841621331933801003707397901321718127776783774940250867910963223309480903269656872295992798594713372502090906826431653336142770008511556946757270751722181502240846510096314672673600824907054568942738011485321844373168001803213883572853008100828272040267533053454399206996101623116053165125777708067908795700462002013694925714568425446058158089029373568983640079996188516553941395686961924303907312708520529375571001070248833184968175603676126096686086389075278733954375884161724443299128312343445207961615448785837745928010799366002977639809685375596419359158399200162283288458516412664715529836190477879204212096288014823458813560119161207037903225161893369985579444286873023717195376230554638039280752397902332732005165934146606780054704806532109509910893179369891733194752993623809827095435025482766771665566275969401722414993896088121055664742483206196625089204915078359520855681603898581680382286565847095866423738785407590075084514734153034923626487982788197882226653663344217892392542100696158926797112401924532214772906089047313047211809108288591933446927934406701915688402520444672964113059279823047421284402842834988844650879343224518772940207320138198311245512051992096920785102008010588708458431594278316104081715157269154454888465697815740202840732500997128272788732404747532010575040192352870990303373675716899110669390159357143767490010812584691062277813420269903448194960993329288629643822140804195238210951940512069207762790721980701011430235343331898416682842965402703431474155481841096048586709459513397250491970821551052887475414505633664332989094167776551194388964431754369982132077708465761927662192807624646181356036987761344244069173745539248576924842953285553024276985303978202756564552999344920688072108390829314115226015188087238508827597363822288363896017917637563847293980605567717901474906935538596023295841872444354926548886416212180632249305496406186757182078908507729661752081742621748934878260035220249566203405129786242969662105429529512496920844875983576538135546487157600567603218673518989726034922832936821848530998602038556703003252041163540785005810094459643135089606088722635970793361471866287901534554599137493977998728754615794331002887770206820711293688488712850609242423281361225902980040939971710682232660329040311269925823526715663441604795440958682274038481835462326191259497439996316109836899658537452800194727011974307276091807411483747878118140746450259625346646271051357800854153927852343264900554573868326154022317430783612856719381028484107269139931870989220476169565667128280822234302025986157056609833817086471304171196508669025221622420197863256777592206181644626159214917678776556610554132281083665533868130192865076726260032425152932060311952978945224101707289950681318006887973727888332120265986259154656345789258112551522210051391749341515566565738893848862423826587815027077458320525590625434920899687378139729781277073712675818855419772008816799179848830003445230438820784402522172589320850917288051310689694685114121216529827814625084397077616144324973749704178856179110648767750875262572444406089996699782404469246054253318314734778129052021714895953142359177391160149426383161107797329979668617003982331792341028096221550850342959264446248041903747376719124210421236528796015624784150291592244253304158530974321751406276124329149276648715267864427770279714528450842758158997182807329505761271729431659082112830100701170891519726796633879360498287417737994805634580466698841765177726126896048430073285789024632072957321113336117037782103072498064586592744738519807267472204997653078284076089609850015714777708318846608369583916291044930476560245132203276545829162094544342824632439849831613795442081482968705265237579451425420738285346455272228278514390079529000280632367799514024541581545154984122043145775473136780126509314349082049811511868030865692389920940789285421634076745136251820941622298658045509697355789455277682613033000275516780392483251331820250434063344921306331714276599553908886149777975623026444005894459757083592390846390288789519045630224623974115039684866908302943573205713848110669395552009363224762011241432786451427321418474533817966187143879228941007005263804600196692421454651292058188454754857434260592593166163222311556544815935713425211932254045176314897507497581713308800567093926847852362049816374885970493195206870920170555727276682287255854317045162486267658865149126880760442159049611947284848020790129760758589967624655032458753121862478402229037698135035060206558317751805990909068556041290259877321056323165562018343055701946543759773598609345451828970219322547611415750847443469551575193392397800164803605582102175857001268388860093166463787519450888099130275757869111402680333669433285446214546559894516317477263429873334785363051778063565139840089755159686541680178241753689909453084968644717175199103309112560323460197127748314976813695936454152691959687647601581905068569487134214329597601254726509835484735837402840064230186790091261113291415442913672604064038398512136050807658146198153088332779657039865059343248179574393742764740394709402012830527049848247780631679873088152564801906799957828486701649485505270292221217336102817953657502745979146069507222101339281913175196706623652081010210325380669934356484068911479151474296684648184363731053092654172266395391004163834374937268210507716592923936845551775522466933474683551664979903817541427687322508574984845567837736111423979521803812751362222034973016732761059431295606556633982520259083857825624366548153165744187293419440065453227717761341930875009517031006897201265843363716815690230828203059885218260235673822603723673532986819079798160266220293197657884954120791198385827237470422798531387626950832512551094716419342610240771990739545403371095333159342000539793281519224298019529198073935428784337534773326344503012972591711212239549400533985640929372348165529599112378191655804169536399562917367029066069892300107394931623835433254342838958722579548622776975536735644515548485152828629336307047020868076513644869660111161248032676437823699657773829385512800683291641903709028016005971309371327157243087743221548955041036644325993758387811437245717314894907507318999643831100535924522555591862865665767338698812625062381169110515750025659990553376132329032998164147470082473907713234014513210580299480025498717696348203492683855825370533128280532891247311025280896093580250193306118014460514776685332403923348405970710006322533077832942387601224179187569877618839699927138067617203844527495247574566194896944537190292988581215141308164553223789460107254847495634010923202418618693722169679802526600273421111024015322830621756642616947746540899738298497753756947908609788972716153948952635838107527439708200814660322136376816690332261368422837898295993116731715660653102406035343094094852300954943519538061785555427527984320778678657449347740720335284370809354869783464740220986392736209935829731904756929153397235424139482977522695537765930857848922887276072992843387972453451196559483082905089374955992518868996561151294291173275415862492517078968082188956208349170711197140085450658177442029258159627165108669885377018939701688413929548561125973195865969961591119223653085442070144103472101436313240783302289663375523558087486097369268940774722767216430773171079772015724610011721556479013839853895322832790474398151356289356310920889278638832341690136664990121690517163950909768759373565590787130738710862832335986839406923893988233154947697347150960264453535512037956534340364222555546247056315523191349784210329245788346816395431218587499546992272381692018623861758081632133404356095252177192601886846727091094378840495274023392443381383439608696750657447925592963687168877573034195399724117044243784393140352143610900388433273489128182288095950033755152833094219879860733191107006597006244922787174281981511789701228445775928442454097337819861807555787720031624935134542224315468793814964312034956500063407914035868698364899604343572163947438241364840821181197855230903119625658357403401283485677429139630794966282820366459388718552675571528906187954809042194050020636569856433104134461284902165457697358419988682609438067838717791117369924072590191175430392454693876814618783813889050689513403823080801392851353464699478761245232546653157741113506006358202415775574849557893162064272613694790766604934427664481832002765781810133247779999471230549611841482328018555958904150569552291184518157566265758485896697263501943912320764155321464804585988796774180130849560005683264998992074826576567262989239288462772004140232970326315669272909631960031070906859018955563113960222117480271899897683512133775704709982782857815749616084101661735750436607689553952652606486393496779514186865376761585181141803039540679473762812488656041659242622102135597236953094746625841493738487010520357834662184266064236348440062229980973218138568056368971124333175493250193031214419550694200379071979310615540691313093171639139220990191331837276062523791226427291877296221811412183358230969401780964128740509838985104496684656147117287843807813446844991253319659188732650878200426912308384319147913474828080858889388050078775675821761845213750986962118538198803090621199044091336161507944195001918315382583330207442895172754506136109602645797424716546192343737138944230578992753769380738179737220730071637880257631998823493433887724325855064397623681401291348898321110739236909614924028770056809831379559743437242144076520974860608830441701931781640914228763421329648401339330557874734691935106318050338112860729129093281051366165660346444487892260592534124384060616874313418485544300435990374672577934230395442079322672111228012489183687953521900105716196465670340496078216430250969579161743563729247851861749303448837979548845931949558167221178517171219590017841976217080901705918733889612584080735680129730547673454534071917928128731084920254606179968772124852785073914346946210771354859333304472342122388103879258391171283296211674932101860769584421005209864565831815933116836053277440529384938032982813207018034612083704929228634091241331739654577246799434940938756313593429303040075305172469965619512924159817470005778920355986509801182341132593012405213569921327136093868572600789074271796240414554468201051062880862234090051623021280490228890237057487905465534588867077354173098248403532332730300966700376748795742478882550631754723548757719286215755538241859703865860250595039370097095111844854817684159146680182099415855193197705687354066305176960511765874931070186710120604967589796019607694409566612566795605216305472701839937206841095241457760403920530477268646768514703684684466059497926173438623038448829552534372228666507947867642594841109158872080047165753558646194776975301875937506667667469828105107639044424379454614523943059659334729008191965850450362083142090136258430982050957428581761886514991931532929187425569977715806698598283117578725460835849055888823486145690270420241956227490478315156490979108137910234348773806573175928949865638815414978036517735674555687888432635545908290588028353685531369538071918984764994938545352741245511730803515047852860126135512824045607180200421887811356294218161344993465988483599903737233989606126481972918290385381482209315474803053439838225551688254993784092115674566942409898131167050044336021775270795698059273011886685519772631739712460497235182055433866036839162442739796839603297925181134671615067910071647044671139328798537728346060256356097111982535890285227165030636810380449735096940598432190910425441082738654940144485750391352297136918211001698551548175060964494669637244287389140162530812446073055755893576511726296129152219911407117335716075183432352008079896554416354824728902394333086445897420810986648854285819974561751563199319670496797026608780340582279851905963640353950727769285704180955625727224818097386619641092719676342247470190593520359871371863107131995135449109243771204564032223182598710772592312565239775122220815918500864213319238461889567064136860525123313956791250837719450095405260962967522792289691474907876975891609045348607584851490877843151107465620389209378473869155778645407908369502537365867521732232963480297727862276797432342407511045243654002820187071119118381830616068759050813946182104160732958887067397030103768373921358707534863015414999704422861772775995029433052196009983903944226593193170133171785059002132950578447186113079251705138037037152156775118103572533311093359291682192333769245627472884590744467460882192709762383608855651459633006137494888130516917117456861693736600163264298277892255490043582195012918517691773258323068859830614732550793094106955992065639951720843813444721290909254929871125576822436798721128371593089978792908537917683725259014456003318380438557289965878033802228601959741685933817576903678485330505512125705243484564195456264409509482813048290064547734032106319220730529716733070886132472894398075473182575559952356676729038605414137466036526120559875856204790382209921646325356842777132657823741449423876677995553038505770411035278400610577904153724834954626704104560642302340021895143006734334469009027589754742316620171464261517553274403560995562214497577418155066441571714548894877075195794770249644445321224036387530285851741156672982864460008194959938337345653269082087817946257778846729700602373473726835135222121988137285948419662125397960328300651759661633887746592081663574230372977677478226397858610180399567514579089438320327014114732374063888495862636069667902924599390174810111547617761901921096959158205898709957196787705494434604526141148368042011016494688931265610032970666815958632152892064118281156429481624311935423825585310020550851356388520206548171649356272308496523351963901596265762821978618890417678815020355500298623113423903599509604515466988379018466081949614205259669561857341705933235610709527758585690765663253162601257843135558165568161928990756452277145206095638776011018043847276977016689382154163783631032531648670637447730902486226171031594185616893126058592494671759955437574250784355560931552677913914281547610482588023300762811946128721255286446761039529655881853314252222493889797028968728453377981198512187544659621276140291821101752909414155707586080569187394440450594612136802465547854656720063542835527483522912615135392887165178815518555494097672052394531284173970438575781207227317925281782153624282718998699354010730162658680979431400373514511016982286178884179606232130921726224131684417625347489717006434899236819130591000540219301752849784283719695338008300830926691970032158187674034754892681082317705017721022667480331028698063575764533836043406962201039065158445437810275729451407465664485636829991467809909403211387360777648396253531633932976767634957942309581525380976249778343341014150398221535299062820909520332868664198435607469048191739114244121377319064645667656396420394571558762428912374481727630405913797474706917335538103237981919460130262596918476432586320042107977354422249792111521369768653492867954856703269616692313050337532771767630227941204322593320021157530589722796304428667581201637900334424046802285168982078527720692035836432551681023038519155375291479215613922693828284092497008615587931176894846639647212327519164082251899439683435768944789536892705894201591543489701303106249133717456500522561990263515229846282573554899656378691335537627315723139250733707846683571423731191147170331183142126012119726089853465031611322910463294040995251657438892879902995205248189476352163433290026190995007449522083991355792477900267939856583809379735661621461659787518607030777110724062377375782772026475158799631016125924473600213995487038102444926702437403676509908652689145068475315719041799934998037455301339117606314383185195063606754493252079296493404117373951986787233674934919586779272188372180165421941856848959029236190042470493063697374137189442469380311048261914055365980241859356393037166336979675770101799359869963535290168406894561979956354900616478471797661398756467331211700245846477125986084625924596576261683134828054549079279276860575138644560923553616786762738197763644261283331817780188064042321664299154758307342176079079878650293631000235912220351730145874839666289083428689093968597554915576519271501270190029807440706138828238524832298916750113568277108664921631398715178554442980219604469638994221637468916005925922253068506798101667897976956511951598191813376615466246620272844591498658467577410960837504807068570774840463062867845474158226306172744343841986559158544388893401772729531832232357946422995282537112861725702759955421766349720362441515603289417279635932473825611818505635827685613124782755564937679578326995974351309519336827145895940317903443644047404386970276348191417894955158263712320586199666941152494977179686250236745822817203599521013821644630867097583733017798935493994661098706845476491817957610453947103374877210651032928546119106040399760967476690724619165295004001644348496014338718807377100592672573077495116242555776422423654292545824232179460918658818903681712995210820928221161932813112909930061882110368299292803378198570532282913566734349719265393671186089083223069049537787225013010518322966264593125832665896022686406240984154854128433272765935713279717914960242376247365812321952868760282968379930323017872994803180422585900207089196323916613156475683453676791467298458314368528554969999142502380685377409012790122508782959449433639124387646104530546675779744804110917687953577613457899216033414488617246015907758940348780476407335074322907762213144081054423295216082520199714507017901725328575210093269891848090281982055990675771632727281612288520162788319415791260644340189569656216484346657283093673866320215793432887853924321418125372309511713317875656903584733347558317966983956731439704496313319510150529896720349010667671845201464446205124639258309863169922432295245680552751996510437758550913120297880473777499179852066486106121974945170832847668254758291762423635567871133598971121505669077785408184874475460709677954231687675398829786276317100032273581469634553584234453897681638464268984374368222008768506815367932625467349050216012999283727171115067173075242430010169751246791484325438806847999148537428871168389484344544204001314560137039004180644881468641903656595085587652997496352088397828652227753035122890331876575312931527302232378004168464801659542645383230417342652680544101528793171252502412730633454351796110139367665847757901090575111026958636148815456209875685526872907516237064590555367877591225031942983317482230026622859049476787546748617510720842986326299188590231054050749412823076866489912625380798116423479243061756141325860123660292422426856508600791464586244371910784153405246499501153073626932424489637314815391557269007614302107407832570914193376522911691284406447046247653592959088914256940170609622533318751548653237827214016272320097398911162197107362370912109756228611825321954250529381894771561158445903286819821200250876884880279713807205157713099700287591646021963269914940825238013784781032252217301875985639768112517945012913120210283554634235941869912387103368534286796546401547212509239773029847212136306562416763790439814243744506867922285280539264564192467470414153810657604516331690196588673871888578492520683392768018264228194838361595627978757347353588125235213623747245421852829986152038516210831518048816720624955674772524190346401452782522045782104906707423110389448695810376131021909277116582006876893869422745847942512204412952764302403406737020564566503814698669613422346023955936343073190508166174063964936361784045850360468331316035550959548399901108791868538256200603455298171508028344896453780595450718300898542893834827663659699173876639900051472864595402961556633826097647571306980285688972354139432884023624946504147125322158065539482820877733345370680470257222488533783128812222785426144486448489156332526398085114618935223008337876138428063898746869997843918693657358502503079000573866764051379167429444349092234247944658294449695206336411484211650811844921616151939795845792442293486176555617085839284956116670973814204351286836977992265623721281734434818544156747363927733117889886643662039383583834519256574469608465220448033614149127558742957711607488330866202952069156294376351358821920030902521213654874694930797237274968979312622786895283586287586581863478981960207958884370694002018813336766854452510028909122539916687285844294783108292510164047506932621108677448081828193682942704721836758630726632132460137203008496096986332203230989834621783861027318504284594555237959909146367848877640938550739586213878890587509381123397704211455243305910600544405310163461135667760114724976332351253529499690222198285623309791328998307047354093088833177478171422175837632669962132703120538014150998894505749134775253928558510372972600988797927253435602540234503219430056398472760677835913041432321438551399922188025495400945211218718019533511191414799213265659423929516299140807420843868033495373228414314620311429709470964299242557349000932807235239391633163344650398129614752904231632210042532099728442974759118199743536779753128763780801459428743420197574833267591952427221329979004417722930146548400682288541067048511123828190435582953668094063926601020880897978208225917776538726763115725356708613764692310345294610547554006497456829919076673883980997687097485680422758431162433703589318130119202225342309277579172039475906140625469993875707638230785939468545515874332539427559060053158622546729046568386190189838536543213151441759734389565758126789241998190953317009300587799693242945397448152073143881547235773425384340888391529948383516838577943967918758404693085765730106393222827907896189795986303524048190221093953520284069325131082129425024222554647132363516547634008386837484061454010169168989299369016871842708934361653554264326683210001125710190480111230004745699628169623932249834486187538938200674302607177888979373696348119128486307777052723660210734625411250859168621988748242330983236303043514996727151268873697293285289436828422985750535555973010241288644040943335756974285415619949844776950787432344090568714217235936040053708490010588473330918453434196877134380344398903144548120202111918164129524280406262695561043319907572383762240135421733012583639572529232599974106457270470972334934148429224021235377377313358728986006634221654605116048973918183481380973039895269945653724888659931398026412128333516659584400822465310317246101989465039471398461466148824988573180086692691619221202186112121304614714648746922716807490509779433387573401827521217157540497123686948439206359941087047644357105818575630036111267740069206212872927434665725075363910665123033145776595305238647123423800965170330121213808741738851888402017048287006480294203299511604549054202518943647855143523963948090521373590888639231168614931636582947474479275296158455454847061898068628887662647127563126578425473652343039414769303273873638842578481754711323117392844417815312715894090722215278126448776447730946501288382557552115694443254611321031660371764215923983408468393999443547944112174275340267416146959672048730463664863483385187827126921922035850929556166628887635988208218844485662003579077601772762286785148218220129187951903045682182515122528072321553568382141600579521085795658294762056380820943515294303314527174241193357876078343113034416782351461968687706128137997790285525055201667879449852080202548544229942403266980366568343656740046212007410574994181322202246161182192935626654296035443551251219279526617147845811286805826372244334867740296655695582179434083087323980434589956829931480147528726138506526837086360986245213031895128521541050076883069595569143225083169628485094170748938872376716681472240393750828472022608614835574316625687942975905059120277189810801842246185509881801064922736376069874040906292691018501923165830806618299328259707049671523729280567368262073795789094308713295970577261492090819734463696873191766142539362902510435575043060220297627089164105487205864075704659680787510109550906674459149481515892123782740064575416739169798893588621278335857047824733012268812782719666384477231966329730116686609178975212252119386107378790026575979802565394008573389885014811885564973337336388108741320791888027721273664756210490832148980564772125048587087713410924184547294513172903874108399786753760007940617730633209238434065798520942102921746959326274720481183845297748155260078145552317964677769582620287598282759782568747919591425202055221249294125605419575591082286282392805104746520824928132914280347518373051834506337780661827260234807533976811024731370535833508069020863678528178711064705961880931122139816120458080552897127398507972355359170117626996502276271772189514946091080251832119237171393956460432832977881977525327429818049276113942735874259153558269747609357775170648301671003396902450549325146742028000238125435655671423863865213775227239175000018939542219738704960411014951676093208426971884978827812489781100421258406858923180107248591112419983266492046917361968676082686542134764122530888426979649166301107098104328740642072500163767193442264092771490512049782391271015220969264621358971294717556277448586127107528557556736752707924503572237944809068673168097299593356413190754956435268499909729570696816838155208324964614179288571680674918282339049950933333049836360665922234779147355492108203174909944655703504160020101945595883306944936425471254481977334985148743074608924371915475576033385721893719793104195593127375701058285531723155194151072818426380125945773008228294651155591121562939345404477979080109686586557174420563414523613337605630138679942789231721472893707428006476832856166799662876589067659390512869413977990999587695533689645916291482647351560231686775274764277267918223960896140062172348708433538035069655023206328978767501600411046184482943564534472639428549994272397741358274613307206265081900922454771687502151456058173383433115572891731146319763053173953011810010005955449872670037919787178098417238743969381015365623615557083351285079080530286507707331370446081770892179081246583211243380838572077947530932811136953764694848223211158258033122746115227116888629458205838633224562409075530130330448817343128003121722890564315905930476868155337619688256419125061070022485846835926826904344497070726071911400330509009445936389147703764258415618041422112865906516391798919981616408288749255142168830115869991427271409722777494855947896272815712634406046396002576349307217513815399248000238552075631541202255050937173068036588111794537338498632562865666900268597111016706234581562823326165609084517902071407555807024840986595731053822792843376849202595065137318325070505688712504549334348673187678936720798722761396167572090315938620349472171561679362176078135160262484539891498842662339380783719184738270286681567729635424782586246714598108185530745355329972718352613066620152740288976293843648003332695869318841338118174622651471333098781318739384077735311795212925439921287218232407844517113846639022092275648195232229724537865296344974228466016835588500091968573691236801132950892650946738845356467504353909140714399267554706724713195184719967119991809308269167794725486835980185614235704660026243723802927449254150109450290891097813127037901107414778000066626536746801434258428882094750176747151076298639091624696015688913725457836872329173951300731931662179480337714329405476544611624006508850348957471519841014920438988025644784511359199400946906063635011504505534731874575989460411657484123794682780717571347745213743489753112393044057955152376613469770665439216918425885044412716336200498316317073250148025736747918886834759959008651402787584940794144934029776777575039713753902909195445325206028033273671523185012490837296552938326720605954992050871017632177067816800370649223599055456629152366533606903460890188091182687146253363992125370626217394424838046339184014520947999123244183497272869217189882463166203766802399503060345874461052013926053265920961313596599249645944300224290804478864247756041508392139250305594567480980158865729100977777952618415738204046076081748706549850109774642867473435623928335959593605547344270765838661221219062867061485116641525082873577555158094095662855207127589594630859393160731133316773545100079671042405377366037568908439924713242459221622311392527559776757499708405750635130770151864940407825568004080163192035842719270582472809589983411217585588611753356434659120368571615873621281400163763521949710007034111291836457588519511125522746006592919116635896911102221640780578441043536481273004891465486828505375810652288878923201357470016547238597127141650129057772264191116931343372974561265175763904933042698296232348571964269245127945507454496677955745413168838550895326311183122199443859132479615950052289434216970605039874392992701058315725848804711990162000595185138069033574070910498840746025418870365925424335356770899150475869230556771858885875066005516261319371502489959472151502391072569403122158798395787789574181755377725617028480410948981706757863037099919273750417268850052175347802915251219493725902988497723317574422155308395867481722997771541340909155986732269956885574486088676746574434218698678811097233341125375900318800904232417178854108556269828337834842719885498669852236088921914769132304768287750705760924693906415760020454713067531739267246298405624413491204274584253627557219732616534742773507525159856170628411167951811744552851654902148973393721858927903541186917279359869585066743376884054978010780576422589360975573103653327701506272501458133599635497880320390215246259018505582351230416514867549553626418352548008139127302670744753759356119185476555164100285227244484526478261216707292234522752893100286874344169001487151104533852284409833436013520227161215453687472459670879306059175075184138524720953201256496490059652996075687200338019466786048315661111303980307504178559388473035022653599460971761375769818070847700751722002860802519975779405536896898708314813673503813274514122252870511131385845778316460050429985307644326118782682824013174270276133460082804850300593053516518591274079797389156562568371596695371590589373189482385307124208552533004379180418331784712473841913371254872285743372337858958824086020975343197436829093153926696663080560662659328286325458767240973861155582023541264633267771373484942570179228589833362805120430281540569056698848999573428255525787446344649996171231413028251847966896044682888599363165978786909770407666677810972103820881506237868687217267682708617624883710135994537400690976420909484689789417733589510474157930861466728578197622803009418950625583825265601604839032961488104371295729452370698599574960956866090441584169452778986116732155029923267816587386555731971220858077824855133689639694824242390524729490793325482157364239983291758539132951996879928905686787111845733412911475817798934738476795971876534777777967994215996834184503070884044696750310389591140369079707699402680016070014559112743949544494086013129405650160422939915864199494266780182891567351307096501966312171826034410272563639020748788583036832163735502482684360718706701461171678401886896883338819727318003378295577253430234274357750178522357107562322003917569859747182040646640932260340167827296304802481950274352058172904149174217890543789682382647937261947116256676537800865020041896745849418886584888520655433186516150043815894273476245632790422784927548775063126233119746984511680837133770929497050136040369976144367382100294089848013479657263131719739573956432748829992641488699598253982592349030412814342703191283271662502131792358008772944710593795341315868842102718015158592311757972680529000321776387123125688140959547343836255387086486098682568386344585579117579876129372365177030722834443304131247438424724355513737148142382900970327917405445695108954879602070194006427594480782078935669606207553269560418733953609833681045301351276252413348490541784415497133946499690026670449512904392500911360404491089166029811590421542871264713231492478587155279364501356282307919697472881103217505716827378359403176544678450511225168948787057699845211728496134974828339875735981793675448790196517568899617662712591207214392887835815049163665795584773381184522109459944938900788506335060974081238630440552082516339029753682679846888773126003525606697122564066720063013662592524037723436175059093462141467954585100099079905188882386369439749070057688117961403351885442121989308281651708087862317381201751981639331052647560092220383967067020209143038147830504513800389571421183512584361437797915611224047164495643409673676275590511367709914442281054437738070689065947892765424685309981305106130086388323966071541442045772636886902744801837630499233962113454025247932284836162314318711321524359781863590500413196165222786227583480345609981454536252898713463737485186523008148204395267277167399009604475630220704917014388456465154360184749943329846331658134219812761551841183078771487473535751985751061538514052691257281910716334221136131173938969838270398625507805494956077789876515380912951444042931363817447184212767199984583549120075591886820432631019167132900390543160324342989011604622435435325486350150874294978895298865199703433364370241782110164772242983466059479748874886037308087636800830739615575193402282102725123675805067398651915535396900838957455954971853814606312901041327796820027387759668468297404755252188608555025047218673522574281232564825951880285403677680892730879859792086618669662816421958714421560574307978526162720611341849350756276310037614601157093072244711488937460639616174441571851322648306830426189199519044755892569247904331930623746842538542154424858447922984659715001772033363757661027899370491007345275346710769002500981456876108631118888408124147539887669693048159540187836211796146373178096673190207040854626201033789600215947697828526087054285592114840154432272136891668288510475785093983170619388081985962851876130977021070664600338906441835376883508161551980871481773374817432752748853982875805680470479558068379610830787541391682983676650922465624610756086423606295040929529534056629139985402132542985492050960732015578178195390872515405049625292581218950702093442479127651924114043370472034674424693205504365844369030460501439178436737616153114540594865554849907264646876577789657103109169275113783898478917887018482089142373991257415648064584670929915935689610010343805111362352277594705572009341255141267623800789409730710001042077516244471115811393039242814585895264497117016593129992183040454604256624181146804298047170200644198703844931695945610739611817607999009006523707015381679832820923516194730738466835080686538207289363181797227312713893166297336496963480762734428682141758704245518568726642353822228076411953924132290715780170501666383119357278691612500723478996059742215634746613297721048640074294980780513351158037740810387420685776229136141993419252161357982696818196778626029257434510180178552042239393546628369535969558045308062771649428478374418849563365070020301743073622215410545811184713976896481422630671563048757685462816065938415917201065385945435018592978633822103663748140748821816664336248029643499325105180600760584062248854091879070548212192919100767969861647697513267640986831927713218322302548241883742206017815483398072470655205245521467037844020960044513556322190635228570688760009051629749881891501281344141086799453846127000349423492218087896926984378258705878556678166299729620639824690230508167104634754591254944516046322157188060801676556319112061664288761627315308131407517531161303520320631621319966977543056514811973425135622340096920744124235399018829391649770246403570500841620024101530320122412357754444919420658333627282381416257352028645570755969904202351848336803709682331812460694503989390114748385718817983835680400834990659114377458017982321974390928713975904374085742172809996427677995061891005151651259028630562194014371884184985087773552961827444649765038526838316441423204150263427246861218673647308773672469650583802844819188188771903597875917663957749050932424974466333368202422328082128428463925072880030466906259854027121461283945137847881701189338150399727583988872154144656953232571099821944857501427500276176336260335512465194721028396892545409441998795601788957940848898417399816802462877577863521814562681767163369040039468190854252074928750106186677253474509292778533046258040434088256459351946306366894415189196923360123087585238284010746505976579174345915639532238030818884126197476369235988337385153322170928766795616170395861386728541652046803628102901193439044329072770782031230374258218807982580736696761177549947551033997215470078411794149682005231087248954965837578782378075086326602463364680642127827193682617613818812941786171881349066257900576761209080403556985598868101503569089032941881260116237218078904792340927509535638722743396699988709304956544609113997885993410618033912894690495202714840910009224026507461139519197384414258551809088104615046629404983474268449837903249307452918747093963449087698616417307759901795955856927754339541653545238383633754468729462410003137648547325818979986419419545300029905225136260508982039675517550788583667021785214310945289390860326652127556488252664807573928599967393152026756200628453771733145370178520266941211906239221633904449068970736784233301594743358191093836263106536608956071823695689478121318206318126044140884263875820047458421840500370176812137806090921866534203135383803928527268570880780936711164444425905864686877902710572911078334433724733925063807767978899076553013319175417641069648971095356170524515539961770142649295148780126407168419062399884127264001484627123306421809787184340556546725470558652391515298202420964301124601410585545989085340804521130433033964650501592280847495798945654184899053209033191265271274943436209882416702882930025945761512673381311494412539377014253909611555637207456496154152926824152633457045301538344167531545611025934473696441581914514506053192237049881186490079751018967266621643444269379690188130979171468483527069229563533766263536199440995151227042802877871715789053013419171412402108475982236806564768284148866833060854318177024065040100057517918580472478020042851282779538398558080794078523808553468103294607857001484115668877093584478823737443303488482190556559816471060762129894411600157632057345092812210726489290484245542887372557693048984754280694967289996984668171988104546881111665917141409821477233286443008092306888419836356782108850948263593800243656494729041188161964127391179006852105749400390767780241751318993982497918855492703362479404440934222327142904974140095143160558411846596194067792596355622387105881116400994559019132616549326987757725373677493393909583084067818749723877257606526536206114218222289512518326174283276170293932163286667615528500234724749245273898941246872323612873169656441158465012501451032295418292491097111262878710302838888016488576406911502941348693264379537892058827155214507733764390984280109240477356229477044866314465753643374551441711399232224469343591415815508735740553240138871331712589992545883854216343259671802096680866743042582916697755305922241236511521721645615162556940115716836227236814318691195973868635857996416303862039177319822160492476838359871830901153549777322149012846594756162899464481785502934352525479473253252205376461672099432887867417770011312623439106152199829214564442281131259242769878028316946087458027746786078391099563836702480065107003382127502453837036297783654670021370814136575212240439401251427389266056315045064864270268417279929783333495780116131139598261303757819581263413061200315291763865072035257662245072412106766995358256133872693877753890962082201779671452282513350629834478290340813372001218341350352093486619689010461962648139313340996809724112762413550472858559410140528559197788033323900806175981410025875890908369422064812880741325943988323427918831093030389186798598921250092530504030580061311352199122743091268011899799177693779537457355755650423509913327658264362760056385855572939187198517454440005322024139017566678086253727594749812917985036339634659297273290986311129937574406870551648585489266310264206244773029316748945601138100788444053363707712501736747529714105719279576464204887453174923601453475100906079936239062182290559676151704030091216889884430275980485106992452109529705734274319153164837449719134864091750626725361997906858279095308805631164539856810906569590707288179719409645090765778305141026124006384934890278617980859956458122894901389960654261617131668838857842842895463098008470825427189985947039084189740053174021360210114498670126345933971644759484693674544935402176377495338044753935375671939352342145569530573005435513275551769660130774490539297654645921476199407665825583808532273740732798787906759408601827976058601061405504540751780193357867101514457731497193103644206309549472918350364359559970439483550045085754290201476848666206980766669818724039555865410340473013427166155930834131287165070606814813561182851412052103199352017732609968933570753473409160604536785534012317379500939612304689361966021165375197625583179532283401418209190081463542017693445031382119132064184230386331436921335494966304417577688460819376894594793326216114004435144929262716001020903991974418071031806517054256021592773331256967368477047487349583988154423067008401048043125405047716998915289531206940800790888027338652183972073443817928703203365175797214328784019298845380214348556273197337004155823433151962219889689093154179863949798324865028653716045243966286345217878630947434583208130038639007066041627825819719935272382913505032156539369289179031578700425565883079794012407802928460045298390685163615165524542161476149414978504631313733557104268686082808400121742319866145790350108334332943961181536201481705120788303546340762230565866777653178406260696541982010103184643149644442216746987307747775468571520649467493428819861960173563070509232188769669490988434532889110849976105648402764665637866982926214499259694944081478053993716996112449102957064367200967717373575610036984523081595698624886115681447916608072362798484358500129052815015944883873608715753203757233713607417102046754626316934648810867589101115579937917823882615824774041319925548862508436654347335535828194577421258942721093174039149940422232297833069560305748007719563287533877687960430144973021054330788692884002488061285015895393769137933733783002892594191754546832218774696302975428657869084945394828944038937364040705107917968212716749210270194089155390567141482772422568790858766100069546986202061836021262436320058873221696995871825016473417615746631448652285767618188950508350338231600280602242210046830473879081231976125027484164025869436742509680516046208096694625428462175374100596931259941197592557655251791718113818346762821099911525625641059911738658169466177517625048692348015782615844761695414164629365552972952988258985222032262471431690925383674900296520011339349182114720428547052840944760961233080111464951292057666662268297295531867258812465420978408246589772654899101651001363061534833551657249674807231107267599645506079215012216858725201036086480622061471260524168861348130033480086483851905830755566914092933373866396226181282440591984451041351914274925585613812236122162207742087152319853546681230042317965200034311779606696569590333283434648286422191058255528158333828494165765421799184376296587204439936833727131306354279273039653269185296837421710747984036119689442915907736883674648479550958638979930013306763029894979000276197953034565797826148101578909403048225065652090213175386796351767826719404499767528332665184780315620064954298996066074146301137287737093284779404326101978886072902196996801484677807238006272954319898340762385370022658468268318528503527451367523461437430595411300295736006861810603563986390910243362992891385987426973351616431224585012514045875615602619694283997664355462870246582644786012402570005453470226640790646530428858407882698966427991331691490194763662826490828135634057852141786144736893723255564708166298562815005530026051808317731212189128755447129311096477317896819395310238623419493026123946676812977901946234807346289291115567709512932177685722327850417142838854424935572533626182579641824301473782495950743750416294576287536339191142459253278495772746663022456357562933987951244764461698323038311908721722242695822027955012028497213374449108945566289286785232198645225465542750664340414000290206686239983360402172912875109734393496486845569742358985408862415166783673982211077661689322627685933508729496342080622608542376679415180809003625402519969148646864334667550200761864339702776726929297877175284421299051542137254755992534038555000203690744111992871063252072619963805833658024235133855985738254288554848487973242712133830865405821580110894883588983413390455309012971028958117436664104085073693719957266896679425002507298836499337012581787342146860644634304927337799106744390796762075471431203004648843814074166394565661376706431239620294613001505254413321418977344791356671256012684919809479173032624269183060089823044684447502671966043272453936480140440204442563399995136798246281242624790547274026404590034294864750605472628899803991783825892230438829981232103149938408063271329061212349441070901809057844151295575740151602458401520733808088086386689487234038414794434995843006611209319497544580904935080439498513455752780907724016008306798594259752865669373996579297043975469648168965155052312744682861513105035466778913913232271979210627499689697623088523657313637262564529849467866957814187629869676513215534660422576978831072672835202537893770077285214834499367114704244149233266450509317124276635683882275306650565780070174752895285359493210021577763377846931070724264031335717837468193297741017481096650740263020532331046767892344089252163022884511712260595806207276911466450298789031200506296194875581704430075019571381813579367790786551576278267311169710181009785781980093373060077285641052185235934139938369445187291674859298044177443559855371314806013483858532972351680677207170537933146338820328741911649331207422252005210792765547354305719754535722188411127818120367681613145624457868625196192319163126223937252687079042537834797103711589585801924676201483555884085825838754817965742008654854365635573761505577531439537455845676849650552258311080223849666123198618373437217159971370686570869537224980417502367627604827726386823621396909106239152588389984388927024445217412779647567778787690051629519421273982287096915262737692364684052587526002734411405830954798400080038914137270524140772310145993427916776586272069258617699352274668403620598322308397040214585828830728322184693441286716010734998031408416685363944199857645398120374976506975644700174378368325772737708913125465550978313184464102318145777292613302497901752715694379725297678521306429776458039340198463677723722066259099792550613700610932725482555019732718367566015764028870903082286319017491354594239823423321483892369753405135394168166804136357961941688988513596630041416304199881857320267686846998560567831455416622936903877442883438245775429292031961516401024339087725988862907463541744256207838864436087465031737681392917843606196083954621316867622320084274460619272286446749470914924939943920733547844681243038686018105331769120300392826867033436714367483559413935721037967464376992569083683585016458391183069626186137355809391651304043451119080719655834548742394475388257848538653900749431826855242787438914870390494987960204461316986586229105109173835955744728374351797315830692137729976736769798415296459619828182950526205079890055414438920640229041764526474563986187372432511202393308398862021411399068315278009759926398725030688884001868240611111255692702476751121400069633718171207187870540801968432149012697234047054547763038894116540682390609097314239065303882638907219080857029318579608020006678248811397663603112295787453984662869923316498459815952796002878586418381447444890180514287565251217743308249150423382692981801093695512963554998493850386261205452968400978196495055248011421431719360245458177984400206192471824391719817898285514441536059179831371720764330013438742660511427933838419411235162920765862511819592369950108858708140127710558542975706345096885612013376749577915194975091882305442848203971814901461178321052112446550767544240586609307026867292231164593155945476271680554864163231233533648219318922283919564081984953031912351889185278306895063500971898286843648678955330489953191296911483248931726351011751045953531423115278938249482242032528633787338702969679270688182132602885013738708022187360360758575447577073575729032512505347603960475349717690686817313326386742934922733824663334280503622407530861728765454332278814276317078926347101752168182013986391475901191834495712104584616146069789351670114059478433024739988080747696199040406320095586539146674404796081674990404767885598464581496565845167997538182383575015619456067980723030662727182938223132284306666462068097702036431197637616872203559503892608003281936606773338430002817862700355507486263666698146441677236848290181024376365373836882019539211870984194982141577311587868280892421395763265570998632503168127186927686782208959992184059428933125792185400603318414972622833475183966070400364412705370896023754762543842226370492482711815974612165485435040446721173917983553942273835242357045077624603881934967555614142351771919144326217679483616390260614012269943432054931025759047692737749208695040956922936267996920646367387545911795114671008252533200902884735560223252353206775818359735410385037546382726408721415855315988905349210155661740985574697824379383820604074886021271194523706619263636073520508382138049611144512716659190375229917076214708668689777098867605067428206363960143992696008156789869143320583541200513223514547826331354993685371901229567435254585187201614967217010913140497221971382132777347442506343353663519682122678518388879198662284525407824177254699215805276439425599574915765096017023608246402390840232295416795713385437372620837640774501901355562046744513977919221353708276855655488022404957385465673706395487693358055235400520772960440090363892616768769376507793764798091864205511610461799167098478406171663075736360212539955030298180341401572658732442594476816885270505125228573191345948377608849317873107315974074415374433684457446975904633175272065262684982652223680165301560786855324758162424559490429130601345194807672234599564935720325672859399859523821406095544189925763337054026338251160996180964268048627214645837100185482266751758250726374392172355964423194941024515473507560596499300912773861910326001642080472625806811588131587739889626222196399571800604093905146316473836445768943645625180116453863220404808913092912303620234156500496506312531687380521584964356413532563668557763008350907216394330671016243118468051379704044740969149043584584314337248349166405566563003150712067691890538636614490101454840814173666064173202461204669084536290194322090106269891183790275661125240437537205530032417274117465573691140284047651310561116175401943832798756281451482292928114961852535329739903667197404676385201249157064926615670582272343602428461207083878166575410948075061932521982202348767741135834819825278821855270665787145906910052046421679771765840835707053697399444110477719565122032661451714953959404035166863659899281559760398135683699968042065395634533844312005880568750555285007329350378108799644811795044709913975240372307842398003560533067471539338750170493356681542588546940346434436226288466303850100978304736032016374215596527816245317830252703234528953321452242428070459519804287347766524455539433718249772243769256207932190372473410210638435975700570566959319726166564182824269001402853179490316724510868606635748868334707852120455029391294042434483384740351701965902759365904747890932422576645693840711519807037922141855437739668128764516720872758551913537500823527273036128311507872184227778040852157137700782075857773899794569338243293471812977727840023901395154057133036303306121920646122170489311527002212532357888272262012789676245167477719816082603541383383249728700686525962108066620829661349158849130576938010051668118047902292845891856700509139335373666876001913469654470387362751756223387281178967527523389204049630871512064779334853156676791614672372048012102424952643054270064001827537155537580194928780283763970715503939773516633975738934473348733995314749496656683447516875733011736576926048616800378111778093955240765902100587947739634596576559959917568408611642726109631580481991232991296962895721280122075574014283620785822357261048638501589384099703983824105326265983833853693500239341501547290385206269280748188273074921837187312278168601828600600156265423899644153249846819098836882504146245361159126045297406972409376609616332425079309073277623518234049936160000953125781984321314695755890202786186362506130918416687437779425003626111299745811826832356238974926288629053416295791781391742826862316283567792845092612555320878959821131127125895868398804538137320261913798586669615711878757870780743843272757634077973247391034507070276474092544219449171747362448450696911510600741267104289143597715784172543314663454967795841619946913688604980663157183236032159095672569319254931602587846484358681096454026885945572927739687811250604061145044350703135451933189051979069188872924435270512935081085148922736296022018672577604292535101266766577426264320791825088902932226310020807352533347858196823056357253023011333533688682330355138154209500361857212918675368659699294712032232421891363841868771911925110791929995757942989702237349212679399347191755746532657062618054299900596415420144349902242696227164899765410557941457561820838162614315182841549531976068332633346035128080255516883336511164046812940389747649534394061849042260744832375267178702763583274689944228032690157689843367326987607570207195535047403873368520577371523136153508942159650589237814690110508366572115638292089781076937071664598573326936244900063111085146776994847200356358552096581928167737750136789591589381030867951683345270865677272867389262409473279832043719073259376623516103806963448279997938491033657080283937721016426829289268665348839228331169391183343596715359737445124754756130200156765471871344069932035083424937566446397819832184721608518782357514117450824026000149667360547497637087077348656231470406936911988668519209956306179924814317888756594067064182425879705088634330964350342504886973088794756865938633269581748504115121649924580867308712476339919712520281192631413309636968060452650039504673160332813983467562896278707964202614477243450568461150626223515884910618843782075969427406887248392712834926216982328740705530870994386997472121979230677344534992667670247572559401477530711860199511066295347936760336139501582118064397918770047858363104876202382717742905507284380487362620677168829492670796673195951411585890079381746474440426244358708754570549833321393484935891706269219422550274537698839338771924539181129647133623080319115002517264302139778712160657028520128934257896983375203438806460271163299441464305475408120676944112940414638447461054959811121744598689923204521658601566885980792991462207574570017122649484819401136462682707776068769563574649332271337163833262751537706464638550843585862471863974277188182927289339092611877858230040697221719272954469091270191111691995949887263298462485045541565029247033276148547896305624562268630424409932102415021113124164035293773203432598142209586893029344262481982863830525225174176439977743415889039587305385482636461477244788149861294090229646883303792572506950626375639191398535686489905462228748596631760272683056417840619229794503527227499090372869653231182869460510394008345586308627268882706319181023105792994279355391210134918710614248965776214892020054185387559233546190956406603959509376669576895464911545467606836268232652913274801314240490665239436015212444244690920089175513969871602383546146093417201970011503014676607974323893620709037047814557473217213767327399505738587734619406393245510002930635239901916711935837557886566106646119593418973154309068307553293934340963960806566935174514120224219720036942677134267791334136206134109910892952292842210661750710270371977812363922703948983611684987439670599203490056123441829787393406676471003240245301349131056508012480268128187543902694294195004587737031426551122567523251569090041004211100909750741428373476145745179805521752208068681689015166803689816339556241365067211730157967191132957916579781536850070756080695209624490258731243091859866490981845708490270921247726994517841467267624844122106486667624850427499393436070271854425067711600921513196393774587879241368296062579369136970405743000186673661916507009593370562265386617336732602694572210147651207182705214155793847786300407526074376492086139656636053636358517391554692022820359765904839342541417185853278667818200434323566363932921300938299393693850431682132444170563947614275041892414234033418592504024295946533108418809224202108508372214839578739622024014580748040720486050066801014116746525080799924910849957322232708985264945951565753559642725232765768506144891350567103784385148650044169620689284371065786851184118647116236362526008006591947266359136194841558654787032907386975773557873912679211368819761799757498261143244140667793490963467610224826994398678955884125117306337317908222676231589650508166445925352626399733901817484236710724902117804736351447001600505127885524079922709900939669143588273539093093590862780411066613450589056366440383930196715200292885557646115310657967903067062334153951931407119355471877867000494559288532235779529607013054730133391082266679980833194990450605281477236786997264687679087620038709338040131069432124118660315069594182439237744965009753916541561160464487641048092382965505080398461982735932013077587029018418821033645821460790163090658025360554988146964026368195089443503397237330756649976318820062055539082617673050417046233849643823529192541228426104096252554960728819184806482689219229058398488576153894588357594624854284945033705472916564492666284933307252657197605607793287001957806740719051966663266095821749613417853008640963059136076227828558708841593933142964945258991464364406842347439398886459070182573040884246979661991694855434061112749988324938712910877010098468401496386326338015872740972175717633383867785608443110220958812943461609651495736999449646603265791410651673671224200767282084951584774118336063251754224361798466528062084769996153975442650027157437309908972827124232854748196687966254218555890228419938353690536328476238576861186903835627370771681630479986435650520852886791457999397577535867556060962542040060051335191867745196850918079998285732335056925373253705191024453071787088586544236408807523088451566162448480711083142508435204854084482114424260865964756972210053257580512544078890053339859662175478711919011238470356935671390192211673767230512533910630281558125669477267562422529532600758444878904373912449098578808969368107118587469200718937384076527477893965701573023747679368403416019808568587192310147853136309422611952416621675565520524761495659049976637026189116343812790240174438643060078123973512152299918334082254185010571345850881930705164105606975222995091334877604710870810826265334753594337518587224609376458137408130053008360078006822565177374728555366701322444436430544452828162403488787246080954829211427454439106004709094971779044591162004106605360663767001232595797731409633964659916587962132182394208086581825788105578897708917025094121742065438811825588166304412589432939544954181523193944398107349551168077800792345685846452771893945779070696124968414933254487270467294112741679845683035840650882747931540036266639781243947379464406449262759190948153996061904109401209510585411569105119080310392209683158913725757744997575612565077366817139011780163499836740440944353964179478148858114981178797414888071779145987521420591523294663644119111792516551195755390012402829842435390641202702043663220456021794289882801160201388758015787411804851251878323484817168454029666644755895397590362716383846615419243331663721650480069362138473187412903788698892334392823363587017690519004230344869278979626869390105296006780195647521620309344346587121851078986202446013935703912509084576913349452468383654085209547226470472243044323405822070811885228042653154855247597400746608463329656576986885961806140340652567514253201848759055416594202818239680089799957624592100492786334233971407408433391737984655789613182672661790658556328964653378834511644869235052257024852645820838651698898769588212041412357854111560804264796655654124560894103128515095038881386005709603451354902007944788374609433078594296547049967204923490623044988050816967035537960053652508949785102881916153766984600139708612566578214004228262199592969805908467977576917025484070764667257767838779607606923799999891265406001985362122587266582783390921228625648638020375925495238228808800441226365964110326231538429092628467544493284675002827157892450826184703954188473948389520877056071169340626646801665103944840201871610900487634977273996084762953760897626317732666783658739222758025964727808363001788367474857030394037970709016300228877729421600871116826658166052099023519518167931131588994321723103863832838556383158631144698599042901986251835920597268595355866150386286432594266050382889344053028139422632152667051063963935317440141330061257189791957037881357815307847670224498614010996957816086987633360611929359037100032566610932382732054211812566540070454805895949797128713053900324328699284385396374015661130378657063292237643479237751053090494564094259291774603123842823193434227365427488591749010527746211753868276110133988605528341213069659831616724784650177402216927029134843818366403315511844679677391199378877206638589223699297603648960585435064286577940620989346501345679079900562457387907329200761339341136582255840690719323402252687102996320401858846210107794513695640062710765398334508915299148273985737561853552696973230993698167597004511237016496731604248343644067117101533162271994976032565665717929276522778550866322634288571420997961303471336281421780495784345615696671247544099288005811744102848380742090585744423254714986952528414461948293617621850057527655337752877817762066505192726547194282227803313918337916874841805436103743056266497174862133877568738704657623616649873988180944123535779865780612004063734143898448132487657851505480530361622236995303019393596511107506457365215782300630641620383173728088235487080673963366296119123202791352871404858331131751235285925882533395762342940836569224718003656631477704074330030159829259826005357920486360857065048667916928104167923202336534663442181613145314142626320507193565632304570146717198120510354441671818342810998670815243127769371349421037179013077300038099734204877885153675952108509492758602101762275428670172296650324560720469048614631956262044705854607997124157401229677335594488450230209917360413992086087786230912326585832267378649730280430422681930111020782140493939287984916444403413712390234811902135319740442470547897027648438711168609166588757344355037205804784148341276565824989869482575342244213940782606773676449600388963906103704318226943464171033024464364965925862367498497913947325203874815327125539351652817248914896747035122287961162247551677072354110899630527273141273800297914295036151818055603576830627034962105158985314084614245387031602169693728707143070353774418988866394865604458574031783308257155497651502556034838911160275184888899519955868491324070810293351295156974048446141237435176608232957825826998371375578940424269336021139152698116284066885459663733387310783575709855155281542074605788304994589113143503289717181337667804973866467917271434128421109760322829531013129172301973128991566222897046384425813137228466280229697265800756052256494546073960703984508352835217805876719718976483921192938023956070890030699818899473800615413162774261180067307966834388621989664290099403443385385262803080316103406707651295788587003999661614304566389095390620129452680470832448797602967457379378674400257421370195763912347319958813074151325113651627379416507374419805751133750465431349720102138395561426789025014352703497845848818690134233523501801521277100258016692755266676816477583814669223325759134619658782696128782244672509353758482822172574074412620346747617805109791478824762724646196433541583624550222623812683738242221823447460763788936467161331061965273239244896837741783641913730060763260067770580642526618771089260166705824376884827059337145706003447698148412067490375114934830023349263905230637808840001428192182761585677732728883823086723782614623660124958522544643241920734042758769355299061196587927453520116098979617095982504316575505244563058707131603887610414669165628764006938397217485421767325488919010869961608529083485053615952390066388341736633983610742820998642810019361899207898322376899878979828298480294347366282980545176366558606312246936496492328744501667796569463662891148101504493985611348054214191862680879980448912167199552472445017995500602689120543484924674162402310578127326062489819454394134793447353109995764474538825095503676448508355694907734121337680791216694479807981295557162207002347629987178797427192884720697816855347013383143348571324124830335457312336501604186523221025346721792758770636917911365706820767392546720840770066289752468294671408613886729427216705869369338464850749940574978948297529370956825673368627509802230263936308417445490378296659587859513390694185218065397911538917644375202724079094973877821965074268210472316732262002615209495037190283264091527400553119001371795091519719522894930495237288639280731533017090654952130412472306688723949268161141085726970404561455325235802213621021301403629333678538804433456463508361401065466978608939805842211492644886314450110497713769548471628696071638203369283892174973271508827967558760166255985821441102544565018058879011052047465964652596374189750404669646786626004185833131244101771671342889132261461677899078990385013707027136075188057984652650157197562161538295429736547846746464985062918195384873693460238788364566188581696096656398939989427338018849686485893402171659098787786580520429990423401230881569602698129553535886902603990867350461460821909135254302116289566783441517914948650440272777242736019279236074116381326342629019448285663193843028960193839982971543100980596664879143821032358500319391492366255301318467815939178470784685811409436041659597025068647195621631058462134348565818817113829114642875992100409013928059062302007275849513585233915014700234728214704472064227199041937598053990210111276024760568130014762785305780999973462921901146062813415311885804496555022204956241093160417267321754607184496234924246091616311100424132470462650033707847984543335849353509559222469625930806300972359298123649760496655556262065488450796964849524659699824988697993921642176929223888606162907109068362902752609251669107302932099748922031709760671567777844572661358982103387635955006445264661187498509734920322683390818802003600262166235356255798707917698072262013143801740287080834622948196805766159996536669471073455020523622719219033297670484575414102491567110810373936558372574580081005055737765151415475065133128047398736684712262275018937462223220255436577893666115769496577570842027972735924981705206849835916163608388074343261821306397921875801366832906672197272311680468449754376964117164802709354033821722424040712588109981387323558466906112946825171803814925435051325233389703289186187564919768069203388316303968443134224625764957374946680006822818414182131175891535523157399553508741384788856824843363334691125698446889424538731203981453592553294541168602691084809471472336582279084798763379529139211798311417630331531419150693675366384585968039638358625686177790277482773315078600790009365051050351530631619212345761228175886360501956281971602035908612229317121024297544998819242045172484707165182246599128547359798528369235391039197694918999051801082257472878303921399236032508516689136152793226536298804038835414135169944484103035480134838024540697999853747775039879171283095123283932823906050294763849642439554449004822478376146823014272264659416059448887952691406802931612885368823984734718041725445463182474528321114971424814610848501017233288214157390992976709963292091246014383161511685449347941846853357731988682770666878437338994257106110230763995506578185926170607759114583827587154092573450198791526441966112913026065847645760977449068192209885892528577431052336989517874212376986760735947878941964057058593157789539087334914474069291477301080296219046296609518458271859075731501522133992046296511304189141193390097682893417168030759151361804352403009506169789085187234769239119744062810958399322292150529428890362400255718202325891731285600291292145373892694234534420699696236388655050208010792944179062524319905723100886767074573568557611090767448009285955438397678804446531326086644641023544362641082456459079877776655371754185123537325604460330610671561975295600067203407639055202276711297518814916292227772323426290996997984617373084672510043761184275334969632015262861647749647399778239006314990053003165182235177911515587948571253245717074036897749754323672370427708877690437765116534997418039144443862147885868423172062354043895587339560837870887320303702565650978921139992161883841355946510724718208562083081910050192101877942864384182506803047226794844078139445123835007828633173656879097781380605202460328794562563998099265714206671354212942951737013943486527392149445084321344490999639987538580448221746397591305369521529365309542893005799775068513666079648069916556599954039399483363430719345055772474985734789697750044435124137689132741084427469451676430630716662039847212025986973045652870963694918171895686435671712069897096490786354755546471745987300360476380897631154511662195468378598987955656851796044877588721913315660454325650690723359278407272140071108056683066884177783415263647002700558915908968878311079380147061070495899910991068515116208839108599679770294343963157278817448888953938561750509931008668791337126737213253868210592509291171243723159323182611646336432290242944789296704122009585892359368634278001948067535196633544617465034625667095122261446748319971336454661114321560304423346192231650446380431090788074416570088276869677854775276702311826472294995853508589054227167505337197518054396606263123901207470019105844474533945395943562381276350373203972138497471957148938903659066861342375223829175873407426048005944118173096334401041054017490288639337434276928438934172240888823196484381602372298094510077021945914697786735259380791289305041567521284315310737629465898710643673584243848993273983181016397498279619730196189668675489980897097546020918236903826103136130390415526305313232263133405243205886873214847348933697177777026560715519088008038570203546279149297642781461163534107324177892674034897094208157599652991978052831139339795303334888931226327747924832283886375558117511284425349391846851980807464645803191552480343380962043463079657813333901368854310179336795545933474435036163615772136351767140526823599355016716064754365069391511659309786710584013529248014578558981224256532707829327824020065303060919836390877403067343895865403257133392571037858675835187400840616082713976842736247560019929255116617014317312916763627674327954978315684809798836497646069707618719820406858606984207403603467712272382514984669996266921196795965407220961146261941932126151517147210609374371250872064652026038138714302363015845797798447240955590344577709477279270215060442854832724256751975654184821031396490163702794511150144608685436618710029314914768016559567700059095366474341409061430553167837498770073634147506921519563782631617576976018424028152422118761335515872005889806235878734522913189813522553651024600959944387308096103837015844214920465223451583426737440283650944065885965828137333302848537480727694143097444866697714495487354661709117035887072827974706220191797098347563979764837512764695821794002397248426552324556177199890072421976825821711242160350859272269115562796487931327288326142298427350957259541130795160385402008125463044283760538887186863959697827511354097941542781191568232202662848610284347900515916315433620324986417903348419028648593456434503241516570622506484186533941381541941774293954847887425169648916603203427130920470611792313932998626825707463580465410285942296756036135344851979405946081636799566877473863828144602556126334412376435928561091600944686023720033038920730030255783097224713067710884679666043297216933315910215100640134011247971846165739047148644867066121350811029837266078813231434093922333651793898356739256453206580772943066398301703521474738323601700539470013165749805667267933437729305753996748443432211309542545878628831901262495647175245904653134595963336163455361220913492068616813148225151342176933604154057562306816097742665607891826363614972695913571709233814111002301723125064598197186049773333564208206943232693456622172531359606225717802272828168554723951060109387869169668505845959257747524643948617765430913822602466256680898474800010466359900413388050432576309186863876407337217325994367440662021412598878054349871445283841424811559427813756341978406259398887745206720943198416127893491202167056854325766336052250787553564179845124420511779857032741207249654948630467468273612774650377337214938719836642072097910709324303005863168839282644386832135581505627408705111990647889308573241877127097981493398042585605076577036997419230312855981104559604196484593118405272210499210330408471408356183734999658140540757265384810628746385727418431224335745624151228545646559066288546526758187222347088940045593034731678663112952658308947053994125348040140387809327863560305754365888813493060346131695805180858115877705549644931705860001073016191319744297998219455707512068488604232875757442378897402701538476262415957116157556788722982394847614700504191534834574594772493135417808262808006597903941547794107008364906835006737045724524019690585492854873735083750818847623038124476722560283165499884493527402018004434371835018630063522522693275989352277911394177402180164573017301615978542389667301539374584539175375563353916863650276081996280530354626278018442354684286180390992180983558395173144869050739809292658827891553090484710093105357137329796470917811042514644040341471678404261441256143689973389027195375905596361832228380892484726045512688094290324360372565121145366507778242672220983313835473994127495560152203769718791761192145998747754391417126678583322952569918211697723095475606304047648009141039892265113428296575580246953507819888298247752057631042290343484748459303743600289314981146409415188476405005582334586401378431568029092520008547691109207616736917475647637700658781619126185033289822800330700198327601338838403057216688841707879671476841317374609952532573926940658708973801734240729551261095300508591763265537146545544456225756867255165990119668527138422612970750827207048917990209624773167734880187585467653006906079145697912726899034529520494785079354248936569377109235868083276734376567721287947451091003238749013545364477346850570569140673474840082642850679839159590575390344936265072331255531433070846623137707505489194761611497524258901217862841892672565339021689411024499200095821786772422208805091212586265380972911558341225413838906267222688821584288740243340403492779856921471484814800104286419449489747656139484638136534851093356486039230863523129026812177631189041254728759634097462359713768179307056838977851499928174779978295592484577577121981917936152866738477458794166828888004905102740308601844909960691457953863037350558674162282888908366192670620921176724514611913513698097186501306617959804115207472444004639711914883354395989164888461213111609720560279536895905648556090386396050514509356626594029018667579817897002710448035578221114548946854053092306666042775029358048423108299347426143479312320355009617145098538297681701540686589457775052331621910912155556809333327678284324932203256783185033341373931482020726333940749008360736070779817710904995092711506252631145412310940534621336468215283869965310028399229777325241670556056438129212543566253003549606167694544261159340784247946816273021062261345999207083614052267042537209394645686717479758860865421896344562073923816294584390969041916092522240878676394957491860022295452498460642596597457605149776670816924684847268618654742943340383413395062061936119020800693848716626128602912543892545872731660844793812607319364735672918476689978384698315738140771273090794058300693202106664011024341387011890679500097312728074266133252852422409807444329870563961357211009934821385882300157110620521711427456839937337433791478067467607870759968673677100547560778928145045843064331298972590143960859703638366309918256697868547742947014546765952446103440599897826883927557461489461397639794016463833907509486116951871008768256163059813935956734097253576996184927137589703862105063747737502322794505399273774198260920946138939827573802530478014926677801696352487710266389738428809921540423808907888816249410697746125481738978919293022099348538803907053235398506038763588002735150666831741049907648546666443218439504334000337771970262152777107468626834909570349008155809497310064749705942491090410282512140377193791315756043236709844416362808650553832702723377713141170775357922184855134001689574421595478144620570426713986697849814372178733093822594954006789124297126616701367704115975092175387092506546260843346879226850035804528634002857950394994886276744415948281843898505433206106687203078628439461922441458874579469684448972461259619468075603447921085970372690895118393147587166473142423716338852128325830816861057541517362208695768294736859648014279904406807496025753598901074346417533067356740921229873014145246183620717959664408321185089844047901742656629729483803420660442826639764573868934641719033065849653505466038925756565513899897135691340537329362632320078125234388692065137431656473933497026298796353874003636407366219109831144343668171196566340985683240654741131810659953870927403567083680127624710511502046167533199423963567504696988079576347821995702325762510898838093316426778650378485941147880800660534970116370669593799898041985518289972252571967063814895976588864425478295258885098108101680778206381160504423097068103688573441231681887975690594978791424233109942762593352171984322080105780381949652229412532242731546407302914615950615933430146699542025944308880297811000488741145128540129766878038192571723691153194550389166675211739387074581881199199204991231777724619165024639835911854825285332210603002410241084289262810304947517519422072443622955450413275176081170810584103078634809136803124778560473750420423124063749446707314852497688580090142302548375418505706864268855516300120288836508105536322311248523221554633717107750561957048595348958968617875264496578130194670372017743381987935224621548480829219870323329560638364190901647453215181075915035783827879014178897286934731310458468681672811093256529111035091007639541687294613834494823773419189367639267877148530791906084011891462906293526565126222601692898773104105430621897072713558628628732793161298938271985686645415017562038974994086122831729661333026709247232665801116323052603272692715166146158840174653843075954002608092346408005944668383340201426701152506163470001951908372134066696540624222461403540401192422380775661651728265471975161595229358249785181402303174499935975448672571010925343580738535398911588837746267484103574399736597861337653898084977924082850733020595679715149156490796276293137391479200759315256161024732903092079447746561661383085838779717141064647657994788019602223044831119097577373339085353792655821668856680866843388327865050725435742899710504571614511733942283983714940321863878703103088745615681057563456881269545787690379205200835704145247934252744501726540031492294481209407173858609271467285748690569132400637297444234119156842920530651548002531838599074820248810250030917247364177219527258039625170008575181725730693538366880831641965021850379304043213167945296613140346454243254366174156295164756883677372307507142364420562391181879594758121232128694662912027098345345856259364321417248474179115084213492313814071987824426891496920085968567749788195512742893188727477580357321123313974463609223829823002083180864236194912517674018408516000182963503856572514522251510729008248963620902878720302088303294658559012276040824057920430391451957807953384904134981421907611528879173451788928316948052529846291257832253796963218939902985922757317027880942166066979794173763311760240774825654488281531710150676645974837040184480923984660748758570760960684808654347205034885132544544658128663409792947070678916222211863234229662643359298644064014061794604162396326336804999666235517667778806278550240044275631433296892952381726140849773988437031484295601521443428779537608226468949742536315246377127023289205206707025101888269311794819416789935902335975742569676722909119476203803161263186045292016478213630454074219013369043156657781651575562869702554810316859132544836066953262422518430143955137931702059702788813582450235513069229753991278417710036247752225997626376569796248005498505843943150432253121632782179404523766772092304613993727172073805718760955068672572764344104768169162691284845716248843379046044698283026334047288951358019031417454425455846707430524598435538396392292474714953889916638464331135215423711786754560511326187235808147005567475086673039658859359732200319583351509998925975253266863156331360111590293220276462844319899563463042170294041793883614139847890120576249317055792174119143539427356240769593213072791128718935017929787234698187815329240020609176390455804190131749319131207496157298977971323461843609292196773621943110900988486328636180621656547896265841802709123401516010825401259456985349615830070330862590942546331389639356618927240366576148639134815194171746321294659979584136680878238234198606982966733112650544063181674003235015531378859096564972990557444883746646551983592650135721712911916118380672838234991353844166410397646707945081390957857787414880596450662018743470926936486713350092856068370969585852865515167898933881760707926235141511831263880360097918143109903026507229018428293553117976973887543236714832161521622667094483746456288187561776048385301632354772696004505101821481636479339635652814522694374345614100899542374197066169692720416395623819759390476880823791153754389567288505949686613572747533837948961668873463899316573833631801483960601308203736049046123744801211831289410771105489223023396815841632580786574070266678634750863915273667823403390978984525943364640312058098726500740064364794599089243217676932262501175158833228201951429186275138380194069358084423169156279270886260799091304964246120826323410403921244412729686272500350805102940374946259650186439860168443630884596306229165883813654042372579809898583175997115752609187743461989294616544363448825340233857895008453969018316276908620060653507035928744708366613242823176708037908064261319365163273447487943801144624115437083998401089595860751247575872077274364055736451206204194271628195343252838561995171280504184192311481379797207620641638882687669901042875041759714038432385185001210302652298759176185167977923332613359464036386701934000601388928365127433815249678168994917655802638396650448083128740963200844012253204181185505789153500112428362588785460022658359988560788853264814625898350609374917245556536436723669218886681001111077967319192591526621124038669160297043687350370435707218781694126673768420613227686352619808716883074646827812308782818767169185241322946675694390781698750179577951892351411563982539087076640946277954705820312068796280788636620239478542013214147858118800670639262108335721538934080311942650522546135533522327018596363014061311561297745717360098659277505756883988184548902499770660944423791712896041658006501703933384400109895729465597009004566265317176510267939866861582108788337672336679365525525068634228267397763190708126331414427159999698716312861695415079830455595518493130161578567616935802244360742209724586484751097095899275778208132300057122516409050865498351411112416385639974706296810071925972814301596383257875247735279322343508548462443805228650947978930808358388043097626942558307126382948156833368564796723396692230436925173559147329179717059279173340655654229280038912121387176291357495893633831251762469442016603562730082194012120856327134440069759270899845175025855235449234066340482351580577347420195167389196305646511115076158762661940190495835688912421819332171860688328031896770860718852801053504543141919595420429405806979266121366971322302492363037414440191362295776141485796236337106151001633377372904105883900622815493889172627947143548694789048915060415892447348943262392046737108400303439299161999715404028744197990302021325644529819604969876621283183272645815221569851948159976539597377660390745785970195322530237216921750270545999904170852941799634735035992866290089387918704067653150040899271410202595752035768691518345338948930757535003646243799205259474318667828376799693577441647988371604940576462749120194421261919386473269858208725969849174453741384905429530697303872939351862597128105326585996308511330960393996880879478726243965826525688613448319526609478062273942931769747866107014812113581899701091311696723243775658977589748363950293625331062525725080541899481182164653978173544347149276902246559273267302751519032236642373275047721964122357459018249071530509352475227831777622356820599394430194495263882190909044358896738097161542688585584780428929458329290243285307502165672845916593901326919151107421448489622408454022997760637814425137640975974978885720004538307884702522234787210928135643996931481549550499924554728734299096400549620673673428761051387056637877893292727733033685835522582487033942797008210461260639445380968696460438327491707416782696715621820258115310421564040501159063208050451828861436352841663998771876256255782053357712752494510147668731818038253792593453779210751669649272296861581262542437586111396647233454005349105465537314711234580391508915474402048358709023291042865946461156394270472161918959659286308738500869660503774629524490138695478483213335435384092052866284128453485910265544049501548666181428441953136496410155272686787162501135211982362063883284278437932522885932984019993452700546758009928765432104732344918945049234659785075976499572482028379302840420360974581762908884678266461603774631312122680357031842582561577805214163733102549757033033095290156761103814619294247291351491979192356425712373075147745384239739930625477190126251067132333668855594699486444875075651049775471339104339575722670835450725262568115388045488041009520597995689665235969516712479908577627008730205824514065107543186521360697705241441190067973486717486518288423011941017531830694059025183836209341708091153536472692762250466666126053305253035610521838381944564469929401250034552051203890934881666218712123999009458201230908899403676317774096782403573251080942997517373960914259211345418148724823587708180050975739781429648408737183438809260615325056116298755372876942743010504207060641248168947134801370943859847577730746337556035737019998824567456844581592710738152807001514906393579660123455737120567823455401121358249109553574282608620317707877754645256392884397116939808852350594991727653654356742199099970172805620944708243400241288225822628457618808918475397021874674089420780477800689655660805847313460148922782669853630112656914427911191595002898579765182299975635921694745964583580332281141106112632867224693107944072984415193156465301361550976859482199149908865809187134047043960646417822487643342021546015304106157145804712228351769210776394742904169316408482674185504795852619124284748283997256665933945217298386657252133530424743271526623451722907055158768995129936801349375716516760152820609213951592086331562678223032749606145250402031878009097602684514185770293860204764274722879510919124763315261442280806351114109332351258299443875131476345462467100617933551988880097993537518002700718143260131743709611650569790801143632994748998896351074335811826068830423213625457960977014012428336324930689353190672686753777623972273926999365834913798713360590247701931350067948353915951972021283254269438824820322020021488600857585419526680807453701225994965488461551317292367726693432448171345046346374967719954395405448000221904883394733700689923228141526830381803196865207017836263827899479358063392834116621337146017875734642761297930340055656077035725158837938223610053575566858250814137421100944832431298654440181769068160284727148571370048714619340276339938185981256336814550742949090337737876779448550586404850820063313228193238898566928718551176903224942731922567730553924689715130490946157550423075015354355535985653481655051767194073127492568607632190627755621606229683393264651939493914135837290567512865975810781836645727491551685364726968168729292221276197973330637679256934347970028532933526754836465593758030003204003857562390596950835349816748490508046394341804097023043800451170010449111522391033722535231083625810296203927648446715482112456538383610160834317182494287496093468747075058368948081682078923087714223313233530562808939459225158505998662214765760572410278805620111801964955912467621318138875979321049253065132896028666454491597191798122346311535371866440523764085972566825799866307855319166491262330647702223832315912592817731932304996170871623477755788570306308840923126792235435977377479520002667298330903993483461868921875284177583357733392719250428528299580531282500085122757224865058716682489519758678618802422981076478239580018448612975544974787373058936120136828551605082939621768245210964812713441904973740716226182454191940832936032016378540596182305034907625420353793022559895905611656472128684642979939759426323370363228542929780386939714923938693024446768581231696603102998392424735853419186644571871850745944598020346294912861854682748854334073653295579052778156280458980463958420616469307422935955150837190570026100107492944477061625742279503766636378295931091384541681871815945314464729696929997075268707963012550383153205841196453901736229450543219626272357179636647947706775798596905832709916638381411620425425622387831880553621891572177267619342575376608619210035636368459935370168211304562134803641426595788893854729553548635859886084257279024197943084163400861502576899725444995183447465514303213150269859372107480521822294270622679581770114707480063507197092992629405792041441080157951431461850819332900272836294871476249311683044973788249060901723149181491604568751571374324251407685537534223656052794535530453458727728123280232080156639457325247694278916966096245039080447886630426739951440813690380401696036139435934407928632064922548427366362140777845351070678358952291182105532921475312986631607922168481375949734688942851480584062451570494577986587171909557026879347014449417997953336813839224935573186658871050252469502572130850617117955572053677034202938898945580350613409966901350128217374375971780340959434136410041213707326236173690850261489177267247154860085863234641933045693858005935090333160365037708469442816002892256769626234684029004476105546339926396666349011592431176608069138040566701028709243671121279220644005978305778833036822335153941216590846485598291434008676038373068363006793418903644454546190894179476942866904418211264981405615909645372644165402180472282977169965151838677789990454668732904075896567687672507684092336345850327673702776231804318531379274122105572268398504649238463283121630511599414802709017980255871323763433639160769312693270910163851933519941409903249841792407888389843744108990249342456088945305728374977987220008511465029357753176301721244672836694424193076887454653922776383468375066757383112042791073467626794754810420431887853287610835148712888340082915645434404900122609334020105118440992148850604289567060587430351303883352702917694299346819182371428185415478830194690535754890283120937270379423926702170138210343780111971320438239896587043996942361340166750504642501879397243413356441623182187890411376927909184458335965839982346923488707520630777008246600932519202050347224865714925508096770472921706378185652136923710811430812630750439645086673812050843219795080757341665036463072784819956393567624415952508198005694797190649101636406216526233312640085178615274716470398530558182443324381017859370196013197264471027969037437041097763119066627575878474389412180593643383895751545259048110940554785185697927652736818018854285147677478718430678886032860094980585939616894895556146519535004025185041761786689717497079794497116923395419283769517301547982027017336552000814628992129858670870743076321372991341765490242770582032617078936023015731022961763426652733960162213219287734461441916420318777525965441328419011064172923565082233509143672744208783013591662845911598058556297683316010526344725022262206115079796477562015539385772285784943544219592833478880282658326971008133720692625808224576836837272197765490693627088061883687089797217267943245646261649385317419299949253290154441798048393403987585417240714948318947944199682837676527322808685516248380774183502476186799740309252998212729792582179692471140529764493066090305790322726158158793366683991138059128670515533888903089699309111785183360823696786031032142460416100828017627972538964750798104189350825496128436201083061978567564268212270258030717727336782654194769792859662082658891643991907290174170831180334005477547647264180545813258682452552188194543314222651629355644167301095869770764791119377603504919143937502335485359911364651848174411468111079838515757016944062571859764757927914445148155074922516115168592831495524659874156349385933593410982320988371428681929609603740365507439642428398492987373824681723213969642419785658267603936341794927475207983320816121950418811874318793654684776293767048777156587903901372131516978397207405049036925364449593712691827129167585382536891206209834867618302679671324239709929354471600093767191541500865789308576630551206416954365917312249834820940463891695520863034961847107456137276343646320838047639635876825283626575347775783499367632167213238272062551262866783270427850896879339199971946442559655646626997928081555798630554554065496200231851477164546775544556057089333459495796861066144541632010961251341792910573380203983457607029811854659951800988488286135276924411571549181928982041791705920877165138460285753183034304360555657885724426741397973410664597024167126103268848552753658353974690882003910368771883463176271630261382972456894198214566300418902588750669382790469023830282274728137443322954046921446613879932302957075435146176311936700954609194963969217762394573495653525086891921364225818714777027256349123983705309668707232186013434113660986417290488783368871734888612299459999256239549082586545441506014094485403115025079589250412008859874854126886356371135175687868267603690345137596109516081636085678683244833510633362942342818790663327992012283368532997485059349081695211756495862295897511719136081399991008276594187556519702226020177992379392650995319807974072345629690468648194197172251876166662273670942095362162483366657339089644486841951103762830716606664418467393630402569324259363342897831839297499917324036853115119407593630560896342207935576469332600704271730065465961341816593287965549915047530388563464658096322144105090362559034123729296070631794936468188360865625992977589470822672070552678911210769541477215703417263120061377931146027323461247411224723176865127441406714068076950683253822165201713171800405655674401917522663940781737107514219301646187960070550734116340444568024209312110304057606975693467106629242588351231530430724536333786354976858687864042750821131300052002954445710246108508358238816053152888201284690240483680802069454986879966370702274256317157017657204081163439000238871827403576111656858263106968813275039005356081088082469705446266022524215062354793318942313339461354345584008397547154466518686185180993725650873516722543227551975835677056225175443760462793875617543198092807991341042611178110994063812825889945599292730305854586076785941590975823775206566779291200703871122146246911901587704969397321116899712493601732230208983652074667196156925035953779703750163070119657475178391161827166783720945614346647125689433407665547414801495759360756633306279006656579614710401802743804911058406024701657610799256699287357332664087063474988820415370170102644957847247061874818899253995438731082475165382676295935277871570031611177697845797499921451759164289740614888140360445858990428058578847615968523787564684463761706486596377449023771354151607420292901802921909525313099780632305988017530077470985433459471724487437810995682939731702188962013195953814324040936570929973162334324555044258731338047362736565474042481573698861795855600790190194629496757014865593064645603259045706386618623787509994331579200090852897917294289465319861526192717518114308332904884465112619706713879972020031423365840002525308188419781572365707549369213547609945845561105571766662357496108617637008791536136734716898452613548011738869379676328311486780054381506120372867142549492955136663537391460726339953564489912907261066916411740128608777570164003973062524906605202168816923237664378612165810518085245148146808477041049152886887401366019282502217106529441992590616456498304024267570489634487652468442227986822095237902041770063197244100018368883789099671272252545836882108141877359864621929690869182391460457767860651581544910660851343013361543487259673601136778759888262193350347213339454046771598142076200818643562633075461268542585019093619041653208174227111009793951524049899577998099052115266846639500702041042391730321201747015905097721504098965874595249631731628779415622663951050150545856891823095794098821043174735191635581036787725472340134059315425778647192440505004963801926337937221694887398430024426428596800814742903947910151521411788964752584114188696308271369951425551647696757410406460367460093507449847819802047779742207507947862417646877183244834540619518105035671280760918401769347203472059940920396776892293769708969274271983833805878768836654400715304196429848127497627594985872555741346171415354976647765114002284150762230106930820241723140314058275937201496631069320100192049420657090979740446490228154833923371169880991321163514490328323016295983326391683000966921855403367458761200035143794013033833872852956631843163775448238453844306605662180108364503751632812373905590356010038882346329534863920943057684254914291654153141709457270781544243213621419815374800872206944401239344700946315788341487789285609112785722234476181505744492060109891384551152334266944960539208872165529238152837502563715769646892331289877104778276737982155764320772394434071625168486837651354738297053286842269766361753050438448805482612470730019749248260450388108364215725708232336893115350742961093132480866124456589526209913246620015225702870260146793706639082946748271588277224764766157443504447599488583205902977262086955199274980160635840481574316555770675241088131184493919761492039924550202653434239895883972800230849973496795337321681902788261174478710683653026222666055549261270695391125658175185112737901727540596144283022477314713803264443383953159144208849412599754269660743213583457921869130930909286425913254367858523136536442175624573262942605338451746729513952931342099757372091506338566788429525045989313728562223693636053819872870836556125045536110642637815427190636847193789134244409600748818938962174628262689395399673185062803368226463605471162156000401624459290175011147289172202456204084412636493233849323126808985973923097035322665554265831396893425979753825712099423042449540737406646294044761909430424958422654852574741632108574953237112556250445240251622690969984460931145222361328547575025878706005016453745561506463076248245895439841216108659055208794307982252608687328139032757073583516994355806142081218567220832174312552948715802576692351220643578669747021055365475205126736137015063495855025624118835431834865875975792995895755300080454379107291035621364059463905385738638142731646461606916499676280013596729979678692979645758835921673192145633214138926423873492577588665944010598390415636280199321400679454003684483997463272057798938562103319770459278568750050603812844787747948476705860013516177007450952044381138304898817612422291387023321445464435358698452067946292747158005025273749145598039279891844647291466980560446918428558266654012725431716160913359238476387304536916409255265593944663792007195363860907998490610426283147155394561652253441146852544918526918832975289195070179024858524233315669980326323415047384583768988321931876301591876677871937631072613303819203171760444693962618038409986887164447939857073226630980826165107440878946913934057094964223337371858102739464199064410184129297614756779569003830153669689011985091027327171532092980893081008873597403407900132422290372194683894891663655724283889855795265219863631301891555736217458442037018525916963917931338095532113053724415923415193182992692604455209399708138155556438253640361622721233174408784864908084197783795157926820661706185108590666500102290272138214361299137102039070553935473572945718439325842906503432736748340028218746919492759309271151347437576270756416639516805281787735412597529675756536413639010517420870733172014646158226209773058324735146057080881362762856246500452135758018445167224158337402676844775370768056588087575708328136732927481286054860548914177652088513931348937555448585589861079248417630598824085770153612344591455068510412523302681159714607367972874850814872255118542050173516965202046632451030515495040492779774324622667244699789671300058515295958720309483902675160547848332490532683305401499770520158663572568680106361986655813261396759064769795187469012130293093839860176569212841526771262954690395320189119797672412681756083608276373900207703108823246000562445365402926146061945336447554107873894735323863781188631497028353513684204411266913030424339292910602178807684377031258830937987922485576784928469950605975002462206155090239568920682824479861751445452409461026733712490152719064581025175237125929895243883785710288638780847954744708435648657486034025923597786960339339335054388886187745960411584805985874297894994653801820867497058831297461072494034920619947014247703061446362337873008573896515983055955650290711434686944316619224965433284551973031496329709993299827560785667931562171223253149465760558196733695211376328222925790232846723832566282914920787699482668222914068490753001530865532489500270507650925311413957646680790312514795679377683538745973548619471118073138125190158068470486961495692803708471017731479428064864767181458910031939656402435090977273034879020013789942638511683581277701797953010540560264301791254302342249977863530922482765272158070736924910866165469513283072847482058098312724014195922386588521881985935366697321877401548663748740740580736595073774184779948440892587133721972934448235289005840815627819630635519670825088514695958324879461422921640782694852795117963036260934858817320482176540851198954416436790082104920334526451269473918203428598371423547045753900174616394666430460625231330888474932450907102016834881143773540572907159580662669404970478237971476376471162323068081143183562140160493623624091734788281280745841301588588888248105605497354133953576654189968089180822869984027112277872736587505087551521638714729252886515784288346983013391606092418773500526838367024565822289082545337004278603747849081146816925447155687300059536197525289054834286553963329371909406753568876033245979071498274530581945043370392515548105876533589097136956001315929234855632860157860053946650462462865130672346211552455586545946561007891952973124175643111318303065877925684679810988081443072797332435319906408212672131937883752841068752559930402627723706848275282305101536371854871524727929843533429103919994299915767124562317340903052787199323202565649004385306911538043179996482776734200707929765664837628321972564196111154840685090624245983128716649135259019369899182773438952050460060658031332103071300199444873471830289494477728522237809682597396950286330946300988678362794823480157517936558971559213565371692690309371373633439653738902836021315767488616950500628858172168158426252375828772504405872019820669009444827759981182715063048970279088225820210676682677041064190122278047617905835875368169849446574658378042474970103963215218659108982953104260474185228924338918664236914127953848206140018905189541106188779010530008354335093058174846878478828719030855241642323797252006508989896268444116602935916989037048488650672972301795959508587556927482968341365436094208468953668972866168396026913481944426428733268711833826841726085130481573689823505210342067454312326869280910860427147207548435269177769580713623365020810574146937759876241071237935172425189539641156789282929500825435155060181228978397621124394582215460367353641367266143412442605747655353321015795923791095406563639445091389651294244309800428269765969917545774225954818883664852599746528123857670097653866416159117385605184755922077747350792825120372193921655279311498035588298083034622247919825879532089178201855623652389511253182980600894523765012246539275217797181431622587020844677606361598159230842825167622087498574079437457271237586464427451352013487717578100109648755428758722980832758256768050192766361989530682359592566119474628257579876148226948994462859739326666787505016019437879801836364763195175613389216864969827211953325981720483487093582089480832736017507835204027241840019514021227386338221022214249999788607750083137844072285390539221083059482980007046864807908949118815662806756772517518710372732925876614803195422480235359765528956575912946500658680129995924142629239448126220169437268994712041669921129712408231224541307260080606923951436743171738779584431852747354902249964582199005931371424795475257484989331759434306761662096000564740956672814266225685219914451626689256459734129511847209277292119098433198842794142010588938222742776792272440845971685603514581266626023250972614060407576397659194116445914137470801409905440710745211593314269789752730992092851573972496710681265136524679024012435381040743826802398005258788112935158985241953141942151846295643354118771815498085996032093483786512745119733636696814820496384717821440184094920244903742039944045188842064801508965248867292751886997894303493485656075968036034227351647330835857498644494932311276721801996894664341936894366016283426678006045917402698824884759047056063312156977382415109145849403490283588927371378682602123981678522225681169261985955117892628709955908630796015123185723009283138317346298748903360416591756266530348951387785832593211927835590629245911172944786586131062082447006911154350875791259136611128051332630825142004593213335880777876808960334287592707321198632108054253889850924562307365604932409758434617376210053635030518471131789264370030600253668462182626245110202050928559768407275438473057510434851797684947282597911364956520751307885448270697248436483381759371646410652799819659468054793793335856089202368607482137303826914312286573884457927723924849316758352731209093952848692419034542216360888612457879442911089811639992058577224035657046655601316802454624150352174851580701445540174992168356188694825154191000471488989654864214912371085996627305046779542516599375650302040874423559691205325448889156631727948538785765310180601626285750097837630223287206474002420813563828773038032292718866422915498990614437932324551646346982304249127339560024502578204218862892345659259294200515449961286825371103131093425920067354165257878671160907856546569593006075645129179595826603668348450205532891255872611310797834591941552104326838627361371378780164214068523610535049196871829334688538843225330939635784037535207267464055997693238296949021361066907917413256983770258383006799847530601983895151943279521954547046589608782533727699986829408776250033086870396488362176803503429433936752844763109316466753376111351940692888661995418813756885822493076504957366186647184321847288011401316335227550085438591582035051022722031094860939112470486644280877513951522782439955517396786351946095451311205149839535345155404981955320869939341209276559743931046504519161547348010338516753865884992138346989957253699332535920672628862751078808945122643735890054185083026930568461376371767212322275098073128790557163751524680078459618922121863749048898577508821513826200484261522141970062852517191000775779978901578980418803412918214949860356508523467413573324804335352677168938633191913847953938621656835644608063658789403163970646398546101188009616540647816868081544998396820177395690042857902600552885156267483043026817963916148022839057634979306237425066974560592349266695090746794549829851592129792373924033626949692471153561858127179004346682886666981278205827910135217109269039867838751741584879444315746221881229961628806312485921757599154296834786823136463593502745394389489329716505802408547964894139688010451741897842252585813008142367391666125920702228781866622509906971625647922661533832527902333046395497437368074404021962114436421400812493249418130860147274443601387011436243680631530870460039701597483102081339821635809668655023362332119960705969055868623038881215892783005097797264569613673567128613803218687432090721579351842498309701186100577993332763425319604583787754879341103555912474507098126738690720185129184062118924039487339331746521375065373587742005639561438150545061517750517303859239112134805371604729650849844723460045958681668619348705223932768849590348301747823329937520425234487340318477415955163652610355237910586667275625485836446361617636338995989823088287377737126347739624941255282153821998272197252500129244530563142633253103400567272200033196759103914044281918858779660103963051228470229757799356889505669352785095265474412911950039553687902391575152524956697692770587744073661248038890441029357783362393844167195948253827618385220415518949031418357167527938267720064780636686734699243296436720158730497320774670383385181543201205437866908139120651574758570969252437491018941425154510088700043740521564831815027248475359472103688183170697164836798619734717961172633594262724776112071852003010238503978840775924658926661993561463077512179446851646489810457585381182203483542310086177528422189510230072353922116344838615606727302209063472410976470114966436629200256988972897430860710759138773795066564628946420048069664424769097021122374549532644564951772267756604976515147548962403773618551907118838230153746571547965201890430186104374939821585144634811818388036776984680637673709140320237009715342773164242442481271871932968347176574061031614888663793672327602605048754649749030971436071246626346329337864818110228369008989782358239922139486419168406291781706102354165164797740480025135348418738661110943590389333238428811768182787010814765309028725597709900409681442062361042332666937295238383661801079744661090951563549702277536525272907972033589131338018626603500567736218736492414388616174683385218708318710597726827006540024079862429681833961254851972591884620198212732910839244662770283534641320304573181779303681798587295517250476825091319926342406384734399667849168513003723012874478428484328279334608986283051406911712789113190205403228457875810219555819424292592159101809821689020696482545581833737498510987125043149530985188670661277889677619071836823980191073073836768624415176043663045494791010741174826854172324916068649935231595462795344586183328468596837676877523643477745277830723048654290010466042132702721664520794641565754667634816796624678693381671979702610219384310971313572568652087746960078453972652910187619038393789365250263541913614653397273441314403827488824586364910345033698084392474026870099547710462385644388056270115824101462837559232027699886562619501364272485953181533848593193222527398195876009844942976340324050374971700073244381161622867101335263895224317884130224989282574155068506940717754973723312846720646463662308196599191852808802103087330140009261002743582992108483211346019815874828055898515846845310619094875815331166916775929918396049551047144846041625134624771389820268928661439853724074007262762422072150300769074247743959578112240339320115661957609732832652051099215758010099615627653590036991148118396046771264826632612262727030724629376301698762723625551569303828218915735264121498305273675775724313093009079631431883550043325763816653157456131071359527930048012778100411983225110797380662707400290102236903149770168301402245745457739226563264326499588045099407888246463477631979485628710507044758076136493302097252544936688628535300907765332675059996088851442424489295746467660756820476951499861241671943991471167811744025248716074038519927924620750619943878474565972096963856626404719629045298895988257995920629307138375711157479345820527470318649656909965119058170731503284651614455647706158085661507094029654002457787082515748672363007850830444873498068316757929628147193145967363624801869500430864120659548081858748934053762765807932633980405924418754325039529062628708381662013522704438580597160170844292710168173298111274727280952175462841999133683479337469394984473238959923603605872565700387193391544680474705196102226576236958759958334418465307889650593807162314344551378537311310905540997101700717681567765514698696002886260082200336396190691494315461069450569514409934041533875274370294723427905559782994045422667356422940011626812476931933683737184303077085969911573516084125484553888905498024782191475618237980761122155182908295194411775767792135826407797799916727720173599326007797865218282002941542922796448292695353043639698212711580191392557238833855805083081188298317342729605154689722289029230826992822066117619474460857940945224748939169739187010726803477954756717720175989967031178920254814533833180481235007837216117091824573756452688509456505607637399526577196305439965577818394927318665034222102715556138145098282433047810050114452170404119341945968801597340254513821175094282938973512256512845234544945483322777323843361003021821037495665750634951289163738453227844444736638697871511402036008347107147898035079451356179892954450698493826694319627091323710285190605996604687690349968139644393084577256740743194673230775171624113455039639223638727878017028516123412784364338128894690328507000022397924243200895529770101524786102016176862112656606884267422557643940082794138032188553438145537757095378071250177681632492882636822654620476089748792525176956824765666729683630798223064499551745089990234542139412796535033201387037146570985321591206135846459487939909061206071600249764360784702555605789877904266495982137187962778935961080952665167520529905707834791667857520455077977269897773432706311831302324458268696035145568409319486709628360714477321034143423014171834989641617244184684708671511471190981875882494496707264683534147187055087693248771388605639472517662547254002775151497203555846937508039448538756398525327134177400228300995037436599622322333059576243912306292078520385472518935494745549027922249074868731008640135407740536741846096931499390805286915346970264048818542681757898947013827610898435549178157625499677778973301025398515328559163315886240157569554599044569475086375127380102218055472382912470200302500824484107902680286715148031250361795512227244732267623636540439005875308602435461925838707474940862275598818416548793859663404306604820795713208422243349344023010439800844645957245710847871033110635930300672404903904355673407211255385319063418203349774679205944566795547635169558370881931008863739217391882275833630795896578498971135008058719735348182257625982378338423380547029273452968079445338141811598296851689483735454175104595656775508901586759299140958457406300444422999173022170545219269399377157151878410920763549444913228574912555155918562750234032647308474984849742753067628202476229155282346517479120020039235929727799270247031216888104367047107393539709465071196973104131809357042201757320297855467595864646198579511972284342703709007029382075045566736613120861865533946225824619137666929850279569118936013032602399885607305152971881956492510906396060213827882503628602904304216428603894715597519624135855633133800894561175144270653982766181154194116740242153429226473693633927108914173106340182334745357752833099338559931942329648412381790456228442987861966251379221125203394770397740005729840622604528647495223207027409833075273468179195328075772513261902754496844984598461336832141149449616194281648864009887096412091818431608991262529979770243199517967554470451369859672277770347779604221911106473234387970367503660602780396149008992409863509626169663821340240790860036697246435364359640728011070663694345861212890547639994877185456045620150579301407604408831655761666645069611080601888763380175641175310175033504861951847636311534186415281217570247420612136177578476326102446086173693578971936927902213068015943767208753521910603701328888438525220613941103058900122013851490248818269288613888288227068683790808937046400876551625032699846477886464111678808872870152780634282414155977748007262976897731029522993606409619958182248744241235216798121793120796113391578837042969686998709439639860898685220470805769223313992733065339830291977502822967188794516980445902740785472974456896157783256035923220951988568643076683236875439885622418275841832647627157338909330766145587429470319535999582549181950170859865913540352820378041087307522935594726054720521249668102216096095525351553651192005848168467209289740499063118764620142772954553331741242135441074584298102778826375231419940507767257219978660807536640817092842887068652144234817159950022261186069621879200401219319341981178372736072258746291221197520039010470486955115900231173117280830151059435340605720886503742826774310475662018008473241530831038872001087488838317013163002238622819031217695502350823801989536109152001240756024578759700133483000519541356301714756945664374774522092138581829082431825443901248606143287764884707254548669884986020362835695932017726365104319867175964783334053320071726538564004493294958046341700862019115895935889586892273586324077820252562221368492854729944424878562833651298992800408115564867479187575292142488481274263080509596411432302328122904950389683522479076900577524562030249381840409250479485318159501967070241439588256671953019364554819309289956932063367751937682216490720219823258241073303885271589332030878506102020776576391948466542825986534974799365037469142160305027015999739917601222617602578145536321026884094739524494051967415057922932724016252882912997232887358422896451541929828484342674812224472316074408150593650113546097377035924579546819148724515265284295327374194655225963792982885762710937295594320082792267109036316830666603628465919000064571016635790455994359616644696376525184918966431797013397140318385812446956138209633448934252140269022986873950114195714333454016267704955352735420994015024175808685484435433425039506905509794739379581776309290340012370695273341897211739171525472408581944265096059184134101696700690380845961726140800502734186662100528668919620322324435572717556390287283116014016738107243273901328437224545774800872495922144632305129535644028723951704095777608376879207716517661056491870756725595070300163151586820808182517346511334954010936906784590021876368056731596157547397933475294898639378738583951321944501127587135136361888723126687446846827434889362406273206741131218157577685640363899692756930212346259017591591027364167429212380945803334880664208362675014099988899684221415781985505922822586162606354543020561265791118710006069076670009596793798384602219745120429716494779045491918213030030906438856057970005150141610546717247668097521068573929623365269296267359701721282643204247283110646868655637662372382933947763386108907536148978801506776963609068329894287352543039443952250070722341110732617703479163416560718778291936395285014426827201528735586156843590120732685171068638503042384626840718562159846337315857420190985239584223812673308521830082857249763068191120453099120466456544536637371458734812175500978224260785034179675115830845044446295250991877749619048078925120145676765954588562368996115957696068453913639555157358138664599085008668420142534203199523794700603672514599941548843844686383661813451458220145177777589350597346264031835856363927395826505051200114602889156478333639713984898104045363354800102320777636446841583797014766742589661965057924842820874469903984678865504514808975376873884014072606760003544154879464143074225829846354393649661737255598881680903428832795333787659089049969056399924196377854770955549453685788267304037354155188562917506730771484227010437757347286449821489209974257046700951811631349359020995866605165694646650556876688597793125263521859622271345663159870784580278083449627133032529954815328685495884911695247968812420103297781789304298582923109977313294898673443702141317238172474896716436400713597178559603550185389252970029168475829359847708141945004489717602756777830831602857905514503002627325682958643445022884328787979171566410165332109178654311636624024834060934864367610692961800817237302188844315380475779786400882184028926774002901450059482499088323540375099611714765502806057393965380413098612275345383692272440682073359248694180732644750664869333179743754000448539959991913131905666608167232422880484438730969525786705722816625150850726068382402295256997689967398550061741099755514243390437393548227909890727246087097712262450092156121700725368193322689831285178163561515661113575744805939496552427413298630402003070304866241676013902511807123947833635476063559823089157857411569460812856540554879897561291290859393358293330715312412759291749907176333186288908841460110127489844600620414188685609644569648822253021698297147937546840850298075309443885743612029372806237861258852628463882190172700143830931205304469626893542320646028067763181025288838530128477002085497039084516853991443454883681748908338475484244791453658614795971397192108443483018009050522429042348038426258320370459737879887758374104743411806312835073378679628677846468040962071456334806865654570061266623307457685221287627743350887969411835932585003725217351362883901343460221307396072222043793365204459709599641689226532020425526227211479374958617971863226934239873136646315129634457921213806082114412555736329054654668507673634636520718148078889218135930976997449100956755399095748089177271304883977049960850133319237811744755642639976538375556906746141077177783086178008117229826574262687951627932600525007381133898434945950594083150522001495554251385970602980198600361824036668099654218237178127024194662377878279497296599669501690379750214699634207410285208215427482935127114232803229970542386809420445233934362418820942373541001685533433020679629934520794954530221646804142920425553942778637369632033353101614758534353604065951426257859984045836335189994160271242804871469849102383664733951285908188240543269329394305179969291310769080767918929053260297487573349301238793612256437640721445667595738787189709281637700715059042328169476058038239532901346082409404240701762341776657784791304783094602229501784908355352965623025816661520163846788375110433905181337522278382357443824868070559279930489116665193625681119487146004547587965327528853438274233149702914497461331957183667817939112300376502345370069889381862941502241998866928500967803248530666114582541451004071813029659371521260059961451423252843986935705176430196734591030748063914479685181085396363787568382944321154001251745056790315348094234697401071159982638118260946047334633281962341114899733294978401224634732383703600457479811483975278792342809463465653699642331585075793450321935765537945878996425660344247240910209031369512271473764940152978064459613224043628604590340151016625971775034760942313900048454138115003384345570993558847095261541410090897330402731112301682426716456994573216570230338432521851816699390304765794626780051596766398342289345670456557349993517836161687336117632935936407668065679546450851943058380232076186281884583218614522579062657332457333399768791174910531363788365156043632972088299310812751975236538028905069016349062547716881335542422922369382482380791882695847069115187959037582179382024216859689186311312592987579369616151308007346270980701311435279288790339836988142492577333435194790008166324449538565131694843161263902495839019930135829440430157898071844233129768572759886605960731039338421894873640290648491429424208622988679175930334453046541245473244326087223792000287542105777706949825193803889344144984061277337195812110977334103644661928645059686817946194683778544235704946363643829511379580266910476884934461090629373081774095074314649200692374074409910887286150216779302760854047629078711199674485154492790505554557247964696166201711253070468270951916867225210467532334551651082325048773699372843648948674722955707678745693006359312023951796024421824989460360694411554980287379061283895851329281772467724215218605662566862924092960941633376836057175942765221742258074582544382283288645651289537759281596717807066409948521018321829723380402810057275808850625467806700991354086821945136125116014983966599381232423400614396400851518871405064283848037764307470582680129975365990211828593089229712938764262470201680432668615166998704688906704671322177248601637253905428963297163480337568319825421779465793647813602810214150138178686899529314581638960036942425489151493336354176578433357054310760280224748864249790483367684720219890593696317396403818435100851580904795600113734750777379202405715834455456306941683067671527664207555841063793245145596606086609077113924072469534131445299965557577951203477367009266090022534283976043189083723791714901823380942113921942654880936919389206575724129271017738562290894857769046304065636241681744196347311916466752076397347332671225038320287641635139575381783230464186822166942094199583791178135044813689650451985164377209438425003286187127484019663377973409674819533139360172644103040261758153956243174804000161430368079692533625403537396816906129179901121706964754460619432678172467627425116017163790428232961223405873535229279356247481079049213222593607817802432644686778219256466406362016307902524837166385234390445369304447682767561274451020494850277782390036575833166857884086842470459672623883441912419882950624448363742943311741058502282025768322510818654913118430391397062565454496264605629498314840056737786469734035377136856334935493457562718930340684891694261090245072892050018714380969132945436118241720418710745946556641715444537778916421163060988063545767158311688588143347956362100477133768451582405162499929720313444116351349327213732023126957339614526202807339992700294241946888671648434817487353741571917412365635233289500924315687963088003948539847726160540021343748773122728970804320486232880449473157146880640799171561786793667505189959872525541944796316575967478191705271267046793884753856651628655650256519375539255360607503265979048031203600512243753640799346736711261224648706578986502796351541326924839086953424794495318290994163112294541532493428088503490606968895948240568404947561765426722043254584232063090732173757665861117602071834656531730100468844374557804153747177296489171813158225585677216972336967895232314387557042362404810125654205301555498303193744291192596892903264972166950926140904828841838259077184622093873943725868758464237299770788995188879749451165599325528800549575768222325952824405582540590285903468410958536893050393683035894706653354384178186569449620991277190006460480743700358083671227873590674962320145550893238424656781241776813396857715410820039267528093714335006754526598571765109138056925493137589652486292711541211252633908212017271371785186322519453206537787446571494037714066065830226855056772933757712319712091204572127408800708165383876829919228011728747370581430899586869600036981059266990365636093824336875202913653010960280544875024784535282687745645328531149136127215597191091839737886997513308291530921722216191810267526293170623077107258671357980573965473122456232886152473108207537083706955352461796909090841624054333623448878386593413375040302314692308190033928298545231569629104966978277409177739070420859868045294648798318865754124741966846701399573998265808574601433352913465678529781749401555767263531158058870282434829949740381981752557568844926446666060508263616292263998634704783974988614520831176006186352654229052129751990598683566710719244589903034675376544698620316190592722869693814562335859949157460865509553318707481207577031393591546986983636764832131147421203168838520007979132025077109572715935519199100815658069676704344659603511727963785641301425118833564235452644727853156283330633767558857134148589721619640820658010267592567311150086017381177964340303243263332367586215056800296633814213289334173405428982482219037662536426578926257191490715826249414530380072183954652480734389929662280332942222399890522307672028877989953722693639981584434653269691131365788621157799804493470070136619589696158295642126579859610178164825978080889168195569586601824596225970408902568698751692987403681134668236444570211699419987890927704978442402252511671092798356764027071756337709272795594642918116117815004448544937527749949576909336155991444589382040895729702153695078819536612221613010137870399845347809138072388328533015988345668858275718764423379176537799087650289689293879894578016131243337941273530463149843310793390730291945943874193265812267942230723906308538370892286668955536042848701821744971544850121553079446353519759156460927495796124720048262052474913913037821967423489445843667929667285651578417797025878620318456353433798513615344754268734389865110205183963458247774516180145583507100518234728863623007183362705464525369126743286227244085506997828117326072063131280544972467470650304423064098848474095358516851997272275330082746068362305222076257065742669313754336814445302156009206371351377016003131414669530726932054930410059705786471382549641937429220991008995438048440563023877919810811981403000260261140283679543456788012727092193055878916590224789436355141725581642062265938156989135099548318889937964447751968761809227331478266589796035749559886374776648098895728427037989149531044181104431102667149408551581361782862233728931556916506153774114546001644740215065136347903359221195586103016250790674106854442555227966476142894317347782861711472195723327571938695324174084314304107788824129522596979256038964337557027270281651388786275337340661052317375173632925734400183040557435310683877887417383028611422228668452919262562509141581812066656854812799586529418120816054405182556184987885842088463433810344037252894680115225991315219680265748860981094768365780774182047949272779485301737616051637953381671726273308022666345370004271306189155827408659114395091635532939202288314924812116340409797040529176351803642165590747567637692602762962133093028778422187331352663763436308998473194922195436916922351357069086246906245470264493904798251424086984467485327842537631453369023054841418874385318336348059842771983952347081388158489746805966341690113568522572025088317068986930266684509899755191342690092343857337792557541485255008656362421520539103252541544689922816828308226762035713791293513913610832870451914847291957504316404668398512276511725325395806687236292569933722039711270522330097708338687371376777381964607283250202002419571653396745419872748912112931862033289380783820245787234332470426841493196587159318918793707411379475792962658968421333842112224963898659475662114003968464163808489217528596905718897775736192754735531684031829773078175249020190500780220358625983623010285205570318892844253613008982188797390822125010294026376045699663275278049380773881062218574335840626688958058840532539069773913678193662126974791493091367773911489028737733251159789946259512363894420030221028776230876339065682273673508338601827862627036854826556484241790865497402210431529191544306388275137493202385578533788139619677302882221812698979102046903358089009968560165626830645935380838750692597902074544752163740694358904509500451086553515749139194247214990498984106954857174302314415094952847906678936985518322131967791459049397536214354187524708999672150105411394454986095592105184237316985817443058395383789650015130056438000886254564231699398502371260835204924929942562840492621471565975876191084554469064022146061722613435571151401406434337656011461411895642609172063488994039322246808123420127321124629080568028461861169213686675079267546001916447043482457159819155481251279197831466975151963712499516426648779291651605616326538170923631330093162350358470528076994768810568017884196868606851183896837469219735300135091380850429457342265925478352897422250251041219995053490340800114804147956178627740608065495157842086734383011001234113889482073056073579823076924878686401416809740957364974569588512943682982546440280026261865362831117841831876102922109914036983403409326405165323562912302077342543673859763267870418696534704653347560845540811800491852899892066612837853605226652898778308079030423638320119937235854201219137553306077578473446352477983747395593079352598640552516899489231186054791055517397937103225328776577390103724651204927436174398782520417600269079859640857522847500197359097573290735280533006842948726723166180607248209065962384928386265659399362287227080818483180350009656721885159807012533644803545758251391955250917433290414095780582583886662513012679518796342965985075553327030629500656968977599081613988071213674631270052408898093355195875533342346968896088997996166721103416086010526725351850710318289936920974497370347892434703233943820916579481161321116497368094958849043011593952607346671920812295797069211888705006221462067628321302520550534705470515962039078838258669649908800447491234923800212903977274094953420141337594598577212373602965970287356252436627098980099743615010509815577936885820198937676911940391302186338375839078286523304755595682786273156128316603102125256738389097851528484519032629756559766618912710623056229555251762746471631886977956701135612432821882971204720698800186529876783731203127995690137398769848628367618662378878965122704899349354150083105589801372431306372568174470971231314838853102905578299222105030052241892865522807326721170496554824834343793080553532053142889250744073385458284172872155542089749701370012556519073088556999935120802688726016821448246049996535910621502959445884138474347698909148400233640779314060334346965594964850418226584842578788046186189126372548726966276478287120520158169872675860669692250885009202601207525600098044624314620534326316978473395386072189131511248943618377179421769133333904182464477564968158692724180676754009998294762401640462201893648036097200893174410769099076353201621807948616676331004853380152484109776849088510882349558136459121220266530702258108681028622032278088357611849572573657721014000776282694198641403500016274231204302362907508669052228557165342982859040935316679385275002973161635849930328263630891764359766281045337499987682452302152444338966363352647326139890440545374765139966255664179957493758939298277766524083885443752126138504690344498976021243523572569693914709881426659539047715393810535702109994453276581635036001075481639886371979104557913150010032657681392901266768047294722742345796159990070409761148288596480487464886583417989385328637198950106114712980765154938740929782184415319307543756623749974261519669088710259140010343532185047706753678484623148863365438779648522777389598000950064285582932671382442598308083388796667468504868156299807836101407064094624929813452844253228584594091258157623524839341445726346633336610108393557721635156803915245065866767962147409670177689614651039558825768913099405247829137809365327361962200422327708774618937204463240933397758345722350623832052131065985803609868814206184952340062358150638802895177284216761550378079794963833021147889710274299702916921876427239061728394701188489593792537804300939787591648307697180305889723463410187373377914358329917903763608626264468384882663828957175807061077235080892145952328849211223874890894193558057769503174217268276083779351476258020424948931588114981518836855808904282916015974502566684972180340927339283549813400035327035806379821058664639602621345068963309211381529530378509841971539922631421245018122903566366201136778975857667063854703604549967444329551454777704439649413786731429185872346109961763551182921622044242715613088879481822337900688026574965204482960739536039018914362245563127443271311870902235472534425265671927570077079007274004740745598211282452683725018621950648910138039366450957094103826116611298692067240367206096189494575111910769901901301617502695248224161734507123000857845988876466607444485032883500373262185848219344783190200472019227697165012835564550975460931804608656794942351528363251083378880518639061340319988120276278350360914861516890888823571615044432007194568002785821189067617930950171963165900826244075643911413407795440439203299362513898891249390725370120787402307243478102822686123381864011391378770308025580409512940510935540458665357691007900593714390259508385710261757831978215405084061963255634643699178539940743208086917213041743511527500787586231902957369563704440166304078043944393593682109776121494838580722854930571232027680680005497198973899319555749856457783401058449246536287512551518014268603513029985023621240382869715500909577178136223533205751484503504896238208226634319924762657300879151165928063478280295388605633082669329559805685752976922847504354104990703959529661213929293180276984538591157153249175448231179469269904932193922356853837971052343922399944087102436390550870379585176200423615871411965099089023515336670217024856930172365948115487610517765006910948351422940861738407443167917618074346796750086515620380427898927371281651824812336971795288471498117534195615951364567239009039589923227159556730182233042006924170867646604546655961262982424883210557440404396954715649409699491831229258504553178006278618833124582490323317086934372967541330698731546414597863657038968950400294182161356307701876344310589668915049262818201747740520323269877378458912356275361078105942672040043626351663762920681201872650982997577181702451596362718750151281965153886969507544567333476363495276825400826836665218087861217700945973326794591033744718197935313546702537486411452194599302402522276872409775049085585957710856481838772937033494780177279873215378251590713534620399285230686933366544313366592014381794780691004634022483792313112810016119634434394166667153191514284409361935153895389798280460610606155935910793959148426098567364123422023471913789351548787740600407806413783497004721806465487287613076524852725167044697327302257639338427053361661882771464387949150755868032666415326419550300794474315409260276410931729827057797933480368345971122890795838305537734834333089896741441365863644610947726669908143768494744719532271679443120157804508094882898631436829006847480359728112306620602008891660558279232435812119363532403452816292450708384774277369966336124453073575016860772780312249128305422388297155093020284122536120095117826330755210325000261188559689009804874343733009812613237252205079880875620475252581579297819924956295772806376372540403957188652262810936802792766394875992072418204324235093502984045848690830631599306458396698177723545555673652813230705407922385525713364676066068131401115999198565722610083725375652125126107781106846688807854487682783738240421565921552073093126388895383495039598877079768401018779707488501105923821326331552860693448264335697719706342524063439254952712144651409118447595816804937263619183232122139807715700469007168486608186886421438315963816493900733234755773094869837603415883859032516191473877514922581201999893950204891007567714180998100229557950909109090462718565423965550275545537583588224870182622936518095797481863844529277985204316486564661478060146868268065762433465090251239051183720424834776918537891927974829490332948090076423360476104782624383892912895240700305653018339699079839022381200901476531680684441581960893508484279833980554604204779673069486906577109852808992744091416817817447787192962676365927364323764858959932578673016096844389030377253848655984591731598014409263588082129978123881370056588975174899308355793608150811485018006354059172214606862852532669926855480419352914186134418850817132005027437017746201174873106841776776962843990694663378068474653443088538952807100790656792599385852675282754233663293509463259611423159907890089790410790915888889579175109948210893165036884450994255309023474671279120110953694405194996691059560125660847882705013165314593712664474580986622390435314124406068402949004156701319678060968210231932620054224127445077315933974845713387925046621805683350934023182092994529629000942308327203862073468727129872290446047810692005621953591025093564888978579130500352002055935184570209064511299667945495313260067197769918465684409569103003278119960181965625431048285505473965766862164605086946554113469751806266532668150589923407430797101173537732299893131444449094054065409361222920618876077914454782880405573381105025208618197817186100583569912402129910501682751191186202204561267994695256274025985555438000484042082841473394567765548712371904624423701955413759472482324643759128583662234888271509941355877090861143192157876638522968711316020926133539044917039585967811443161721173692489854875102177241644522069401929843848753166671853481343192538397566404773080435572128140671136524017997303808805180070190993465131654873024524307875687183289246751120152547600011382679417528049193773427369417816118741128339200876378001876857879969138732096467591315128893175587182382520598467921516520846066757734524549521755353048120789299079410314841902906465866077368547264975962065787860686090378594561126211212607836089389435375374358168356576000031435746238530270177211901056959524324805883800228894991487940281010136417906262457981953283240718303223374925055017462876413010546430742122384105881306606637032683441236723158032016809119541890747046748738723175801974738346187507971556803648279267748198877640266797785210853357218559581443728573235206538658738762946650655917483967600447694626902371374382620988116679520468819823290561186248120849853159351176541346966729568618128638876587783706713677638819729093318992110888190267825870517657366050219690902785776245576716339838367826102840949344779284065392831778209960224193680394966756836571145389425031722724573239033000118686680315613130595798841969321346088709395285080109544600636423868420106663494853431330738475485669959614262729549785203749946207312292543051429036751596638253124504199557694323814371800101729858016436126375016248107881801390843326853540946997722306413458186597912679853106264169565703755020772811625502110037903932476515063383454952821727803172811763990371384185928192703448845717395650493986393407844472202678767889636622637887959862928147094549272870539310309056083166243698219528634569693813811703198022553308255656650224796960929892689917092967061453085357702109486032904897234731278727784120197648125654305238111219158627174888411044666590127937653039625124697483437087868052773684383301374897365772263613453462729441249590876011328485587773962394934893094244201129246741060104770735454358988094391159247493403552972100571648775917976452760541662801117938948853901726831289015913878474162420481891041243754287652648863296092706719115637166166651714617014628386054173267711532700462883928933998694162475416792845135765494265426480129055905017547528737884866937145595277895658350742273651787489725142657790191389300504777514098640071179774343933247850058894377815705591680878801140818799284528244097287895562023719653170292234162902592707735718763596058458015892796722118150826233614132571772542841185131219877530814656971528065871591624684795000587645786819861315966462784142621393566937763439107429655566179912282151595984581599990983154152012634100044083370852785823694366374290958025383952919803431163527559320982139551848989428314836428438148003774207140033990546429615645012825613482305745118812497631295391990632097169918272460626284233590370178166352408184582381902974571601676381765256900869573832266417814520234130995883873197730489268096834391871331834137393571142795943819561256182382515545213018476023557398703811647484975918325113569650997847903639971942332185741209631398981664394878905025832476827072098667380557847514317807390451034581919659367265753525176261064957234245623887851891844675928314744247883420549272931079746465232134792389237284397091790545142963087157548973282973159056660650670354800851215546351453487160897165040832789192173452071739924477444616224969635350932694525268060259241271674924600802998273300832801049314546677809992939173537685672749612469144242965136954997633935171507166223028520292392302042886685313858248800957618664032872167137660345409321891160518016212955820659433125964454058132904287609330623073600519133108636579560984665231059547689524443554499235477161878017634898910277140703269682961459036943953215036247678128357696713841620655462992279299029150601486639905971252575412555149900340126368329715768806941128746756115588405165488594986523215285549506801621423057664304018756975747355705753182298077180251293274511868319064781111955895338772892238258349126942894186369185236351024139553224882794083254237825243162456457067316462479877490349361237333933979080080018755935114909740665744460542048510728539717963677013731910484637498502498980367440211780660021292841688687888073874653783959165414173549928481689075041521743034486041876495773009642866886892924527568272166643842472988385664729918473290818141615639872272457217747880478696714293196847168834037497311468818934140753796433126397074454767749864175355329596340090535496613307563500129584219379814920346027006744995557525740751086325689556386325709186733935866157911216535077501990358509691901443719720328114261447802043437651527690412736374758118107727940782944096259557674338257261984694429297510063686799316461504405537822523332246086272098512332721561620485810660295087878116493067272733974140992944198008486653539506941571413549949505929387480637428593497237381354102563464289494186792229335456253924764389170734193346882784250503895813536956271864965032461943663176409995759687007183039294619423023045578038970031237482255279309776754769392527795396440982755310387149585895044327421425855096528645624566647857368906086231061092631849230360291741918602490727852561222514673071559446937777151996289969917848976971271372290346923224410891624020864488567117452376996789808896991668113563136715068625890444364967118361683454358876685971550602959660767543665737294364999785050023772686828961843408319154397717059996397561840949985471965562690121635992089761062131694055903712859245773601070807832933349527164575706389548847574237666389632776703639465686749797070338455473250121446028372681054787701474084503308433591408370152214049304191779863837180082201354328772162121744530858891494216873683963024417117562936846971720590828164025950541582073021605654169982681756753800963814167679253650272815455201042231878202422431880077473951734028236996985709634569804453674902530881289783894862633037410080350220368445627738803834508028835834040330998579410928273798122902906135215451981099568943811106197957124908751181183529104699094576405187994843159968063194863327101244359213285159756671286239039943069668135145637608541381197062648096669308087655690565075331791284640121046313434394939785844167967904774988116426133085094547068964832376053445106084892825721740134487338225737105938817148187844214041283573028022058823787961671233537104709627762714390547682738344703962036874529679875023822881476118128245432854026678810496872681103963880636079178674706815255485691938857823488820008673516228005244512499442875112796928247763066537407691757228979365782393786001645547370961167779863046044813091940253336114050888092669512488270010240786169186975425432193089088397159604737708570408608475441509549950630959579172604168939128545721724349984421639394420241396470665478561919997113603190862759421754695163132558920879620737050401683255275763892718485726541471711710730935779477277277143264049512542679754826177550110210389128817623888095451083917896840425929118466923973408194825183127163735335843187500856410002148611752329091260421761994553265067123299388436999947258984606385438546926145900727907234361770754338302661016527186263957274127055184624565327640835419111972432793881302627923191936482546662518395972439710789012936425965591489002469725363020626147062332601064908718865741709356918139187269226840611732762419797558937358361820908288317255144761858222770954937826224739570086831826136919409366569537779881939046487177523639480209473352232174763380721192168952611413999292415410785446990186866172560108073941445167630239433454960229960322097370258298071034995448134006459110786248936526287458274666215360527691354868818412727384557835261578913114462263691546347218424438199017151461305732457379123482948570284120220813760601479393282067336138885373898254270643449333168277483763841029553403075164119230950862660151781228905544800194742224729988941960186404139115258630996117280004791719012760062781179839889039791389380174838986514497751049669283266338239827226759550978695019487820358660052723768530428978378855544042516936487908164687628585593862054135440385502979640096107546502800647187941067376418845735795694528350825475694295088252399124615576964472860451121357219166170173087532572386451270880875908778328442691379270641440424339553103052121696937549927866057155966230280641730207048967740572837911588414658548910119587439711528498941543876059585225272563617101290661921165149593122883583182360170382556067836758644597927087201435454559575375716497888465675834579587722995476165573444516561355480466496998238139227242875487569718020964820491394729802251407024445209320010424055688168266115870049399518146584959061199656709080413960052558147213630962536205997720644880584397045208416074078708989731351292388767419510049623519436540905698667387767360884597989734702660895474044587936437371199467235291723597324653946664473795335513262427624487281409993856583749450001641105153992718938493484998944877566236277775487442190754438095439373591813131753510921738629090275695975359843173681263984700626920075438074870438432095489002359558720911327914470614290254965738875359536933152129942348734380067390016444537885253824083257898047668287446269674155873372006830393388637633212666844606249933476075055461307150980809026034006265518336973933465906333056023419090540934924419212909698296420349285290071851571211113311552514034976874547007410479391458657228385629712738262381466974576148619135124596296253937413096973280003540995057265841078735080701872867947141457701228079400414054110636540151065348522653883449628526988464496965629362860579216141465023601543826980763129276580197956260677319242300623427439086612789873075378552611882797395995044620062003033283713624821572027522386487594906011657646291421656386064708397917700286240234087783108307259055513515837280795564292022088207292672667486634589761451297781911013524098275406573121051179036234952464326781021980816670684320888944139263499152760590309480012064334121160213280917070930292576459601502191442274267873120121507626769114134796041742432660606589351693275838553238682205517304186584137644376293784885484649761887985437191809839676497059278570097598703074238279020789146727353037933426594591173884167528107776769023146536998984450757601331692606720162900789458517701944580463566633865473004546002046824033912042661704524670825617265040736471569072388652620122671772612363730233411449153540126710350089849033157675285086093869305317272912832107163177825255180198929504211974134530840693455220952031734709749943498350703641019240811314816377083001627607320025033838179281435445584495458167087952825935609683707185095724367149305268102657686255700118897632307862687079296263192778595156452694458150381632057115331918426181316729151236401650231133240854609504198902926923936761084567612523875775798262397506144263762820889632102108155006548825539803383886367100069901239685863918067211197184088870030705637493107848951018712423255927601491245566043777644586969043734594852247994300390085788629505129884765187425980869222614984010733275821699666263333535229401506445851017463408029742030099931753720032681879154448453601477784712584761001789249482478667663831923788597548184139396639315785038258408997155428680249319313634683592295779176603490845033669430896501379723898827570583338145827503975465328774202705109714892466163785272334196978881347588685197940300836136411647782546580070603699974780880258842601988826927084323913332754506260577726431897020978473147708771424420564828901527017434918431033976272536646012588941422415785945242423512399241018786124111225581754524759690935274781059063683708147808416498280816739327052220202115757494370882300890730535168932156859468475583327154269053415044158227775980648333085180299019040269633418357312319228611419838909165012284158819892578559059294321909096867738336685409195696373153994442834861443216224734154644881036712904308770179542576727341311682119507873209154362443443082339003107045804232523954660958277053365257019962715177947094173982381982208180585724354424881780139323827987136632223615684298790372053619606886134376178259694694857366428041267465440992264074295889718322809544054077172723102213207781083562264408556003631863764068806455070676180700474541803720226173295982107852288858000221551159178047758894800400435831065233054246109095476435489867585052916571197543300526220201828853243759450673714217129424966036153696453321579885537514713338202019554035520344785392911677626676960917488007341220025208930076009734832515220303601802051005511508702340477689695880447689873678812695981651716953113881816760160931753592447994038623698183366948138873279610964473411003278006896927569885174373433657508975561600261336588174443831699894130994115871470908203184405398450254992901259436014978316850181052465047364991198083217670764891846104007360520625293564722324553833586907238524420473916082585100128783592960726017266138921563035966181612235610236819819382324526219180005033623747016923909707526418948099026505750009190764362877691909274984265401130525570154803474837963805496682019735628191116987870135727064145685728666852781171544024467548996857899790000570381549252890138943909566597836346606078603517165163371996625696203001141996548105795076853005921011764606223118633134045118101483864350701059592409494488163157233063062299296419471738134583073021898285310687828209480321748840862706402146170597190025643684588250064193647979267826062272970705150937063496211863116241952725246339952224375267088625239012907337660276187674709149587239074504653918456017213227569582407890836887803151367860130430573070694376328212390277306268246908471525435088518101020063704175605744559170484493710326135082107189379135952371378410025469463160956626507172956934717640063592399072586562768825783060516507713951170581510145534188227444342342712317944507196066036543394845912878511933900775653358104163400102160393206557736012725059605602139238854639730209684394235196062885708704118987894967917603218755275848623582933512654604712901361875987908251047430209240446500384197876530834289407808283218810812248229068256922093837385428265574491433739808912936735293114817752191260800212280847336623647483301879726605320684176535034706289994744974318133293664529205279606618293513577375414321894314236707702360104848059749691522132904317189036046461350998969305914477982014695091527748968399369210992364872025471124304154034466903270590997778062814996397653724926629532882069347968716865290865049558922529842985577500853706585554659378314146054196165045807761103685109789348788331794957812306321112272514439657965803153201853916854914042927089828316822005509192928222759498562364886415796052635689373788865358793956301557432126507521175051129473608087761542589022119094478833915612657031799215527259186247322721893048881570957663111757201469629625892625690180506351349623789371191072392637822400632961499521251121352882804624645453923633606263177004054412552438531048649692442024380432477272993982689102540117135372461184288717811622072622153559169016995735071273682179740721452432575008945031749045400507888130736658221543090661525425094037952757809758451038358508243097393939726882152650442965969265813656893280227330543775360646749514712518440433679062588101056359050143831863075950161479652536818288962169195889557241247718258120210535947374821255254591019394230314654913223074666258124122425574081464379301378675615342880778746544386032390882486904943984313796692703868818865412687922288603999404069787535578626655211501395770038001082905906441153452192642671289169123506062689627662027372852071557598464547660146018710504886997147852981399715002105127329570312924343063566142984242620644406802991243547793116147168631631286774449077315237172078360824537722168894198527419377691881628909110502616769171794320414401796626674225594640523356406275460752993080353859268309997166662396433152690851696975533560451837080631065736312082582569988320591054188579127809102721914375920546015644086115115584262482133021701095166069497679137760575049810511105704293115791463482888698822470852428924852693298822656336810536931437248551599958609767480109746429246585713607055366018933743461311843253257186202351536765052775289794740503015564192994611095365862358191261912110437988380017321116097013994785611690740989803912341627289547518006760359514398834193883638611023988149801962915936377352846930369680350797361708812189183195176252701757778512385387975639517790740800791636987949086354273649087650203302861523852222499754648423602155668406711454909926638119366893182824781201589957662623338453166872809973475541841171726661480659172546380678152755519388020625319811885028125228767105850887243903630701950329757530379815009666140940547843845787633464553876144075693950305301332611584365715960171210861867286227079976196082654422425348358655105711273076623972368976880153148107917189995948568728547384979846818880803188811307358493412027177838937824433576509822963749908493811592473392035651381753128394641894450688284393564029745837263763199306281326338006705853668827290322620895626567098446523855487771642631428219058469863349987477496292545820684055753230646733212360945190872930974354659644590164484629236881800410608288635785371812969681167842433678367337387430643614282777692660619951335662521323756477182290377986260084982487933717189972680037260808978105479305667110711660212982518289753160408911550395072320787557184053711670990018390799731234577309634271521254894929841936456355310136806878079145894193796957481044630540841067545723734998870050666519362634467544812907319544296118282248780169596301281590095580583504120123924313330250409173570947596500285022018694382185105863866637284374597833651728345529915990334281635655467120522349457274115262758554167419103307927249126064586887293530674599893424983365097411525460833413942516586785652894804482021993935530171376640706039797227265083443598932329120526891428836956034375110227675218871691832852385196569537154801824141633965007787059037369416901672441037349794199649940467032348344028347471294529766759275769741493875779847100883392948795101538264924366121086993477350282276220716289754179707824839500886745168961631549850458292312476621543941665577615239826391830227212320682157026077183264498877460737367795223197187566292126999826855797021364250043513012619518889930839794709985228766624494904709346502677345459712835344024620171617733611872497514858189605977843297489453913287710425157846257137360438202132835781788090952442763010809699021809137513320811726873237259836102252023133683774580551934069277180848081085794907916337831516265702181515683111417285297065954219151286519061252987833442800377824801396966677040898566598302118926520610162699523760228045087757283285753318696632378917510605576589793872289203053890843723241228205986845375352688456201491459100955498719045774770781383776044582819608418960538582819141164061624719273603473879134834761573815462477951715810468264544331234563448178984799627653603047291462470013010374871696287532313619991116942731564534819723408784879407815883326556854884514078319699810915128070865363075495139945151566093522529197456493607001182117716573258632815587093189046359726259671458086395834833307396023150485547751662952706434083471623932988171265555773284717606937359890732148928060326770988960804595155908384899318748721697666917388964597581796124979986222858816064358982276036582437501712071203841770554439124996162305529421739287733727484109467226208299435634116302342290938278334736060667484296489782101028900174935268818176163247907443757601740253509567311748407831358157673743249571901273134683640415782190274259332803665035047598941411118872447764633782117905803854372157825335866403563611572256549230893288686840479817627431776423982395442769760675575873060836463677946442508725259102919859953451251577413995099580177387650827125987748870731921137232119206799016594876198175031080181824496865572832897912129129936321560304254842269953348328021019650625145573226430879983578544796821055527383759364231735555458378908225506872529454909250156035731959124223135127335796529625535598389380506265545972378792107734147983348183593121462499530450027902840676706932307274418743525375862374806356082819294775970132466212485629448442298194404791910123571885016724760801939830458872691275089075256812280582975961493542250697806514672441653236412278817364263737764810587100385435129466089614308005409303246941208500112232538680378597030946196260825649355953858461734385131094958065530148567660699214840366334973746633374709878530532862232041495317204137611609184628097167806627936101475493484599372451842968075673840665046431685664379533983624144130537596078565273719927878521216751177402857094973361633026251721809162558628294757742892979299308271207453187497720452156300221956803623719020055494416048260879056993680909768788848495140682263506548820546448277721167472168686313522413419108278203212731473428748637884355731361067584619295428941903138863269206825143303700675780989440964985237633755852761626143593259488424230815673701507253442008821039581322954753598143255100700505145579028268837894940753181563712685207146191215409819853401301893411469286846021319464840439876164176979507497705967369989081900779763674778025387932565969667310145278704045786782695613176358163122360174736763225530975748925423940094973520706742441398269790193535720690652390684788765753564410951359316036361790317833813499719371326536335744532380645338275702212110882041582029822177503819551730112612852770331615172205404713309030050816530251316335195020198985315593837750996832768701347539766000958769201919252067426778454564748892044866573280148173937094622579783195341658859201687693766737964267890842247235532367797008486110234080840037720178817805209426587408216446809509529933818304540462963990233589395507612054120925280349840107192773763377853126508962220959940758376081511020083010979639259362680690212559002628277925798813966206182695990299485933798647576666748791369066505133461815914540634482533296601407487645555639195764550261320276423099654117653629932955286384130498362541165460403759712303430217025365066343120916678756985208247415857481361909185886701372439073468356965575575839830294754306898181530204315315462747059536537524820948952911822163752352995564231865431430419776031054338685012339093315164487145133076881259822211048852761217559129977075898538672132283382561567753708414924286805561975832935320266198138373272563251760355495302520568260007473276540697901662479559013097133540828080170176965839764636337760593412997884605266604469391524742408454657822993797543953173137579876326009673320481772414249830604602288466498241771619012206143981452729730613294506505992695433683679127725088421346169053951640100489426300577360478944929340043021267914016209484846260230867864861776117382398257490704363459652524368408191887363736854894755978436553282707815766078160716310673116511009036614035138550654219699504190232290607201281241433358298724556963152118434568395009569436267301888649294336042079006890294171652521506541868327868028612328476424738900479086366155558627931632856397359527035866924465168725188083126622476870227897687391152153593710279821687271165568145014381484169477105911874114937592108438505933623118543482018478076402572112486158575108009025374738285317119214936999175819256785109685781298618624094344563559316454977103474842763564223010108656575739110172754085854901823324835908523315906740583047770371421648301816162330103710787998879012998323013700583237390404178087838865537748205103196631737504001551254657140943224198786250967625226397936868051311491441903544519876992443052893580192132102490798468203572771420309097502499770398407239317729847084307913123195989102429244538206300449144890552688442808769990562871457905294347291628435949754923903015565904049773186994883618658475298026723440260030951193669111950787920543706911259942747069454796914988557888146612131771862985731566592762400829707541086804926598815641260448718967360015714545753851747016099817988234353039486642991091919804265000775938274342336776892790819778484633003399172507900205257588473546654790927252740230908697100670283564061771766124028051164967900436250707575487891323397226319980288235759042838778518583358521586057935313678344485860643192230595619319432046359802820550497160724360167939922676305392495929368771715843386839530698940484434654133946505722801495416983486947548014137231726253168391611355496429594837493113041751309641076368387009201211576306657815773610041596581153021888160026914975083984815785214757071193343584934249058686146447389773161333492663406433974940004046339867346590163543011300224993776849336259771530016226562146692771320822738722568961580970940457265616647394462459652651161542381688858012408447315842819329522752901223153746682586676691531598490475309321773888333131236240721038988449923505759230208115054650330372274621240251415140537797675299419270889158336896293126438034890024511723309204974388634794198461829590465625745713331304605867425577915436166995930839695957532036332923365195922599792780165442822199840181186897290580473359037282845751894653211451218605447466400565930583768417350451400362151328390623940752321446807108879367246375579503527753171892008101977963174893251921778137389790216595354369678994587747709338062651890140970581432011635592907948165795635885304863984677903544480835191363924135329265331611940197563064327672008922823056793029636210249804095056957529517057790449715201413053869388500087681638484470175096558267842230977992406130963502296829217243598472950817849845548021433107111499360003376719363617428339336754586909615329594583195287071540700731435192955412536371976115767781623962993701683909590939466223907855881042831609015831404382078968635178698625953974704168376867161487635933654072643776282874624393559471568451473590524995111145502614639775267105188508955665169025964075631931587596016271908861351520412808855245512680048883880901169032831213390446651981493891752120283091768795745457584136314656264077817399748607692786104177004219656595484244165065271182670727748084684580939542010939969796316188701620831654468489208131665796049644858812028235012789704683723918086170161980289176650829814331296178798660624344638127132773487325059682515173171978454279651164604109076809245820468243536770338775821957934456116222325772748536516700399039755047573276759219077439570687478145149353429919675976547918230637043918194014467110966898101406085125818584634667960008870925034925573516063973446964274710614894149000219995966521936136990670123039386578525545586940207324219340685728277476144328718755381205283277501771954626859421305976538234401985047753358772785854258671612143947362958416397756771056584766960294935093081289507692909900686454285318126418024280339716343981314186707237306802617197579913000744811748982809276417806450105133389559120653510132308202952905262685893946577639132852976962601471510121191659534253258321161196528942167067370412148184088166974366211904657071173466964374096006679188355844281288894810413010054107334608296690075306443590082987489828873861617820757816071538091311153221378497256490694017540917179696470464619555491973642932917313434586477275209645096717464339086805839994964446229791139853708055860330260445749543457598686138264214298285637968361832377863053874991413732625540352798068623119758622969103003883944664762439788587815644374177247620647710475000000090339959697480362521652846954945419640276226773132125670991906088604780523123076124743110467900534435226539026618018263970480547705222060985563532569296414564104174602473233292812312617840603200366666349494592229804593464725742507338347067388280258881597099370845335185794327822917959934164014578490065217370772452331711430791028614181588665753215922102846971454141388783038795950980132852225331278613326567365371012815064774421057855699870587701178201977884229946954887965694063431730625205196387898336098929145964095231065524164091574868775848492659701279650597230770310324335535519802566361679692238087081121130221798895274238655646035628922946403178424555059336588105907564190317234115909322318777296581478649352268079939815630744934545191093041408480446954477861170421274508019070681724016561137732632528104516901132075034687810184388068763665072030598979996754626450332038517949770450673472598859260081849726798852457646301455589147689749034836035023560037246888645233896125179906046389516116294720027407906661106786839968694429858079866774827421320685868312955515139918359192789434396794975025184922644913529242059023949429462643061579413563838566473682065996475029087926102449020747850459089361426056709112410227853341307550787626327583010179829979598990923134296897161309223854601630214852140132831717166611457223054027805006179964647315546897019340771044178318434914742477685420539958771719674272077853036901239986462598318007540873301619662764688645307414475588342063063545054379607136591199986369045271862599551419195792560002467011858014319898453858392625234996032587316088400819718763772411386021080148641067721498518174026941096056555711887711147630191634467188433786006578725088582160585021126135596167323617378747931851559339721644145536893663201525280827132076548249664097908004457076864686877952221924931556817159568467724570574425960607147212974958504963109374655894611193253254938382624931304896186306237254722520545662009938636080982053221437852772209356071317111765489867453241818079663419616729683502001020851168034262984947945297871888777438653121742641532811515544104236702398145486782579742035348998465579536220049813724394153534323486030912520882806490177937767532921624358782301843721368372324298758177371016477402464708531606830128758575110914548526423482074414029138285733659633279122618089573659732722455852127116284652350100247933628343166404420464479985600214489971749293074072284804717568222749088098716616382439148534076294443438707049498523948130933932162652118911742471159263883380794833024450115362366700441805532071830613557070607180106935625229887698173432250986767485363543945208904314267916538772015358023752029549124000919486008858250411938154430665216328941124524031071028710049750728647329152578969788042502899583853297106933257688063388567328308314003241997060016351840986072027064021751439107959603992958027547304107044608541966189166099059790237315207614750908379103897237246921678569671805626219001987181737448278310016144231007200564510038062693216072705408512830115996843835772715493588781490865593847814720477650941675547911438689093352449292745441981945552939830051540536776159677688664782801257720234274157845469320635143791567065849039561525086410671438528456491935758320139153580585965981197202130640333217238860147734315584666589406951782449210538763797538685510337131696080917027646051169520281434197719028234750345217003929775272708493706970508849685290404262700834306355823871832698216016004740568340873328398411349903846964367298431716967166788976064817736761580597186422297149902529094717788728832115206054592303742160677573938771393359807900461480860784078421267702176493376388147682128750911418016721581776766619202042253934149460653777537713178369669051583355396629650694497460788969495935589228008160966561512201003299078488891252449484256313999845141149824113605193729343191113445983222403956754463293386856846075773978397588870488745236709480518042932354989476899985756949631968275825519137304902071450483091844850538805207648662463700550901218785710337348374585745389483662194194886143952273596904597036452254787516313141539340237262534434652429083454401645796442287237907032969649785266134767817709250347679310339990468776923854570532436909941295262469729805777721139147811287978147252888111475303846594231293510212534958720898560287356110190979888157453706501858552855265884099663048920384395135850375976142211403214682652843363446852759157230315744851781815551704720853970107951497969679051929073565761574313774997270722898351767035649866554796734986247719305399978663487806652966239748970976454726587287231830772205174627133555922399451926712727993127319033670166250888265818727044210261416640942935855640272770808202016512633494824412291978422550013777125466817226014450535916166774381211687458402116668935806427713882659641146369266534396093440117249152470949904940108546308279151931212619737956311959896375756045452904585454787859619735222687551841555662434974605283852300905014008961357091617862558622914128138592965263931973261062696593536876877432280683859365719004254454144141042697874491328057664586072262389044696502061939573584228826482869100153317577648887101348760614692965020769650871632480282852478581325122624432543902163203981873308623721491484275840307735972626779069312782255639450014112840587101512538530593725289102713323135059336335565421769207898352586226549198614202870994014127599448650446523354770084948016602042826823716744445805056558973762246199834401925866857349263670683702389772830354325904499638774655459429748606867258485965451750523534631278459405668157420540695272478669157930413323623279405704141701693329505545173050728744899324081072829814570953954160779108901458769683139225837002279357399699377066869248163610918404066728250229964571109554228916106366258176927925620329077970755578004553801940378985871525702621087474188526625668074552207546675401736785729382253753869567488173003725593384805271420150990969646960379210789323196821997172093660483432165108501118194816082548880964835877026506824703734803653635321917574204142460447941000322454470300473448586215793630817404666685729263057097295883767778970224392894521656507107862049571291847714471702392456659642253757356941696836758609916690577281109221511731565638677851115615059056159317415315165768715558263132051269180028706364264688860549962263160085440292662347699994470216506275016046020371479088180194454695921271406443669339604004159015503956027244695907811485169647169771773513396182308617488236150719533163568234903405650191121676620877515780299134389609537504056916102355647105230265999718730658732083420098504434237432166599978797295788181045334301605939011383789570866465835814817932490344724896986620891210503460295460090485147182039198391004420081838547520473325520772949193424394447257682261933162466372353472878724696271639347550172972557029355694715470812983587827409776178630758215485262815650785540234352103622396214728399919733551711079164068435115745006451181422110867641714048875878017732072948640137486595835164379813659091970878440434229032225241640353829505650159800405457870234942987944858627989376098323064905293001364883416501943132389182733076872500294201782131626166720720494288126921017042052912138564926802499672820698105491448805342718752332293692878946144256542173459869175692373981118952988230711200244107874784725415983202189339632542800944669425649700363401345742078724389236692546867092762980223046467500615653813736479851329618764414980838159513222672767266434950694059002676756040152966501806780635780678915696282714834994624603978676342533969818496569031022290414042204103393859839336713332009916062276835187128464443864494479966807612903341536276199442912299201423252075072246722890647674116899539741486623238630108363824032362808374678971611968052172457390086477808956580978568432970349158581811478947972045627356941312742713766266338162535150267327466180381220928941825970429470860057373541366018265224978990374018772433464400178996837629706786190355114766365401051346760343087758969173559954707617754739413367329009552916430762641175625005152221553556004738864453143886450465519428134197012507809237089323275737840142130382458142551178321072684089075557716646595210539277809652049074351595307885657977302758180389325401457440318332150782552884909595626343618736727371958513253965020401125582307174697874898276467357692779563169522279777117033256951091044789604579594088814685885823114678184211290099087427963114442555769757518545518308230881627697559810601308481315731158045244699249704467971422281964039927466390452290514329453215300794359137804500081748610927742728126288006662855269209901255867331048120173066278577839982196066145887768377954336481278055832086598913728891017287636464435310334095232057418439914495465596173672576439682968244407139871742709938527145591362191695735526618487103442838232337541289979159367829312471896172548887209822217191321487525753425868704081046208351784627848098150367175354140047083749893903923880308239741823172528411669513881699285724014854081446942697138261306647188398912568201930553933807103882749191966155007349444986010784213947628284015615827825520517835592024458961031240892689566083759994513180109477559860440413156428807974342545567739402830602561376597685422208641039889047734579727620420399126445585404835446668723306778355514615480722108199581579169437725242216933338403331450026691875974649904624478941040457804134746562162419817530188322370038372112814367219462670563129345658578259787827807432356189357332705399198348887344126231054662219865563969546306306737181347869960238869210349124469095821653139840732226771240313744632589127088409932032215584861806567385310698595267364934934766389614055302026390116607981521159849532547834344329671048715903946206502824254814797874481630775160366417529327324987655040704114243649345047853942132866759441909648451662271472254663660631649912302368041297600966872139722569260687048747742698281769010648071566904959362995279101233425747766600487252963016198090578877224677537616157170451367712137058006783124251904777990022482676865504408320322918615940255544255562056621358834716666864673237064402504386302543532673906749294334658675051759935187103734974592342147428625787489568542361659313683824408149768122804537537135147356942427188509773621318915087111665528252167482394793948347095028452426590565426149177655787382633853567941842584759912465443128807476792581798859333071876569213052493139059912325451577577883651276919765749528020731523298590718584407787100422563818339921145052236917088137108489766771608261311238120791971818629437658964386101736734625213164113545099878395818856293546230135657795175533077833964390389424037329249478951887545476233086785121821889060308204041778043622011416458026320830646288556413304575136770126372952566337775685877157754230554658544714770746434497679372562939648971628746546611228257790912290774801186883880941012589040761494031006875361837758599556203534464305747509904509851168736526879777895301629847132771449687821203116771813242548681277064988816628988284532029063382406280783843587019121405613220098596458219253743099315966166674201401689038862269252272085325728649525625273685479745678675275501291538434232772492743912264318089344564476025689719699585133351038719161769912112279425309268456982078002843342316478532918903704520031804848392180690984404572758782295758076945435961697470503728063585730698160438588044588721664257597508830223610219646816752146512155087815300586850885218492577666319972726367673907277944976175818074902180192485974929014559930101691286662437302521533299055430416127525974749239745719900398656476044954382834695020272374772621482150971620725273822986424648644380726146799766401368857087781799301442229591708656328264954451801164706514113442504682391814459278093220592262542164997032994875485746180759075652526843501319621417888600110587904717022446079694829380213651207177304180100527049643823799241302043750173280766647379194422042347122605786892375758261489165691669932299565788325204014970601328293957858522239334924003727195001323291760207498352167576640320324299581528752251552960232025223468766954442038839647863413171961273191986552591069469744802530045772218825456509047804469804949414001266253268860195164583923050262068611031488791125444291312551810064929093030744368401813056484710031340632782608203846892077817462424202897433495417326001012983361213440920015957330193699812445619382618749764875271433571768934422758634881134788194714891997408423110416440564796493436210989835519860203208779531957878377219628840138259649750423500150215763510533977777708504914756695441801781140800060164769510856151922373877754283276039329147173683594414678256008888381797130601383216443484798477353483457522850030966978624333666578204268274626513363355050559482827087261816165916940470937247752975559698004019606279064720280051702240566156019934462580786494856176442837305166562826356043586763787295699755542117471906303438406176314921568057246610053444811359787032475792315056093396252733501867051910512179574825202049191859956633338756878899297534037932285388103547097321381536675778002762663410454553843735675823369900568400182819452394707718437742873744112857409010506685763052858539087213421689868195153024787011122825388728331125054750898704228393462772407437892246025381840789862510654436963982775088715313575744794930696201464387429578154133788340890519267512179998516078439057128196701751279064984809050260037387568753569399001098197017445435712209181814560414717641592800628371388173963650911464863012569229820816650964382635048173761948193559571152340310587584963466946340831671511926804223309320285519718005405461008420302837750355944577940212773815253714791153671291895007037036160546546376398933640052522405393050932693461862221193211954671979622010376943077214886826731764731659325385221718981706789940172728999564895584788117137163632171717963158318613688742193969098655859025158744717479911119173998081893905121326013625578452653910870909090242919918405628920339828559009465556047553641700496499711045109425893359401949813754899093276556887378455175190906898922095519825854548857436563776804338787299911960975607770739723417932146237728191454055892250922407430097702204530362980041676483512920222715435535150944790497964020646421568807900611560687488874738683731488521335672634922685805522662761942182499289541998965765153759687947873923635701294764424328193060778059151003914504542942810888395855742738821350880935335460947564320251066581647115776452376836634553658428940238578228458097626645500139373244749228549660309733627445994260179789473303767820524308979215973070493136465954426501831174044587135571437643947703295668369992042015318816374895316115474468827876196534617362647260318302043026234519723253916951226099386980647210998770454964345652554940976872984541967581379994162922232237151248155218942891346303838823184471558102275256542564626479780411585116678277575317262609417073698623374338704527575612733376713243375904711548881422596808686225416167382754366233177464766943739770790551433201633321642512891770120844507719667361407299266439378426781556473807226700018541490972671810007771060190287021896154317274463253407689408555576365879460851937695424427696646506010910654013468441513812533918039749426778406836855212212363574364544926143759595354453710135726495824052241734945483259363346668833289985507490066951491176532454985309803834211492619183050607378838060030079355876017700568552867130917531700962964535150504094803812046168639654639084209365321898876893375688620322626413934380103480004986396409792894750791179731140882064823423831972113803658722642384585030162113145862520037905896479473704817879353407281758563559836177652606049793242407661942702015528363675747094776045208272382714376043483161069425034703617922184734795445186792031108159904509220172032553903696266051096122333755092137422058296905717417026470128675608599639378820548040262245668096383909138065908180547119145799948422201227408310739734782440726294580444491946748409439368042046519916005004336209102188823543395471164787793213940989005262965719556893214853117487987590811406797449309982942236839236281155943592758700705299193529033600994499370466642389262227106026595047116652234069555543262688815200057044817147003066285531568230608510423143926948966168323480687920669811722765264403537142481402209335510628801651083305188123108843706678560228991016626488166649526111125319910760549214181931648930294337519350074807436975376476034202457397582274290723319523457205273975345264329313159526584138031349633212884844057213417600691082462414414439325720328699450219816414001306296625331837722617482951269355158226978914898821866800313374484378075036912895108671890756689228168576362633112382201849804589521580415606903116523355658522036512477666207239143928277031038737121715939364656608210427145695123057472610615337915745154662250586034097486134280533849807083549248789087529199873463620198134265595766076774635537566003028921453327914420826398255555505149224694876216831260981963302673666267666179329891559833245034224207695906636652859170466599140887766014917898299993528332149383154212681624624706298109344434397976869301487775099672694646970181288124134617874725892117754858273535601555666993329892154381046367142312274288532806848157319015483351608061256446517018170013486161914705907535955298088457081933596275953254262136507877124159552747946841054229235478954640166557353461704595162711222808062121718705361190640019407109699877888290409793759861212407998198620940712511525888374953197087101321803511307971878062353931019902165833815866561900815337864638967016662624470582490109347585666623563138400191998761219424396838601986261008835194006769694547532609909407285623935166250412182074598714567453826123343626546365899576538717780191010219937529029826148431615415445044873188941759921107019097073405709357152465525333165069523827151288900150358886483006520880675969103785458119395409622931669750054001859659523987149026196192979715216602247064591550477766978122134332102999617075317126611620752501165118629158094192503831645607587453328670849711170666611501903072230373898652636346786260056900029947900367760758215440056455380718884536478302302291286850088343434451465118668104223401582868906075427864635491111234346073659295537650625609325673619654899575535446555209306374174973526429754060803838469591324153598621140433253285562060756957466598850234783329863021521617534647855318786201330511383309727951195801527597923540573797147584925924388349304931792530981381244052953024502846481462620824103655357043225957837474192352670686406763455303300455046722192397798012059169593467896979294101858159886498895231983814166593935108133936996210390562817581277095282566884582362661342633617795047273240099260765863140948199069974804082746232208355013104667667717613656188890264790827484981607344985280538693641246070863978654330512547530937259105997822778497393247433697962325132118772509963439198402960713888746007929988634310679488211907485632951279841995778276139729944807155948081640708833501946234346217918145631984329543522769121438122117233390146405122375109532102079842288550442186377495896308763466336334224616142389999308637985450986473414026737680779406235206057798788215509401838426013870485517232620031209632231963922014290434295235182551281609774711248627100575259001258425606270133047905308193990402172677935050052051692059880519276357837854726464068860264027463741829439295276312240197761695883075368438570114437305808410065220666258931464154181103511615244203034293048903088205391713014868559890891309916113120513461718673160400430834726325284854129158752569007034318038709106466294994774623908985036748543313684134706558918321363618012937852437258556556643103750683378156427348333873685654361715928080957619475194304382997318364266397286516031312442065419292332835861853398851512536982676721053136693894668301230621662737144095512931920695116643068594166663689761106102485075570250051659229539396824039860848858977965073351655767917124638235031474936009014935554074488352133334663661470017357959239310032264308311454649990658020746649255147275154645022040109909593754358211842371188940443469486282409858762591834408023609469506730187384191459965177389436318370194223285710331558271852930120817717948540586422574231470873954797732355152736534695043795178270600801114323321620228578225578596564075751667395387386515268480728632768889908574882289910452579553710205671780538993350359835811758265169421266181025978566743417683326660591335464352214645110839063391697328006305596059908912555537822733872354589794781999813574836010036482086262758733540550198724545477784674534503222119690054392966933416589306093424604604338400159551423131159095995858831406397382909095435202661685864752571581484164420492007890959694696334091417993794494281011276313775919811506309131033306052116405056487262799783391307795765633018878618492787296873460073410306721733613741042619161256489423830445853117786843505658309971125971373737356431783644982244102075362587087612585596732254403060415676444600068335174251162091381119925095744337686483254548515573458054683581671125854140087622218282465887772571018495690406523907528598478234935880002274106902427048494720937138794345488297072855091371274123702898247568207957527993170297466706576303570788672228293915698736205134311322466212736447301920659643020923027444275068820062673826531427954286861609966313096971191093987707841001257485056480633507224976573618291946291287542268502180676411883685216925258578349105397995211828961933788034559673732791186313653857359310368814916566377269861705123055222972521614343929856961858309531381594109162618053639567296954494411153585409919008909993406032859617094391590822071578089737507951464932842522572768262398819654692854494966560348598528529980656372839465763970263518838706274720041563716661478854723011176595183603481455448018293618542088938143449569562849040929161051279291593335864966539136948561917529743687375710991887471360168231149955445643994704603399374739395209410474889648936616772530012356355764303847509034659226744789546911663934651766281507084442657238140809025163926953103658018455814301097044479911416323430682624108393927795575076678998709144210367655168520523669905635543071673573322206291738862443543937336630052284082497659341614848574789218833131870164231983362945670645733594283953605489187922250029057665263919360328872934901577513331177149561844380869648495507621516303280297508181184329940303501922541499173831668689938787508106730111759558912905638613808350228444641662192492213038456949498541211079538753024899396430130056294785029863548841105111035798171292553179137597840959763547631366863423150257864891288162895909815220511943312557240473370850781166302639370181186231007959108183856302845068688741319485202682741412383203274459603722590722686477625466960423178255461209450771688277497168630711865185830584900655030292475045820327318771527903635632693629625885787486083171270579508928865577120509128943749343273524771764371206986593556947969597416214104713154653747018496642973232360656448889575507445795633403015834156684752342034036283291962508664679939115945546053791043805495167181250379576769786005657942501114665091585154250008183046230145982523065428649174618580733396166799763108589517016518572660061416597418846104636899240074089644068814144293689513981114423419888537094832242584350291378527036451555488632196472551874409929131792804701967149322174668504117386319250135302995696557660688062724902313735550559850626461428400171501395843395781683553928929021896936808662183141370486146716976378641017616370936080699035732273560969308129546406938466625463363978452649501806814120952680928852077316667980739935853088734385356148526392739416878279108654286799669290458418292638197436560722662948833800843101432668747320241453455482058060517990085075809146764540145426344393370884230513488399340878711315161765919800356340019660365122650884218219701777515368314979873473766486878688044092397136646743535219323443982740136073098139202960994471230150310771904173381438919640595116147959974285736533186676482095236546046127677858867190605318665227184670873319745293766730252367782891615186351808528391313942078619963539836167373081742655575254137040564913360849959458024561886931328223346931769441052107065247085385680283329891230080308351669987723293432593824509914864057287565901499815487051352053873527608313791667633234647654948133347045114660171697108135580033370495091315601315694332044395024570066040256812119255180736684752581488258610761473874903356709570518016553734469690130891130891438910262087024544435513622891109652332502802331038481023109707896138096862856351069938893203330127601168263124407343828955559388290241700004032184082188698029682043267836178142052319653911644441054807904509738760353163012739740955524630228016498867833642963697887757667757492940938398333493167840009942078725374935706527613996627618365696078114610580803901196134661265537080609989142932412729140831954817886323759719013527761559493727810022655628182900812564600192667538218422309895432635033549950713930922486897877994854766407938039702891908009621759998201344333037106179442385511140698908830906377434395906823959891783379446596544220103906595493443647858234713415980225914219930938469630517510013936647626144849599353100109831050898316520865667300206622185161343808554789356483068600337349022819976168042396025701787686308812321854635742712038349399245346170649677331745190256537537808454321097832214335486670840285592137737541699172779343604030226986471367042685232390267771356134283610253845960606909546599750189019614591852696669279912136229693161300212444736727379166549182834895191190245477068170530056449063482048310495052797533662988312121363300159164347938530281689579260523240348232544827866908509575158523883727981725442778566182058121074730536853360476922818683227933579102059593635904786701159324647863773763401519342379079643502382221350547529417625949496138387615029300789791403132379007113224738782322129765498891739018265036611411886704243435877805042167614168244924063519955141525514072808430274842463669629365692434471990522766640981760613091528740513275846013726352644384933347582615593358731491072801824170742615497705523549211760446741784681744740790057113159396782172653393294526711067135212641922146016245506505040649091871220270509023781229500050251939000122416327527558553814572022923450458897738653338381707005139911773774493061389511385054551084929947506157036747366301819708475501958436044134307283924065261875764337484237629869855186029889425480137425984962940529980320581473368359350641011324188266499100442602187086949410273775511453302032278645703150913294420757637485089100035904596491349248729818247030013773049131147359273726491790864509008652605186591289699492113723303156310691493405239135944646465409779969960497892011484121160979974747594179910475199850528886706820668487617990451278176034549566509688729368753706677870917901109324537845131921274724241127538902421410085352402240649919239286497423511204625109843882589058639851546036570977771129714667451237152428084000405180823528866138077399507091132061283222374917010365123041910509192148396948879037555551878013635330492951023817237380484419503920741051491620950966211129975629537365307846235816774653578081137457607691965305928208458209033645277206114383277752467001714861544850363785530468661954332404017172739756371306707323387963317039226584427832913560838362493180791839985250230893820432577106325034359447119771609225594767324839822415666114742871680931693576700948405941460705068775960124723684010339462070077611345837212768642026986902898993047358683981477414107213373672693613119202273615922034092613063601395935847989690376094148260832597848373045138572005718092896360540903929910217178969762475039898863473056268093758675487831648882889429924891239124056276328327196914187556395806827036055295160024750829256369516939875083443772641802663680275760212061784205230272619044580116331155928803500948536896983088599260246020589834657456702501088371315942311432173549924792452829539683533720000661206089062575561443362139470392442676235522560559835762891305601233507684559750039027803186471985046392637794935516612703369215685503664077978665787298600525404957593173618962792880192458586025610316071535941405799059918467856204433866099727481363901985280342378839866199650164810663461483843902527955518560840204053505124332289895292629886715861734910927465163973919554807310097329391091398233453571608342462444310402725065215753100214784841681458869015225199460569750016339679977884960810617646363331973487901565258783957869856858065458587877856666748873108614256474651833718630011868435811153690164913756760826007312936674322745160353393223937235770032292970072803745168205991071471144856059781687710944568410960519908149365981856052816208229071121938272760779658497011416648230312495860266412885984569642560532801546299782270165282286749571070983161563372872640485988567278938650642371917950980588140394458035729935052401415706778188689817058887236739625810538437954526404345355689892115855430421570469184146303792909932775396804482610919024827426724199884054233664218050090492362891098556988393355973088436134746354397758958423844634165537807255030660507467071043660838995887093798142224041079882463783162739368150378384227962465336296761919849958537858893177072129563480617540500912537967680542666915884909189280206676106933830887469439605086804422536026521358966261350765812699490801817815335183683460504674456141307247145070034304757691473557144812801845350159913255614001340225665532305061632538138972104201657531667907461656568764455847905704259231614864868062380490701725853709681818567953753865055576251398273155327327763230271255354313518676247124424592794841347745235868516842565831973654237471245112907383787140004417531819374660133190201460707689200159533460022643054528345915979587611678647322557049505139947481191634351221018218004775196489514118607342880657768214494702676160108056776681948041833133713341015684829392036094129015399755684346096119431605200508106532397890481853619462683243050303545957027045025678021872464578307719079337292516075473209371060051044649597223204343540947047051151387339420632681802213138710174774132503180086561772397105661390219425685356262139317562853978655526496784044763069449868735722529855871050765164651995173763632026654888025543523911825589429954192755953639964614522694374259088073865812379815490167061521841683925566883311506584134455538549117290696704830056722578973113415906529273169886667746831834231765191610710327304252726154522572264934705100326038848229036649510541122469198878968469590181354502870356611487864482624702921318677652567582904020833511217310289587173311054619985429037842094930741487466953002572683818773012537633547823259087588506426782635707002790544276713713782512279607671990726828843190915392452570994603232938821799723381675219663922759356571827579714480889707027243123035156301985191165012065253203246395132026434956848904402426708558117558688974860932492913979013378354405411295269459930975742414075344353630673271692270234119601261255379708755799812515002647368145018158386114191670911478599169418492446756631262677748855183049243965235324429443139131438580167623753485464556085561716036017199621397033356694108840328600436856537743205471070204529566058885966436668900039360031248765619503793593428983089903774990879431410275953972762761818915799300947771932505406753570449688816212037882733674906189480345377552723474547513533645287466481496792087861329151595812771613202624354886101333192361161268258952536058068393145227552620474546594466701405269169447702213351112160872069151782826200589566624374670963553545250999932146791547207354712531150944363748928467401706174228620840253331214407270989030976135755908067080895185983146039357806785863346375633590768184451988945080071711590953015537276605012394029947497064930091854928556818048556520035685825999376680238477373067512406833356918384154618158330067893251872277683254609015003841217314755520700941381557881343811792053838002249131893788187008385454017398017499417050214086132031071453386103165038009144787179271784275883403499523763394480580130052901964699900078069337782858121833788616099409500196918999621309450078066702127376159101673565479953295717087250367716509966619971307613228639405977989318651325783486355200676115608789186236206335622541581952565256120800027746151626465242985406937923633124722277191733831785279359584662003554615371054238814151585711896368510542149519632982243976586603853899269070087505709213234712187290935494500407055344972856379846341311632425139320828290206310335765871974229305459591486431983341055533439493147618952986917927090776341444343369475538249321228868463342996033165976112303917368432080596767748016323758135062458561548845268510549201102978748556624325832375706619804154944493052182476531840769190799263841281020724207854963235520953482147860271600170440089491095791917662942939848538880032058492080654969977780366583194971980275882018001006953741649449531424918114182894239226641627886065479265827704015400428799279675693186710508963711479096356264210796518898730527089237822145515346022016202279306393336926360229516536549378836294708630986651695550988941541833638853023981079758834234487601396451271688536971558734702336725800129572448691536086473479991130450152382115481710536167536361958354350934803814060754077313873436989905259522480929076713592202300308992625372058353590642555298982937440532776869531356766487595810393336423023006771086264066246263073719174365871799518145085299495787319726018149431091381684250473473310336588632839659236730134213658258613408629037795248819556100863648075119332514609039742760268661433503003268759785481148464649469396686253588113987358264318674576359181336875048273396082827041606023974727910498702226136012679659814211277718868912840073663250573405750830665215599624642305542211255358164170950599082515690528203605925101206361048359214422492876625061978959138990120727739613758427945200319929396897740540941510991024161959833394477483165129272512281774262940274062203578599867893576920333899610639887490652029857905900542381289676807291300369480912152989444074149898413363164365511902420829856967562490691923334109455770957995955725333160306784641423364784735986562366319624678053433807081468868811426601149165648977879822206932012021446190253012114156115811631886646819569670619999122578842875052181966069477922059789503405284567850619296688340905505406799338875953330621440224699237761399622692931637100387747489218366976552835997872766142466578294267850749329724007547092810607200126152441918424352993798800575892519663613024462481153901662858581550705778912735805987182642457527662181015928817070211121432098872470623130177268381548171885552752733857600759677796362771141690116175555089145021242820324157847899753419929864644403257286022394846018086306729278153146469633459270723313022861710027764123711022546740311662854144222855444992996321669446319189202780280806348595638610147692665782855759642745251449027736035268957768907978317318301589239049377349933835132087126370791998602882503282404826266035480098229855336460337296690539055795989113944309993712642357296051021799465021696087906541636628816425767478752785360788415926694438642273458367201001864570513084211132698004199556808160087698317325869173873703728697792691978905443198744046451892794161703405018703264236219753889335451015306971165274352161934925767842027250701845441350062682018360095211043908188095785471835833981781779288258184629551974289593938424179318696579401987701839570791143917098128193084919306032846692451326130740474129057113540365828094952147784855250322263612765003277544805765335270237826283797701399963628921743617421976595908489898539964048173319664409837388439780111919330828548507309576747027439816521480547369132199447966496098131816202365006887751449321815901313052766954766645825543254226185844760777844680607400451830130670445603142343506934194847691795522592164211938755473969710864746020913511248438770581841099489354869548821403836736310018480106773118165707879902091287149472546757905513152879287814938025814230540971014694365075906950998821972689508444034827301549227629846109820311908295862125970423099738558656307007918985502595483668195697281914896272080731859681464056684157147689174626224216682112823594131646582935848082771988917015878493497915157221966426079565936962038883804396906126056967885166252421065766103550056741168537944697367141122479852878486623570487798930944673903335763053132611894637551701412118258797184882662082623352729633712666376453545022271484004502316140394854407108547609161858879448674928052640819715095582281542078628290799147991723008783642561129474639088489121568926539487968565696128167273422639853099343423732074870280886260162411962329000659741035713716817938443529529269986985898894060900119272832068509939436982991206035759426088768369807745848474087428691354162603740821540611449984788544552612683218511966120580876901237164874421599924045812285335161382652628156275561957517970320541490015108457230819667584038605928953714379245426628738905899708399332609018868821159781301213141983310250760904850036549886077187813661401698014110083637200052236499221594806167430594282070691251226745132190417988825024409759440605216857800005442257413354440317992470123874765277130791319866478245575426211008510793814550742862759667680729696732780375125875857207221091424721705519308811173613595477048018971399426780922308723908941464756047814905265831834172362829060794841157635581598740268468877465879972363497229836925713281091294924365295264853433959980856382586349087514437689314463802846672654095551849125578764039451896673853270356657994831761401183848089865328778903667385470378982465853899395720725918167683551134543040037994332032065142888248576599770367972063034920530688288441648435122606494819158211612715018709583694633280058153164590656654409110431506726721566272687372129847631270984024865196943812368325572569727894629094678490316839563738418186812335418803823152281524387626374417525944951238433159861099884088911802663371400990600300374474260848420957388027177612330479222977943472366845096884851638125702260798415892458060383457450188392408138066785210348289216403168688008137407429369114000031304418585694330455213874092624922240767707088594691088723014739217946080094181466217072116848773990226380748616220254954774557297954808752515594372530744618256524334695241482593575439072531098744238373002313075116583071341522486338943801229874768278341185305336540135136951080783092783617662141883491072157965789996810509042416957346320963872361112600275165883768689621056070977869147646074351665546642068240664469507349773559238427107474028250296960529970660511959402158008477033694545444139300951233658745120953002341861955650481257339175057155367556736156542242080432896988863949474264874066993422217391561913543697555529749144021392260568116793849937977509257825517265159396236289751823274537247272146085674951247886007425441860861037400239603396241925158745848839146041505595395939966506276822257274030657544181451400208106067034231796769846998825449553247058214583495416937351875565705583595745664213078033489001004437514909044524477618941768310224771011157155616757313724713577372530704060422345697226470770749409271354465620807862559549130351183220807429651100064908480641237773189354074741930222414805005291587356728683086277368201088423756927858395956278099301630080544650650998762075939286959183575170924154053101176166602076748765275090063905492102280734413222742546360223420787932057170114436769188311365952333069021168862863193638405703226749233192185916639067880559074241849849713121546340672798417296779298044158531991237781322687449597089479163686592391622968387407773384616845398320918101177294823224181907122592661713325402781125570068288702969553754202036496876096584813606405307232567347353950280393649015852775053153215741531043474239413377275687104203075024461108665327550228012115443359784420018505059674248741986933082710815457575007681643929990734362072514087612082107862602083740588752556757323230592516690605142911514465966868337490285539286003130655260732341129620380511080227610597117298016172412486772454862578871267621384746097494992416431725709730082924085399270938735684345398056493402672205082942867852181383301546158983735669321032536150646828592117034504011550286072760886517203310298390123512275167715871395730502159604293626351090185071942172124803540649946940698271352411144553140737292363817180228682965957579815251838340068943012434627820477716714981425932030372994694520726598019254043159296159295761321935390709645808038308871772171932205950484042573786918274916409014176180720799710944578314879401334310692090813247317745346406781882508591251977528842023108240269575087612605553772728064878933891313099588029720849049394009136693740652616531982729986173836565396083260222721398592805828749536197666989027057040709336636325980978777897109684519010366479947337856540868088955807660446891217547200262748757785361848561556873107545074627075280709047095129700508283268398386692089963680720693436516926288055200273686551758756693422276106372229047769386051928558542455536271161979092649702264658865578227429899108843445342116884249987586083961690174373631354097446466854192853759985040341835093013483919361802838624629582265260509612208500392185864025069958340399288476987519858275973380184584207538362213538056218375155829430630538644299458911470272042997150596581320456394178393588769719650356642205193872057404182200213209254927598407103104485130206477142873982014721001217385051298900007708416916596688241436124704824260606307628448071496620680132130558159690972457729202955026211644899611431776955856415853353667327794911314945706121398104683339129166314468318301965330765446298609143354457707115930964260505198079267923010476251067138752974136450357486106559420040541908357059277393233160113136253256467778214916063779215800870528404372656095870121587551759881587099774200995565242870614405631919284107206726641377582519293621782682256255644791712498305666839748195126666811551393882379531023479995885798418127464064438205483218982910297051261375590634495650576301015929544926928306741990584766387436796717193399404608835724263629039157191116988295250209473703571823772042846240235012393357986402546980158008289441380441600229700028853397882529654054794971734375987864357018504124650504454117410752244579564752553061604605672812157407832528789729118049390633184100130931660106217459458819690168785973144790605522036282516314956140425872101810971475340529540270589806731826509479878842855377315007778994492239515539922764999192494443347887585789153235368622509443686205068319259831390191993610723865944308582257623434352364819814208232459436106702495866621801326583338790805752224629565766807425658290141992578202747326267827018029888499036411528747016612895386788670821702365418232200513825087892363540812588905854632229054896634852692099496509492285630978593578843854165541079063337063876907549848398262952893918856134612143248736533261610568348505716044199036852833014930237251487627686032364272870804143572426546403749929274863736553226870151787467726673912111989723778049248194043993101993947161429212221496848392350233547203767682415455226939959498038284048412529146112698407439499880527405375253551854020127508832578192186892895492823295132907844682824518340273395248216540839449792329278458219332053520665633493171586466781693963311869860997559488098586113261282712928548849230839765310144303582181446088870549037347389839832733299388626277865693845821595197664369264556544592654524191338546730596633653604061876857533388711793694196028825444409420396428812177328800157698422075322484924051639369963688868341193975316625140043816932648042349000078678177249075466625391373188893248330102116627344440143176424515018824057038276810893512547615538477789051673218894918601447538911268061032901162637015221247859333121211500187564485537607734678405834461646031350831630881158993910679367848913545201872896412401729291215191727958109976819819500185400836948954044910358668032506861345070484939340124167756713662483254517539041291955719734613609867183107062088915257037982531457408424440551858509278248446910597259108126228216218622412047646754887649107700343050272215866258943915125328707958642086496146967545788707949686381075679813622123299276720437155349590418352693167159082446934332586415691880980534839180416371345280218914001287162765051215705921269784408565645576645495545768671785214787214552795234653012576556649292382229754862258692464092144379335155909429533865582366264226866985356078648688405101415347714378445230075969334816643568411241462537654019821097552808794638169785276769129676880850863141839728974031208054989758228112177384261592013540505412668722005427466879457479234866022643354120482848451418988687697207430539483504976933370963980599016819663858418522421747051540082070450758500359834878045099681734269682052421688422450569852910702229482763826120256154510707711314238628124294631302039158234358643064660221868050046921974933889505515071835303577335471248467182754154640440409216858791678392296289626437745439334877811517565669996044147938218052159765438837190876388278965691917079667418272709521183229868258831618716274227542033202492771965679840033776052281588230425644649513000059238509604678484365987022938864420543280989301950294595778849942423159676843083307132291168646158592135551342552401733258396657366537517786168411189582678650249351174147864620545157917956637117307865075085705970697615189061145987517651852016564415623211936966914585232956218224857670505938222329328174627586106079046640464094157837719181251300688379287754604773514151984549528516333964790821952842191605231504728366001542506737710617032282228164337104055639105672242750682682193939034528412206914672688663885147902142486675422330306329409201733231506279449162511678243705339279454693956401956266474027129493782788463787911007603789515655198421967685701072637389349435754263708522086880625881223134475443037640008935962487989400884579799299011409946591613574379122866016968243280849789150427563698931174408515904289072077421209464904013831822278900860070049359997020605265475432355813603198328500781730007793962095525302867085603511882459573707524756387019800532650905956560320310129786106325626404301028342829754874022885643651915104564075385435386670749791130180635338005042905852304871640376742554753351757398069035120865627374839082509769893911571685630019991355149021157828313735287208889211137862165359618552461241994389221974954772970591496859998255441125557349177139427492215654112978969070286184194974485395213700456042227465529634168716787569086457323088691959726453159726983342579385089670528669393889591283893354098184798901530742710245847902946896999300396156896775388285071269571918431604421922409359851118815955543094113668239702889595672843218103402104733581526399967685670137272681534716588790378190008865277397239070632832450586833477308354390932264741602353125261547139699994793639015370779920577241041099680040044840208881185331783589333393228906551313069567659030232188180607370063895255463825354347592095668088504851497658459410225282471959829863001183797105984159015736570212880331242385160153914136031606758853998420959637602994727442392049778605386283701029327432600508674265290008924899239843971564926712242096191707397614525988324937900636597097886329406563730970182291135574243185047626851386694799919458885911574394149090942460215829410576722125806109263611328347898693148857296868386181701690267205709832390452773446502975952985095460297278307716321051608265185423060438782666019481015895725661835193181721957298373381463755358928678334228385427941046100594775418078780305188402364564014475045857469641866899888544549465536447266309805985200333295495599709014104960300312051431988531953773622549890903761458959643310115261773424258385265395505436312070225276130171517471123199950289939683414554588430726264293202559426667781178870030418026221270873609158456018327929338939724506359176342852097796729941053591159790826266944993949037152090908813075585144936512912210115696359223667305430873185778073397932976645059914583482498341578165007344465417290421027383560695284293463302385454934853843388677194903471571838880590056123701707729778930771976863856453197458910685086117863074691238784419301169671347000704535556879017982747302530974485553666458141819226981093911640713125644835214131313665676452747427303049054129106040781616435992236997387839908336146088450295866356581237321066782946371903809251975524291802807773782946664354205050708355207389842439699982793083694301920548052234298271443567142099040034095657748789779187008190573176950563800210650215906131478181182228760778184629757847737198408985791504011024996059852018418058719657879370414355083558650110353551537158945065732487356797191910038492715454505780752901881524243302394703070381402943486594421373093927272840488041501924954333485724125685188511684353782248546792389497754011674217088528554772050970956069020608695070241362102336018445012828206579921021615177550009497689590667158975217896298356019264908914567538159532981423093501268753599214818088725016831868702132577931446023270748298648362821052314568438559934489593895052736770670541365065411630306296223365938836269017564378353356421268286818641702471205804831310649443529011384697423851708887756900429599880344777064842680219454529777321064649939761583121426259286235226925622169798751052848815612868395530015807031978669540619916438632279296320747229821650733858762244295352690063903370434426613675980033605583831540540475522434842955939723870662886898461599017371874255478454185895763828691244093603286915621618305712953911835294471847991760182479059975685129232366058200315966164256076207722068197627439653609925186041945029899855743117022121213955454272768714959778355152506556307107887316832744692028271014268016441226035622579598906979843838022801601000122291452242897756246145062387966787410823908298507760591815116552604741782673389235364885058708464475311683624220283039623463970578151673124338065385517283883297504073097412928441299733580455845057854922907613585002480087297024617282364476778302918944401898628629450372380971153620844557262730222326047899597185487775117252888728840028011571857727091171619477201498275631468524232269817175448489124012045892649781570665641663401620893464230543327510558410059454641634674253881735264986784330037210437604505308277309266229519624347901754637078475819310570676432998609890837110176890319972034579160694177637356222879631717413411248608446649423462842333799201203861971266085348031892133654631144834183099572271710223162278135268983146638886870258491513581187189975814090273074004724196596322583239860285323397356431420934852405069843519472571727390682450527151941368080719791698844231736313440788737482723082806525328907636888226942931354816454964087598180046229178898482280094761721313291520163589362922890355213434700099189818078676152099347696181818958548722643607795678416718452106525282640873222143920718899915971083215306210128566014962637313718602359172936919107738978725014798531317024461590673449750351571736477941998126504149476140113773930408872442468498593253075083821001915152630633981955545190886808486681049133047391889597449036103989001632105546932455534191571203244456405990816075538646081953942327691284423384334327575894091891152008922742844428561920923037314255127643170722864065889972163486294798618365719778371549424140054423431218776820458098677404230730477417932157044773652657752521873429224287076003512381202363960776458007727132935592374762156427218625506550326775380452402501255650894394965050119102550940502456523558119330523433193122312908368853847578472596905184099383240627375961216234567071707176081548895698400047862002854947456179375517487299224420510206599880535713618632738342909997980420295534103868352371620252930595493922074575851034278086627534948968468773064388219481733193937225256261162669198731434781623558377487100451434833994960918847041721798691131739172432392115841923582234756442184065599975953609077810401590955812028719856110400511643163694294632129133793895060948269775803466105405049378778701513698025666996261991524296712178178601013915769411119712798607171148590886093894099388378732703555794689146748853765947295112506725581195985610435744488968678251346617013130700211223786334156054720343008166269179335311306176156765209639715968574005540508134759886658698129553114479561131575761494469071865353187590624767641598367778533471648475509848916801000537941089452215989916188202391658875802040731381239156313793004860905451364284196053303707571902157213571270596770282007372591842700948715187533518363042984982459959414862145612265610828353340436516521046003841503406010996329614405237635455968495600273861233812396888256449354112467052629539576317136237898537795929006409236385349562965129653717382902712518778688532219597722140014160985306495231357051678192171356065686903006281855525906036874708934666551696188975879978650009651699617514097113968172079025732450818272533349431423030371332868424690398572277536616297987328313094748333663797163625631671851072528330215838343637191646465657070227090829415356737987828007965780897440641261886238870520920825325289113550484969546118595593053431416433161928504992735108412939823987046331215049603294493815792589263136853030398067871714170207595586796940385211635737097430173437484248785878349864406148836403764341012343307979846766217491569383105169492876723618843745984037754376422950711022929614074869123668124839922393871262772939662857806274362685217965990092734660245993133356713419675382392116204631393412659022269760422360669464003349340398454957312716681904293271546236334792048662533143239609225661426045028986995400587584606303214843186064233778147315149137559622780483556191745894754089182122523757613712888392494234899522743381520194574084287796671525922316034977713794753348193008768958339054943782886643604881246225782559016846215067061212643206109904084105569418235630984658245312260500026944529172174132142028519163206798835125790571289303776537538546738409426954211275940616699649181733459130665634874565694459339738494820000890952358182764725849226927329939554061236102956173335721913262456582762672601825076896932684923676755652004364143917211028809603597730324011348905351590477788131978526280558161449177820974835808012688062252502380985595799813864684909049566706420033344435525384705866329082511382674409349133432809075468435981041177060986221360577127518886080120839511487407763983796836260007794497064699064181657450265662313797683064024151560284295905669861820371225366410343159921155155767034949608974939070144507929277686590737521971322725790981866596183599419762578426475120033526326357937316833850996262639867270996529917954466381290396280584708230838212819490257922033245057224626922712287755270723228736080928328114171483268661409010084138922678889158897822568381664352207237094694620205042883947767974077904745983927031993479824487072748920853079502457611938414759132039325202747973332806453172203577826279501454612304681901385337585829619544135109158469888988771804041750287211338636339438521586726179683404055032913288114917733795227627127549400962147407290949581279106840885583170463307885487837948365414267575080233499644596735040924373986884102610391616023641846904643954214466195972651985011492076046240083227437051946200025409916215449207987654563772911972056316754953745443112080925172843385798261023876755013344700461014567288551379046072565759378946104909123625004651156546336231098385282053284519853895309847699432920719061321969896523346876935939564649020744142879109729971276985373403305028492046488230266466488425180076034882446038277349924856805874535703688325887513297504178954324741360348156680025142657881559650858736034631307122009759607402016034214241206252003798987008542553386605989540511268543986939970224611450945372632667401808329237846039605505468690987878123509321929565406232490929130454502943013504601055462548405287868781404473156469469514846215493635578222128867139323066709529896253745211835730681481905759378271699113405430662691690265975801874230843059097572590827455063978924376315303324776855720274163166839716066105793153790837727160791335553731915179750879246392287231201389918159241510040876945758611095492742145424389414483956481331560677312949643382022848426608571243765249200406550076003118308810098645034999838687899764259065703472559877116297479784575289393892809904378271686467938478445892923964148436999053128712964150608072473863816854485239166087340619935944280006345347088864031480466632639658840491495295142096471931360675778431145637646837861022303589134043838773325329823267009997198528331564313619906546980357565595565019559280903117464500702863459464136542949945746083706181341776230010526783374827777978682509040947381061737968621406496221324131221777733703319843370099796949217301275092134455939667494780896321218807042932340964491547286999972336294440712637045274777942508496054579463201696662239930844577218141637426682828998752255024891888020946225560843616339280830864638500892721628214554036516478265014435341203975863025654185856566609996481742893656137782109513626873288806456191685687498863178971329842322352616866284805022264893106413529096636096686010841810290381900278378038377911827954924270020822480039733319896996358516458145907874504675148958428440485808606205144292052212288239974638476053262090741310825797625423740878837784220497232445112183993185910869945107027138126104074755218821083179887597975643785951618694687650702445045036780903486325338557987992599978352604860227788010548061376542206578582421602484851252272890511436789209180187245936944840072057590233860642391857997418750904071970385021586388822314076918160238423207184905956277398368605105518842563475701633961322928341072683170278603393786480955711005504563578014175257326380909617565088010108384014435335007380177889705945385401797425436124294088803538556945028607307809105100440570746051449922176739321299012930444204954697571671067077516569788535273881550610980621272535200326059394992013662874705770377708645043143521634030246526791729035721913560318443056844967430945191744738509538392159355025046266655268423665185373619294982358750969403692852258844412576258479629789400474692852229222576761950511046581973345046979169783641821873550376211452541498159504445912268385054523211752416472018960171423112550675175066821965601571889536510784946462211360600680937181989252625119127841403110839068692506925180096305579654712896271066782974068107922412369906652460590826595549942855064153861109048689846658918163893490713421843386538805651672060498842521048043711468924618818568064779737449906002368270006083146849093447857355599230508823054920311401558373386675191820075708056790913840305943899327011762706792673429455377723804752560405382178042180838497193300095411087226989085926333871843376283518240167389390393972286873425897772707004855496945587695533375080869132400185923416927889966728704515678598269789831014697911630001562301273834571001956095575757231154649161148727634692387649370467704769044170380699479320792644129721900695119227882045487406577751667568188667070266959806728875483184757766179477038241026666102652356338820269447001886595279845469633340922712703675491817410726971477018719782554785879516726967825007182254491280574990378477065904783262586472340417130391514710075018952267230504093637083673357949127458587842701146353372410864559411401556193799919508324684356198272310076435780769991362545472159103898051171601736294159453609314609532954097057919908700065364996091290752167145205903882590931894662545512459873311303309628790019956220433279231112575091343270952802339378662751180021757693678534082330852488401762513302531252691858138487580726515948012299081679720557646828861551286181697361877063235911342662110358891933431035052553611419069652774853476431847042930331000486918540540029370006104737767692675775705750276462734826501725084144089842613846202100797787661606205142479898225252670425648983779115237244945379063019699680655121145361692814962405168117662320709887652281211527334421964140498870203389542662247247621752027867838850769909398253161396653597635724387064895355373608518898872582236421183878725792258344582313536271498427060055440524893075761250257827497840731044660516695210091785605909874986163903181362405173988662937172264342747553714874115358965460011154189621754618913266234326801211067227937658011926972951060341556440313919767128490764101711666631183285573120406286695373838595530408757697863023018768438267220113333526460343191691209272687429729788860952937793150115894813944431210393337736052484092978067904892622693189963108974913989654068547608425870836536415526615815352577347862691062482502049299069017948049030649649177793435704935363959900608243874958974691873134685876211338642988854764972314101681147822858310382815514228786104267344107776931872747162757868074114793195125782628868666532337125129154809002110227239501057686887827873732525363669969665567940641457118069864162832603276061184448499031116191675113308823315041411922655101966468081545019913129584901638332109546591229426754674564863845917639467951730395322612505558750181984759098816929542730996332034085327299701769696368274281225639995759678576582128331518979060205009029469193372437035083613860369427928193693452894094852696532082996542716158145751106173418882381582430410427278467019410837897686857310792306219331888265391288755303915207013072940105731658252024330487095960815270323754225954250241910074926653420897670609117367516255348685790404046246826616889104100628378288002738614381632644165882307020282649886471733146324896600890626506207193591524695553832964412640258727586961818650100381433621935395102393389268093069243071122971531870604671101088281350885052489482483574739093860080836175925034531421956353240423657403659733183636669128038394363804285929620085878189912997998015770703321621094419510230143765976930410346721251561887873242612523930689547235872214086123594705675685412311066799158732832127665083624507853415074183389588715871169034244006019648299548937974442934264120298960845631225805667169146925285965588923432582165401024751317650466759536611465371313060089373405214706848090598597967781953334007846034359559287787252093080023207190503731923668162502389216246505929783924482308195103384989589761804704169127116406015113212996444189426424879935423778347537730038428266692571301201304993746776605116892006097753940669141939593194803147017153155937590632018499769696183252217352073500652319992846179704902189090470142484816688141436541055546237293894461565307336674426808873187710054711458332181035040980452905015023768337292907347671503403276968619862218015090644103290961746850369298262724337597756634032438473982315655569479777885107692511899947087657427479645898146006053088367092787053924486478350026865440460618579967848129804058386530894807891759597995274746408476065924843785083748456120598942413182499749322955495605514145436920265356065950298242192519836975496730517307405829704280931653067166161465441785726428186341384123714227064696933137149727010609801380096600867797464234561155262615890630419160334666537841976507063595997640870335247422845916018101655565582232367238732052232399747280890339488757653599127287811962918936854584172297405028325993377547112943102094342917090375485723768344690884941759276741484572211407745516700200067895079968333158330154240273790847160155590067365668110979559623411968355036972883652423027378150533621468340404097346163716806912094918275506618599854281693608056208716994490150997955330966383319198708718799601584851842649810020683735031659965298700987188793089880745743733031846246635158778575546479487998123411738047351768090984256171106548507014180015168911317627738558239720168811607311815347635443902947840658449009944848735937642029586790996159917810528607441312528223926229119932813266165901098831334190150283679334362456919699436792880019712172882029503853070477523562913482161494644198199383274907847280297152418008913123532169688287971558377557423751466697910947004604397061577152755204947130009187333378210662351982498405531788354405121330299524209078285827994636895721984727749043640283775243126657978998279061719511895018596395919147142431488832306460206360934986568801568535192728490637811836543927404104527041156966184845727514261985556108184010588752447059999940690698923903566299307936364929644018335652100864233124831426175328250932153174287580681224248038757593364527091884854816921992089559658836640005872669914859741165297684588365563766025105743198016045357876779644762979054628976751446383751689038832324959190551593951649541384352637894974616600784554358400180183022604208209150725217439327659429469600454918122888896608601534467256592081397496582666200979291017147443917997915873851099381822401868614301638683905553293437786247846463716607705359534129623066318614617613542619218392496793821919078814375585431479794907645048775016768852553995753604020523164540259443216777009910479610935702493936115619971502904537679274123957317492276293606688595936631470904369949807777515726409228263647443349614171575374852334236402139624966987886918064107832176738843244551689230098316997700616545992433382727327315727295248761279775360773354326654835734147400249306390800595709507787967810859874010247130040266855094600866812974932089921229301954279317012224647368930525272866205914021224888332101221750489015141065660651778644303416042837650739826295664222175968751488891728756392305443500344938458474979117601030072845848446289474500678988647642317688539819947718831906459722548871957746445547874350735045328744967586097132430210056516271990126800863257047314269050448907344265455707456265688791861040701746397985007598559687382118558202965307557657032849779894309537184855982492489001496407779806696366569758008345153490575717710991283702548263140074053740681734683567963285701806582336305772802168683395807931976858995936476073753102513430401035714707209868307565097751273164775942452931371836538685364245287244670989499580520234332030919437484327486150226914468261547819128976815471160340032997870473732641600606274487298969355607332194609128438922427948718960768059132441271768421140512770616430739376312621824753901119139895922996364287955314086464003291826870012912595228241832042473873383124774989371879541495709698315417248052171280065598178919418645542184088442179817647271352217951744072848685874258310137649605237988481597460388621314218122348276349644512896341158235276379002528364536678329065977591965211690332226042368434914334881731266384200757586085068690193860114369748432622290677729268183652101309192981645385071094949371865124658554967047854271621973045090434595570643742632108954184894309291053212863643803212222587141553740355155828801030288025312653057086302288988557650089801920576971068644568921146846983790770417905020679572684771637103731349928099660564127920974794316723501418120362189894422890726135780465566785032402441092843989226271115033837936739865440465480478041018057035286184930552289338604641166384172775635323011401651104326930371680002132826360522974641592830946980759487631719775310609956434674917407012401789203867910761485452166383016624652416302693180028593228779966212883671173279235743813789279146344366481993132243873489757013582121276829413700315395999365537818657879763001351911121645898801062468246224245181965484352188224904511723716747612010728855314765853489478221634090169926025615657785301673040074312114565745544929994881745134353319437864742658372643278440208351839582365973604790881228617099831945301116791249384867403456445190861009390660481791444191426254269094268672362277818363207870438896999316056290096839776443589532181231706387147937014170736606007932884200051193600457012791910862482552914366326772349338445706423845935962949049328457808442990917253328477867365625932303626143881806918985121816322777868133824567216810282033154512601496839427627153863310631723648260465324502654240476961464409747555140979939481231608326511163014135401543631177130629490949553419086622969337976582059733690914372058729306136198913944016296413774502501632034436918381632791067372690603143620087208855570997341145041409803998770064717290239470490962558590022092514090027014933730559247420197763680981781863709986251482941956834691303280939826194186717706644611454857561975202068092225497553253567034642786195833810630811535808012677230876959760343696783519218947785033317576058543827550870510953379523700193205187696491741401584887144169694013851868982727184500219268239448465257984099237292184689371576349845575257587793114309875548962451156175650229291724305439053201075959211324510797328141436084181783464063080721670170533985765424917178316223682955435822653994788461266190551200142346361286351475122210894539417987595261854214944351182294610968995229441852070624529236268639653304288641289005532305967069482892870671803193783087461277669948286565215415505740594897650413608510468954523965126193026148119119525118954820253692963969031744901290777369667933584630464364493600950536012765663006560606323583963847269002286019284279540055301446138722538388206838855924123742763513975627163890335540963902817616732154342944423595470708992908778273851929789175716377426506529106676739941567809254212149974378809579680598479510790698860520712685693924524968686007097922050043061818656125503815357003385992960842950046754377979400729552999923119413054665705926172105898599904455929439230877508774560804859479781002853984781754957203013096965927061089706330515009485055367078877650135698629311758888858322715003964551271648633279660371514772919537738385913371316135503795001972277841748967485143841410261799703853146139300093947103712371408087081680295621921292168744402137543826737486637810547331054953150677053800822708423146643877265247853006613802928770879880415524064838386271811198428415983783431462843166092618333663004499877514458679200337123427327115239054901691267136341556886310730222226465210136017601471831542132177167851098042408509736270142772325197780596914875442520320862104559677730903009085768446295722266041713968822489783039707219246577184724589968806473620873460157340273692294281226821885625853817938746372838666725146394922837509347671567629847675729838313264016769926334744575620198394815087857146481957741076066989129196223406487197005010406482871758329833806030180884678709745854013891537601380042209720909862029485313961121108633715998722929091988804133029952724890759997231710827065592062702367427115216793243435219140469136154861355606772403276981304117868987006385163446295783135300223647162227982346569643292046032094395950060639110991258271005121983685537156029249205852082089295329424392279556495296578146145509475666479848652972642076782298920844157641930245968051655554289461304665982625016318110983696499278083757561755136746535256109443459165745500367031219809478236333765315790219718135154979267590042996216711620732166900721291182387963482092480324779350966849479376836995658355212794047542152898752681931140207625016042551425025649266725071841206884938488819737118092699600672110526333291732486893578682291658218253436516059857703623312288311780849072536180424209217738346394685493361265410855095459807231861275696566939687494271638457867180479761104081240860840575324462126291640759826764466932263386739106617424689444944112356546674708475588495253392065922876471675067674868356793127328134525449547909815740955750555313463361415833804188582563907534793959508806653008548676677165636220303069648816214243316815337112672702368072150500595592760148502901705198157906832455615234577149260453629727960104496044419079179835898619215889870463402723772644647086817515837595897840309620073653119369243606190934591687487637932652869790343371399797728722702620778793247982548703732548085817454729189821389345250759456854895227943349081008804858127545997971590259665204248504411584134940777514388996628713264979278896915887315230416180525625692275283178656207189971918376488138284699546373115641644892338887214820777019940684802013147907406556666853046329081695823571829860620220756220239999220047691294039680224059083626634985860787028862521068538318271704180727766460132111575755469756901997036385363091460093218554909837947844334660920488503981291224587390749719392079038725553844871514522328624819617173247677258339316629103036334145003958081838616878307917589834191706683164138002468155159474667576057468419514857930218443188472780217922587167062371498966363368814878236238556190529423309667222891882604007054645420697366728724878119628150251122360173102389691275780435030840025946917736545274820894224825261831508361766732180123084110040005081074992272493597578075762733136783559787794393307989053448026143520599533023365888599711838573127274561265025014390334978357633615530322661395203505328832452465354337447271456247787200429846675867932054743345810219770204276133677945979785805647077594995006840513335705327835546082624733203536337784492397596352485877807547422297233102261476638529962543072621861148361076399975153378601658186087919656243947416525928903552783240651658171867149956058924894728054683304942056481094133420114966675587644047828113234594509211522292862080017368213054153617096805123348024838387777481683826736197322135417031299541689525090704311446455974751886796477795315101160308200380820372226062404206256693159795253537892464996146242476090050694851368183422375597878835970217409661897410116355022554909721919898067093868386111045733131687772780550179965092871172807571912458706879228337135126897234294507592425562824908202402967010029246824130769121407122810293151603884794554202150728565587566945158793103356813597357702763532369733040882421052948515265787066965152296660541768559343260432409141783964167380593464986685833012969143347041595551980442392424683829231791352551594155483661765287360020729936125845586985040107305819113644087860095038967593581529127571117022297627511951743483495523973095364949368654813631899596059857758686425494693309940005071865176488329454573748634619657409483845502894280506439596654911355672469752092969326184426589654820818196399527753457520679029764900823641190928563114534464670775677348055153102491709126446054073837915247143323729699484241078075600905280668090875529834218456993290126155314031826963505128568355604275842586858968485484166903837637794143934107086734098927623504450689500079049904150276723402396189741202531565658589930435747965613284695322781372154923100762399133215328262651686278164111670232057731512273249244353837623828096834692633907584462542266168859765564270360434155416364788404308181789261642284816336442387375349555537269359208286444148872520377341948222210331847837953053782240302971279849081675146067544237359966082360201751516554597343393762327276420095942987797422068703704911881944130251982795877252285071358676275824412347872991059050231313010496008592265706706114854348612767947330828672263633735405342384970941768365755862695291030976610441577266724416685924845583661980786139070236828822940223793520795495179800347081047728301795428999546020037241873564937526711446287369441631753171807413767412723591489287047102230434853065885317087453266102476209468454951816197339275603780214920463855263099037592646062304619635156939453879306143139117242528142775941883662771128115527545346865163192325287698862354141408418193344688182541974745780006284080468773909153444013258687388858020032874681497661333670576277534172445031637747499851765637981460500389287047749660098126451146218990491262235933333802663846400610218452890439273105454145972223214148192942321885856234652670577326424852471353116005979574953266988620151284966994924844807410874154875678055560084330990735583516792541890365151252477009531047746210092911500870071528471185295862829300205488599415207084436368490331652100344919814121601199110348791182916413644743943666898429740375390784273024362836693421441258856665074782890567069938053358133781334797472402777471688545544501416639606444284038807335661896142205539119746683576061949701179871132568400799416570165476026382973377394061844161056509800880774915848750070018196054337295495527042139061050858402140029450370418383932702223067944083100979645617064415115336132430338123378774516753820163736920468009898624316067314852175099929394807739117923617516755957469326975742748256448490628459182804464894996008135191614612802651634770470177642035350788020941699791357909753127486829664150192559248216452376256436780707292206278437702218779607785271144434380877001297291311041192827118067664151528181274056789788155157260074775464074455897677647597311766794999270728281897998621855970771482138972581462172836787629312981857301897827320559837371251559704676325446778112505461539358517028240459856070582792393383471581427873840665389961501990720972276648442469471968859172172654349575662473194917125117247599992518248643083402011991115522918947649500517423755685302588449732245334325065253901398926506800266429422402846591441276812925222160239682150536639383287700946654041382431305127191584824707062408616704094828229817096343785981148087294156892869504650648712697841444323840990389641362863284279931384429175939366043448209204812393165766484632636979456384055654795000289259474697882360225446264597811778631890636958157210387713568192509610014342739246902164433916350395483198229200523496735897920636141641658112828071380411300434807132220013938640384714735728853713256249913998238793520155553594183978194105823747132081279426395146923167795330044701037540417073362871061674120953220397063371058017481624466536167988986426777092000892284054121613332332105398681490084591678731423606167373791818013633717610785833589198620448515237524558881700907333766371624387781002952122841548629325829962559136885002124625150672170881620561482257800257112242161076358109893380356222729836241893126703844476454309338424530020188593218017205562946236535167021882760782870277163950671872371762190311293844704294492520946578330838041345359583953202969576509264046984438597371744041118524447688155780296228278062711261738636473108199872241458286267166081082094867842820013143453288510135188080062701378052369785271283608714087331614967785733183974136092412336863701522595923539991019884417672326723735613407673415475916070297232575947442906368825321497734141197257262468197006756809836453971177377444810228919981807034613665859218714877426850094170757521607126179145839840550226742872511321688181211891708308322414281706593899975742031766549330334196160270532595292907596504378549107773146324606469971886537724359024759413146437354783823227135635831274949269983446742180191193646780001239511757269199956848093610646530984586530246302532092722839207297323945194474427301021399576980438716364788100257146634957467994810167922744993337574544437982309778702581952390178235158472688668169376337846453023319593325268002720582056807070024849673932753488833138875083752681428159163646082791787758241104496585305149778029825320292455255340089650035005770518144466219342545244547771776775211102786642809700457796840421407458759414782324177261500291362146443339244467176016343445356321391100929159048993712854312115408098325880621542353939737385579119159828878450859645326674806605797433254333244012666458726323953950005023704649552679118181663028749836625811272247941251557575075511895607583847310295459303786740027511010217535360642914861867502999122610067813486346071473904031195541398798292739761657452583757262197009331809264430309998485109424935247769574398113426685642623495523549430705336721392590537591710507237828526600738104932731158500075775748223576474946212848467169994380862584323915249717515904288582436879065986990837628642656540041527558463884033342974702765495372197614090812539926585261256184424157778511352134957869028543874536264765244009608296145752590638143231159815813845387188375412907272818611343136224609492129903918814009539839591095691748571733379417730572175062898911983611095310245717091975503733283471924797270340993473057889293304965064707487366215138583931213058959261857953758371892574875439559841521576857381187572883557390522165392609804224561555546098225367978808699289910713656195201837229675076557138688292426942103435697205196662666220544321726006086597244827764767164246880101982632918540343096764858805091160915685359763107979283672085146012884929757853833898929927273822556032513624821137602456697313179441508408077044682439163890762940203469449517457720566512476823527300222675510269477041574738896340211217466974054163253039726602160518952273108656456920231053365852917790945312132390379410298845183758333745222187865795270163388430538617241059483877003859465570306411536766207184928067146007048110021295826484093018147106872069585385893321149532730307957704663523470930762705136544788327159893861983078770372789976029112498868192056815072164970828700653587470766393769797316338973589174339094803505593526543856448170349373061836161575371916441683192227918767350706831298717222089326565907021925057724321020216492033428558191436251615144971543895345707215211047723308607702683554949818271374368564659684304290790531033749983950426466735823097781057495101796408394537468680781887109631049537165925850438571211260558848188738873197223313728467388445578442325896217094410655007913149623971377477246339216364044446707201070911342149358036010087839753993353695334468068333329673640444703682758879512409758404664821895930225897457728970376604362428579254734409831016650829806428019082581081083752350168926017644610118538525255552836574962644406780610037167898313621888232809867109325873451655447346397732836753525744862371452571805956072335630273151884027774856713582289366948879067082298509835874296272882918642541402228995476401140212344646123987631464606559216123397729341700096132371511805452733374830139970978052121313903085559131781113979000988057404724797287430648169652459236119339866317284636584722483170205005321831440597402663621919475853031993710969268253357920275982108838727866882308189733147090916182987731414568549096856882595102146203941312753286648887491324548171857577807080316235337894274664225757064008026080414528029793782161342955256097833352116382973717741966351175743883882614807326666116200364422099025628948901225684721072127452547455858455236907438672328340495117243032230378172655379648872969508936461402247467765942251312214265675675210108363263954770911148391831889008374437529774998913647365433084158930261812344871128202471711307314305924140994688502938231024053083158812733931807347868099301599409308697421131251851768468207653103439171553405716280851416770282261698336142122160883250901491275159342133809780505981896715421544748733438313195297752233676232347837997846336617521330299448325200230279270911121721200150141597014140702073231922606685143058507944779504302290849360162032667720861819202984904529497563194795229029602078821986996322014512563552556532553591057726050815321966699778554681296232132882693680429042927983370383885640138746529804896501172348109166790825987536438258714369767839484439275913874376968843709785511779511329778968077055734584012116223958556596158875944713170921061093586093331955491101204787324705015840703639070760896310536098663704623918480210179444035836943658032223973162560718314885540162658915226601887312912225594218826760077166323644227126027530588453966723158672003642692211857367995061529783789151381371065160554517194984552066828260191672466025005340271453704383123519301235802818744007383110795343123689880665563720379224385713359181433558568094922952476371283749682117978062763101215772044076464172419678061067981500617969705409821361033358045386370550731832801447019996647889826325108743642672680613329940510849064175546885068459874830363738256998284228870123464502810181876893516798789401430721822457023738893871321450028062987576170013512017270904331565691600032452127300242316215370646528747332272431269801007827096498339325640695553729456262206344965104999745296997359414928971063262876082438899781066148920335437904332340354659522926154709493517538911301793054550878368680100105257529000106181713988969637034748111435939998177083471599476937271180262822511784637149210927962189050660811299240014465304883832999319178725935272177476191755490584125889846808914905284915013647389247078906178393370313316704889598677752745392622338584930070688605706692793106172152206993001531687888619137207589098182321023519691662255890600501793468031652936450628348501538991289994755797892572562640843320646211962090144040793989627652402258131360305945437474875536362892273826846441753858143690027996898361758498401754469625971035613983575235697384241604537674646781078654761609396461064084150759722287997039221746870067361690779327894142071794980895733236099867238271447942491595895918863174268246225191078468965223481566354949723607087006538411287101104855742762664424365073407940291493850992987015920975931853091484356437928911525657185488676088238183904894886675092919607728562354798655397547509157425611571001628318518537261567685236835285097629139480815684156114370413799446672139969681038641937274999917161087969418938321346553803486124056430403480365870475615725970576677294575617840617118821049111684815305127284328284287521096399732362767300604043000166352963778664294155865626013275725635021546808184561966438054198861049559284062888746019425771586838785191104711097969053113555676809181460987813102629969432615161455361048935200653350453171297377282157183246608241996976275488282384732345378958295988103958836628299380005110073292412149038006713803553164245474495061410611124005681216202298547108515491250172475430816864223860556867586828864375123014397852149286558357152835982509918014109392678206193060275180176399007899945867404782496717043782335026085940527249018391607231442399583416389500485295821697125236531228579233387236460341566594300078093014801761187622133464077257556497672249316783561491083363745123066858885326719816610865082729813106333905907157780846690397511942608080171148230790057852453673401245626901621441475290872060461908840305566125274665803598809376260991290495957406565189632566616271257259825177321571760022326463905549333845559701168975712589117023171485364962200707930872351179325722781198746732539090751006032399122038264242485475713003598768769138306806988441994685197761754304327498254034992137039785805903234685544318766483254270892535408575352152915444927477057788878068147134898950247198715289993244697044125951738056262586877029783111032887937209519734325451185834447275765997311009794294427820963765416813015149986097342736349294029513831365964498990200854518218046357409728291020242272121326992795347792152634382647278008747682031158282660597876665335345054388362734465994188129690685357451093861038461208252111085405188021974303126009179169070945559039379821247010973054398968297457825700282796101147538565486813010154809714012910797625356276246188159651405121006551295698894268765020678182074556826102203454353486462864553500811941911257110988215345203577778795996479522628561867182999637410378319648692516759358245003188307485899013515546307685153495390310470459450515730924372298726441014899247213863550271113952436886517076111654261869958069433904409382229781242142759857452659710858587299729727695913992160977929190720345657054232948036525442253540486781886469032275081757657710316586639656744354008160376993335409663127273718431409518360256536458336737468257437162377256681227745180195085494806782032785782768914107710599824569221185977965991071579557982267284134356275307131403348964447102434143149213066593347227625183319828593633438223783531535172794533604051718209512841142860241838202044086205368188562506988214820720073771140071614076136997894215435821567492176310313733202944580410055201051264210457196628580059724359348652873031698649898296388311301975535102847101398742728925536988011460631160433826182603336806279419635061612294234514481464825796353988383677404535344055990690954786379968110404585578569638023228068986308374354564492379461434076106932019100467308378198081790930349694698295678613583282332632315485397756765225399075763351395104199322235280662181965880786041444083673257314314809145634828876064391362341063459179770742421333327177779832379103934283651893529621901390258050190967885926931556483115889234647691207688265676225152693618797818551113334151924128131888471035554663302329321640355647078146869573416456774530006787918606357318336427020311994271092171235497776264233840057088389449843888616835162590944799776049607105027012625717316725426511548353018512065308409885791337715837939287984905901067322208643353202991311190132361301924176203985912096306682250207316661275444723024217446599822809320503485843157835705659807979404554303964270533877482889775400925755268346991862003250018941230786303281593712966265547841651988589958805199325803274976876247383243094794243406213090255395787322530015446579835025534543951302670273542118630508572903262736517851968170132118202266289081763949573443523482147863865431468676923400795258302157204840535257858661416101176543178745564287896649573907403442793706841293405530466544868295345175543545904193763514009984861596595827430515582501183639282885664077881673420280799570202161906434423148248286567390449308805368804848736565554336971866727297182557122474605060754562209592794490949146199334165662204889593554017420507735863772319682591041538157531774370315024163217897790648956755249605271784118501666026685927174275495696471034958382817200871062730103552095926468704926061230944184655281067663995649989217661304350267047833890852756950707375367112440968783992267351104791633070531840008470050925495660488598090932290241549327190035879467666955675641957515232414297770322310360310444593246901951238676181037431308607242325869010079348729670545946905332019068142039379899197365951204013681279061088202356519836624178976059930247859559030924250784971039124883460819441398174927072338663549164728866852366644736634318708733375183612621390969378554328729878366918707964143543154631200587066637989847878970427640936664325157792222189291671865862708026750570355305925785927864842662949799924546601447153020268407038995416945291597041708020182348610077332567862972871923682836131318444646528875403341544773811863900057784523224802656843500786979588731189824641824517938180587530352250795851245068364691121082395387441987795561813248036479433980962405455390554598467707788295519752104900572921302108393379049866217324418554977674200598418004873171420081996056910474195386558086286095998164818815359307944968012280641865954327230182775119851460813064491120571428558469006917770229084125848346011470865726917244109859559354801024645507145267725497086121478325145022655742003320068175524268725997730345285759875657340726030406793944616845880728902371808458776023718517794378940596862187149881217828841848636468196435410952639173243727654180263135479248644756309926620996245356423074725737581194952473541010199799098188069451317003996272630408444435762973506580150737073534208422075874050871277495094644106211405432609995633413149080446882107664575145216675304608026866464341605432415370725819361016136229356599645751763084236139527017981591996358985228532036503216239481706139160906961842156486140193994894887055780228375025373992903237848203960715423726061833112337904414534882352564680909543095346065618408730033956427076420774652805371855945500598404734552409121367757474642459990543953319244488613184954190479652300791276174619680607499180655540815187698428684703269727275126755624551256025392827530719492046956792742055472440349844135102372758452619355108392868835003607515417230074070983007508775045108323731142236701694279012611164064504072941257179251127748302406808379616355611035873416270113893239601089899600672353918733065446226168893636199093461213320345665516899163116805261729539354013285834774913489057415321351215765579344386413146233175594624712982302853757671219266436517937535727925963171082847363959851175708718412508416274931080588717607012986398268316730976623688362189171188798857022136007404656407227910723293561489045625473927300684950985683683700310679152855201119774917981860370848489712041438536844571410746593039541218599032788893437072921587859189100571784559061565536416145479853567315687982187579572313849081671067967632991061267202003495262835677098143501031084339239512873209751588199088676007749798167751118734434923635089275891742588519185944775345707265297442840741362681755691868878769381461517601621203643819957521016400805400476839825328681122832929034593465785852341138337676346591369047929706305213751009538299262487031554532939986324237147886225337182867890341222476400597911818290675443685950702764004569868508460283659609196646876615733079777291442213048324266430095657538741072772915916923414267993878828903497182856625613380017019248323137724560624867706264097380491213823642421919704810642010520693344139010590451344225977854799920689318248972418796381746162531106342644085529784661838674366317513294263075402047685948983571311853223798091051531149668899709992758757233165975634311612260141621778138176415508710435115126854488907525348716417383701021466207568885708101644405992010596654535317972613461547210999203623668859536175738432983971178616870113727315898544070895823495278359982008418658790379012335969694406857950412939096463444491780339808100114383716924764033365994079302523021356486145821489721040819658870519182056336421631897141807304768011613126319569948757637540363444983257270872510379388237582999260961183100925887611360476546861791354593351922367581895120055222769217875317332307757372625484336330818005190794912374477125472117895408407551805269325951956794996364780445826552402312652762921681871518515983651474261148207314650978140777555917408824874739706108627693294599229989947343723389407000243586919447851251031328396365512142555481499599513212831716551783662295187945417929694534360455924047438786567454462656027284499940829737926311644272390006178485028246020346347663728952968461840416855069271837847816468104239363765944378451160465397053192613153493471835083445997896388111853741392916376206841466764691606514099102453526045593006158081729111978073731317759588651242785319422027959697837918061835927247983272459045347164331873377290975779877253977939763817260460255397616764385678368661366923840295992742670040221928530634247277256765140733723582469328671450485108537456171704601501929984709386053543670663790209900802272679978292008095141315070796806167685273221098543773484593004928937120979702368054858898936184658016229244208937317213944557196744090003233191916228809255855941652262123798235569671279231063087179035483615795352073645980210276844598885860843118554966191917989855802671190057415604656319346502547873023048078558089776237356900987947631045353052089489865530855976931911925653401899774600109222353804236613875813901130890698295069251852803974498236051760232321817402200637936202275364841796010755962546151477980441694310436071500882735274326681788431137894095247403922647334911943709971290299348000015837627816350292838046848280904949166423050289777701964981307795786635955875130189403966524601313300535520405397984758810312085085842279066174464838614119055973532951630444300890824017857904771366095525625367044003804535346356609423004412513969579816524139752130879056644940960587202403873371500595300735831393421264190692826614097813445531213293100886597332668568621301767676295873758030395813669528473920332039437274747986717252855343363291659609359052565887561651816904259235615770374213299569020728697241936548006018846513050051202352426935380018126602896612046412306963238867662997430188611477790542634150155297350895242272810433957214671801009599489695535107402387653347785460405603830921630404373364008651707779749505047337109562961753152389104492665462208212529481460987433621422855405085651628904419201476581556887593141488028796914626490492801828191581100637179223474839387819559406901072481514956435853120020212786735479454287136199910300637302955178654340046795908913279640307896988102389969610789814961123259614878202289991950642111050219827829601102899594424624800693076006785506497271075213244816148731453007091836293236462492589093101075370081953231907276773311544082003173309823489968455414516220157043557119212681733679980197997638076503338451163600538028024398717521191593866502286726653221134288598470341858672486014619804656184568616941338433532676667071484905338986023220138637079357536397497560936331841640816607532911283740631997609763529596103267871082246139509032920691726126555366610604652871985575686070859789087765311405184173268828397106538053165365201176536458775193228066541032540949127076059678679054528347484829365268095094832426561664098606566661575590748085968568904656706393928141713302603782774898323253313017481331504211120087777642608208330107428642553535033369278894709331714275934161143923752736745632755864063551045338643133587288701403298120369466800111790520601532251219848988824596014450927504162282320691602761197344853104535156236558266280140466327338402520225367370841035963905348938896048271054393132049262549512944755850670782367128055861243363553119642373395660736679213790643553284698161984167075038983470887087049846647904847194327530273647832675395323575526047142489133892566756754778719339180472366053935583785246158534533786437233129254126041402235026274997271479222004465699493711261920540753014637367944139537314177801264107309203330402829065164180142465239277830594085503091076703157429634030003030294106014525458342458663575682949966226010564308381719068543839918468580503444419627899149996918126914291128075246828773541855739388448171870570380629920395009928186735255545549443452186391497185027833016599752262368271890195608289491624625599863516198547387061886320272850445397335761234243712016356342995871389625682638405285886120032310021374562699684071896110536112693814013269739114311403203695499146436125461931404606839055429129075446753989562426739691775406527179557307439227182622949322319295415099733696291137330707241212745740767725036208072298303691004984855618900342605732875385235130139631313152280903735107957695101407174584855362217445370792141634551495380169662268436333591116449586294081624129887369135187099958010687633594819798785328332730061919852915573726103786241796995809336531131842978608757941235478069293163561867512081305636302823090850757071362461287714607660386640573973398174961063766110774530796897356363345107638250890312450898084406273866081321049147400765071129349174655878571653773283489588103455496525177708225363882825331386932309102177287178872893823843404032438674995673287880685849160238642160542197072109158177546805741557682779598556911945238898137753945113537556424741367852840230314746155818816989733434204286572351922003025924026525933392242564004450581860436688536846578371755253507906106996276531053120014263170555168335732190262542043142405952881821316661656969017205731306495308388763538596637455176156775605075060002459747881801276925695313200792497286171989105975926472519117434491393733498105531340820024470648460621903657348142816864481950145495729166417093580633788603034207078080573810019259189130514658195582283633509211200838756571222827146375737956769785118132342025317027955172737077151917820579353060909690551287722545953086452327689501014172550170932781357404947604308068084796608239282790410336551877845211736786399164316834353281848029662992214420710310602879538954182936488581792358222710029226097163741926859833076826900908198988972709766163286354831737607146029697136536494294340982071082713746541629314493092372035851139986610964720799692562231223588391677277323860030710423487194730505829717011925060597223694817677218290479292775720659935272906665597408945637772796024054277448358538721543733752097455306291674382291601160475533976302034848555840733306161226610108403560313974920752877419733656816237826593004539405506543200824825707479930989156907809406322682811065895089568410993423024980878701906323496466489053986110059875969679213397570647275529799017204412296816048272980403027145427640076251118134146360376267979274893999819462797337431590201237703960384814586624804619836211726651484100856928422653638669644816300811438261418248636894092178638104023427905695117273888776159669652535581320668256490216980910919709489624086065831965073980720141700561045612210874970682240717518594731266707974571889880369999643438487061243785476986674428175371537329482649214022583502532793074170804473788132735725517813937392388132913712125392813243115176361418781775839069787305693098699056028368150157829038781655648814752209483813484975177371577083458442750451504105413287938376521326304747162563566753530792962013980010011216556289610212843531586134059348775994379656674697547192826580107787566628468294152950953028448093856481498030642450022840438656979633116928948989957463717956831781603847862364666512276380521787447619106335765920385744093210152471321333085524047191177518243563443439487653964788409963320898129794292634833218517839281321631994042183606216094051868962927590725277813316316069072163983353474654006379922575584821916726098718557483755560608330253390135413504078077492471235307262478130387122878103134920187601421083099723398349347899598420556305142874017004445110089653001761549278781886049333851301689369705528461464250747001002878823248279137694961538215793755682925731698710930300725332587265748010038321923522894115897018105015519781858633202467932123143225382775307823928179243617649112610737072869473348732008807379105312319016124560149985431453522171054538159667657076688238110097243176905890572704279825449705919817478398971933683335697431488020128915830753611599355605244049840129777932523306192665039854079668652768814826857078530141600117843377482270980314950253836930403423740678173074925350286082291166056748836235415168208252631491656001347708709566731306973344636042577836828748414121354051549263568187031076058750744930526408374973787928781366159707100420297351705483806223356965397136468718330411862001567342393811458174443562491447121005298387121369762173867184420862192913090894132833304114384695376192918226435476043200706528704689210974373366793283167946638916108736630357726386035452414647559601743880294647310133857893905123478987460545243736959436358087448043759369105246698417867725611646285166967283618670300524761177213234696124409620053551660280912237999887792821100781215267270174472168217835377586740569369708178434304685444393960106011227380482531729193393570826790147626320549992612978217750662199367130338658693573122810929667005717177560501074081922079563188613724128746084813700405576231015036026104526314421622834192042564793015142466123809972644412363404979520133739302747916309270144126392020507283973326930401616052474630121222742374618069081720747998914202346935194052941642805985957606358199307959103514081725128138969479922500776653702078846881541848566075828897301061600642470978308616857790293863577309151002458588339985058905291443358046711130233504271620146107922207019091229229142349726641239295320750988719436308400193329224949529222734708768726153324937798215274727038149183687149110071974637891064060960716230366999669148230870455709401626147298471615603757629985080960610060978676611911217203957875728598267971205403130452758215444853473187605758627913766151366696951614637836972702303013868701482677891242205749468563881261610531237623343479919730751144469830905790100329162236138529365066690488554620859546754167225834308392168643184456195633264480298222974616316581760645595408168057911737185054949425529290663935044270024619254135467927690140820906007193187048755484827462056675098111522604258813145385997873038833993972862698059590298509771077673200071992043293874923552522803871625148812369283987051190535233491590913725848904641947729567302717840104856407040032566429229848294736228230250765897954415746554787894465525664930704207446569748887744918284264276154250146123425701237205519034004766391281592305932359379159777800629770487665885800651699864988242860251300202698860834302823099349059344452870304951188149675039514739274513443296999248249673745525243823963540887544783439754979662586113320497813369239843627430894235618741691742875165992147385703228517736266619438032087981347991313889056108402067543945686916856654861548604604608564109321782945979946928380083218282302459825317126658089241434959082665807219431707992261489736423890145802750917215560128361709117638210326796952486086960854504500127365303924740246885000725325299992478372908802353476142476751230292053930048186707600234390155320858565532204064599813455967259267351276550271258684679966721485223129763557179663016621740268547904712166257127371301392506641905098731091784140009504295563412488349561458183002434842539049858171451516966181577819844937619675724690934532257379775260817233127833773649663072468479595291238423023529461541633711322052059169850084047911853440973364917667236811961664561996435762294601261611888968971512607083897201047884750139578816582799480556905203612512022290757558616743204777519431431843730357457055094432563574586895918969364054500719024837091951475795798410301001962787630261030943159928192577067633237582163338926805972725221784518102817578292138412194597050367970957538150531545211925029086455130720694608035511563696940205867421480564099744009859843627872874494423976502015997608645266796565189526700453651193831474100163006859340695859635455194782009587662560081975145982965869779069721334186888207366412866574065790142245080091868199942880297644478147550679806969455447818037790728757741109570282159345573410756205836554572365152773901370893039032442411388515275733502369414400247568612565778201719508700260638478061576522845784026824639971433888871118264770548532948364424618200719487435744838709075370701028117880605098073278597866828589871858758798620740634523051790609731548094803246319473868367658568874200115821133718855371666768934771555266950853751360271666805510680301985719393066444760324804795834477131253915055250517149904400203123392481628497340377611898821376710756374505612064641080659260401171290681499515409215381479403916767490632914026383712633503665683369350846742664290775144277580048218132597696246967235768923568934095721810065605762339975979935954903061038615828152453071376145110819868378628306877541708967755557649708517467882658135459827500126322628742572292426858568963435703115691413123673681580672007623323572173911040642279361549341301929438668206960844702688130156146796934905981070806806832591016099839872030945234591144122096463322512627118027644333826283925313221662881543189326962979195938261124214801299480111871147008513771700938872148280807832658733584920959262192331958836904376239281852186440947778625620417986552680866562070812863780929100444163324260441915753983354283757446191227098019174133431902551264195048588707038424415757505188801648333390512451928728424606630251144886175712418517334549424293072544550830673277306723028576447112784863301099721970933668929740157022089770104226190644137692198793292365711129410224526785891764371871676280908873848665524515579543708751685628575592383459801479284540395405883524133642853010314752163910351721850710223377711623321366586571015620387648388727048526413477625708048760165225792067492865849973439290324200106813538655594424031584273254100820007249910271328267578003596341066065551901260556531581419845614825233092445571128200475805369992716213062856502786753163789667681576629438528237010735068155802999508596650010919222911092349447202616845562973847036862211147930782588008926335908130873156954839712814981846762535067786052853766638589850345896617906043436799337725698074493014938663925258650948362539670995487533174353753594537779329584248609342731117415828119023832262970632693072789733608222540486897581776509422422275458109842913231458630751545883076524312997668403257749273250105621051101416974780293635682304869198163557621472470451819517184204975967492190734768967668162972013740708595965237517473168000754677981261657797247429583352481417740606393533879408687172994956413817745490335087176045315806107470651935199344244181894974878516837444885616779219541323498390414984748747802726627225810699199002551715537076839570043481251345881157651230705591731495791761045243384572825733411072429235238191228158882791448928854345385347436457932074754834945568393086374846480714914147145426688967636393907499575135037140756058997481804510355382180923786527445786796079427289468627659464862564260330528141177438594489336227111661646621651005495870154136520293221621965574845575013269515791054264595396872941954699520903179475226274793175480195171190340373493787116263284817903093911523812909308537659892392235391706278247739969670735973857609213136836175899682316381150013378422871894536960814183677530955425554447180248519757863127129026651429366603229620660860403942961747877953228309591125190318288351598148747239937448446159396674666889751851265065273743605402770249875797889890363852378089699056670948067195270241439598118441192489897086335440154449993647199054457254255007329085507185732219584611785133346843675339494381118568433847247013976477997626395897272788550746580804321308258075751140570603208816127414581012988577090387825185759641007283757335893078206701662655230161581181146667032580664272607812867210966813097817143827371866194957442183752709142639512477162553218629822762146031181635931014815905287843574248976078447423742326359981486561779064085196769307751703408039547869621234872571376112477152103874867245873576182960175527272140893760711496578561474113924813539975699809157620826011155737292141909501414159631197155824417404440862941078522061949761835931208660434743282601612706008375411026860856442476397546335024957910896081456826807681662286334360736423364445551926593119917642205077696577676747749740595917796807154721937705510618421694447315179167793324069891418252132466016738126243177668716715606847946828803356256422347591220964432583450053170837920531728647492365035261351388775486481582469311762323659400368440372787073597688982344201143353957351687703889209014506220957815173772301859213534376468957477400032851830592272813104621175596312944679385625499995416744213373725912978158919430158069086871007227099084088855734847420772065371539240129060283405100271365168788513108061630663594679042830510183669318280995001752951041446476088665429587742393819276323552458727573338207464291720513126795846025924584493427246167985696834572143934805659504833882703751570802429341448929970126233029700333197067878198343491269351679464913212602369927764440848566599617562951324867977077268124812981788959303856797347710162344210976985735343202290584416083865170577653392188062694364150549964999976568230119598933149380008098543209237757961149403387781528638553846685669307917383284726828575178461253283760940193614625385153628784823344738609736970401686195182375467848671296966609007186820441761837412634588813820395604720797158081594738008903090824421896518903059707500118447556243792223853448157471318763134709098360186563593856074514906881823774255078392020420932557150843564319726843215171101026730132472280369735637282629267989790368706344081887664132860446066084910943793206796725206858358620870129694420107726251191562758203117904102450614729909429788758350988634981883155938107982618992983757823451782208488623035507931074008358316583407342977341214808154902512058373104850605231582744465321966524826296765214901662834514334850542045056139443116093328422052010422512198764737280950701909269573181613784394885599681921317292125577744590835517245629062480368624357925227170621830166388070560527129643127362631904954615771764772217113711349439901171970402628808890807408936641467317005481681458246418682316492851948339359709587630029222352942974064291528211383208853061501148900379476804453714627554967004776079687540473480357434874935813684561229324316729777874995607697365544222686030601711634649996554292499387546386978848071407148949213684358876380069825101160229143513996046027757685797370801940793036812501306035167734652077928265716513887472843530502745013133874936780419460534915965567300979516548644045414647221674321105781274360256126580866391311325434297140227549625157314004214825266846320484983547872635998387981710470650388981083095178533785232849641924549120816692363202973461413740587269123553467204566109186808767978659709356220272700587663782561556495816479019588679236667553375941861786141577660077236212589822713888013893647696596689933499960498732058473507047424122899429557398427228102151916129259445205704348394701991105619457649830919910537445553113520450479911601162030045081025002186279077475160309830937737676857082487672001928331251777195150158374563557288723822692718709830258692480395819905395833886902964955526179012855412659378146825946445083810828004849096457280018146401827578849475021312544467753226673144783407110436804199193267293076479532049103658868520064287409452443616457281634992542538564893441637257012964058543127953574484279509891997429252960407373045761653580099675683702414546016908388683809076512954269305958099442328495047189995952889432010928478164080742695678940840935038304085652225074385967869556375746240458981604285870318811430050097002772418472382644685546231264646219838163271416242412052949480570805301678397514960431978314598827097782041024643334955556907328161244436434182414788870572083888590150693009740073806225248743556529215564854299076962966456896112368232582095247403809532157267386157269097535414206441681061352298142046711173895089927617827976255630781868183766153154415649859854328243763350593591736397708537537793337122441764802547605544403132519037304273779117893260570854379748452194053164796628214801967990029693909483871969945172866837713292068318000175573249076983021342043621075338163575565552547277469634846513616051208299490217799329207018829064583652434618335436272703201960695343112944185122723986065418499641646241042817836012574185542059466644646821578247622725439186977568061031777285654791569230708282642147507021492325854369773947028875021214899758716659509711700601892405335581781728442911361597997098686266394000756312327775026304502790350282324607336746920465828639427695411013753842470962518210648440718959581572243067508601926435170886255609191008128616068996635463881413366711954454050286758303899303619678345969403199061331446359349646831840919170919699056430005950294579627751281277415236733491100724596282788010009617435490605174512713027329996702462103673072608100556981440317234622520914660059243194279963538853639684024394977995521483481629893878912002356923733177478148781413884715897287931979575737479134240197944970336652777513059772370101147295251378694428867236755673907982788705994673414122793379090705715124752797416890186910600227083204525330524472403062988369721700510374473929976542704285601480845126812346015513608887285138662546869033370194929367746009659863970453100227162932418625319991469746162352619046411419791933431306923842267237503720898530879306174072536796708406352799411598137954022735745455629681490276204975179165601230727136536348713055256114053107157789533173086071426012952250513423645716515008242456159414878867048192379808624333083234592857741769141458106560012045523720503249183910858948010022313465634148331860734336166578540030520885069550273763659826495874831774147943878377812700943513648075801404580820281770250731122267047608970446738376494306808347520448503591865711565953661693989020330678649829137153048237030945384317510989741594899098977400697827203349238102288477863792297157466152738409261252616479194719418002037318974320644255401422220314001961526502566631684362088267812369581095821160489945429172069894445482522610231789784737126439233939962883680872862524373630485345280831578077817328102467470036345513611148959866488622528084647636142707467828301942391212847715879710757833465214053631928651083100756193527012587413126344799731216237224301016725191284676110390662085340780941376141163272694068279196201259279797344353163406519033559407132659947237048641252294250877875434613872455821739734081125421323345757248439423129114370820770927411068092812748437010856103387846708258531423797043450934705822914612638463641706182817411906349108518242646895783314973620096159545963720930351062441966438054456473085423069653590520227037655633690449540785723522328279654279993042996185993569535515321532224579544964226440189710058786145148670155130747549772462783407643164811113218156333955669828321048694756791821236531327736073813993565301278440184850160629380865832912165430673773465485015811781368805083606568709827124992816940544243428658651866496292051234745706076031389186118895686694931709656462887990693209219059077441235012818912563604956830219980055179517994694667952055169415617152270293009065833576192899108144572930824577360065501483905791579101840070047047134247260368772669827312416831351341869754307964686333683347974829285484361382565473984909264187488682364554139465529992686969274626955059299055342098229383044184262675745302068554435743108209766356829835844129932316400624552593213332909056656720695867614495907382147713616430314605587548729337861490349412841818736651172039087291846170550930242399022068162687178492970864017958827295314703743985776087631664524056295452880540821182414911483504260206312106638621418437650796119127160800036890899217233353926258441729710812843256879454250926679013821286867690611706292432783966836085182997636226408115820982287899426574710664064134766203508667102620567812046172309650348746640356636063036678418256462525739006148166809749917820630553868207445697877764477662686885042241379490109637971578799443354714712167564179643726291165347274494987922299807215286672220500417041855009269224410130852494903256500259846099404777730693930278251439394040687812612546452169666707781956910410653423063587940369534711155934150712157516733091082425698966721594717502610933740299253676776919326285459582758463172338206558993831655172798898527057161692151318125036694589850082150325800453671629771930296669601042276811861357555840901352193586168399150504237463200876158153531214781427051383102294934335548327851432032834285626183818411868182620145410384640064746418066549789270918447648721393116874877062472624917594520853557636135139016458199288637217500568937449841592816923838993895954101250556339232300622113140473860320909044951591860550336598133351381854024799481949467121936614791480666921734696407832943196373829485308553085507907022222264473487817381164951895279753835394137639304934723889468333718202500251013394717884108535400853904817818387268272908409298502120643404663847087924815860430019975403819026414223002168724721039536995243786860906596537051117898011266260896303763317416647067724587614584080707491700670091235189633927678742201073884334013614322908956891162289036426802361363853484066914529697563632956336140533023509801363759949493338606187553615252053967286635548204200346159600633719490942400051732886409686636675496959009568220716199307810825328072779168194331996955300965595445992615753475624496087129845786412667548897241534208397971315652811263194887834972139652592783115871688006375164930549407976903337157620441267287954367596910028585975086039485905056172305514052309921246791069194893664378035470047083964499393193995858613973385370207933054197103434331962294932407310455927033243428291747660688377176644236992291028811273404032880233888780866904247439732746968237350713070570292677955276310364030798364947544157148227566498686927854111643654030354221517623722972891419364607123766493014134084620924520508742870665040091258942525386500703318495512306934149777146650268752689994067994333256807652567052652349471056711574814911022681707942952669496789140329804504543347910647550879173139995961793737754710365103841801816328787274778746130315138019398821035490005204784037717655802920205119049755317898840603082729399601009253347158715732745108221445320520254447471662103786435527952615013085433069924332776395629572363611978406386348499099223637402307862770270838779209248739606193772994427721981226140685920177519387256901055409661853393784226488553599928962995860960433339751466565172763846548890305802547075124508668648490023947191913143681838535939925977714865549975427743620881547141109309538497660631093703199305600918599392532507134699045159464560637066715175415803049366740965105878792736729381963930301825378070590033510101163641632292080733288899744209323401298567018425388926114177727166384762080187884439852228245021705240646315801862403619945072097610869485255686045354481882072071383939073546460481025958539865311547365007457720215310087546711326766688253002394240781723315615846610541920167235093327787879280075686562784287106324041552329660405949843726328285726694938593044004354883438567688346859273475102715643708872785429893920911703804751716894526138591437598317431408890068894707596525865021611372853080378018757648078220723072169839673228895954836131047998087781018983984951334394725366197585965410864287940720765006385227609588747014169928576761092905184258110273587522331228024746631003524438622550247845907506176364949127214788707482136245753464689839208411299118885798930027192845589178543136876549045932596148511021715565781392685975377273002331010155010012984677538564513900126844560359914910084363799282971173124614814960210322890485224750711207145411246550173269031820710566491429324838266553454048989323846042672174832306567626334781859127799987605492809232524782463541373016690777740917120956563057157881646339898803800489714977647781002166098468935589045163548767239666252929246805769525621097424521050148233730829526630719390137050907774692151474308341399398877178376971162287723333224004345684144856876744135370795866687814464317371097711285070693976499179705362989077229629665835512137280685691139419625783286872714790710542242824560381969623839682931718519257465498686306742594374611582641091368399709271107622803267704067603508806717045503364157127204025587981065316795594161639229229647460330454263180363789726840252849710736794794694546352749469675661213145132476067566258923762464735206689019915260453827670881701744286224353107168430717658018138905059687415722953756317863905561651081423641118344324404368079298269424449581569726888470302558893844711598334470139179273035131580402722144480870322218077177834921459540311439275029687653377721660925214885715710098449213176992245100892991148412192675836073536161577690357877214929123149672708598049139268733619121559151565450843169697530436115812777791323406097020976260477729556830235156457797158986784960133548768904985358211836537417407294477345598850488331590751764913676226936694628329403651985705083589742319556596188174126620499009659052748812473398899547813091256675603734376732236091970329464578766645611042596695811628051479570580217417367623562266143749502469719086707005868106725630404475520893061299704081361728683381182861244865245295972246552999639542799803256247605160528498277522196704097321537251379431864039915696486954701133088839680688834357548760380364141554710442312384011338674087240712576003706378458782704025948461546751661917951607444587564945886531470036235181596180617195417587072361438196380256716923919184157684209397142572014319161030715927065890333490543381144035852360608135113107827652899334978350069287025406425726217222158749026320224362788772971017207605928155274911658414330127657916817033565319035488063452315251407871906838112833220527244248939793744990107455858899438864064628725927701538538313813709337858092778777959620436390229406880747244523928257493674716895403243051811382580264798231198527210410148182696401741431014197787751618223019859548182999918241286125474279452516280022904661255316312007917778727828777659742136863366594388616538906055003025315868295074376692856787498298202866134373539292677696273843734959381633476389156528496392547596085193356433030770059125882938092212957772427798471549160413503248942317555544237373897781141239706394755502159822460948354915796309260676003271578923943835953543460044505679318837268706453016649591690886684274043837291491606517402485887907540452649747153616875457836354236414097386235122756501018611471559849555875671451119358811566669740433309792600534825426514147090312657711514736929542678160098784379037086766294705170786939608340959836069451075761016966713575016438650932772120252435195373044369190402016074710785675255128918941357549740656655624482569967062922334250134886066601781462626124727178828879306360114563165720277969025031673409404662957371070469557433138501512467840167392216074477767275560787437424513994224971096349954124165473117836204465628524147783330629477093592251959449194518001487293453119820672905093964237019261617742662848215048930539513710596992222435112311577312238662726801827241801069772392654620070399516846979802811798796619208769690409154847684605770466497435213217706831339812995400370829095475536246737604339546714647189295581944095068581905509834113969982899643796121639274173594024888572324685778064765659442198515035563457604802072206053530461470648362202861398309229139231067997943346597213516307399347064214101120485782566472790947440297416222638366919654192021734059653994113111365979138491320202430387696403431847485079636899816402937642848072061207252062067644029092538925623654967485808951240552278831889814554903149194495690351742306112300502753271658979706917334946227190061804729659418215287261436618244014256774751644349672614534934229395874263011064083060595800835700891037470931955576458007381573334114811872001904045410834752096379781024646229546773600315273002722200166254072780428614341154787235987295610923692625093444159858095337212963812351435297387324237634644111981176051320691704507031234504678119117396675352262975835551613542002677112315730632178426918659264206172877609390603718423460832253498376540486730994119256834850041383879671032822419932563377005223891813688183269342734570232899963003378417834274325764638509718214323786106957001553776216268524696319766272032090570991236609509645973878749905481008982336220563368962858543183399636965055590931397408982751043166394833403008057518890352975175900524524049884265776154928095942543366182743507791828658646336761297443614765846428737914190816457747442329328332114827314939970832256285791782717125456101171224127323091524376912665168837457134567272422326089334728324274081921468398176054881577279605498711870669363399386482935595767643108801632009322664915953570883076522247020109620670462922744053460855994768075973188698707109983151520664126769052581686687962681910739730238600584165656114187859084682090548880663956289370233916793261597336127875406956987595387387789522474221712835627011309627220957058790385996211377580148299800516360107078951650617515517478473946167907398967817388232062779176730016659119142539369301347136959322923135086144510398455042274005959354216255781829210801039482336050308167978948996017767156238576578718062753101054859771186506767979979015597809304846207910360634914158592261940153013251069117776357329467130145186311377790791492853139743786234377923593122304143968732559177449048244719580273633368470100656822119830199847781490339848442781709540249350220507879533540229750987768685115135835827428497590203198406859906898931425847459464760561668899983463225031828766290300511218768347629944975295581368583815384264172039941887827371625012982277173871284703684154118287293185960610279131937529380073248211598830840680543000650792261890641844388750107005395397942729537476712058766443469310612352385808911793859261071482877695402248922592817863387224148888638158932719322770241831542107975060771780039973278713101436312010850117237567052863106301651328920608177566202487862647966623456129628081611287935306559790206644406084659188647006221956495700495697298306596321671003883631887737850317644980658539835622784292266830554406993006027384065476147153628174438110991621771466627313993681063522753638569241924060599240157512132104137470239072312621210547734274263018321937233998554700018973659705966040519529828744385515215341283770845070028213968693790060067320864776018864658441693161483970114315709487822583817473684120026793471139956671430823594123338440624470840858166316376090175060255820774844394931999475643827866950157434460052356806006022098107030559407776967581160516509167632915346194354049256604700280996021305899099986610081551677519333791927618132156420689008627588450121779152738977189564107097600127187003672871908292413452317792834686182390028826404914291657134786944661979517503733851966522728987867349169356054333567753458135673682124900485041715556127256425635428956031045533988021162125212816547800435360358861098000286175651101045579553242147144859137470060919723500258439419488050942047127155168732826538475383055782048397941286767290584269278303577210758568546324536530268221085591777106734492941124798686712171240889975544468183366690153385655085616649182972795898245435043656461992409146660949570152072435255611571414987622458753422011510725232583189666512001711454822378511575843704540603897754651552843710338055125758180637656468086286438284660542618687920831228015343974081144685373115383645881264673544460963141372572887896433622620087891199003943235539592666026385430573140098881336590807639300666085418525809769477984020193216745728642744213430086471870961982732781942752451064516559101665121714470921709941947745052962571791704010869503503338555827506335594029733968357160552400685606158037030666048199162095814155373494558342689515299827279512620992509749853535047781429806576516004566126791474116311652351767714223430283099898125501218630965541732098993466504726400276891834404366130169821838925416721999455837439324749479324288854065734807694022730573940965232379069171510177870924418293428807533537184788338317768594096388237323622822545803767834244618671745789362805262883541389757693936488796278996460226252709917554844582022557864126781918450835026626465885576543047803821415653495440925090517954481089157275441838930042683998348409386354445739592530961825669241944623767718195066637154505011442307057441274698071839729671034867261865203747978610963596566896169816099492656667779589210317820972084676649464142587457651972021439528868001246055764140909811431063581846259259591302924484213147219120082913718000622851336041162324732817600746041029645347845061000976753722565613785611712318942605934597255527336792850666304239884006845085591351583218149501844414386493497422175731016910364693301136515616344519734077997471938355100148755603911569963381210483776718550952589426121396498077113897797472630261324052085223036286193616054823792187326873242343135209474609362495328694689860357436890934129645919233283626044839276649312686774442344877119685882686096048085821663912379973189665252527614796977242700445674635327922608953333695140455128471406517882829044942831495763780268100817860708732280905092165828109558867282027292650351694765061233768801002721602141379225024178830691182005430081635110223743710628507864947968956234794973008014114335604237009541559916694285239883359128043057234864383439646253922096680203169201315231750594320865165804935896896713537174837407962555430546456203687046734974033162303062443514621195655042951106599866224308684640304457171557442090199368755809762748542200472348017753390469966853231116142985890964892046676048779557820425673390958723137008110231665636196542160963273845026694520537633578127123122486985529273272619196891885225559999612685948059160648858972947124343850320660479987718006284160200858308684604155700189198661910665211900388955861754825938420804914841012848669291101359229387088962258891490778806562490338195807855568349197827964424582617235068720182876881683297837219850892053967872127373526051045663592124721301464321668259446018566512922795987096331865701892756399264251229003548076885383346187121487125017439430001317340880812915340182152886530414563259591031048953620026947312850424184462330011486326128314689437352428189609610180070475300082797771088166962728723735132878333339811571739778140851659650555919064582173871406353686011328439670222338366620216038554551810520481273758759810324983583306991274463603397509171934795528812044106503540553312220484964245474640292601054484468249320539257065905367578961944706629056787907583821022441925936734122463566188989820039931883998546469581529086724548192170866459867396585999520608862720205909235248438764113805136441919118281512452459020574746077678597320310570879486744779418193246225004895668821114885512834362847068225390210748936081117222298286941450436078307412879807118077624996151608943954490768269280973909618569936116090585614667537318296988031046370097958789912601259199956844702899220598495386617691569771082149978174252524877469741575997015970465644426197677761163127169321093939836742983497407810277964992365635126814092387885058655289093764121729406359032450404974709366341370282092361145567222346383404619736756829555835069998473051234892149542538361140875398956101626939602154468843522991879048245854284658768047141500967594989791504462994300483009082878150150565284547570346775942468742480859838248927609301889477499618736171422291526294514127827922923106903999303008188398348637215046469530918828455376454048909925873398711862150425363917475092429515467284390932938315413351832662347552440654369787418442160264527112816215777780529765344809804138153688845983144730587068769419715096434361004358868901099868016453768770799146914856695270457008324025604920189817581221986411173695598980295739814340822652801705248532078793767235158806746513901313662395839801561680311735835485602001602991997751289828519162388084633410002293861528779408274083602434065807465687654811686943822177619787743107428757823874419085553050000311740667189042917548472757699664840412235084946542704347993586062098540917588176164952400800546479400348538689689197900696797131840983402395795402833288317040315177958818941181109732470492117065470530939363045449780374334536358953966700367282141327373414034177009555055965920171269716716118418143970509734409149476114020174991899227837587187000222998641022191469860422576092469920966374639245735523275172513519602801476059077633989037012065072328249558803203795670031979309317690971163671455302219984868511133000339027757390043105271040809869035491586747296460113869757503290517931773806830128530025588909534729610887251549694400781323782841302696883062392710282961137718627281290485902695411975295820826284820129929171218022251353621735847976149902689760438187834249593368696711382531451616871502512662030696534620761444515373159905261792548654434151719155620122581390185028794299222621161337295653846008063936155312124566996016858892889187880026503219822206163146663830583053215970513195030841656720987512144030729037971566847259134529297545043242066333626643242100935884428871424613312373499240383774355061844091374346569837865395284117061793107726905076507390023444741869257366992966479999172585143320011411567667272427968820400017126715263093109837852862641142908802840675121603581342012218392954156651451335731830448976050937641097056965579612937885459972702213008975065976070768663452251541284125035371910575517972473405619889025927532060746657420750392868861117005337314486879360567685927735427502365851745283050309506216915136559859344330251547856605785860566432758070618219875883247355398459057518475074627185541374172507391931856219261591850896202663450580770587104841015399138010081715587231651118984609533782206909343682446556663342371889881929827314919111652944400554985404435534045086233308715399024525528798605177873656296107270924800533064753974587724653053320311303739608338237284586456716896593862480100300817494813100564813760599441773786064970789306723181717317754577833621025788159394254361612883823868111330270045879479385142292604630132522394917429645760399640328613550548339373143364012668675372625656491802374058943646112367565311282710312287960750176872243392722006522490410425389922943543127704344171613046710630798511673952466487777305245997567628664669076265245854645323889701078376650105361588372721254033325848587358287151083195563921791859436033296595799823191077532785514468555369673896005374431020944622839576996052874217347384316189248391923432955993470341673792814017580101149264890479238995135767903880204925090128701979319552282113882859952744454072696850537920639617630233280341621396510502078422466562102528313788958858350674836411691753799547641384327763686379162176926251066894930937311239739898785592745702781866861327866784146146416634200915869342860869426117290793210506878768998539197034025723284331679163670586218500824003772702924183841960234042953905229241697983180662865211618172255455674766974866660883041824506892787703311723156160831036843227928256158771414070432789550699362282422067588857870794718864664363931663124118684619912104339337121738925907262118921296820660094555177169123379235217055603530257723867033652864030794874084325647901869689933391406413387084907217128981008597988480175752626710782940263674823917518961336646945671622664260586449691103987950780362825453765825498766519722147066026156466675801864178131045328143052184388583961300742922951404995239847332843393065780240897245852242338083283330364582082161488151609013402465498434686575118644301818346663831706119956882806481578628042207370062414684193437210562598290710556414336224525179561583267132435023569679037221354879747912685182097496694732556325770334710442300075824575459988765222573848220984528678880311230796696680094855059757019008389557888126083498546757870095491264778929119956624847101401153514623914300586997337800596105367739668449382373245613699553786290928617374980367155144655983679180690013076691113788942431379290069682920452875996163236514317342722506284137939567030973902431791872378661351463450332915418033028273475279004850843580897618644317469556235958262137243737426550063366293768564476728475780480891182156178729360875413714620552952000107351792855052300380503815079969743492090257696526654329204843840650692214673066689954284737885127854658619813382163458081448982611935646987650103767783593979844778195289704052908337749903540339150964202471162668652704800426407801191342084896459075072139364951831412065783930879662439677694527401192158516358078084497391806753118935644513139756163787011511299027668893747147523560257352601380240687164600986538396812992699947955111201636701023911385312758612194173580729911975238696833432175059876557970316778524012864786908660833829815426332012084449116309150375758237489407027928405914976119333222761164683012222762517994906163015825902916061302265225665400253861872553449084073007673087652059204260361940172448047736417091199067630299451705441337570341394998758901320373274229759004089928738506512430803970508283333720991054574215199028430403216908092152454862477302994105246488098625437154976514309514285959825041524140346951915149550854756357851322966495015624126559075628077437682522162884555711168892292646412741025319397248794407239783424945948429519713735635800348064763678473436387029697300316408549992245094019384653418830638865781285812891682682221322670070801244478002244826199170466505860594927458856733447020261025426685374442865797542235397158761624160966316381069255711880514681432737645764756099144103094308684780407353286549783757666306581367836218033480941324880567402504528363211947288932931186689091418840930770910125671563523728201928636191209134567573235891097943342484198906399871937164761395273564608139567944214410593563827313188716743037712747140826379591537669306258791790568196791784422836167025793914981500352089701305815719013443608607487937015243926882436402432091757905203968810167288355439017983179070335102744876113377926593277531944211655093052912822022211252776316634200467648104161424037602496845202731329668749572243300913687505606388842981237653520007164731171090202076923975241387830900602276682717767242999449780944908173922173109623645553511265430364987686871568349281788913663880053398698208421029403473029926645412825566777551146896621278467091185436597189258874428107822838520088428294110974070600933489118626526379525100573421909087701263384722849745838839376760259375793070600964338301277079029160605117311475413371788806891953718505193601019003159535301621033319800125448625001701763043189078444153924237984480116261121503531345821371307401061545310475756559452397127143170949798162404903442454773892813627644795347239300611209442032975188182263997724326064825507603415997007619936608734733183227895008091249632188194586090581195478107196486251656144161965616649095674451692942608480604679531841711275936331773751230978224235023135066480718710844960090405875537612517945103789520833161962083303928523903845179894693538571825113842322039853056469048279670395697793453053661392200564877081048589243648148672089207602954595976838416102610404532813507986819939033700194338589566907827932859106829431161591930276978169034922774309743455454259015863556933698264132019382822286355238586702163474801508386060638839858458391813210449204287144091564954253205198006311775785803790197029987663134426015874412083961763186516639605524752524738585524704138020352560930808572432791542329971575884820802645179664738564535224632067041963384451468839969878404717048600986514574043168327999307512077647036815562044702285352634100384517952709282511557574645516411590714887119818863483098726672597500752483778436330033972152424477937258082102869181089744348183573392592503286230951206178679478319919713928623441946715699506750403023431451143545769254462380350609614971188302395057178791916947919411759308310194246836573480971786176461419101664549544067194633114047906124713774585369585545299176985033801417498834492052481542232994717671177827874179222024008747751354844424086189043070869589116360494169825208935633089430380048494694347564387196864352080400597498968933160293812726056045344661478448632462713812512205250794202361598664942333220857241128571491649204758699429775792117387616323002553677373505012319335437625106129391471683299182006547035421946467636598402418232556258151782691919729037382949084331243153137084419167507842131898299558833814496559287602231209765627552939255389527200164258282342475405957568754761060885358045501307634950889837916220757777290591269022083320303732351328461597810144165358266607262464863290791000497473865416513385285938584584430222899946558283110322264514361549404029217957160865413327343965813715798203740013457444565869337845068432319365972364542061016780996611259662442427368317914971404229592741142797773470701678766007754310102518323076667200636220801454790178659564386942757942444310806620354247525665391285182959421681840068944858361509842171431760606883027680927613618141238735173204821563949851911721051612470431693753007787937560536305026212977648227445481941206273061681796755717010879770941282432645234139037428924148860245195153553562711559709164009447956275756416440588199512059936320738315175464848207016584831638897580278737639657575047723157171840355733903544566320902572725382663099402421031775664193180861263278760616792280377151426320470764220554413071048939951254560187195980259302896116972809610524849613559959812576407087892102181689288728849666421879246129615119639860894061655743990203445921767074191245372389841230142153548002781088457438890431429595811457993369944405285119882321733106083977772288947842307273582919037116404820894725767459890885578798122486671241604886032361628575109920206952839255045115423114364191951627069498739038747021162086814138649232617544490130631209282863069569508349882338857363235419094602827398537008324621313567086964275381305744733407649154320366010406108509788672343642570724258064308849724552716719378994612599228291979395879540113298814201519444368209873689836451601591951875699624940073614677131231489527874596432138210125845622557061712028274113946610153436687668645789369634733740749740054643494252146734470860947556681376708452974435761479934566684816192115084402791507932613749055987969759101443128263560921287014969779792897554138569804837540881287012209273331971909098201135661780956351310241388842677372798907412046043630490547626275824719453046242656422805631967941103170079195281196321158471361071553267301703468789366425464319015342447982365640332381988873205358272428802989257344021653123947373641776322629117734693359284753290246624281964656993771883529395291622601518645757850397037183342444726760335459665048037637747189614832303738674162717626082976560589885772892114480895411823912203278083418534239685615536817925177014049085108464778139436591979092343079340704006383945129177459114889436442623412318246549224752829568772158431176823666921366660845704284223047279084294294159768579441744503064318465827121883834493838637940770461368799187711648111420591516981308091127712531775363532712421270464170677397270078164479761320566971201653892694552205862708396443910431778879654567386675362772830518909642110583593643511976465224535677574737299808415518090196908526018241034455193300270220058048028707084815706635249822023519093321178782047133282711524223934447731359237716943529771837161354666573347111462585194836102350560268178154865218528978917593602296428337736511382496854703321713578712668966399391061198900378711753866540244252602099170364629973481161127331070621403877512900861981026324248848279668455985228877169540613241829919497986062745780605107397867678545274634668220230122319326910456703361546095304926347060504594107196299533993507594935418549063456250902200584812903123824922760981410530288780837201122619898060032659049642300708455374434338955628778267413173777470062585012880327939383579374190553528496710609318368155400465366723791060324480233251251555397118494788389308072758873182804128474807319256588405400935688912612904115258781913479947052114848433185403873307156007248656532716558622380399736990448813316448891342586644687223644802926570948578957622791597959873781365242967422629201049322271217287913130165131233879516751834325437103604417614199161930230805405189545515641902542658404082087044562115496349890019241728594475678617049477176195381035226585382403137056840443649904152913675889535554229794287993178172416917934222481296884911525125486842922010523438284699611476478477986561016264882269239626736000174815555924747776625798154963251652774989071656863275019256893627415584148847261127880351259062327720440965033116804339708895479787999406705040099363014317250562760286009248885930150259231653493480116727753792620366476167434094898255741467789343208441192089521936425776005157183256363978994055060272795904707747495273123037296896514129885355883662271216186154670505651618547915333235802227890481176269883931528577326368591469147879514409722979353795559731850759044079227978878388976980398488558106350887593400496951781319621230932022735218184101748604544640769114745971441535916756452177840409085946077376902510722015088440140499006743842568785420069403504750963454657973574844824098892144183349279368636550132733964514231220697614449458672274418667560565407568932315577899906043752254060823514197830245585793926493189344713665982521305172882250131220720037464295362216143553316788476931874326477703546046593933171818688724824202864203062927149198111131746729343339773819845769251648380021119553148162721504806233392817143939079498000974739893177021012045699605794396433966590250418657760357397519333089022087279861177816006026710138316204802981771820477258397613430896039483009909968266666404705986320642227198728736844807101967761857348934008518210767191750368522980750164482323088541523614474988700392031405851599816572406226566974390737904229527366111073265881730718147099256112226487693874743279548196369524262759179331337324869433298155446771911930135848149904047604799320499273292436982569793620416611914243275860180752860324769295509522467567925464684838283234778766780914746165092088404894668707975323602718631109229700821851528032176294921048200199472652031046116678159934045353220806822262349527997187479580585241278447499376593093346458327095655103830303613102159131945122539673189688100966958379221755351582235431498224153925996432071089719489462976146332707708718384471993874709382197945888587409821839783571676866031125792918276039149467056131203317451240572774615422031910029577874433553467794598931203027648455577785762645634169754141282734400047294074757228437305857959335543714468933370948427331204684712414317791656828587020461554533239334543866446049991339094680296324708440182178141988033810876859423048529132806613283863144039769701387466497460866991556078995940329478113841363498289831955626397116391443123321268373256926887724095893293130847433334387908553312454286152710300610625991791797583208866642177456624952772787451371795928139319910827913702755641847841957269872436841140740594369091773417670334501653800548599583166754627171033773044709775415819510205186773692806192409408674538117659350612800019048399124411629020841533810655398051521077335503705484831527475544416726746432069350469915071402330511915185278664805184982839336060709396699503549948394535108544459908362054979711683407945062160034070505917078755230940951375348835767379701049929696007934576737148592084476581576196237668078843443358537851221919487317037969573295560110963344770250802631150736908985181505928382522512421387529006120246881533518648987175722252460794308459655242550169368514420330057349634457385833216303402027451518529976944701378277221121107712330813725788632060701249147431118354180216696364873157000083707139818955499651432873272910876930753634557342351778390163842448108432334279249811886770523337101285298750803360219315024312246554246918804178315949791846637210027747925712664960187238392746413109837637222159378439615753987818332836599930763381666310102712190217565003214766308086519540608004736482979692730254504916362043641347009984342212985768738349491911628059220876736280496238728153372047497588603258103100020735898228692907268501639827250057052756966105766645652866401605800438962247601106201587292582634485900476063726939830369789805383688191853007582159555180791137843622144692327011468776219059042413704496202154783145892027951119894400725258534979313878922484482885524548478112952089752930193154661885657489904481300725760279582338586998425287859984918318684755073903452476549144188978887931320688578613549289741227143148639276968033703093407672142215079792088067204603972889558543645986762381196385582425580844159219046597432790911959529596005925549765349862485533758864576031654581503293539683767361458607813146697705830718147135808429659392645186080082335744166188110760726134385468826691393127410732032209609811233830000765472321593087042021014804914467792786346331888869770123430829460191082935396337067495353651494289725087685318426421562398618908858864864145297754634823992699821143431210324631950962639451362295693833290926347666945407247643461034278133683097185281758354747553238030865454336927931586104220367930483669059159810137453278055686329297533387777034061233834656401895899015415058490590203737905151542519426140949286578732985502798751096642127172991639645420831327367222106161324655992041029622141437950444051065671960480641973424912897033098576287410292828096215305482052911561872790469311387238898355240316238972503660502847215507543783750756477521076845912922659976254459598725044454837123768118128581288415526182325358173095372812981619420471556531097212883581481944223751821615254879162763072634792597052510260847229989855235030196662607219369406749852749936062123017106925692891457290926358476794746102503261792399989636037862422627188051493612729141119716024732189444425730780771263765312968601240761427076850796041533746678529275935070261002425042801179023729451223655417151842977630243570447897119180182249162865380991534905374481544695416116876661076871964280190355090004491732901690468331932539710797615822213080487031194586555748381332936677748365018571852177133090553794618021695042698370147179796778567689029604071932116654161335235761518701761728356996625714701422101345858209252792192606268693622117452280799494945332960471443219575897661083920215426487546863322734632376162550825006099225415292934026845823119817561368188848140369281321029689767975325316283982480347715505563931171339254123995715206309616943375181693802573269808765951660600889745217783277784754526895891568671013438999207463837982336041878222214676789409652151604773432483095521253087827346330919531162473305004730117416868258977920643951271767356425651877546896811718159059161196925492841021660408829236439600775165518418171862577418902193743408615237561030696810192601291975494898101008874186545531605454416773814497116194197420506671188238337436671364644161074644534783742974396164789933119719679169895712981742155201738800199085780158334962257452792829084683021262704655866695273830273982399187023140792154474755422399922647611976197809775537327966319437267112955124381268309305068968977658064666094819723369505555191329014265558434827363940796922557963302593163029374193279644033392909901341129938427360101436319939277936627971724405939803661891681799082416114175875747075009871153954325826502714552335415175262843682361906571365721320385608703232072867478336378571989662517196293153637458027008092893800116955324303036310384751219345030907552694779511645937423748132487617638298509792349416707457755305611451315012213477584510847405881382957077987505319825166713114501968519957156385971917148708564145572367839183295492436863389437948162367213410655727017229700571463358654086786288177167995499437204159485784820671456744998596031426641753967415255543492470478596639744218253510727443042447236225193150231802541607664497749038286236247027895159736695357938261646164508871519863363463116275374563675263793734241862480548125827213623977461024743449936561629101476960821679449406143664545334381643851537542399090119963341639157270381456946373610684460644710955960286311857769463873615140904907891948652238200028816360432621440322192422563682233394914145699512856701272234129235502013778164881034714290954656884754827017049970017008088549251022461933931448423655073170388343919883295156146821873219837347155967533599331957266047472972693061560283071936262091597694669219952013863303855977361781913825503980603897717760311690263466202739028733559453370149055229575928439091104914079660830770985918381814162197367414634600458257422259998596616847106529754574205112919229537276835329468532681321221994397741956136467180083475200493669592556577244500461737242394603426111479285673311160711977117983659608365666960924989117910170921380205205198834059574115545542506733135343940117857618318605715295317083345998226094529009161041878998182694650853245185548309848734504555012350086249064147219941953731494702957184192515345822998334793314308672645601603254190456309323015235975619335583735727229152215404515161081406623123486141945397520906777305545919202993328456453922377642194530129948586348199097757373975644007538888380438875189586001147455225129500173782010744071163995180616919296091204996132074519282225145961011541847899016842790155684553587594989479488973695878024482250779856819034475624551725591942754916951188818227738908232815100162615609134706585358324175024554927621399687173307022893131886451971012070085117421131892737432578605752178541692156303283347632686022065030980269795787084420009221042842854411804099881465243585876100224415376650937277880375138163391670614878290400700452411661768576795074738086709194846545874302736758475908760027124040988770699959703826151993896162337188899058492829944279846512221715737741258750543288314543995206226405889161439502867685735289234958533663209319029914100969509119353781080159819767976694765711859371756920989238847941948508378941367367260786426465901397901528946356376407145431036937850469600615861711831155490169158709132126421701011368209468126220080059181322802050040830488288147415061045598714635043787921087567732278712803478087769073905777667255357297377641160615815586808118820195953432087001921722470859746784185060559292069698102638551672712940882740238932537213050852539128634868502477151561554640777355563134673688028024181872476656299970046989878752583236800816517371946340100855012081383797795537521526429902639509162267382688169204054859346260862480543242681244419756103605914594061120451271519995951249356268550282909665142994721745134561016870722019215798738496801474028582246698770640429323780972956945388628747238368639385561540775714507679792441877387833456721502601978304979905808907378665178570183698545665708872714344621390142466121283439537011039923705654619161507664575135999762494193830860345832849878286240403977079224160817013936858665194024430132642797850559560111963475834255376824861414558193850301686459326992387798071618834366197842700388444656439885525711729263852362658972092138988367944017449295843833297527087941148796093386449111813641411011501420865881773158116082322692915404208015320738526913881443606498499673935974576473743434554093329444360725009231419704363409567904450194217053335736559310970747003355970234648933358478699724740431966970121626544569826926443658458448313533439815005576250657441604739800751527456138920284129645111124066210279120810430299889580477816288968477814068639891219011921880694985629892303688946317192844274021074776664883752198701931844023803838398753096648430301141928204040414570406036236298136376423800074369919911700130173459590101291066362008224365511370283696616770048812794885010204187565151023932762955286571476800056938113954602403847057292608830682634780118949786058533138687183943911335654015253276797300940205798891069123874574328785638706405502256185908479751774527143539566410910746270972075739069624565543883175571399573478038968283840672801080951375606779136991474850345145890923375118807627357161684149294928273548205815156970330596010097792264250622238387662553011110527864250562991226697879960857074887945358353491388826195750280833976768731670058759210072331076887974131509181516503659863472618466026294827182028222574653058078964196579364061640239221286580768889725732618680558195176140057307580576957811673588402492621244953426994728050640258191263284926743988318663839579212802036472113639376186803403920590124791859969457718190413177365219142879703610029201920688073698722058531560187426111415419814885273630638937644764344772397296726161452048206628091437937270021383302125914543969195849960392902394932354724734750890013549877912772468408291968625239744406438870894540105328201686440301485695394041136026585116659947819316142592264535288145358247867313799328995675428636727485004124971190753223646905407974418750590676227126425826130059677279599790161307872297511075406846106195028156095305262178308866255875185271083310599062739327322215725708979989104329951881994500413078632693621433069307894994127983395439677377170715528886093236689186705752854750209069508748161869026563361322370200345477814558702609942053788496671192015872848744275284376155475646513843640304417449730639700214582059267716163254340145168326979428720495217459248576680429612138044260017715963301273459512020374839442470754691126717371667996895315210461419005786464419743086549428508162605584935736838842797984535083184822434687166580896778684922234315060946960112233696480463548002289604445445650712886728139692269714754663702917637551241790380728073936186603559574982890263254932437284835397989870836896268764002345857816315039546854799339151620069111425254591276510534651276999432053483268966443201405650664965464800050612457769878522818620128959485282553221201174134789778840886195923070942719724087090499110201162619742731513527292456204037344128593619195622488822309407956239832681485670316952447763836468238180124250317530834130947202086196768086520116908123658923297517097741935790971472842949896127343168560092620643814663286969571380881532522642661429856611098465160941674396452079928630992616507346286085197717129825138834292856090443376826417472777280903212407374375261164898112077167602106095719563405323550367044425769831378191703628388999528331276792458091084717104740268273809224253959723548652968598148768026911145238472741209974026519798091631088973241252586178360681566412157685327663067069886876943114261442223443772909215647079368312748976428920975803093515340144696511062737477626868338488029032339165290695194677190781823967319440918252123316541675146297443218395529764796165068537400345083192190915221615616534608023663335040325352774337707467418212278466582637329665939810000656785690081856530439691269357407094513654420570515496345111205324984574588876852198431885591858266932319556322575956877213944466749648742029681939101156864465182513631955394711968107205479822652622406380475832191492027992134893280086979210496186492157139165164584064131649808138877531150347419512256833917806823189500983485841089050476090809948505026959438838508864559642960361152901411637157254850661728229519647800673960670711579220197903692243710714484777627467152634079249405948197331561419673509016971342182477978396856775116370302469921213162837149927487813438554787350432446232602073206694386647666214927474076366791731976025126901410638245699514009473039475497264091762750710441484882722573796667322338796053523111050508417686339167100079348820466937894416769225647553393035520402296347497390666456817816377127092870155722307302114589810648651126458889279302961735654853579669642122980744572054455332399070989988698651026486322223912042306033263430022773586029732453447220420241329053244101669621771267758822208020057531918811537193364116145159314220022404065128206206791540456860513527454633015213030367936297504445867545135319539974636843200318611299139376394065441580473924800437946657849118971821920889248843754430375412754559873595901828094214815926154508548234255527683270701423963797765514311785801838264831320662565984318810297745103162920768128248519075737906453632674329776860716831973576713877356310092015209403806734134652761459602347735804685289299760395680711293331542135136870179792665692334281207802192694879099625842505886870632016777981815302214002391549805408458784042854688126812666883688098047167398859540093548084027801134296181204650942746280477376768464591095996590232011671441521559298030566708648775467362626054435586399960698281731625139714541590543603057078798399193743408022918872387010387757187172419477243741044191492838021280675693220366271681072933922423304370866665791545045781822076662900751560113553079187351130530014662137488762477257122794547412436006365420950300408727794238510338487063610456571190275450530276072568393727925766959343854970628648646853680807891720160541962227893331568147610412423674429510496676670277318143447918452953451481344369180010309708121842029150580980301254123190279636009897145821100164592732045495131163157583712511757379215891807281647300884893895908506754285673826303906941403675050502696503521139356772585022941469993896305041240289495389468346240501036862468707754015690037431813308072002127161932178236514825093052267626447866802481953386092125778708841971302783891703820535151731239757204220858671373272716351953294442289324834717252910345680289686340164498466716447298072612495428955123337347300508222674046163116111634767779743752424017678317559274076611529744144501134314127867251406817845544476655752326530428866487431920420665287451551717568139686856458134776102996699048668376020836983442518246581095571620374940855931153342634997188061616487230962060734284899150378138062797776338109253383599998586622657636594252039692068420902030725540159811710940285109478169406091425803099866610471491404900927115022907878574564393840119717538539622089756318925686161960456114410882776575941768108654027079791384612382766300473968380639114011386467292770940360770710419707325469561335262281868836132515281167944249421222854224801449779284650823615160187964669447878028001996087638034410181752519121523056151134142700798202838702878311512888028043464576318613389915410928550695232017704621413835357473432162902452368152149454178411045695863163599351042903971874874291603418447512967475637951597591200949369455049624424905450834998609689227468376793101240256636876651417584594758075770617185579053614244618886994359251002726429354224892226766754527789845152221568863727498253715767235782393883691760126820386332582385206487229866489354103266148348612804660770213169015983926808938198707200025132445518255274687427609107786019402802515365313632304729059065017669308776953101722736395330970914919753127046324555323291041790880308547684579064303813715005780836335617504127478644322710204198413455399279062817956893413357649030085571465446517253015824783837322233526659607038097541093716030243386867148466620433994423638097085102311922846485235232703442614482311628820362408588506109411004425931944104820402066099014390506967652989340287035446536590482251407550313230298562113714667553750929653587801972894429278615381498655100321699636626792798405649377666953576446696542644259157603777052014362976122676528127074779227345686603655282189896721568221919192177945070447160433459516686023055284325624184127753043759722610847278455045852006393868009942907399918174600985995011896632826770726863338367370933376674673104370570038829556422800351932500245397906143424448348752825648155003508416992702295035392660144128248299134644212652442956217127717426087023374218715569247462718692188106771476200687931028549722968423602619981462436142204967154939247763402781868247147039746233603618157748588605627817470341219475806554871581036802915078320216172633055029080059635293617488710200689024058181567134150331254069593939445528641338139304167684349343178585714091630262172134563142265555214612729629835562802114729209434282933853402574141602724065931140317507869186607226566138974094782715953115727827730601835550365006729149979326830726351829333080007673522266633886905163582676793214414396669917921670488768047577930528317542508208545249389434490890236948620685016797052552891605074435124167788007308284695222605317084530666487180018831270111766302182308320126976229913653681894575079702059448405392630095432410123796748851536660551082710073822259324789113916123804234067741167620804519675499263565763732137212928950685867058182490913314495487477671274704092705686768980409185277602452308569064981089512880339580919885075367612806646610821034592527235714846085167181479893046341054150052890906991454145831522408109746129241376941460838007019437151446717193885475550476181903708941354241580159070962972841375440393620867938647127971118613452803618406611775354888396593714047977016663020600191866732130843952354014556177016007001201365552655402167284399181796821292063904430789450935351386461504017411117901602078469196018379510352170279109158128013877667552458154136491670750669722967313952727652126942786434624329090593394193624820319408710001104363194303697159445530639529686191596182815980282023364919297907724858421970178674632932856693088010707227921781283468645453681320651057039607989738242254468505209895826404720417663999898066585017161935714577795364335284913145840238045253267350218474820636971443080341682223264169343649894452754459001745983037999119337243994227875689733909035268829028066151433851751725487738268382819349136030478050435146801274821297508364926681469245013744511024702695676182294112835583019725830416604931946892590589864899839546594033568958936146865368050062841347392136895670792454471397262097292284268551756848751700066506188667425388134863863503608470055025602828571564865369784267686318404626742923786427173772043252726640018791271409057236451598431129791764239050177545996284801488674584148093736063375380874472433843145319830664445505620245962933093793701026378310396863683065325166642823872399925374953443495453726066357667481361697625311136360955276234506136330448821750475097400636823732825551614633751108799108836681404257969637195682370201215574973775987533212538142387504794725758653539607058857790246432047850387628771391882905510921856279016025404217285865202945489658782738314892313278984720131030437255143963340206058891037650556346321660731314937458976861517989532091102363067611175477602162458227978271240983820768015134193354535113091427172235104321562851796964876595888137603196427641103811372645132747575283783589672784390827264408018533927177953213811235848448290988141416501414969677239481741554123336671024436422963737079869538571041033142714093846106045386550484476342023110641742309485430768021658724280625842178513097066811949418550461399831586179129920856305382288422844432069139511466150573861138993915012721336232354584043987361106095005104892584001862256776363312569112209161662900525375530207742060452942791797483462817393353719460623849865877317878960221266845169327475599520931236445119776711781905659665099649379994285573456319237579051614383301063126134362948566380139403987222020329049635605168511947302438740106241136700526552134530571749843023223598471557166806073115270303899681918118938637395829377295110860501749104057019909258016190310454830168001737674302392096466808094794113546444288966541764992796069088708824779484393970233152653550029178386119598643170842374930388740270052075891658695865552384376157698957746119216249338418139549828818563150590192986005204780588981315522353328718993878756906866477682020571649855667590546153589752823102483434927159179507219440390401624610849554557536087249897494420904298757891216742138306909896131107872467729998002009005184145096204999911447515365120155711334773857933932366067461737476312736450424154732638240833880609621242386843025547931744482653196969328274453208289350703373554754984568732431939309602486297475022847091220400490123324851787459763645390750720034607127001573720386122712535323300698562534024828057107192805670488983309182048352096268716774811630745757479912001334730149365385648979907264102565571559495574132870916966987355662825275244827086301185762122079045003746163732597370565918052300881462176029482059944940481254323797892012007988059266800414378437445108918503743091059370316305135072201670887016333037794308346347644412620905616736601152810830114785697673159937132369435011844832559061200937385480073750821456050292878482491976334236126938740396643493649063813986438449327138230294219451824496368781056914447057274249334711069330091036503486006583282641011654385772802400154020562445150644188994401308256622766132243190668586014742866864497481994838887902755432436114213013989351000872816839628886943983852777270918117743351477756871431367682535871050651727603108420784701165674573909915800532853427797169944931315880315937220404901021122563360723299075598475102856466193944986694581817686701671268102517039523117740689804122279301953911661397773916081927060506782743371569323146876918899523516423279875539559724654511816973374045795613186080083666399683158093628749267103412686710980011670154163377350625783704546868397320226761516140913030294530017055561109119801773479229857887757877483988765790767262690235957405751887720301755730910364460409208754438442728557692124804352614888725359210989030895197740788330139845858614295711055486852289600586090730780920024138552409591809098825511675957728409600710369706359707492317002175653278514543521677865294598226365575374038108516093286350370811598643313268645053717287366214559869840262846352453997226766223614794216918858558648743500810233989624363701996213791489084588011933951949848380731721580285604444087224569158438495515992540657588878134126405982784424233085200875969043675924892871593094472056177667055079638019250534358596748579749063560211628714024257693313239932181786228715642698727280544195172184172378106840570983762063369242080962107687906332356649538601148253480464943600132306140377037469435201815946848223734581287122626276219745723518341416252817964602519344696252441162694548731145077437291727706091790145063710610328681719519290117786097851682543061160107941855292532023377044818795079985201998673610341858811021417383970368709953681309654832691541586839045455474024279280056378755855936869648951544165320022684883673327999464012216602056820373671849098778270475412204886303791103571689174716484486602374681915075427679737472014805826910473567183819202523427536260967225526048558686711949578693983934474418265044349696163787131932429355260991163069685793248905790515803669405090255551137219849161177631030634632987925143402551060007663056945359149786885967947498815056140552083805016273982808819482433452753464667648042655155647183511705975847355003192224913202323568953363401218681875428211436308401630381283258358258613005055759092952751796042977137508807065057357242368835639983768690296090450341472599922960326701528637361655998068022398310375515752114212697930755629070951772362109896478295934364006962220232866069592120771021777040314320793803622417093698840332907264634729262677065813778127804849832655003489483270930399621603251888771684083869492854909019257923209185531726467645131549133558888969915426056961978963580195433406582336098689233425328859488443827045114931788230717267824996599624317751339931523100663141101564271028277612037759967404452648817547021292517008062056554324351047256781318921588601755457837788185599876567547919734849602229357837896493343311678357277744022872220012609279810082834303966255917314468260339937698856616776189741766508611270041566018054074017219657394625512728996322261407068649622102757796778591872129927490716945992016741049148665073830622944341233909043215054004476190198669822623720925736643614644188179090663742463204432755329064038220056594794652902266320699412208267890074071590534530122500694780533300688276361262208745510680285860332405492218864240199835215543992050719098970381500945543572058701942082855785929967153142195283977218134547007906668479337878657150667008789332454908992711779509663436598528567243687732602944934870546483543817757129637473726542569720977282304531542965300852762060969809480295919187691235574551684795839628125506379763781828422277526131430228442143414281828962624474580495613410993725937743522937643158141800942230396641921950076592685164489912726071689158005477072384649255735946916810397284894692382715283981704424770355817199254433284714039931096877390525789879604393335239266285659814215475283502803538535468976296879661675348471832390526569966494142428021978048196515870289707012022907790518186349019412140541294544357338176881196263587848506640870400122567303222294917595040044662986242929647700434495124886659991939389334764339711817527891658195764847346361449353285987175202234462674261466335751720680346240737022799132363588999789919515483604491882002892893157017641119703037713567107030468095355283831194770342939671436655503497074037593583121002243594148077950646451082963165695905124398903032598515614478176456033935028771115003637703007975048499831861327262385603132340986618916843988607180873304376552455245741565635127089643623238399425531309392740847333023009055978926309788783574616308657390770463209103164100785752116046489241059647393304822149875798369768627265817018049865287381752654707878303946378363603121071887141944219712754818941760420781036360360608319847932533639837447363818046067274064244590602515329210518069184437850651515113092843036225906015576524872183160845806537609246368963594191609547717982201338962958093468571940007271029325816424350149369867728963543305728997055425113067315042581331131774230880392806662325880713361770941294851429585165362209282183945331439632414060091327889796813650463800867512169951783378993253985950714182847528578874448073716798938412061283296215462703199790632537669049370794254581337307128621491996933841344576323701935430772287403211760788924053287986243678987682458842154081348286438624141759040571419352321197884973632439805235595293127195952602188809748202590088752703604885478492766430132959990333369966037910590752188748346208716954167686095720692231100937608728581643439493940996130343762176420147062248238096919149650391624358018994342381206321586002885176665624125282354127274540340697914595420108482513885322844580407359367485224128854608588087745853471608125840411182713351532701922197882466925319253451476812022487756733317711063201448083483907437470694219588296089087486685660198113630966897127478896091026341168674826766507996648419688050158518386961305799055820836669275404324794850512986907063301380882639874157891004966139640475321434142773206286625803924817120075085019429649641696422196416620272053054046264511424338727004818696876224048622301868894702121751295081105464183181036902696422063275262439559478272746953715290975741753174617578770756238490312356446989733403499568404298287377260686009147026195291454462895358412916739343998113015737676175447156577716890926158343066278039992010380798233767860386016701234901580814960289773031995695491043432617232972538688226185912964355886635694419860581772184328615402709200129624336969657869267680125791525460342075854642765344083715162686526167640419506456205925951494191891122407910587441479988087721374754551642991798275523666748932108058748175986659424229161171527417824701088843834912429909096427000644949475694945166611497673447539633392229034828237155072900100645671093665961410518285719639440728605940015852041894994401296888350724291222217736124098380545548701986954447585195461856884116654152442624113060915458850369742680648715491318507241924831156046374554216960860505347152989894234951199297637575913875124253755850501158126453507875915913571425392816541645709216470772864840877918927135795411268262771975473789258428182918399073942015915625378051506397493738878197192289791743415146861757048814675123211759708642677392674478457708848844729946501408773358911209137424485291783058364230806229232163399568551108791918403473078714759006187099874406904343670400054145985940581455577478765720496984370548945785782900248582146225198464033020355423211129691928334386143911651808141984359380706879911148563156462366325877201833058668914884618332749314122877267344663473763894064044445799876560228908618684542269753702447929048617437941846240495905721824377275868780866738583968201206972590384436632807781157027424764736113916451928377707582081133349112808418201611513229764519912529116375818470507553528942245347421506957341087521750860218589008695286126686372131556577281643566284360030921525473299299110729467468696930430817431216161654756985279130544693756549960197533578012847365057958047153352881061127563032675913669739898577943160036659505129880801642259256895337872398181013482120593596400964713663129538062322218440967334871520714832087833241120630724736236809021530969752114861148630128090427762413788191329677078659209863757287628765756306530006666346539016278266135166294539517943906169241102560404431002800526919160763939720820999871025706849344813257644259041753785498826828211989369353389892844120208985064851879646248217792295756602069446439756745487272235641750170264593154845932901183452076164238984419470030957960842310161092032474910884068297696631984697981783147353768573188249426459821732825205689580925517040822538763023362638471684604980372004254630233228281904597636890278537948568886884131172470041016324138464745962095449211682617447959092960200653649843104337276531601065869077318578141235027515828745483204812876331241016225088302575021253710726438365465477189445749177533444256458631707476960638604143030128937294466796544671253077516090922665990277655993271606714136659958813278075517017465524352857795889314415245708322603145823326609448087762213292986447504967718954095325222037998868396491987466283522175118713209896375075605952834112024396686174081460953330676511803641562481639365087802340015508874418062893374857031564438957081116531479159372269182432060072727602530620969115408273430229469791846854890833926440470970940009132374874226659044016666851670650987614791306212775766089371362217792486349910033593300591967918531804404045780869570303992661220752012851638615659009090914571662225621279906848787607653557888605014021120560792116384539530028085419892485057312527518410227783441486990730101845094344054908887070593767117935761398380070919556696203862299578730088758040297994876299150245360653683904396644068580870346419392386362962006565727259131287639462613192126615932669587328374194005101640190255886736727484448089846595837423757441997208997385904801158263559650492142291243420213403153041964282028086978070011646962307391504785096242828732315704280949969041227258169813572299940463021694754029184779413816633047209409382159299658062651233623942034816349696050791781499222971498931087434680613056069840809480328736924286862199233633998359455590232445589569583547950498828341175961808690883082993892621379529077965743447515308585048001131730882781969204112962549236605871701992173053385298314484063272852191455628709067877209564841092408503101746995167818321065387742570853478364457374551027040900876814352735952328274300127219542450628291033599109514364242701978660117797139462113480876842512104005311803528753669927895480712350362264684632138249359236532150025510429351948996645960813649108831981904636329270833502854210329376715819411424732963139510321160696896188178804992251209015326150462490541936469758772507257943425946282291545061026536524349013091593891322644873663074404073540320043063381566621079053324241741630113681615307603860860654876701466056378708019357816977028704107506026542974440945208381303284410232908993967573134637993418942223938031644570053116230601488292193575240998477977217524564435929009211818708817719091308886031638377671879658864002024848344074514028235135058232223822236180762189159876338190158399791593660359156966920063072863186392821538493625974605401163977911226781022247482633425664958888222930155493080669367804868507515268809504405723132559939790972652427707205219238767475136911135581229275715596390452341505524952716145209340117112735083174093008530531501709761670586021593243075638629787997157385914924592323932439016208387329999339094761631392303771748067204675685388150473253307757096537838888349736419334048832790875459225713499875004578786655384257208579908128519303994090242173481172309275712005652580471770034591347453838245874404474698204723198821136598912436079111759724168412721755504261257948533742869517592494031280800341683128265373914844992486495616261292395787837957724184666691696021333571999265596476918286024830919967561412896944112475286843480818981934281767014304335986146575696387130556274738586006059325889139213752520602175579127334169410760230053355593284774184172964775899287773382394048059057866527523959042017548330408131917620870233616759100815725351671175277467637359800519515266785286147608579444146724380231328596998155100578911096152238064444179601158838182996588597833576322495515139553904139106856522734310851615767602397448995959553093720172732483685130620005389670183800996328983003082026623547280254706757346653956430374543328204681053635015851338344550556541428321673047355402426168595263291199768349621444486311465850491057757603738328619345528831302820879870501429568414454868044417588546719612085404583948269366243888014281785050844783085131217174797300945053985925775460248675017566244893810638606730377498883788410873427980659052293036989585813291190768439793696700602994153852298401405265205721390583883063628877630558472686300940013653145858449299278355555579534682041512857649966941071122120877791071785819694200290638204240028997854308810266711791536618558271191226449369059957823727485886216955807595354330216430482463565936670083786077002265313608230387796901681351647095581578704411703620665930277061679175623066069328895810241389785849852433777285831293284150794266624217979255007024493515026930916007241583090117201711775632761959372131779276060974646515354056883635478489289449661176430228264858418489062245344013302277710090651460128464136025990814224478963436336101414901193072470160015005957898162966639294704027979482124445450230859363472939327474816732408658482250492573499153337543316314398876996392034928099822382855438532800571893439299237050421509985933841476003100235466356046103572865446575241977688018874431327645440590435977289111507375502444184031734982260344342141527158702459524296303457005544691086642279182102894210810141067393769360577646058674294101746139436928863858283388071698225487789401718828585263173585775405775025695440652188032449436082043881744625025711152100243064806371613461452890497525902270225374679136153748003568435899730264380288691392355076732922368108179649057518747505933184206324415067703804391984355352243752426047232687936170074908844549229935799603914861636550688022964954612094295300303489653699761649922979231878231875181242631947673044196138166515133807769129837235128402434970429169753198021421189586848789638849547586108827924004581598246989237983453656021596999041288778402933579739953686626843626789391912312554604059296493968667516917104308421907976779976648715970614275885219413520421059482613865259055968814133085049693737177126261720978948556147062752740440755999627321660266985143015138313202608233372032921001275827919513602013389781641521624717642748481232811789796978392535258473759877388471501742827049777993415723315644049486360796690860851352143452194621638764888833266397591938393516186165542773024248914982332995429716425045467199648787090846882104477298253036386424742807601019364999803266311090112834025568284285309957140025100659306743218027335899888109582338593935671624572016006626151021689287908777489542392680681585276932205550949827987697500952178795347109089856419758442964732384442402918991861030733819074512959985452286045056441953450896106141704358075444624819155567392321230260943519170756873997651263166977453330083691861650775623864781481427355454696989929379984118979545938612181105825446318141032592871817218871294915655477089083537563108648650858761917985475417683426139506262183028740813423905740960806083757979795144766062936796609070593635544984216483348035707578088822120256626165108822008738466431796681727961280157139936606165024878005616744302220035212437568804235405486570355834625592263166331918720241752121347230496154917417634290050532074960456350775204186101977967931207763246328835977685054351717718886920954299842547026662484372870762679483154407149749581440604940462266208720337899659074782215872247223436116411181809654182031073041652151079675687829704415363896421514504460669365829448426816633230570330907940399239106098862751725183853190166382795073064763040659435783466907155299211449000364562083373594880135951340771375669427966723759252670524756974354405273996282171628929385560759539369573768719301064371469929111654447818854152999488814116124017378124210036025858106465884749763778610799158963697255001974170714321172735447811024482363842415793946470004884095019205952977078531464197653467994541972268264712514076654598748075461191848650622512256910083280100679565621383178713375754255898530188090514112461612713091283771782487396116143414452057431328932165275699660313225322841736662459191673738224531771870163474577544707388439676047486052285780734151160031178704044822036463015515778434615381602827240665023698775513892328279341800816940407343252138081125826551875975531611943181906852932634268193938424733595625006490107161597813312972661976379911870566185952318166621790782418735677873020793964193806795666840115080193983072139185983936602992099008883057492739136763366609882222791665605928117892720588389931080797651692190608378868822888912316205118595598397519994922191792331677419005710034856947981795380982297629999549602694321112399677357075303203742072128422437799085126467446223014005710411488332259140775363380165615340669950503743645564803450297914772899881773746938648919442985524589099068023621742332632477989613839575336875857030723645292226451044279167213524432389517263926104613844522053526653352752782073377025669023642633014687133728391398472250093150130811794532203324559139769024305447424959467577506232134389400695362451033153419212753671453805275638294183509539937646299648106305728176915200560534741542413836951033347882702869738130124958413543965009005582920167029063406504351334459656201276392726716571835828328606371916770057759691278234131805087805650030298506714823473130402388984364202322436925856789978038402565781882077777600818017981806340126938151644093152317647412242406537063911966933794432233403217217499065585856151152464507790067871550142337145879472492594239115445580030944028141284787843883999516853014854800476381673836560300612389374454397460095138445586637870750331935106202377784503070152770609967866578548092575877151100257907454149584495887869810242290548832413390628237628316483086794384590521161892884316679737581185243046666689083779109086851358883869813184063003952630443555817094830537156901700861145699700569643280605332001754248628264338201300140414249996275734138253820493926189330648555474199184586275686673643635853712860070316627968127258185307498440565716941065864138927331731674796886654901373147223156322788721264603617797754277106396293779490432917924610926199709812535148970235431322187091967373593153632706606382118056873888147433081132105331992835447120975305901056200913929846421515736808837923454676339090339425651157052388453957999947127418102772974684904833026952368352474141980840275985837238595877460729749264249419690339349119288969603339836477869853825547984831218587726632477331632699403167859102518528230833541026447256781698372126791292594399614950009561541800279651237454155018506538071271268666177788693558291798990483387511940973201340027035410663017007753264958921310987053996762082805440315147176170501283157608011721003090236448990106211342009899948643090315497657688577013206801188579926703416292030968133182715628143058886606334668071335301395373064816831640160652213032864571555324639741850107680974273697054825380366810743284645553615774953342779174978205296865993144584217680452548893480620340105122162327030292657215099790740505367508533818043094025371274822322633733017831120161585830017287405361940510228837149066763535766382405118710627611953271009453223508365473930416993028515382245564498343802444353284724364035286100272761075396025442553139969810294881921930743493640278798376711913794137157590036751517706079373160399494781161969452657591256922411360739215952470056175169605727315693175398879120715614919676450262037263628101305488997196176959273953744993827675807630045947235650634977229084050457145827249299432913262225517077695539024690714758098133906983960703306767683448885737396800185833792160673132557300434877324239615789935209435835766347096498850537794375636117227724475131714894436642986532554911780035046854938437532399051671756355345015659079799219792633735601521861049791771745126985565172628311982824173291755273048971748529798109912910240537971731757794083320275289618357110352853703573275543886384741712862645675499161933482553817283285559897570906927199610533060363445835670854725618306191467103140831989003280500305396971587282846307287040096422907969382726265454511985451083882241000831436334840877105367651684842731173511680025017959204643719974054418686385350482310329107711506094966138024464006010290254553910752419816217084631346451896462607712970409376277188107065225665426413286555393340439206991608732885790366790558562216157726173942903230963409873556311251349511564179651189055690704726419626675773090687183690208413447138084761632150266861871764121226073573054386728037832316703642274176237966154917631513503950564160001291334082436011923089976558718552306722720042044943210309612412158226053544496226051698148099257982099136073230557965457090656740453803498434469072146136666784188733826863712586825833222745956075415644439332053828045206587469524361170369175776057273633583604895053227242930519941783920599416551858239000973645438893159251593813212114234484764071360136926298980756493272586144933271632222352581663299826319925224347576805020245850447480680732566111352349576296353027826424938972372469264864308217455081839403170300967242427376165640813305922774717942457123634223002766925400474099503316293589793295505902235387938722014374633686316766529737110129238406674830457075080089533853761231667923394023494034725034133328847561922401480598571586164123814049768007354362152819927874431036203636218153846660996873698039236342401959859665515791977654581755011246045036934127391305371526276532045199363263495039938929167518040285559338532792204382110548514271649562617108440931626739324485709459132803111143792159912401090705225619381596688998229912589422069951607580806999326823328197317959395568642526649266163086881253425768473890546124702971567221728795174951196763205376989673396280972951994257217884405815313733347612051395813016436478840929878814513983657930877335548556156289484478965814581304007928737544886130010957065740874822882278748091208782654922366277129506491917644953359328942731490054969727056567046979736182156932671163076151208025123230172233167598027572917667561576308912595473222463855249129976508916752177146450950373755309246312501681316323048147246482233042858570530642112372340188012903501844776447732012266309360725548799820954419727011434515030332213436738741987120287084850864152768408894567604342384716711646223912879415036351308082267632001099386833450374269018925768455187363730218153155968673686090280436487125280265340412024590574631023411424221707654069187691667147757763395990754544649317495435228439999669511662620756774866512685991483927428775312372645373453559688397634996588910986442368611484975294710050721469571563525488741112215842540102943433147670977213304132157343007873520711695058153110430804321848863411217144702426505485210494249357474645883348062302786302277182528242710543170134274055349198985073053349415079682495414507985475164778359281474211875015275711765808302537565496332928752927125832253463546359545278908913420936212814525621693748253117469081150046441804708286170838620588563414901294860886206182178009226226628201600630656766055212541306621322363005671848734978328525373970236573150172090737741103448289511104491916260221836033025047702960691061852534371913022590594987791716809276797321842818862779260556157919563305596131210090981173273974309872202460606409303088005263950887985531352273255610280915003352444329941421975625925833873974780330365190343246323260041631192993849005010476110496182829630662687780104693406575568916688732448530634050389290160215937997383653322540847315580461137484735958102421165448272176558684573863227113216399670778399972372300387945989363101498571704753903783217468202213820926874113448220383604205216349869237485976273956675544488960107927179315749072102033882231484707234981623672518056514794039820355824575409933331049310514356955464358058337239704052570529574293100658692290726887700852590015849322383723099026348981716107156444756694959673637438943194982987553255027702584462322602724548905777170580601449032940112125100385609812198908905686471543894577857449998576837707114312152135481311122333318981029476810803994537053168773856803083420831949451707299827798656992176653560238627510334579207239029708914293758295296333518391697484237964538740842692270946859050750279727878424477960388898216542192501605788083475566930223593901460058602641965317354902844871022674989125136930492971668199775145909068711546802798019054689383020186991321522702676587354361493673218705068845213391840996610686830931952961506286470874889155098802044036529098342535165817680760417828564382609149440864810242456360034300839836459374866172998843020600983416549481489138806701811291972430125451624296219132340674585394238411248074152379843783957039779044780665651692647751996664388482119916728724355242009375650723471855439246933897338060084987669975164672592038203511328323159642970064910140874039138020491489555978902502591722675026337610587363914781564837565441984115593983622550078467089873881077559159549487822787303870175608081446003799258450126109676281374813059545948353886421481549739311969456761369554624681983189815250217617375429742520667797773121760210567253334739722976341579481186215992284774389106992368467202408840679169138855047381618115727715492429580187479042132686817121763434454954434125193043246655118068250415993458658702528216506814054077725641585312245873169324161818025061493686159144335440291289746061823805939868394629162684136173934950659112373474213304184507368672376375435207243875852554068295920308466868302925935466969607103555649399083292670233039409986340824546707226077699989187418493390986860619882498512924219431883170606307318108342582028540115009124173316740166765500905411142603494831271136765225418333079458816453035361390357585546409263760118021781891549686097100492670590106722385686307053454276232635237925383777717528377242866250752360814186417487560030002074359887716825453159773828808745846263698305162067102978490457245024615754818576764749310441550356837825446344425311643485070060879710945134618466742243033445822655661430759537589378932243144683179373750216692753177279723482955685680503941740755059873936377620070317512605204142979813386662672617023286901858107817543617932523065865996274771250551220265482553994847469088158558680981103268789411696444586381462217853252449188259569873858285081889066002215337708614266467386945259647318670629052182756451954356955052695796747301145378525507544917787160172117431204455291712025514100816412963811154549967923385833757590088530039425249572725081422370355716037272305556615571933632603519023541397351611738208572124961543160819592220152950154820424732292389871812576347283228355250562639976056564506822449425530456716580955331784188540387531721515155126093496624230006840132661136628713014950050677698855033420420579694202512847084234461469054656160201213428095283559750066488283832786487137819835381816052240212145846283843590837371965346669259760383778542229482868902940513570462465681177032022791275578705462446296469566281715527293275711435288006999668615057685699606329702034637969113075622203471734295604090906810552873451821362698226871444417264721109810513485644661779678891353726613004573360426770726476227133976009474683631962958774192120214587337934872549788056627521798527309737486488505850092303635065863012073699296506501229797729673724063396285879654588288210043930790570061366830826485439176851291190607697393023247272245732290430970994357377333539171044318713604577633827767507782359804884558290269918579626315248640284515429101180026399530426404648313895691844500853730630527165353214483116860754680718381418418210631894248259161786134436799187114190277121385684300251989337818745172275286015587185365063720750876463711282791129035549662359876833434953632925372269092363699107754092433658099120526099156436008386018274661676509515477380494042454496638024023231264560254730407687097550946441190000724748447829417700854536566162465896676496148071953117505070634011877712858985801428399708651181224871479246109376471938368486357385201418337881302270260556010738727431507007886650171295359041815574437452375538609691307446440885690378934407583945914881720289607850313990954818222119693654262473293860099696122753001814362921375724916023440463398791164477763697581083683146943106524628952778936096786293243686571272914447360136387324139569121111025418632476430275451234694153050295391687061815579734435347727866311157009078888154537265824528287667806554796519157007779276690096758030577733735409889830281602745456813880522676709180418864014863791652071885431904834382818140703263577446038678952345043123962936438575187908687002852255917133778935587561480391810174507622109251966718079613230962533277735501506151148761446107485480590007304117065820106271028620449085743442780425692775723792987100556710244482401211137837018513438265140512629956868974980000298268738993415035415494531562974649728962757255610291280391655199853838556357550522058570444571247170483176867076127302019985579455530405317572243320940609079815911979333703997424408325663288016082876098533960951053407689068623872581614115382946506374572513883963496870602874683969629312069179377837972571999741600249250344357448666661137256007373735103352395106982763045824537633902998298594932676050272869105371616327550471739768750064660553684594379304732950979075067580120542997554189352163269099219628102013898685984902676400340076109589542165835525367567724910021566033059904094138833112163596248729580867743228991979350582084331951643669390300866035655518141753644144030816581182432482175177188629096309783778120876818050695687571621663041519185648218456763720590330270300460094919733138266621428221261306228143025489618351634660030699888185518288520892842688572627622027947087267327457188853248165709448735206535129076677053823273934429080413388290460180101721644476749574132375163495096114183852491513664404156669873396529789174007888484667985332185231610534511584276628452792994000874486921756435484921922662003182543477142024682329613810632310964488100738806028812444825254612375828284153497007129434906720786937659581173130135901126828619655588909717594540318178095273492176797886378850771671000902056203137522581144044878650392287522874105055579147832840683702903539733409449057736871988389628090810347120369164090524564723558684145133833647559834414792560543049644441087924127501280999339653049045494480234201677214739225199696188290184475913720068017053439724531497645094312476620278514066809290551196557654691754410467725077510504991549003967027107311422504918274514157219725440557925737770112676950512471656173224599098055016211450655006956548364785400159561363389624930641230962597518956863516667244229272806961524310045826813559886747805612266092529591268650420584716276334715453778257117847870438355424376812000361417191625978830990668614592769264149648233843582872834148120512331409247350086140495960840764561317651436277290686291326176910108971864612111917583042249545634309666161734325902581770699293950746373592643538710128781307777382881593178995877046977652638250699582841525243968365669093805729969476553021088535853487890099848925329422293681301713664859897543610716873922038311754660433353934531967082118912427110029270785446605878864109389335371514675639802871532505040625313830627948816924621303063585573133114954712236290332297368677064472777256104735896532899169019245502621613199195810789959919462210166997727566433976695006166159840551201878998925616009105029659774890052052494113397573393333903928803911030234063706454902417115898026267349070835166451277871857636578895616870897290807788986548661375414736924649049489647253748839300423912811530923812282866084728575146000894468081029240521291970120370874474814924340311481365235227336926428448995690077162107203492384847696719135883579565756732676039558928964114613030424251858677768804473358399017466874569589674131490375759434771146875607938667348434114477139952695755009439719314387834306490802129042602648527861683187128348032331366156104421631702867500589793843747747536573290730844010128822240817869607483589526322778287472464069702218802417932192725765210432170779648114562968340930647237236495049817888200160344265677790171880494730642383549641852650154182524683296491787622962927355870786578879135684685561037543149737954030102906153721497815868155061364797494580249580016503958239146121420052354594196017165920074318389331259622948438215778002358966765327193809307712458987450284687504696905952238995072150731200013729182420499071652577415889878712094197583812427207317039479288017551858780723192232380604263020409138847252734082149525500072490244271657330862689766512647514921108905321924700551300034113741930602341601018315671832649747037688734872241287270011707679058553918470542734596156764940455365121773730208099601955133342392908357907486246735663835659046264343230232336620529774602359903828787404988584058269574238746734328268727561761567260557705362149196426645176451865802015754883977139094235956059658182681896017721102450690426262109277951293368647995890365840664459689627676826117693490980274783112157042204715188638653970399086491636792825281679375163848679579884285695295271218374147316173826237878698428959903237746843753930245501037186407120950906832122978126127880245697558800126551695776519816217053693086667299949066726238134431510418552776386622219399387749582658469764105591600791667325715584577557942850128802421140530552494089962004649736361479098097874158899322915493766004330735096302049693166215105325144849706952745658188028509431834074525938821262914798829892925323472471769401960139370917715768837923175481195250794063815287811706979812202687902093776734037984564240147644038655171006683418034583966714624837363037035850613506245286263582443105057161509609968198892831795641543374180999416567070584029970450443456380527620824430757156802149888508151837213305630586324898354297703795647806135334566747405610085411416616780825233449325915432224705558726969304950689986995607974695059133883247672024192596800172362178230048815908200046763074196399697061092195830307046058977804606306206511606629659246686323026614023980915924063605846716871775895702483701029967453008247063137555680131880856648193580712123791083352507795182138567365210197126718665707140755133494676020615401228530398628221642189869093776583241479619098215876724055280032211603213525922877261636454020965333835396611152085508784492015628367622646257376538268866077214451036484484878173996226589668608290387417142165246760525518001801112900320033769893941146809052917017305711194310133277383222587104622626496980172842804182762399374286273321206182317253745292071295939330947042961827889732496896627772628178933898654905783458853799778116788585200923793605499825592586804820680237166200705434106853031387403906700801451808644964208534564461617869949128733964448838623902026011779304838057109718886498947110905168618446651094250482177259397585298781804136515185771068719031206941992585723363108506789938453162538457868795279939708485139223092292752205095476448948683700316120509060534388762385894199234265026370079342808877132045560137566718541783867878233111236607039923442290836527836346017254985619093688242636133888470907504101396086434551987636338794956902994645701249133752919254664237276747648751637588024874738602165472619021626746238328284480773057989986566226466784307300508704604920143433366688864666026654832973206979501290519781923659250707853322718024191928284018231428790070048840261130624204294453627050228718115271758258823176165470121813342011423260830725760555982633621411750144468738842868242513785931085068574876889199433655451026342358946023780442884318583249132999401769908142416999725255444585883308867956041411214840749122995372276128577902726482101170029702389563665751334184985049830236150852845918554447214387528072554668532474534173718663376467776957122880978177689801914966330800743788310016074357478803932944566107862378494902934334189070723015924276303993786946665432569292209091522943629597072269446313677770394350204215815796291327441354677981226379271348278360054956219082530520185564639527107332701959752279782451385333301891084847571168152235152578042987745884359961252149257745230684915646930683354154542875309151660815851025615232155320178415477403789310916866014692068970944443391544981825565538099636066877435585755672835329662550302955310841885661584008329515312071286379098427238744816063887241893644981572229168773683619444046278837395848461605414414167106762921687241685846591352563150975978411524422480349277651919206538381258470497574234203889781199242016987325577568150259029979464098235070433219669589106835597812519629013983656374556740037022008740799083927271728846596096008043704259940306867806443985098747781366793128314625991206896056641492457167105885560559904055746466932906113331934689146535535289543769260635012591797062106407218706593523582395239467599708376687635828700927868519685122913270566656220247670838816771303372983923570179707622910095861613455780339830470014566354222128224756776906909139299712236567217280351310431394553143038544726015073011946940122559356055883901867139636334622194492234218909708632225040294090725983269234560069623148300811483976411055710114143660709596296276528543719566464063084298673326844368575213107234230180410824568054808625218181451982162203790163113330734611674809469891064979284445144567851373852613002830666865417672274419123784829946160879280431676989208681832372755357829336057962509309352553575356988346375692549224389715930201672396317490540346753514122523971501852076295322898921619901702997747343935525595036188549357499737498699205853981159827244911433799355421222012706916377148252002211294793564407460019142348409491330127424740243717070702226106936505326413297663293153319962006822177442147180960876545684459716768435470633442541744642471729303165095922501562812544976858988895165560812679977827428489041558472876208582016840774729868371461178217032017089602368882661345285116262788990599586056415220653986162698443108969806590884797828104333489415295143761893411140732796087249684987846382345318386074459526207750193062584611093002439445679639371410716081984672137506525310191654562166347445046482414075134582493191903220205694560312547962535198268337429631587527944345012153520662524591088170382311619125961533072130506292169305814064713793961867127055773387319530776975868426024263955489830805765454511343669793805043347644095423084537645725874431408661791292675391004230218127543245058567799001976394975770198680585784074748469841508090456620896080650198802903065622306077594803960870724339020993788127943612569063317317384372027501873962157746688682714773621942737567558312130984563780165335975588789813197209515197119210825322295360395525030925628353068920940503105747241661689603490954240442728156749185467079448161582011649980126391413728404851164690367221391273299441634642150906055245940661909328154189109642500047852853773561158458650435264779290151066749193657898524682581829565461605426212268688353623688436730117253942202965409099804979043998735192499023406514754633471390285544963859021747607037381409044606655006373348021606809437197719098591173680014565453816372722327618542556499310163568097908050609285854599267667289004462850670566320201770664035232573475372633084044004886780513780721153805686094254704673484997478621460558335638708340945027479444060324146311949747997684739856212423159651448368799889699262151760098462826624918339821685163752627406439976022269358311333853801165182060339617168185704308467221519132386479113051402013838330374368954210053663587121419174260909695342314816991571934565901499025120337018157778403220586404663790826752458163755790347035690469650819251748391093022201346500715702819673799572338549073826433757700932373490802061290706766475006253652027982919505684222325448436877327423164157148181019941877643125838676105938081249134769719604266522689990220540192686936312021298929808997274572281976650457068460409181820120992254046841775040024463924971274747893097807115939902412194339999207414927278725807744549503540843869717982277272507600405899460254788878054999657176114399703803872128800355615538404183722694325183619062893697339830268166747020497030855896686429589521403090225420415741043803162949805594606481041584801404357840129749846267511868677543191185647526060922676667959624018624226929601396897683223044668398564895057773132516859645867484808123840646381998435420035726739376990116744345907628813990813757250438022510906864467469607546947318018129682977277623985168720433573194016724560690362526181430406249633382093546727418055594403282230678203693396935590631448657795714148127303086590394465140684798570632785051537627500253354817304283870878056027236153652088979483784469983785904380698712057219913733676543213241999614372507537757703701871353734166806969530672340764012355683072846446770586795457862640518705485137691400100675271379572599922339184951868955477067967206741169641825449308521838046151901674125963650652189393402731459065080405111866247153083801661080215930022848852664942739125769350710916864285727641901130490186595355766446282328248146781657050212256272675403921464092306738326502655227011696838226047083184962606612581582918902735739681937949745906448956724768490110622765499562221885098007824996989346714247809221835612633716056942626796672903117242648202727650323698201956348684965030264457716944342792713893805345200555695014584476520451111059528097151832458667119304551108558271351824049800063838974153510757511805482240768242134873614657524676861620225010289298629344065267737497825487619103564481132667252839953491197022517331361674837563749507214148582884149472379494726860845341587204076350850453756455233410574176932736255208027037896580492658046855387929062045956139585540661233616048754461521425502424126529362287335724401934361108565124878636121732490954900631163460087326070564403067400810845961408901036363215369130131334994892821320805034282657363284038863016025280707162875921969442807934080837119268174736632521692334263309192115411285562835223072841776668665238753319731766664940349188858909404858308282470898045688244837663550905059557938698220251995373972751145364853466730394284800232901641991617212778110314025195443730290963181219121669975243721284236420810229597090814927514077368422487540565551255745358806321184920614601941318742782597493213935460202491890576267103508121536793722731182107757266569816254515861381215190616604750185450075095076986213938933029858837035074815629705897999429384468266383143801083381427909215357916773722794609157333642595623837388363217155366546983526304724399382247722979827836736340461596287335609759712077634722050673777060651211884418828472006459327870289640887578273183417064171916371381218098899954039439693932848539570993638248235025947933747535841527986087312470460021996890441633169042934386655179077840653567418087774514711486210418073735309945902878145448355920239800936678584521438517147193662752727841019276455268199054089101420171854295233535898229197955657016911480889355385244299691488910357789187918425057510874644137708604110928808168596859645681795374928101722454024264268148556394496202972999340859332034978684113601432382499428035932709031453080869248851334945312533124844100576008717436116951371832152034358865973124076711988902672332145114685818514024265871511322440940093714607619861798142464764087710605467006900136156384660868895183079560122593865092625101274109005628074580008999637226738461697739190864405811424459965077953596293423203356850862794696233830120015138614808121052282221139429309171811272352567952035112056131107061871381731421821637696422823018942224365146386368626884406901990834503860081863046075978181325903634510919644562808068896143208123854254755026246482401917008470527833107915903432629299543955569121574294891049621718064282220544020510387587231086845125540502918350097217502207861531294763097371924798398719936067550016376556461519561374337553313634459666439936856009884321614972530210180319689699271240296432105625573930867741224131014879890660816404396206178781786899218581957427276633285741225423482816252857950416938246249527625350430388018522975475101157556057062751343037620027184951074802854521669884673487713410551461191146112116317785301283745573856413082319702310742611381813079221788784000543670973368108801657645393228738343006158739692977506980011028335984621782683965326913973202510856308024388803926319704076157506766465724379958826057306293948957838097932616490146287551779605348023926817909629064177873141861773364923427015146723123355951425547537868901327091032154112853915939949731543937986550488100010138459876766554779695455216269684026557709250561897738788409798406718185729049744120581291452989480310460856830630555286908184143680323473852786748127590711350061664263196725554936127727171760004289502224303842062372610025724252963102305636037509704700430554457652144323543386521747802754429833801301345737254050316820659565936277942844355980717092582301689984196949962744591805204554188164261582169867964230580873410102745958454600544978431325773007924423867166528745131641515388180752069018479905893598436218698775845732866524129188061416260340357409092421762427497662568000396446718274310103149591486317426965263789850404685054831662737077235069737967785773857359238807172317924631213154375865133103234373714229465708223763702354898002840633782853088721245266147369349807018542375971846003709037414330262393480425824790326845567772855718248007097959978511311454036459145137333599180824586173271226789862213047646334377852936631950573785678991590498021736470399818446753326288554030608308911590258908159588585553602099132275385202695997274942746148632267175747432555081422760995016232609071291743131707471074232533980728203177688061567050299273249523192055484270951149248237760195720162089963967081966239843182361908392035732483615722547421885565494493989060164769501602339040754144986769597128969286428101996594723589338327075936180061168165422948627241915234718247797915973445058067424832507802819407551730696831774362262820228911152748594966484684684536157761934420349564025916332253436255946390719318676497950946682404151227957597949921831151314864941070208157792556531729365188924530657317201951673656262555166759212990044827933111998268299479541807415313691624238364150902355127201052072804571597447606901263056871702449552545037522867526486779638708470907589230027978079852778611051870227922597235284555385761149516883630227130666357167034114449877464660740620562978730762044374772562547536149291448755365850711556948982380257162082543246935679994867919761309763615064278226108414796231569141875092545619340475376665023683829316751688579754093446565806263008775376033181666204812638595584553436375973612440328407238672990062322798764457823639373051065194254281860028218776206131798034306513546920360700795865632424663430605589013368252894431349585479134422442663505951554675453148351001604053625387756534127408943815185859424564585014379768028631143591385667812111360147402043285062774467580502393312273645763973227889854054760302442143797348412202234561501975774041198212876764101123821350171147026573784088230198634903792222359617195541846110625021028699735600623697375819797820449162397776042514273560754824127823210823851029473896230125317692870830090642057944111214354110790812861871492579417060646421365817439240831230329743623808540187491634162031170821396764097124525139138166925761031768592433844216835068839260011753630096211819015361539877477148730023344991914575281980831631459635994508677078316077245154537810267308523208584826503774624436009633285091084185440299724313310085507269578004862465341446104522087983646202140259033846347786978281021350913092458244386351913343106560795473249364435395684516465075427868643807637584412401352006963284852646288115568466450748292536344421276154682583607880210126725873171652969367954713236883480419017023518297164145671680477584186557164148328632670661516369855269954998367265539630261026394450331470631636622331737678939563220114038789759151662128118665307962515054306364342684481604163567439608892873530618011605107461099150095373117430781955614853830926807842268536478254481219739697102445818526291185992397530341611833481740554188809951697849398638645982570276978330547940394064275721515289571812838677875955512758095651412023414135424683112278427239700843166595420883083551392694825369811678859950858809080574286296462059860912186643834633196227345611875485934404024736407719778442193766390455024069889312764897735827922354891613753880558967473500457813482833613606176064833966556733812477065153455232333480035047511697771500228773763904618330161698232133744268861442441832106106475644417915450679506438430020792172389821428443201574771416727363816577128265960869050166021622509283978548822784774754279487415025649505352676647067973608505712195037290137274006565775014390899287257202905455936137286281374923865104220317269500804679026189211264914108446876525409247760939719118351160031849021415632990641925694607471987124251973172651827559690406433843496247977345557352230012734257786036991379609964959568959045072651178543508937597138918162088625515632349772387600656258538603682001778177824044503945492198625519002592148167939862840123344527240783033209462107417624332128976718371353774922796757891341563496832896222543571910083914612725532540523663164343263237639722842469115194664929765862661954979846795457868822457201704247436053293903845413705020490139461753149367296684191548549188602582891294921246327848236461374720271945504828537350785853961137728513621387432040518141438544039403241013379471949525492389176844054863806258884157892949447280376370358121457584028303260304384906468162628352370057374102502819112119293654675626224434680995665871294815020348175345332435377622817800646078024872034416357298410549736455533779087531476906980566370022305873766090289657914894363855066769966262236621866611602084788755120963781918322169374022277491553824341292735611653539851233806030023087659756074585336699647155705148422373929760318097995932010473459500463462168525624942237785012964132141716579576321043662172996489546311701236643516255142508573226990276881482240965927642354215838212100617765812805455654913633921851336335634993686321483441569654685276876164422552619521537657334632009187449545479866493074755060035742192053696584221776019797634525971598353190452215809188111367722962672645915006446958289314242206331571363604860039755679087214960818933069076666325464732772001414561299270782146404431800309923508909029535524126031190732239737548956149375622653576661351943369604205603479802071291808451141425798505516759110933164487274310221445029209341733008827208056716101499883698859427911700693592733160359465592892594807701987710632095112477774758800986989629790575943271832969217452688195950218898170360513956859465107398274491212353125481440427842553159618856257178930064747766972629349455892219626409492158422795362708395003081135983660946749712602339487554959881062096658418166553220516927924153214524515432353919001784334559360746489661788212028269145978603126039541586537825946914211295163849404719303019589239337832371747793289814459241345296116786055122140694231371903917460229748370597034725751911310568724613832365800685722681969231019746890698271641615047642713094941483324713132690377164825377236965517526529242966439716264680288048249198636416494449643678320785762330815386644428246016507172294525410870886043973012963470028893043375383004474996623605480772460248277517518557766918382723655382936822419736949605454463400617172002043901173523522675729093493570774130900877143163737365012476019736628447451759132460391951041428463237947001666120600918109411354353223750534079418913851255570248940018266212951364521984921016811511284493796372563228117170759902626090796122026082578197222236319578821338722977259047781374938353406001517866306781930560071046328901889388966001479726447995332494955380024552494721799536324289308077457685633585184660659442449233094593491383641559835792065645762307683683590415696830251031623893528522199650042823367210586602564434572260374977410027382163326071673772729409732365030137676463611396994221767434321434637570003407822690456764592880775121172984805682838439578079577212156481415718354810767880705908171284526450542227079088066004599902599389943431376810324075034216019739033321378783030533861614791307443240273159887707319373198206320102273152656246041402766882867187859688774260869587128492679472284140313500050079253896848322602402519810134693733042391149387363132541427852038383286406357019054220691874590215856596584601566816993785829094787600954371697554882532586838442121880057033795145370404920993598608064948461363847792622720661624001840985975007477594261427642976670800357605740812777415807045672008177294206682841433967488441981861827281843208889692740588932353580248935175311579809509836561323785314224269371270697929703673113356110310028083067105850721542878456188681243483215273851304089710074895016293277643526487793124608724987328520343183632435600905820397984680261237133852351775854782155841306760415835656808906621401621032689560777772541523352092967883539689973448790983721416559960902820595174950190516075252889004769066967522052483461695240818840690563939274111268410677493551108455742333053306565318744805187450723069745647622135481136306532404541711362421588606845076751608472144482874018479419100498398431272141666582081684286233709480943511737526916264376657694852690712422325440895647158990538411973935767798896201578378079749070182858243333929727931140613619163953600406196586341485848742915160144737084132073680051111419839209517556702732125282261778830516536383517870352530516272565472887787850151225466590243555180546309770809754364500452059620524356508038926231486035955837256199105134010155802185476020909380748937777565085431654060383169732461195652380799948194091287634239939672211689922864036123370449241489612046369621188327649477079392275831151778614224215157357154542620630780867497742202913175820464231088326434894955363731784219555501500081704835903718112094081776239086886287771518650408532136536363514617040497858706874964679418108003412458957049919257825263939246806197573480581238561375957530439071779498007702710627075933139328504255270854030557698870028050271699933680937810697978346185609408114599680513348983807126010063275437117882980601007563119649303396438003914125663871919549879767310511276750239479630111819653112894361664771322200626951242130462882308474811657355775827566968635158377487319677737644504976319103798684695252587995189801819945275030520471305460190987280394564548064114129141819057829219801931831280204478572221563801292491231431470564989558279687901681282578956137174002051931147085234411400375947302443781942347093319030925641986893269258123322193355626775736438973249212750679274731577167794290742902080661888951604292421768447536260613028428395550364615051513360068539901719274859813864193134920060890178953790234906843154543587528922378926380785366966107652436916249166865196734648467697375186078832135713133879472332233393010695019058332529338192560719762247720558835250617031988228638327091989313607532484836702850969752416001123622025498343645544854377600752190888894419104712248965915756446797089157739492698152068648337415479984938992551714194959095641033873469897229268506593279691176094431449763186916943604739092903420026849391161849820453006766510770775625748097119551340974516840282373453722936808143967608201061566267088597662878549727973470007394574608413666776264333154113213916058264141810083331087431902325437018487449822458745692979582467403618152491673390073360561696386469822055197637862371137270551967786358286029679714223354186364543138710926880078384283259480899761558621926021029977630840594360829282926996514373229647973215313412264886242934167091656128095036489341819463397749273818964239838238730026611516990378798880292322346933424630196049266992155711189838115189699913072219193200253638325180730976057935205598955571208852849723966674873724052668669784995136538664814554205667347358374851029976018699787533223641684147894983552597762059110660958331546426903879410539964725650190451217753193515873690258260575723650156831631570309259659068315094463644254629540045657038192210137828752439095920086351902968116553574042754529999832662374506885948327785453073600905126857204844556582235985464843791557756479664845965657315528430559613021510044849387354460297771504869365042127375070114824911976421642040749808459241672281257453814882937636404898306252225956452242432711297885742834952772564775749823760638512940792075456860588466218354895758103051854412687832081673614112677355100656182333905367059914899939987071262193227706753089620234431016433114659942708943622093678392906316950062312799280672151152198709419350163935591554093215047343309273281341265169703505230657171172006963059195435042664899831331873418661172690795820512027164739310499706133753884918855944846019405954142526293126124970655588108385003815494348787191227924818235054694561786034981792281083321387795673874714617916997826549121065287120694741923138556120987394989742312248432434568060015735447003753805601340287849507822080175468828270923102850683532028206311732324088280505106054209841906497930579501598473377634114620034834190054318123739320618127208497184728364899611502389452973727086605285595910979789133288282200425772938648952940386876019477409570451853140548505107626257939902104081755672993699793834724081881538069814873531479723575522741159449907402628385286883150261920879475972602297606484805108337855775463596519885373287772404127007002936996490669085754849289697428548630591612300842661989459929681075076746950318536538159028332700855051943199921240252927286474009399550761520682277605469062944624087709006090151455120790634854107837849127518411101550265644508973355887591559100944491390413050097388048085578316778294367933818630754701432533673131455740874758300842162366298389074158604972520628236975502293830660450107506484765353564846994155409471025129121982268722359906536688133009123258493520866018096927674679303647533991814004962857252801782405932009860498779335027916161527360147726494424352771703882048362042334604091144915909125323267272561142553212930455471395640252610680223414470267563685288211656496881269994021153273091012513919531887554914047306990617870970480223655059125049867035896295533802559685235314858994183371381795439958500067716899154989944851972700973626426459668360879908377866231314821524332669901775372307812135900556720408312774884807601790484425797373703136235186925111556331291280132647553895460398578504622244167233072261484517387295129672834211699156086124922195745804731131772571370452652285845815133306266716725837220022313138375553565093296519115380371624970171349192760058425704620504801322015906592331147565865438197501160902449526740536902139371510174787556710969075244279080897827326240710456385009056615018891844560894360539835052183855079400942876358532689579610180245398479731792014143140662739630018264295224720352897926566376151829820049653965327108953858169788701056726895776595143083756494804516861563247057404320626037875016567607418119630509507143591436668609374779243097113609885438472897590107852608743128199343857492255732323229466728519604955177334535504777786959248005252460319573884922626080361482455329189252895975795901225781657096356006755583256190200360841502971623291658336485236564228442079738579759103462482543548099482032004552786537835675637731426657664403208129574113813250717985500900782466918272397380422078039557532032232272422693421772897689591586370444344311205914144164575254037164367835247118661174159809509521247284242840411362900879860154585521212435525311778986877980611595194699008278483646303847061604752881048058298653627923894678934542858407914385173464899204738582805113908905975608514507622259654646104773865383666147262462898241072457584762963434282463286440637738743798254545887211232260110593151229277193249602201103936122488372931982661533902762293608717049231598515276745889291236736397100503073811136703387050412463399628044730511707170558330151955958984202241565722793270538526412682374826008801264257349615108851217345127473497711925632646685818730042935525191908427689346692594492093447374883257028944662359256600358732264768000734611154533703685073114365488267549886792425773323469844266871493336280846274840795543369758387656816641997001304703404855127633647891714364503771031217035097980019897232734911358509518404421961114947810111314290855684585362795230075378851484821954756143908666148908949906513419892956153772518412371294671164722960011980973948534710237954326556405303697052692418532907065711975053758800910253608939498925394001971836641277562749674562680111700620812879899437784257327905483514643248325117412397762483369351274513330779576712201950301701241312990767612151063783111936288829826668151573274824111845115469877434773775750512596153881604451213617700371848890392097077205178270343714944995623043046323069797931964764918751031076701674648128614776072937743463005007087748329290334353409437302301661902804607635913229665215508847076903967103607487494275762692189746619207615424764109946272017726070706365788873988982289279757432199230744885477584484207842903692233135233588024906306078445615791206234736768089630547050481571898091768683549597040183852693566553916552845098791354155289062891748994684857117483968756548976095464352226615225409414347441384982259151345631583239309592062050408291465251917580793839649556119281757860195885381917635419511250829356090539444348866682965648829361455976839618296011429300878548444571812549397020291546640268070511011583631138995167030766640787487373194404272828550684184150373163221059769176323792311635246766705675148918397098292810490058867951963037616712247677562213253046990511200787410301495241576798456994287050606242852646010966793050065220242946976219296315172698669956120157303443758703047910871698963681830061356435046849824952112111560703776602628965502462493682382657663438903062183954294815686653037298709132700800354099900803382874863193141488193006931012851560359914652527708403442446682196596967318715884975594088543495122467498710573869844653188700225326062722953348215264005707148241807653340946414811882317995835141728888146843307476396896132990452982149340074929171167443558126772451923704002454758804659508983891922818267379478187550147901317373655417421988353101782767906771150036522250066292732929197530658917863839683311974761058015629326615860682126064518296714676755856165296931999929958169159545422923094660140550625884998592060318189477901270885505904559646942899027538773221870883969222826565674639472646288152515300356725399236262592048951297853276597460354480511763636098189020958820208473401038342543751622196422295869115080115318500854000192439090934985140784300064704352876716636196304703447821221076626516122864295559646688229975924744001362882411997460058499313808546233179572958677880418638401272331624378831697551668939767236036512515410490811219040944179334228148212819581423339342114117500524147761579630252171420851040351067331655000652449248462066360318255581999558368256908439161129172289582683207280671732104763886973197797481732732028822974291595598066890351201208455425398556921329207370714933723535582491527356859149642538119720210715348338882891958225181598434393387790424722717935492716206021673655891376153692800888436461336981479976822202423270387297396536950784423058357007523251589648462398562897499959976253565365876637510844790460847588036183130872047495319288974847760426496186071387937504231531345994318816158028996613690745274486652251690148723530023936013968560558245255267762026590816971471434135084215512923176891192506639618014027184137134056867725190988885606716630271092673902592616866904880466591671688618574061352156795669629150631081462325953495355418786552139060639602540327832570039805009723988657030024379633859002237081613175309061969835784015835708316426017675963939835531553652378748909546709220601450901608400656809746297839476016328896267975221382208590803567152289754206976744798873930747031702126556046089069651393959993568559509779741055678220024492178082517895852979021404244590638622363956457864986262623273453390521359071638263585544901884993474793028362602021821700137105229788484573112402618039726513768309861395167278015231264086626670642041541658146735674809439500381660450543999419093243165438494427175163884490971860222029925404576147259402295491469904048936623502742107896707836598497389489062901100193318411588079480513988597804172158949112169484819794237869560557386601632261227935184485111667098861563237707868811173468685897221143087703412420038590586364802349537072908850360562619365554085321808703488748254195320829196843566550609296488854595009469310710681232103906665437934850056196889060425315536663185439385215986423644448658865131986384721682905962964203053065003976273598513571940471665265932765843004090309269574007393202599358169340270331003643887292941407175367732522617914813942081433740184194955776050017520424838607363548896528925354591144293983726197819638690199898755440119439408257918881907945680166686770103907545749808639847944826055851887236624213582475533494719294392659106485152999301184347724004772288432580814326320748735479654887866870706611563068462527317466615525501782017606520346112771871063354685930643521285701815635363637651347192346543512987850208936563754002868200249068794440537587586807518650858531407220363879990393004573319915746649051043186650542105436773100079254471192183368945783900434439401274972944592552749214413033345620687436766175606999284187515684457808441745343427588974732089920956892939420474410400662975097014470728885492948675697860681761831138107901642742826445207118209366360208601656352884128131957393118567011277429694011049969763572656121990594624803318776824303094958858156670936188883634147583769481451867215384033011012286768028088809213716205011445001621036854136481459489237053797720408475134096434265206902110201877588620005777513741712511843930010564746253294160761968231649478584965537294279428775911848483660198812271575658947834458825895552485614619421938182331446437112394772261669728568449298579847417039882131843669670379890462242897423266745157945327176901480703614388752555492070365510391145530389635792181201746116289875029922793964968302850821251041420044401730895703827224445732324566765851266811589145303571240360006819218413005751280064296299508891688985687214507454925109770947267150622329056908703420327315767753797218803895166382667206573570349356690710328514799381204678030330428493352940660618010531256861825532835860607030203807341881174251144297244311790228426602090337537715438742103826445815284367322195011184648882605503183098543819700875299107716034904769420439655584755606879034370315928574507823974543369987055130705001327679867359808638639153950744745344343770932456706713102417346452788636890793902496910549758176677007210054184264326617915398642704638773688212242209863581996567403975891301011395195896590089072535028605182229632504116008855275975460284354961141676090135948382556983460071573594719345062450033847336296796700543302701394254583802365269608095437408485864649926569736619864122871132431290476285214034631631557521770963212670995426734406073932624987578456125796894284993031975245438185762109760173629128408220486639092490150567230547394489414897050802798696139312985336053446045021904735383615848131090810496363811975720069403109992980824350458286928493716418748796519329866395113076166518485803545435002615699863657967651835283242769523048046925042455013584251819540056847778631779701978899612966451792095534777887102698455662657082914204434381245666991934466468995265273712548787718163479296897921704087460559575996866906618559885845109158362697490342218238571534413006716990904864392555939615579312545869296975403959665566938181572074262373660103447417713962951709062143194815013558676972386175972150950386348039606002508636933490409728712659394215267475745559988887492256640341446064452575170213192647784033335447480225663026891003512786779403342371358383614215953718849387038126418694125783394608772406898101030094077807052563122668997963101555426798303271820038786768910539702105448541130448649767524333630223184628920086906899073544964819496304144275451474494680801401656155334160798635746972417753205567181918528100995972689137333026267660148320779207000296917525329023927197361396017694816207081950917949467775494295118901892713588144884172812037579545163225750644084580062840352213294032608547059977157028749978514628875749002424226580066227089447958577834216290728396635358047612997917839863273169614783685176404828016881183858454826201445032022184977990021728230167790241140172764345011864225383373552990193644684498484956995847364833333432468738075528957532538532772942268367521808860972259234863730510242998013626231680878835581625833469111765693991195003138238072402803140839654705462812332764860250575266690687832956663610920234147317709465835860245699305275780402167412983902076605341171920125693318224421218410402779187756540875539342480058828088766533055080261864083335119189194974114207661281122816932977356788005660661900854320858779444612105596155215047123973287778472569980375296314830837657283652962201169631116898032458837877372669455527146062363996613696916892059555057052488319911609499621033502056865329463600270717686347488101032241833647276072948407274108705094580343866613356077135708279676468883007860537661216127846283050241423734292902444754381119866425532988488750264946000971896238117988971283000707955258215306157798383116256834630070548202162721505168260903798586062805665955425552556505885480874609526339579943156588675998819055391509602618783384284997897382765826684497543725638957248271750873354672719417992885191438887583769152804427559066652924111189512467633452472671147188717346970088364080417213404652527334395106561048465278795529899233429360838425921571496453692382916013058543010719405503415406665460835777719379012187257644298900166702598066623161197188338818335659947488097550248473439333646846852061449985174684366994176700368204075810927976330142842370381640848364817849685735003029266325655125074385496172578962397788149072927262967122427209610891163877521267756923711985669084523361682381070984067338673612830240833108115856783855535171772348069849823415673172544018727865852396074274054849966147975167614363625117701477208547784581300427976067874481643529871407839405451377301561736582605934262323402273445118363755467909283853745568185064824232566522642385931639239317339687019762167589533635329449138397522533773381196922928859864711875931661124039436675686763626254641974686876356669167954117832246871558828986726062469242994169469552890426961893527791921820759188483202343491629417207236326156066123130439029133229058372508537179603688889447078190475934526062199533781708324072468300691010155424002866203068470291122606743419707447469668851809153046384408537034300345336959354364318716591945911799327574143698108673307620564725003033788814930570458083388135570997724477531521218020187349064884430214647276898280948124034017457168821005737198218970264372743700409930678595929928039246442818975805218517619336090219900913083285600526928190330290369974987219540539693036397169186702110354181032247545643503090785337263283372736687759466615321410894155856252324888733812182930346064041956499277037744910400146598990854566595863728188898036047063700795268451981791744362350982118662561411359428732280703805099518369206555501977956621144767522651407977483558950122760204543812650232744546145079119832240997257104109702346588994545488886615639293534978492110158292049924306395954533099878406819800128418338342244146642004213510093419131261134489439741810310244067825913181443813720857488217152624378735729436318152058021661374120089316930543431949289274589738897406435679408740336476333599562889247727607805190950737135317331804802298323340658015227251740370681642718053562998172626970688047863660409115430151684997439893968957482743755038920112229951727735134044052536150897514434170939442985545129304268516678213957562039668562225042920293881606236300853454889265849129083376966967209074350260771611640458198585330922522127269578157710486467872749955717657252617414188976456627037037463990795781312018415112072612404191390774182527844647647257857841303457471594541915721950319509074625403325758961179925196766715665000702255737171293355291883753958382191375597121570372073093848819842401603321637103629484661473986621257139160538079044789651140558324232651443178898414092310361536273246429822062006795770212036809916224180769153807463516917002462831401259215715328464016495661030773041520323616803378759724459266764095799260136722795316502487964448733058255480977144047231738841865819285043722642794996332741549427798727312172955166473452586927135620696783576814069509443404929790920419876367789690961327251080687081582438124103435191767970199133420479318310898881783265103236602132780008769991176322799405437973129147237345588701991849450049168624250010827580332406833615203258379708699398063673156638462995790010521085187249586784274139819766685342874327039090557697434100034350139986284768701370472117077558617543718817116916455097358962287700581473669605352239594396581613088096874830613051530817356124213556498846608225637834907906152042270608530382019839500540047870806939966943717077467443279423595679059950570273125846499508567219645442313841167512948743349014919754461807409968434933048088428402885419842803341709755179586185505127781232319762435056315231930142225583395756100429422878080159838738633528450602103791234338006447473005920969830594879869448773810294979210854194330298270297028563372887352524990128996792245078082231538863596425682720621022521290629148129393381943607560611872664157037789418848361334794478240410404059587068632305555118300680773010629904661055195050658716909217941723018917440564221315603398850902444195640040917878403867397895371812122883207149673026711971766157089033289346684089059498283832260921810195658803259282888527934537709251648543255925094411872809534885560109569671175149413684791893479240324976562275745350530722028653395109488567065712337973839653600733185790479288175457266170047256678280587616536283692616324040132192468092852346259536313402028778857829691241513184530776850305275098358998241392671530750699418718695506153746004949983625589803290638887287524057959996853593715743018748321895560811325246092289717838261894334863215589937687238203971568809572130044151439295175924422682220975617796903749225617248434839048679400702537762278399603848873875449347734733385432030355975867215981555310825265434924328806821278817690522858063479468542935925069432176977629634721188991232606314860601045361785949932050246014281534163436993432220960853946278261555120449922753711693676148966728291452994166073525198120534809578064151983703232371607972117876508435869226342836623451631331098080089532422857372933147684331857624401294099728899219801015220458309081763490591207671664225146972691925563567545191685892516630975911481090339464634736740616477781648510519927507666175013299756966733597386165705829752514757540192121602807136031982554613369911599735200347983722356365853963443051370972181177939840592832616925523155005966316715782695399030949198142900661958203697975577421801605159149409581706472373557592251255333284348201572352001612755340372832328982600978579026355726382025058516842702479874464424034049134980363515151000131796024335858083752275037243577982657971823360143176418167270121998924128482245283375245121931087467620103097382326730625280578950630149326832116447940516539005781388981296054403573813881742754432792312045626684135468001239489961349306685399711779322929895374625675310447855374896121676498299011518210923935296939973875908993953098397712000954636525472445847241827509783568410503563175823605578079082036184467060050851519110179531305018436221921391560361670942113989801088659742057338670529334000996499766418532741587684614064872134721378656360826420408072274534572465936346759105694189405320976794461285667288889336751462208090527575410246076155143286322593309726377247898725206325625250538894736498653503858633825453685952955076888726865930085114853855750598053282343503453555006715628987824710754933719864718422357815584759992950643513145849349298934628798699766664389730636526192819952685769319302085228659508486160960478558111675317352301920521182664275609861283783661779986239549655531332475492189509516257014209925034473831649063559399804540573420173432732141555254002827090980969908171126033041855898135407307971608181511650799679580022933446532301804293347595136953380727938741736663358702688157760380876772587711689079856275132507032925504990796462271797470525708160001350471393630611536439591977617724209322509958477149912259189981057137029338279639603732598748893280485725704628199219040701299144952385256001219920991045476442871101687640187741353251191471844754728531046985937495418209535503529346213993122101543837129104372876028134783789455309640809738233964150870876946144718641859373542802899522804496965812726787315168734169227065722397848542403763088319590308092810073881965536863161371948091769965020221729075798786943710002078561813523697858428138403670717725302333578874262605819729200245278817961986597099551356161812586708111420656556499163806185106831955586724807789301041032188079032708421477976808892433012278304154893016681878086339700192157224256030819489558444084126963643972589048718751443350758086023720254897470920594703901614474285528799788204618721943770852452032937705440418024463897225069309165627282176606390368083635335567350112359012627514670649281478801698579373510151098778498818962816009107190130327141432328290747552244235851668005423412477268694465196352461153452607561201907890426748209737921692732702173766235973515058837366842391665507183655418747918817608087997300069355636646589428919366469915226695600835903443957098266438541720793019845184810989756163537395483497328923537786380659092274934671414598904325036237552687811434270730159752900421597538809954013252961535347664520087305080037355183199532883175143984468985483233842474919200257348762453555290305132972465803239480825110898875390809884054842066193115976337445584768281957417652709384898648892565439966647142828364573382644332725476147796801875881710861368684136522801113918768576624646028855609867724420769533197950871627808158459481218288091773739865550509079210099345113618160327932125611567491247389019159941146202777201761779745234150387768515666979441270510322561949334927491192406729785835921259845836228208610815727215366745159203024608286904351977464528463771599073933678473842432562874823503669242059506637957425826684589304398348985594858119439744336737057484258194722311130043337460101621042748389873207774825605133680012397993157395388281446167813133312101362023442980350486809074316426479695043437437884736416812651634750111093087974539172279795477672020835318694098886292902308483460025053744744699703715354480745132770894545637727349492526325068366173281440882878912745998453660694438580259348277869154708108867866842885968222730336390481692049564614670938707009371819894114747892625035793913297836657569632250222392226092825983756633593063016984433540365299566410920690777103545160723290516253136187049525645067055496096383067214377001379471891820027143828761538376422113472963801983888019310891920277328073384924793855985816445425361869370732820430005833158011075540073232649156412447497196950593258284201836852604190420712137843118084291030995092064902166997546257858811508692915181507108197221562396545193383397651344805736489603740649905986400221720004583126179702723700759868912593577380057032503061263176459752255496404524133557473636572976682198152252365675902220622580669557625515986786975757148436597453415479218849072679151599666252265432576220531300317831486007304761527684185881977076325105886706450467964746124579849557171217323020335090179462591439666753408121563390898197393996358083932397834284030291182543514374094618142708823755653301607636480252734269639901047818363248340947154869721992980223074792019523176493411957024472886782272198485894111616292150464098023860277349084610778247658461405602732065324693665152196379046709522737813328894478534213877224806118652797630905231983029888082407183926820378838137706462503846174767966701132253053623515510784946770874836540749499147590760206205966752635807368516761464216595962863893957579077478199396355304598195136373809485267028798373684348194909107519790841659058941803342410782739372164863202598415448354869443147352077950000562536210608172325469305812432181361062611013246575124811287771816087262955822080477319213499737110234621306152224987717990151956785485129404265221195781713834942222616155750014344060884444952771791368915047635901985096080257867609124450297941557385486264595571628925131062759545569215682317748813055031036504249744413842011612095864929166132795862006775304916859315150394681094486261412103873579178361065660607305054389418426500170266133253739045293751230416708717316929845859682067182038278088119453482931335310254860085193069883330602656173103831702711378870077645897448123110172866634613447991800067531841380412921330739719732676012404383649211387053376220012596030381687256484591787991562386062685758796304787964753027606433331040141845678604691165454144136606957505626882059584366452478524009783338135302807092541097969354509980793137243766587839180284246138687050842446137756308669367397550718222731680517702811794859958384929767470365893223408095948219511664918722938135367398334223587763953167525809594996630842738257835347852783207248320873888555346923315785294301273436167802217353567964549126645105013620219010322407695526419499031382686748499162164065020172573542044298155125724095425525234185965542495734734002792918148782700379400968026119230246599850092323462980304283326290536892152483213001698612121660721902479494364097810395568649628544233588333671850133839590306528821114875967507481574508319490063517801391257842564788505529309805354618488127993819912338771007037201505517700035960574518057137760913858964819531301848170812776654628218845210970639838836503204832210350813131230359658542869713240326334418251464569204268908779977488356746462287107501273211084458998769253308687791731467511422992962290066517327456102483784650210234259061642176270144925159675483022041000390295951874140752982120345232681192006466769373553272235023041589499184240071798189052903040243447344541996461201949127409101903783105610496647386966167955404885652268312462675774315162947864131393893265626315788283301279411414237650173608561341728185947587125130062823978737718502243150777592983614027881534700608672333613379606995279871016135152282580966725738577502398898726038364363973265032391439195994938225141646064876180448771959728428596329164328411551717528810084403486800167586251260579596466533182938658041252658863107705691787331917197084784129967801603075914664951140721838778319167338979141027402279992664359449502608543082021938828127805678417956258023369059625223166912458012154172261103176189427959018556904293834920412911598505555944954450272081886734445218629291954705784370140118109063796560567117340837242984650010862350759362396332067154896486540284433375444053503931804288734879920308458519544681913376940659963058950991347088190455468526437203367964100275807946410457846119673841022449938536176099542146114372010544562469684843675408158227994024129625028416840906379140467470036809817604748983674450393772806815889915425937146531525881913637272258130929106434082717825703229461102593900977847223911461258205758165268733399961880992269221394320057075572551573427938993908400753297682573512362417551918411288138476401626710305356025131482839039648700260650611429113955103643158099402033120267286504980379285585479511446845251363894520637488446760467459678098202113909335702741018508772428810516162641116228764466154111218786888674595359630375272764315890413200324705737478002115654174971593514919738931710164760699488933838573117108748934944181004496437752216630032062179875574741904785894392909758557808760191472435879633274122045674942800019392163553716807422769515087311408806131362493358270822924601192092433244197043962413765277730510850680833485879420328802249977638598034779098119655253777873156428396190354833047431430819053431146728327664461787223540765002185440131832314418380892720767375035799764241540229337170596168270460266094811099387536328292208421900337945744498573897741659342497712169040304699008929539581631948331509935955288488177981374161122425834165628955941000020019150216102003057511292102765004678151903672628849961166603231764816985361893904550802572553447882578402983629136806681242964168404276628386734999586125809833424240191960125951207211197572135431130345501293688226876825677134363963341803763396949029824714499596752193444291220722747709303987160622353999153832605021391064571653698751108761754909903626615452982264084121256793766474275320291195530990295079941308504609399660042561338795553599289207513385281283234352025478153802174706690190882679163540229489419401036237872867407849782469864962261778711748899291563342981479656449648502504926752260018804950703308504324803077849837808803589367845551248198848254573063304760603086167596695806549659352698675852774732011404106039415671608441631680745216645676887934825580466136520726607025320125960358670823964183333327776340836863066714557887911732497033681232564213385512100037887875450272658219227116206665082883508573982698792746816959406975091160469871429243197183969900589196662206293968760787977362318453241696003535160317593525099017967460637549898370659036771264021909300124818665953919907133049682463899476168823064575013373415545941404841786928891058318723557874445012795919602733291843474618475385875200637123893355278198396024165081258424378973401800644120681204697107630818533859576083822652363586160948443779804246270738758623676215387557627538499119319140840250033446376851484878495096857939044037768863798290492909522358794589734254470669875616028253745066232536647781923540488933086446755269422520678135060287049538106370561410448037412516080671565360021354420535581748255704452076247057457286831041324289038238600662364689087019110773334626051481221088996141374799115387553598475353223630952923688172050801776460958705797199401562137281845650388908075518870632215173610596612508235097288950827711830015685300287316091819954642556439878951630683760783814573802951764195391727611734557901832571650377774040207832201090705794738126387893494889539705348003450678321234561157427349308600093337282997392969545826761297196547939948278831830795542981488212031478124275771091043277003049501006192533944373249619636633800880451214081684458182466633814816612484420468433462889251818690342427377592677489288017747566362787481524304945522041027082798541844356072124948189733448105184462615303656660259769978720239892999813073476028183478699163694543924671899522941873168940296524946309283172430783836265442091902120250257949843757177971457697358342349765863943018914513974672913905860214562907058045428443760668362426459425616480877016808468499923150431897602311826982143352649917872493018349712936022742523671643395865770791350459661807973094209530341373829240597534017909185401489133435362797084548355823591929182318773629339355707426130203142283003586539394925867292399676918201866929482091499618333662907229876146430585278950732994611227876869808904617918208780134088182087186000803693822376092915456158277020877783670932412894547998786892305650162301312899390978827420160169733160992860213467186583395349536183932268892630525368160759425532593868556346987316039902877699294730114779946122380542235689715910049404231209242133562885625573069922897516910814894576961273001702968326514258430830465158195425930773914570089884557365559833709793310988575120855262996549783104516218080812187280581471274206484791447171295280934445449919668306710620395203746425990687856662847894724355755634798659608369146244658486283425436066041081902699925036593600525724477278748567805165212117834256139365551871044522195564352195792553739859504996145104828447955727387362678882797465931236275048228715594011218224440328018571898162724743037389006089140763064600429780259014995876948900258136605336153751842286883498790038794211257244146647085992827516527386815301021059497452631354988942220670466102652541283078328429955867767600695074298152304417013099328268818539074381094894070264410847482452056257990234703420679991545641268682290965609037539807601003944382978970707555067637645984571441242561273963517968387323118408433822040503763215284070241832870492604544806020243484969392668217863349932173574281362479470628085035825814192702867812703494564727043978411411498970666891605182476705300471883038345597749423880813777362577103420752490843463467924660002064771059097106509938824806855438744337820317535964244265603222965801834815268815392325521995475773076172452094691598412228433026812219976457546318273793994050854948534488747572498825812638243983104676150018549940418484675397748968080900243215660144401290222412526757405652769759251436430768187435661842977595515674616144253789135422643133621521414342754709754621320691003814914222592435123899181746350175532433960776042056477510766737898090060169840076986639750986801719620975079794587706644441399977959819116211091072180977134727155131760675542912315339129129550483306640217811402754309650934719894976757429097666874183422864427994431223741400328697765483251359828648614858558194721524555078495914217443041897120962055992539835370190442949425021728740173249555546722531945589135087525224546696338990867657831836302832835392149332652725102368460491987649147952533323122206932144457410017109440796650217012045086748621745598397076370171466350173315141353996092141703728160993617573032667944496983434071251575240138163001156593407188298990305283410879350726427001942685038693462502071830866635281371638334856884245873666563496012129432949519315409836371201256498749152407918208984141923605828067433791022951910415447434424223946290342338489015021617113351828357182101436815457587419414497782117356385059076780475958561662283607408092448502986095750842377768661080308962376912146795090239509070385296292842110894950903972681455062843622850701140076299686480629644369640123403024929816641526908127974385177380572069514148869901812703422608610187513137821401261452628735643344783165098747111720275508701336721136528818396831767067782344977993744679089728916081158005486149215887892274191788220694688967337396045203961834946134155369119709122591843521607387884729181319875007638031311534810529082817110451188367742211524022156871812316698734238788136316826473848682761215101442108253451629402406110191446081205385270129182315758033375686591577287013402802139314061838956580692629231250331579793055431679005010191085291401750302077256122621029235036694077912775687475046673268590926092108068087779704943066846700694641934088801953889581037649580829680615715397907994556860540542319871111427352814711223941012253202089263289726234864673964030214030086803403604684018505353927173237718813810675767710949296564501331813320024040798001628002426392117258227389349250960405359259992556074782371987737430553832397975830141685761852330173245339472278492631296502240169969889978142574947440669194287268151723510053526186799637487083026172779013691562075840548495673210793293877865220466400875694954098498568586536986141355205349867633189998378912580075737644647774137428035209127203647369060857881373847069964370897876951119524724520945270231078627899213150378120253865118990312146443774973116330504525236838786770662220938221010330801572220624612248342107180229200827706734749008582205926575092602271869804014803051851089324489474073828112139512529630007454765747821880540450536250151997112676092738539143432976914900929356174561389547123057016695497589234042158177449985511022732930553920463808460616038271156290489496267735030197595123880232290774569445923398227910710179318672461132974814201924619704990313072040755141256881401204215786476696213318738532503204871827353450816296940728669495435818449251901884932280225609170908744864782965068198512981972724896835975366813279661083204992476764445195162782489526910066887382786886064937082908088252059439033399064330337950870571442247148390973593918877282764615367879976023404685826624146622631188986130286342496420150395427314004420055457359891793799805353368341342209213699644873339009290059936286648750891776448530242888443047155558734163018089426364137782580943607183347824947582383532515170775217532433159497731972454968141984651119288371868969986039276835457857554879503106239425457896093785038239465339982592302397740275792097994854835918667840060971727776557278339705685619503336621796520019538019273240249860864911439323457126042437408186692065206084713106538324037077179158709739901421543377350177271739704490659927654614813534219437480143353766120250409976497644751894716248025685140692844099714041677281538313087889919122338271424907213902652894091060357758460662761575913342001026403693982119631618383255258917871207967546342001153769970916474779599927629087234094906270524708758753874996618311727562046625108106373267206970937034866466214627530929933846340732189402655618201129854919786275400166106664384881376088926662882278767930159625023155691897378640617258512241370801593060003465814018802364184199139111227986530890083012471844081466236578431315159911269471971778336582044739396680290812670853676285430301022912231360144578518080087278659601068773885687673140849299394309775006350006681512046025176892054518404530281520881960843981884009037293401702697872823127201003636165075521294012080772200676635488412486239123582943879312102530932822542404439023272422689797787467213392050108366066123790475277183597431693966345154791583981238292882453507294514726860970165138577075430555921023581702643962914451854200138754642709733850417588034887048758266589117473101498263944053635822442325825049242872959400665446580648070581338589774019407015650952662620891163196008515225669111022013695699557486861067483738063352402878062480528783083033079209408905862151517959292034250634368922783654604770902458298272567647203568188006348851198273157132187298109959548409945140548015915844132757031076243216918078067549671965899859937247804839288220733334518997083852080738384888025856809655675640631201944558008587873075545158841984437624706935366488008555725568995919409169474673474630445420955987205952934131600650781522932519766502191726561816147787209789293233072685851891979527109926056071780859434817833604808486234609674202650379632644138550840708265710067300572526465492212924627074183244311088469706722600166981082634671632409357386580020045382038293520502305948676049993436030691492435900208324309002497003725397718927200367358826683265205448488751436459320679274106939133969788381453914552344046728393257835557080616151670496921707157236517905996415617125182719502678598979331795963387132452238541599414918455730711873366205675492413668527655455358412063412469671716761207201057797661939199651026983387165662746489292139989133707415116282230511573809580023910936482467662618167774956149437274573859380170413613587358315266789419940794305353945990152667671182969467782960212774885335796228196033912908746991812412855200635389241573183172743303613609793983696640691327951390756844011202011981234846917583438767202979437903148911187079931823935919049433450447653720299885072806305604952280702918750077313967948548432130215787882449592192598056538939945416707706888970858515158080970217312125223301495171454355818239260645107012683697004439167714692307291760984918382807780775340886564610183727782340906343767809868754027138916064330051442319596238271219547489408453691071004077313717035394327204831530450394711604690042319195992166317153140025012847396413598329447277650792870784072675029003479375254417220079533489255419624162176681180786818312894511531573787781063889967770354542463060463884711670244513867317731564492127445819897119436989520700417409333212738586918950572983921380178689962883767776422274632337359190212610679413026330708174073374668790427549425817480695854120965915188396023061361641807492706044571437338557609295109540954669015519671868656953368233894369765843881478546923238336880776549712968217323373659308099371021979935322104472579505496795671763145480895127855112733792191785131841207873521015378684884727021563285326377438297718386231347616080710210246384997297518572107034150741315919289882386315964074016498434681123030804790687516251099851197743232783235684213775196875975421159715510093734179893466527527802646837794538077713821501778283777948764294342878751371466413763076743674716051137984767910660694607421452167226205915889922254999549849841851624994579437030885388453263713374654638839792393718076473852930092006486548457510939794567611137265633077220523291503882920475446819910536039862570250576527094813366559992516259042984674067081040880187450407386351469003654322886098113496662891199150619205343019836034688249876932440884156741298650001559932636998880523247826380496161707212799671848765495786277842512040029572146564818227374574629055591643959517724887350682005365669021148037118443231699142860105878398819921073297065434995514393774459111670322503510026604138337721789428871619919986732145795911723356852632086870412316163193217617756604091755297531617117520721490155486678138972037773165752656184901594010624170727799903036251508220989739599455391849000897464183543323651396165143236362192110206507164397247453729535394503683376052341470350361333938810164022366583066086041039909511950311832407437852769021676310714800397877718466490050028558986930066190931693029744230859178124744663731466809535218656846121785661730975127721517952680288063345540934631505411075217748643546542951924097786862615770998014402462222763939015790590928732147895364964752171523330095993192184971162591902008858762323402736542010146382645220651509673191187707616546375238032508429638908505666076919280115707988237180304009562791144942335095866499821162670552434759466773837035666701894652250989246392718428338984390912694447100927215145233172821892134061272538053019820777287568622840178455678294349883089696270692552933239442747227223343262274572445655374632854712059587789519954334012423243677485202360235255565359726468650916240781878401677423548315772292402259919280910102353894217639176838212442229948512643311459242943261064061050738152171079040191117990595944889207267100627346745518354000009988038381283227910568992921960023606933102370736182811613773291056967653157166357352403916762510657706469527994464424389024319641354692478367644235946630839784061939959010471575194168215837859651262799892889125692235976301083585035145050504817350577168616763832127677015562235085484423858803998753992397946015812533036745007484526179552814927489519117643604790278581779462657062039079594015386715460234106130808549696607139506923166981194216357214942171288156054408026778366810792776220662609022672877660447012102316407737506791786561739621976726361356185405190273511790776281393112557349990117263675234512167568162387551547203801798923357802870833972935163614616376662507875243357663218962622117806231817459049741577419024290191040401712834621173900595082646491898461369392467899252065242032500293809631603223713446749167186273667112177295193279758131713006116321862085658986960537262491728470935363140631414446564882141061392724892539899664741271822214786092845692571608150584978169354047953699589088024659936711116890760695582077441150450185915378570094380837110175172741339742934760044617923234561756999236688590637039002689520180946758330453414920577633313218473179982364535086626748411638905822072419810521344608209273472867211010860717706606920512028853710929158773761595134488776370986031744021846047165989258328828873952496616140577664044306782420308231368074594534441363139424608502784551284347385986035690344510247799063015753336569476120823739572016290847909177264364686446766542331044699065292566732684993256974821241602195956986696230978524117720178392444709061128079655500300131990637327996752372329095445977169380015118300503206313590461643419078654551906375308026000765585367629674709048563282026078508266661053832153774128674262092837991344702357908692316709300349211466029566579310979013925280326336183062783378431648672309356346394107137290429267795736032238141565190766899991902603017240337457863550291058036969134554428295965186732391125547008647973909696963671837456545791897369347950018626478359606111942495628495493328184266542135503463486040929977313418006082693617598090801436317368059472113389198512612966468150670214523036196260356895977159118162839195453894426090135204616980002155977844103782183231578497336072880746703080787684583249253280576006637513133051173090327444311841601677073534624517190803307909745687007331370869248762616728718460106851341086364892688744917463011634538643153188358443112210531789598119722951668998218662820124897858702076392050729232305350649862150167771940031383609571130830313520678135986762337757149201294660747258852435968906358193654037073548037119666998771286382667039965498798950344763243399423327625392625065857328350654119086011973572181363189332931587157511403692742009075573520664274802272576798211208416927256560534808015180461564689816789117039825063343881834868109931650544875040862014409073289909094487245503948630516734143116104606915353693173165558724804777685718225936413471510221582014271487448851885223694009334082641241339254529803202870980974532477705629001941759995678331542678470197741401203829462318293952217760497984397062615215699998822419030394541769297283465818092418991697300001998213679234582787912153819726065022809737135030856688658749078651092825454750751678749368050619334288655440737581184120492310172681603084295261998156944212787752031081866529141989961114122349639584546919236365629640598456239904581919745842423448204589524893048593089867256486756962650836163397133605550698338763640241248850660136155150079801129533601523746076219453833687745267147433127682375089012072538796524868849157091489774984030681486735605345515617378615123745695404638777258066757845068233166107931586474453986736219340457564746733875566284073842131915834291356831512877815413266243468774337703765535967587466959496842120665139007754593043607344901706566141159039634080147604989866602872885796247762570431312604468625641993238268340615757970250042506532177442593685335936609853395017123478189472095845087862252631974024590294023681891504935718918076083116016663603137135139951191605624629892253517050792296213845583754585619030240236293628386165572016261144108527842618148207580852318698820406304756910457988224447202835171292037554712408611587883498116832546870527214486754123260269438364704717543933524504233283025146816654420864181232755608253940814832365558579516576259682896052542359069111401943921099236413915211630387053688744658573036296958575094294260284792819002313929606650667010259922660803487953801836952579058279169662279175052799416623618068687462147989300304645922368492488985004315183930494074113902356682263364675646193671274488644455389860033520748128088188831143996588415400447779873690454865112929850744616584306374551517891459101101022626778767845479369411904018463075462255923853068719258338593857676839621992178671330819858910905496176551945574966691503528168371689271001000614974132412836876107369413646838684097824276908541605804318931074727214304745807812129399343412944020260057842319219331983553617646331710064473264143303990498946283560234472678900748493851045765884956145799922963473412724382791201198548233327035018552266308885451100801713831602228493345868934421245367020520200943993443718290387612396370432450316975532764734753560794682318799242068832199339600016764840965122759281870393584366706950982218156332310362126569157650588576143524491910468388838927749673001273080413834473372159106955254946815418021919863530533454116600611082693344545654366062348735490446744398432108713526432022623580741626024189448384536556521477204430153580137869793605119681578575829729277218922829153210066089834478583619438234424665331494134562643671389877427291410171647730973686160830625326203997707688153685859002885330698664402926526904876080202360478207096816572579455075505446255533158717639223511865366394897159350277966769810872987427620079204063793088696742875507676062757943668931596610748646886107869043568060343654843419027656153874740240695538632258861561720236014098509237629652332987470146105171688280059980606426502560407402128202257119690347757357514355874602928799901817580620654881274857939004521371428352980471042171567498937147698444434946611262137008724665711386402094760868588485845464368776952787080613872066225801645374294156052074143076028403965153607274327849159703229241203258983517293586661091585966890254286740481015195496000279074307027229625405005339398796358404503949464038429904466179264363774423537865111404828909803088938566440865199575145015921006312780844235229313930917801549894106683126692177938268657622588722334377454904000312887479539906302850429302670524641721440086004129722566075424452081763085304104748091771446842242117918751466323330192298743873447375008967692868994757392662763192918437346334277490820519615750678728210473433782999523120743601133680032744746152198037356031660827499950678765610372651515472203936509011389322463612654720096133111917574809493644406103032558262530548614339247105732162229337930496392873785224046403531855364557506149525187083296468902008261495738652222201871433795405685041207771052665017447299242124620879544971917194375080443934946079716340862975771538914630610929111557923721949283607448704015475283969890958183743234648072220126462350708214752538510415233107701448496505470668419134336387574371777119848575923140005700894558878122995638075554371858964337564020680011247741729547213906180123800370664489184784109630003308068365465702404601890905729417002058502893984137545243207856552367297545026335560820312191395522627761314773592074771979677657048975714256953369568552793221954667753389504123835409428431936022627423924686001010407221349274259587149770962427411494043712067203457308230179835913525407832110927115564833810340569812868328043498025055946285963336486277959492081076509986615779986847052523852577475870118298815610151303605096560442335423525094549270028098240022789731544356393422831770632851013417590535334843282197942694280380488517116237247582071649408883816279508095637808309629964359710001910202873404599490493274369296238069739863200467560611307537014123683904368638567370526519826894399981255904535494635811126015865630923473618846642137190667579514075414073226599688154314542625873155672789616408164195093978415605118520422891356216682591034312855153801437695530029861199260589266403841680462067118810882390339033834434515263868767906372190154842453975683140550008306329434633058906559991068952235792780379609745151899104436415175088641695261319928247145898033579102016907468557346406070882566604010908727318054243608475850226608653222882685474979220601693184770732012355086158726791237785399069772927864728710527268770216505044434123281907548005941738238837925265991677338804293803540895222096711801635948581542754176673016558561227711340652709340727276348315466377776953550403020519183507147104954448005177716780701626940850650266949704451484465090637990332360976554884855179108290593948590051448180441933371613496786567126647600528348448791189390660754199188535812086229302573532991040380946086046049736345309904422288056791204434276976176437967987222270450008212916374283636652732992635102744651245140301993246725660607375035726117525760334269564788603252173913626847884715179038397994683918392322659801997046485596804385946647010159608532469922114469912843739543344162158322867101147845472132545750621634475433081231745085359176470129109189852750874508287894723479526061031594652092712819477165509913477062967224870952290537421178585159318165535018587931364450590763275570314830810394115496351939952429150954374086050822397912161118092167357207104562588204917884299084531928114075714261266144995671453074717782770826232364366773545394178995971714021084047842096165403412821077301689796999169651607265190805518847974845548847098034129677070989875201864447372302385455124592007002832068287184653567184432393936579759246080711428855988426807742580365865491961135929893089450226597770714681883021881817724533569682859966934253593697418125485761491573444054717469115357337859385431144667111698466041878146627771587584835945831280012556510598435919238351967844789100734286927631196809663420699958307880008386241776866824670460482726702285578150557431529359493007951100384797450622289888890142427498636906780295969396315233141534443091634839322739115855808737353048842996753981925292247137897657928104711198176112175382703264401009286671528076824235778379324653428790640149373506389126152886425637090048754265501811016477064829407389977533837774954103122836372421772346912144910134293964055445640664430050285477895489523569345737746353286000727341787534547731247524500509764054701290936990866938002227538877794504966060657074098032530410553022216922671179827806116325326054512163898389473999582152234417829304026407587225929980115266952125761908495603143091763441844441385993645350988099127837637839377419319716294487610980288456232506213805387600398800410210154506215674342832054157565819200808089882623787645793750840128420755762549866796695172559473409654508490555090372944616808800860253058353555732582321649885721365226130204944849064577968844031780706614890722634532099007456260917365824571126577905119564289420364801051596633288989915847678703310412290631574349604430117769720223357636117109984945070329750093572935718670876107698605154123783628976403615798596719956948379118714066658857932674898938997753409473700502686609405936015718466039278920042929450527734688599597854867103081724938015995351258274633675108302324880938097771743759109173395940855114343733451055380641605066013544874787732836504700295755637294553069376994778372110458512262045141859101973110388255818534627783943034473473123764798794181138422629724066258532633560802647379697124953369225103286599234638057861947153931946482415798922346135361516161554572472422027291771466891022082547515921231302973278405581065071237297936312620993053032629349196695941460367256728921582590581688173508353787850066367504070817623261889373247560022759583386220724424654891756145147347911902835452062693582132261442079869888042827086305436392288388673538556785686131137754852683577613877247599239649801723963843272822295485572544208197124907026196611185544900614306343521490799058078107626272134071026393065585247366742376908198559796443876173640346863618713484665009170862564669740152300117114943656082661656697942863900851326585340855747165046058876420567811183661638396761235616959854210018442808018272971724890271190628350718487633168266282779373515404803778928837155207795663630523788661953475818736849062707506852591334285457212952017898837205618899942570320058903181379662365003150786081888509664211539580092527139808431514937222969540761418332595604431725555746493692731561055614022517822808859274126468184562922106776592569224532734417207893076695670984113501568416614181450863721814317417981427703352997679028356652090367700814607580892707085388575928558547637323924492865696443380463018350416209664634416440567411334733501342019060370969840294448664136873402638727449627635922589053299339086795877604699065620421934633929507959473318408657460147249975145574988763489657389378786523770845821718258108837075658780939044911171868510251427888824753513644434008446647876846596696634507775389117592300666738778233890417793401234376720424633082945520792088718781434787071819283933776218379636308262571090767881344489482499617425876557121651332194423228363823274052125701201670958631429881775444822953231946512915591797355960685216204902551074427053337837693963805012045881990833889576521515984983114235079812838164003868455912919549033754059328968566173674001017119456403785547946584383047150313429103549219582611003562203516628778191954487407472293924861764946781689571678277364660404033871250410781434336111056872396405188680261789133091788521858994306865022387742875508711621728857269097066389707544231218990168745069947569559769423068198837327782610404575018648376337358251506834455226132388832415696777279588237602280402088463241623154392538782817336362221816364187065659025642419852876314649384260927873958225121058062567728298451456007836148104532220949833137445336975622978931076878647760011576020846281910680544504756300352959597167189292626116275602289751793208749752863763845775402595365123288035421367230757012673384760993898155774545807345111484917913892497630694359837596811809762915758973680559324159671771039602646424147774821484889896963902802253405490763357619029775599859073662410003210720906256730401015986254239953174847158220225286879988545409211484453290075915682353052045738299284871071002570488791147488717839396676786157382826331604456845898984510494666474079568296783351743708411754010880739729691205063538733899660998773410515940114109641922486864863306643318398855122278680374954339855756304581981152144256790180186021021100254061844318959065558784298946520802724588386026078323998329930731458252585441296576890808939012575830805866662411611346100995531556684841500490017197459501258255910624521333549835982416746717359698046826244871074457426641080357700849543529285634038573064771786851011989653899410491773817651265268611409079387701861351147727654558270078709151344769204107460991137140399957631769301723548450935099140312591038900756009666874436321580941556194102554815835259466612536137609289373714741169542397047109531440401238079085483924763470784044481851981820073912781597523746726131868564303220525934376739088730108831617321332143927568861735913548289597843703572357742332691931374455019544693458739311980732528220368686650450848165967757061219613710837706258585291225970558872358221572328371351347226741084668270347267887078414738794872169722851138777551226149157681640948892086291226101329625563695931997075645706183904819207764858579503160577848162209297651594275393030273393384932833827800375271755269147395227654537777471703852874827871266160673714819667303572195767023641055131723779763500287214923191642601499375854060459517408733915079880659018181531013150362010909193705566196929842914194018951090202097539219499498245097717166614714161238846676004380665416530215188639701067366067298564780991911631913179560313920601771563959404661301770440204286334190792879965336161753177410379281506638209539029231089664712072502486589798269558553313793962467027956439484508101814964300929653066004417178299516579137731568612761568670055677037877418088104588266122325534872108634277353453221766471007594542068572021304472604710041430626544254243336242769719410346248804911517261968212258399832247380141573182699586831670555253866168995426781592772221216756379029741225442605675764075416940392506912968156860741532764665935028764266793556427600476577324621970905159067357143149059750770801142411040266601196581343258088746432550619049597047243497984684602549469052048090414978151478822091075527340727483566607006798875385153882672938429715248034890332149926727711586358280752334688242766707885232747552613112471441420863511281246180489932843907773233581089433258968713116602809772847232199187512990995402050718473664855386691749752220527915893899253152658217388961356971663058258089961817509795103617540717492154810563694943767768589953848236380429326949740678301808355277766461848799279889618874090863919936792904758293321606825805486107211771293732003673972550138998265509056958551065219428133498206087459128548934224066993993552228514115234786685313978121800955117171771509997750650094786542861043342424955864114856015770795007566534605993011831574483122536442613372252668317315077143262657328270479732847310745747902156763197357001397628121269971569757330343660438859950621102938265190497541553161039706294984424062276813385151541414982720908646011484267205410452186062363782279077979970932001888078503814402661673105132524561526527045977070108721320959207078812055903500800964332811200886264896223144925130912139108691837508030787719292879144588042074087013287588695882122947090630462576626527925154740267069114082685355617108047043902593699730897075065911681658900285708116029883347767539175383869630775690371005051157180107230946764045030482055681115917816342120878190272357420304601282433137305639217200472541225127656748601742286053045566054519249483546472087304726031173076403619160260619942056539453962529236965288134929862545397010269805833943140400866636134404187460324460813565853530328989979488418666347476394336957980162619783080880060244071202067612331102049638539708452379064498398841936781427643622890064410116636977534976899370993885936005208039283681752035532931743016323089568499916897958453926270941682650721657140283228544773987502664365752890509888776570634357906232774946955860599429046767524463856292777152009575786887078324814906944221586838087947544288415160592590993440852847257764662372298672551099772992856388499953532205789126534619012942628353703178446081709144098949302435909650334119936612299833225995580917970111434904604015080678128126832971736925235985881061282368362132385645120753456131106113771485379277757229908241648103682168679635948576500328687569137075401056048366330132996984289700259538360986612635285953407909989952370215403044166363160866522668385595836991604601021765170005364234205620783844176044375143751852948090408895988555886249713296004296330964881346296192985676067029482580921654908309842782850074865934821780847215787697199319494339499708029336205868371849017493345769042118085380022337921887548899865578356583901828564444683737911833703008640202376595307154515012579854518035429831520036313853404911428354847194802226654686524090445550681954702383857384078293058144181631716701520747870341986313605426636688039517044094715072096868789176429368275970605375094281187730144462553450082847976018760793249682549897680730571978917180214699203444279895924899827001526568184966858621890651164771385360249285893921372106921093936858709387913614069869149445545046043517410283818416165548639293271932265321180562404719614162141215111975052667625849539197208912990367964337768349286338706093083912848628954811336202656256165796354795831710834821108970297436126581051764422628075130033939664815918462938313752461486493233000530013123891373909701808314346449444427548039973431526973444632510518395568216669535089408960664346749776496921614065582922388958338801693649254554625827029692889773045736956181502130964538569545423201851858754667848935248788624135512470322020256897515662800576081930676667261129033373348352674326305605004849260977360888506738061613600087684087654612794605048897910163156255841516169782562650546554235989782732804889384032067536082296997806882209796611415920128561965130707110744471821644591778969606571356061469369861548939600234164490730143699907391851562766097000068347427498638554497086145179297969220747294269860993069118983813510046812629749279511121589615177571847078268386885360975505929851967679241977932254885034342507972626534182990251107441692176497695280212600768355378844283791769697286242295067692986682997157101526539131244158618584632599954738818483592044825676347152298542135347534499032262557959079927235434959499458021358434219661593589575130465564567515064948650208668558281773838155379836299278852375547812287419734496784999137191855832949184964534290077490454566032873634202590375413058305406392825132838687768033467563895798019792567787028686576133636646364796747770341368886167151697742173534626255052921723499753375971546619690729050170297604253539431619935063971138483102677945541095093759194726472211446068363635916471766346939925592247853137112499754301798612595317418198426794293759236259248788909046944400680658491851339534751101855510991612670529335389784033012942655683395993591469540848603881199138550985238086993009058528750537701236065542359926035047542795683996883445917477098802623241421634974176563411241772378684845469778752445338236111972324858570141003036927586415720966707563889688374175645458630468922048864886103172745711477505372758711555292610122138811885238057792455327311335981320851782553808294875205831874027592237741559724745364426717270912548971433346217885307893004559268958391621331085515217347965288283696198985431932795079099853415136577467296578055036078114287657978166060406357495269722747985256532355270348910839601569702822975013465178736949645847392287396451147820807618926776042445420366195178226760426073563955022927330226760985319544157227250921825212534396238458956340964864105908541835233966279305802327354404595610391762233129547498508651400738053161022784518172146691320162398091842462091846691010295797284336593457386547347775435308111460769067959729091586168874770762671234779353576458238399732070893626726559661418059161216373172218432890001472460337625092352023035342165779688864017109029197534191237454953170094874136531496582430989348460059593838696315247161046015770387336394285071208241459484092517039479349871574489901506473474444615308357324008803095776335697306447595777575753582484673379500808839755321938827621666064261867079646520282065205478528168037897655664374365177387672273801738634984965235685355253186211850267095791196373628047930124701242993746035107925049971850701414254828140881935490755329853222557185012137196464526051596734113162815914049448145970685588329323458435338630619239549035746199650636267902907922942182932653698701951756270594658701384039953806976980386293432851984266253386887743104021517880997499636802443371550814574064592560314336471991909328271246745569190198010464377045177432438086950271587441081857461251228952323528344373928137528462192205318390567862980695089144248777778160420035330226714762724169422037807733971346118983744362903596202814863327328405298424690668710773494957426309876781176344955343837751270940628886560152219564105587137401436141716690537262029494945066202504949030389092836273092879319428414462667316468241222815267439467970114422144692263551015070402581251582254550235739311030334630135869509636725606761319566494193638686732520560230373679668324654865844155709110562717217914537481853215454807047905363607483697763564621868630121693157198455592547622194156196433133251912448393962755073014522133744133683047060168659231684326231245230644634466438746087149242351296149624765246165515660304383181782546872081257077513075685129752881864838488730780935898358353348233295036998746921034019997118301176534134898395533138492648288052903788835476746720704939718709429043696468849252575614256619170693199831555939967774296971883941991686209804216130014005811587251713600934675401442706445792679824935832829507281484628205996189303548547398523482590276712156320228048454276048692176326205994106776612836790006204791084577381769591284918044864039258857940619755696891957890419490106664096000619395605488525371587795515611422623351045147351792281481615470645721613138802744799260437252270849847119266521196109206644086682536510589623174178145050837162567131645251021706762550371083770585934412447927549104773170234220548415812832643106440786518404049499055283779836912294489940845382844742962930083522617298757402502522863129131001320034989350609620467504013757173146878953252572957766879753267439027359806235108245441022729697156448862262010032986014639090791795908232094311794761274255972498363838358016684467762003163542530043676486396060359654453684009751149620777279207708724537056993721519816556537426028712961468759484915998923793192470460622959495017017575152620068340800659932679111883563124605072957672597267553868768657681193599927637553398746491659038462044761631575649076032838938815384222631349793075642819008331882402707519730027507953324977852085620954096611844704258443449974666577860122944639455967529380781361617410039754093327356893396127487068220439803695577966452130467329420990248353891109455294154369302937130289360461640362288727198855226977428714075420627197715932355238241054035060731387490893170524357757191086377487617285045327908202251522020787728742403405228740338606100116897336291499418810586473831661399739799375060347671934632493160869329385220770673399343536169173517673944907569273863535887020043306426723284756729577946882451181002019918212982754072829372368516998483685270494674414084581303497012332681961357914728653688305911293424633435127875168344241958431012383589565945249568183443937657112619162094853318858941302764911108979964644204536589721786130882999677784764303002756702493102692807795627698141083676434677200390775576139875939833907736885403796278113359964460548275518577517729190208492781599233845606187710931041754445810743050103254758345454179387544562169352374698225646993981902961469196155066048430360100720029655907931155754726088873902148876442714564055685017637204639371073579390274148206970435885010261747685327466891454704481684348924800138409885736284988608357645504985833365304360236263183415081935709427127130284832311892057807780621563962006173016414885500993008204296900607166805069199382443178348650142862502324561718755925106296126200872685552243676681119053352889700963135981588559362785803404034365041303847818602914201732589581402179832404437254781817203729375738640053369188661147832860821157705871592138223656423251099524861912736610268387037923116359194559574440044331797631473136539913982816138915406294080858128705193973149331129769533935496812029102894922841950008569616401616212780852432432553307211099663328891702106980082320909309021353314091810410725378531694655914272981306684606267132137320180786196917721204590346609630023484471402402626704296910024203687846276685747557373865197529145052647537414811390439050086906740391476969188482720347158736620997918907999632568857773479907286218956646484087470006849968745815183525619563066669829317309467762632418756626747521688850399733985406266043519774844945858745850976643230684042198974466486977701771211627621385063168395391847963371143279740565712514899911954614689083260743298960449333855797252310516935393206469932161969877314888185377616225253754787261129593132121160094956856442856114171762574200828236762903266224958846932255356859555400880070563353760659842906691980493719222416444679332892240532310730160315570857749205787859279396119205457898884294433378508269069779783110219681546775332226804009133296806361062994445723581560555981562535487443588187723265759119344495793656566535690308707293658986327578100149736912522176849797116898443818547378697462007792258379374970271620117452472138968609712448772896519828127584910447825364560062937449446718997609257841769362980634367581654466121797387540714053678393850694149299474578597965586373850825814421800466221292214167550911129510490841084627694272712279022251066057560813422039552693802973935894668939107003726716489246717039311786092583986476727670996408999642465734552028173583587126749609388444162962979426158487743897734602773788918366420298920288038017657733857846108358035469231296307790782049943432796725835659496623318058620192751951679798351215308534414429704966282488061469307205918374887307684022309514802879772452977740437514649934756714638551810595964599795657101466292954269658709810289624418344239019405625060641464074439913328189690070263374867344720963762766211807682975591844114107066635574962216754466777730608238991684368808406768111185011500550412683351644509397199586053908337335150546216208393096577255084350122802044236834482529391370164596297541249263465782379128685273362721205979855587246056160317007069172765917849785094066627088743852844806498313913489556039898012666225200020821762399466717294007436421223862931172784817484524472862701609859283650784095218668758733293632038324628610561948934193247510336259135169756839294234700640835274793705355977398037653658149547533272191126963706801804143838272650330782219118334222017146690275428683208181235886145916309491413898081343123936769879072862386322982312258065825498395716740972556959106501610654637245559449301028723239702694160484665251921761593314278285508971565764821365624568374247833535335874341528345388434280949009762089992340814528397691437081182455430953875161608703391679012233334530227463495947990068915551527393626254388326756629619327221314438815938470819913663698218551997955601912343000489426133968426553954122080401083283480013452916855497402630940171554569512900311545007816359588457385659879959382610040835498981458612220087304174488190994962663167196342680716126248803903043670285554112223016967420800744935355542278650117361528806533848950529104595377466338134862115140379015654367730546203363925891676582131214469440138246225401075866679374854540884448166868215706564481052824550356341559910697083053869601271972338732810870337904933550250119309973574049295268940928148962916789834902268729293870562249656447186125980524325049658225680622560416664831437364188016692532471269371467750687170531804510450456032663110814772579320682214820066730156062027942516825942854138786094014292395612948261602342840062015808999785839023861627788209448973687178078255110884016585266255177562087672557348680872775321253677871595162135157204858297485565871876228410625196548121226538561784367783869720102905660772551289366575392597356229087538246510176946785618914977217201785856537633136026964951432736340261357286431475904604540536598139908339907811468266267851193481512276971279757516415699754046433884037088344165368161923701085689103772293001641161062192943220242537762689627915768250064334450410515520656500816910145973693739182822018179587790877043015265608481849644643196492203004492588868589103625931179779253727086548641785274265214040212057193131485002106237342113522095133450135980982489919515780121181050412065031690807202339565448600286124252246968778191026873353310371544137166013996211317017140690184544828044024517514513810921585852735243948481503722691790386069804620726350950762218889572371063421654062162528464444236318284626396971915699893690107129558276496064740745831021112348537864289304528325302777441673450630056427100878254103670872327779237443203348623513414849588205667286191783677103068467587254916870328744951990107579641854013525476882744857334423454792615963913721403729528457777077740583293699460190548810146464560927143805483971667659942449870050159005048917661650582908533573290583554886135871385244401049564921484568788441142349143372717129258572445958266783433148150993915431521572939987457060976520556672671014444710957895989745868960724078405365210157408357173274023758877006524743167574536893080219606623510476836441179531249980470666298280172197808759587632433611063249702489381262332346564000386314201397841055940687085714747487468303970657472708242870047368351230896851137057570277469665040458202636516873392894102001372906658934521805644550924840544692183885191963380589634206037999411567634381673019536166006174813244464897840584008857007740603227707731605441873569343477049022848891159801820908912186913807967280637041678696698435269939433684429325558472957896611364593974293541400984688165783906010808523168081458268446826445038050353821921112855519876027054389054339778247079394102660969642857220644625178868989396019511196231875275760199501561163461967148915217852678283637799132814154161778563836626940633267520577317485145296324600691617109502978659010764782517350087121406636466251834400823035280168308228146377111250094088425936993148603464461097273759421812505053191337607616720673101290382041356070232880262246356182449662600683601861918518675868944296474743664431625156001797210513826229653384583726217673434797187320197007247294513003550638938754919434222928328813382169499772625359241601870378629086189105601813452433866669479789355195418445244912817490663922811945943349364571019857921774795755817029446418306105056936769869991835507499657955101471057816674095311607276895100602359071934304306549448674778215730529594987486422745248487283269814981553238349500271866413306915382937764569407853049636518428122366438939734385151386293939404352463562901795038618160533607643574380175412880066281388378376538893993578968085706654268290877311647604728306841756551776502672287455254816059483816796886136420895192731346343000701659149703593827465698961588917113770990529084564113288759885440394980314243471899326513029820092361175015868807029716355639381724488531672132031492190664553790546707954828255117391427127619549667592075761788269655078043629919613794576612074302045535202797607408159696820217031912068648636733918125999849541338947315837577724541806589286448583675778854795680902330153784517265478544687968678868208894327959331374594799451631325269559059101752869837719698643053806306865752759498608876103034460644675999536846927384780493840144693071790558722782164581460234184890387646569256019840274656076719887028088028927175974787172907360918273711677116873536102712115647350518072340178739064387037117566354444764977214806008456356735470727783811623714508467062015213398467032399292306071834551184846303895304125569097915050840584967549016017786373593490309787359363266678176071911951599963344177272462778442672100564779227178335125944793260322906571613521759012592389835499365451079144894036160692056488854116415922130885884556347728645879441262614863094756995329377458540167514423819546015649046268366985099340080775363668454871514543179279624956199785982280666276536505502287863272196459915513284605630388081116684944119592149223747156554752508142366402841407172588260884353728951978806595944756515903478017746796953209374907203959352036517084303926573871455324585000308637522626593867637633804473400250665224935242870933021855055708180310347236913895958915842080162362728398975099476644624532217992124736124217532432429787494025467332244794822560876079946503727747219385355839470215714541496399408781868392257492688761695203793115871824442945855560326469029031418095371488770720213716584355370035378526573899679714034937597307190440022406989393749736615381626174563617217782880141135448533524456843847025357339146282428075388496565956689978858872312328150650336531828090622317568595350189273277430371514676453121557825157227345717178271299288902066940249339884951420008207877346198370634096191817423281591509597204106446926827960253882219281262611491717625129445739581143970590002300557029219981212109270040748181697000997456073240724120673776910394625798714715456647790357722236316172504527555715611796598072155695664952156801238005456564208193522171662202393479294290317251613516978289317294827260106784796604505537949503171741707971308361694784441650318450998103478359001012651970398330499477290954898865946505931322504347326126153510359473776949812636809517143928397021713587567253021815447305123522720005821635907319704288429204628335566461709722921701824555915194533627486149920571300572235442230802875112648418428026511693732053916438904935360400474829059677681728584131477083069443323616475909465136085530754496092400509697300742660905995790581330463873331904297395657809446533736814212381829439717058716316940750885892524365891408274913668707856428267673036215497804635380625809365297733600782034917657191490201409443115039028170799453393795161614280244442833443068560714516164081463033069196305179223098753406595740650274937386320532260260981365789882907436308386403953532320591268562970179459511706470387976326703442671632447578910287129135307082647819098833417246212718883120188294113879974848512383333070724041189442358068312007997622652019234473539110490959279597863404199726077549659607177526728068019889197399387822746280206726247227865522292989483841577463518503946128129485866092154816669198111508548023419461079913122870125890408973230551584480859681501695018099341692396515517062125141732530073610114590817060486464594251151484801007371792940360637000897488058025883281909889490625151697794924772142801293800407442100805003813690821496164511102306293679763942820798688739308904202645832205427513557312053444724697862635432099488681115025511173842720655397699860792228421988427581836028938159558226607317921094052888577717857739582836715780407501046938344918298518093337577278323294083059479217598091121962409825144988458557905110187412085371016164809271971274863355969528618888770507740779689166683132871498828875508973109559404075014273584482091661611723597648255611741105606740726376614427936960299907867581574083189987295072680143038308500850989956334761000992580919210156771390294125839962921845789125626269624128548067542924535219991643023625109939931677664142310855344158293423549358496279540173983014736744080375288761303969472281505397867783133235038241237923252765199666247566178514802495812302558901423743967095223270921076919521756856904289570584900930327904930677821274831005164756191905172194208834225623047841287657013171416312338190953091222961887682306582527291013461648472547345841850439720255610406906998113259342213470161870077103873118029843242465371181557870221075858701435322965473488608814445637754021421484446588614957987561893404437419624982079470865670389551910795278126348625227967584225183929045954051672403770183175205811071127276499562719259979103139252952062200949841673231732255967273373167705550365901672294015768189469932291478830910868497792363165137057589327947379751887156398703317561801718347564306894449915236595495468597318417349731966712975907786519847100015350071488645706407888888449167019815152171620160677544226439060004769071971900419087133897621547275156334567513213830977820693496529660402880733821160304965788884400626471692398706492390934518780610467811696497025159113089940959585731003554453546394945481522322177935894635317183106409026338025693126747345854570606775095278599708821149642716716009202166153558623606835576555283708609853464810350100675042567413402094993136016134027385084021758292192989042919910106308106809381243710228333992040882734533996413991241431306673820821061245916928694483949692624907851711215872220346925347287288235320941120688560747275197910685025424083214523593993975552063841631007679661397939010589866225835384928175849595889730782999568835327007060949780201581008697744980120958913540202730182192684950238137990544282367590939294972329486414355759831321324779174787719421224607027508728540446632042592358795315512034000173154341779504761201921924664845213251260621202323973482991060627472624209763473501546918930570980014757004078868980380061794200676860467531727942062993233873790322256159631381708527771990901248256731904504907705053584636678003503268109275884490208726224538398667155076402652581219028865353513749432964282013778551793612543324200383756281732936972785607020812844289201028964257454078189152858819884331970096429753926513646777788534955551647657884345866785928781107974499515713917029922622729014867678139813884309408004212947085520634012813521938127038263927668881227455946897870938958091535006780335568196320366047516890643964006589917531419367504467169412723196851288604523143744629095368026569224875491996799409529661814644423193969237105707931401413166100393662671632539983372963948562307587406367621912118336131505019320756945233164697338287282575045361285706230036666086707567846491735814149191162125316602399913160290459040260139164125056256775495172170832618486090960326308897683052801615363455421541260388824197203947795125844809058067300329478983248504891264886900646844624892689374334080184205084313185499005511358280085005614386725560315843577646299795016831660965598427756330673981280632923484531883993678592703797628521628123598633768502417043164886183276263535243400076799374380469291953257760591738106898489451161272327528600126953080893400236557564757449606472341609317162978409234710468858782766500307984636900938577576670127547184603620232063438577063448652592621814067955825301115257789383170683818473061010512085721366994850386592789706496285424606143683680952450940088069351437466003921445141262498721806779143239999416554559926130217144957307374919456495905788757048410253083761799849076314000922757240610636677899103224264103166388137352682509147218440700826450869210607637549944628100740800899913419088099546479388131427328876800497261457206888134754302339196492018012405445076078823206294260340273404686537530867799982599461927588246423617334576329486615035071450635351750901073237755360311892048020003004633255027492819699317688594412537079603422939192323954654309602608619898572485801243634059488916681953883628139509674151958352935734505017468141143224454493555720460103990027618666559220221439654342120587308032848903854907986573440382995767376695906337451173015977192211400625930172807590192789822969006906193863280667809130657908792090767860227216249514445802647636179481940693490749669437419754016366422807720997467414549300850090886020736266940591847774612025794595467154093935534878665771988279147643712907675609994199977216439315268402201758141489352135936905480024322871780659343949391665656174339905199034475315150930274656620613919417908611442168755364207561636525356150298111964645093588670499245712028335229254755582177696059490743147961427482523428191371820674397491932122152413333812899071952754490927374480946189574905357850980165001121522459836665651010668494964554797696519376990143833813164455392366646929319892198103975828801318292244517423161492107159069073553791845417338247974430312381090779431213441916473113733481282435881515213291086922519564825565523081410009966477723828624145720236904121354036373698807652931578790444787263066132364097539807422157904989391227334969138391218482132862777344432182365919260490436277958787338462745384501411130620306402379479030632918444773658716130212276350614827294569877797935705273961623739054532864849396998144766342827129605484974708872423688452276333476424207131989674618081765671617868291318719424782927801285170609418516326680763256564297713826631868722611681287553591775735583350953553372391809945600325269451958189789849521103855349696127777496366038674272003982863563911371204068284671381766813875149754399435689371208914481667164331279050457372182006280132677703677635958442505909138680678762213737309508779281428287435772019548083485159731524522435935210996038685403315806025313541666382494036162029013485357770925139940926083412792258454350893122221552663088232357484684139928832571889397520705743686753616376844104110035039894858655911361791371834423634388339853050349600617284002198839404572587558034089825801357006962508433137490019408004304611761189359179501301870695839861982481437877598366862497188596623178597940822108565333999452700574742469206011778757565642332426013287113726906974143682564583494759724295172682400181537699502955569061771955418617268196385321349740490840538238396394382093447191584778520793072253893845337664626003788518830350527519318412154597667053927249614242993773707249153951219278821730048737396665445173237061663006701255422108023193223663295388910800754009734734267488610424903618563751936643944807275469665603502230427944837503772645653381247581717161515867249109144900108199634818323722763279982489102007660157302249355872239390535810779706583592583457006975082858502923838288034241899434648295953655249837419294026676418529480888475803101909090601163935305761173346677014378831710750830110478607302004098278083131792699777038895795974890385564321963319611969786347828131728667839049061764890519686246375550654289610220344131232402068410985460606578087016617190784647525907641373672038532297371458846831412645010526816387086961258039088133393288455329074205977728585536384556015120199665462469094784896198038119852896829448684156220354360993609283558646979329674355043383828724832151533801563151515182708030003150794125451988471353484143947255664430346903316681695337372789520469568003192707126783083468062048316492132925460287132114782899609475558103796672745227836481918824428480014929961356287564978281480301615987594406566915240705878957681201760121257957583394287077132982015261266671809870209841312279368842564537895369936153787247458041005615601008536104171963409677335281803047033653292623293718665102752952089515757077847679607470860731600421335073519256632861922885081789034907374034967236176334401321050340822291692885959576016541286618487179198634902639527559398808676960183616242262862553943421761200928377106074666238216337410064871387782028230111558168758620341727810380232029252851073300011351267927854375463545373761858659771887913211072036472217028871969652826963496545432137670377487493449031346281690858333899757641778809267961565023824683519466456965408210188600386042460726370976557702551738200737427890679958044495481963002990395747831121888500431806107685340582658769897461984081783661858924140226797907510220458384229214698701482849206865377474614277726419613361565241019087817509001201390160730222380624356450186819768348570502932272868277356982383692255546104601471519560394807868020327413814296038457224777449945688903325511373925289707265682818109255219360252497268550011319689211021859123991690252456391474017296302956189167973614458161904468989981806730964130345581360942420532145769340322414228477665939524990362852877017540565350802909227416936041258847055742054121643474303266025448250187674565220982860964538682577817871339990256130443442603401870207185920018036616441534816417203194061643844723894008167065559242358758754333468949083229913836604983455821082579671730330775575402058503435622044482516079821344892529276004213828365891613716190755031217430291611456582048070371473689143763151881461656700272255249737073799654133108453925212532249511985324046101574460591441367705637763159830083530334550338406812867856221057640966368925348234404514373818576575391604278871051833000585831970115771477901202671017688304945704925574003505292477712935491426401400896020537921650985099064497478672123416146953576462345451848580723672617050005585324847303382667751491596482805324006020257833015177718091346397195206339748849032200032350261685193264942739128167878607873528521014511003694191794784259109385515421827400023795352181894104974634852739856805779973304183360541034396562005006167296002932762030714217484563373035456677362756677064188480464294927361396828225758033903603441989267172498898055390365369259189282991473499822042861515231102714995132382568639759879799110969465381168522434948141394909259364978127755555203062519648421807050736867566698511877980737177252065602650629513571399016538747411584621859883734783547956773803469745557752857512314439362735176935528821413100806121939184451192540678358828877224515757153282559088331126852275834911253868116844227260836687556281569743190560835420378484587624693403362445810225403516413987631763943069317032102998458258732768533042012367533521347530443448223537185183151536980801878372918539819455577678225447998239688437092428205601800967971701555278133231391185796545385817956768967723815197864338366132755171093819441242798610860269000140011955365681171259629008412127739775165848863718824267543759755418957952838018678025111047647478878582514540640887745490020283507135762002829968235395006754218266578690203403169327668116369557875963831473491892928159265851156852037415449972294549718172987526904919665784116327474040882133741959331616410827798652996982939696394490252447368535660051197385652471426829130824509716071800931873178103595582157229528778677444572125970860140299100040923666267842504691133848902079013248485836675843204900119463013106937741236122448618887974938455278298871178175247211306938542846534273488584340378887899348151988876085276334507334150594286025588908767674071441243784852470270330467163150470847959025806429068325743387419902563822133310962049727509935551429904562025997836086895264791155250974912780316957782032468573298314429198472826778716078340122743439749085095117482709281803795943645622818023865503020763075089671985372326143173513080081826570919253308752769777708249430087319943845974314674092167389816785046117256509010464097364105343433824820063387735139667697231293836356719641559635052526561828875847625735354138746933390843040155521770291008803029107200920151036489103074377111109366830927014089101865544292725587053394698862779402676909635883713495765602728716487447928882309520531672626177514918806838668949711142242638364906830644292032898723939606821162367790654957432886271794964565116316053311130644476992057958454911694289184823126311078440092875595825501467025681474990711661611507459945383850090462496566771782099595204499688850130585488448249463572847000667322751375789279126810688590036061446910389066744214852102302861191358441012435244600919940576959283021952867123187503159281251282799239429535202170976560628833843595798911611297214135412566703290977707212280243447789062069581318500005991017684988853292272635285005541514728587053477888594771758420230731854237403855090124375433887504550825354431555615606929563011405915097590626165862095651418739834446261466685488243841123029930120922247590045091195084483198333490860325838166759892254929708471933255970230135293762639387530137025382602202269077615833787285959154651529331286377994533309068149377622251012457122205644386481822113848019050130965518029579399326620716812903645171521065805207381176061338578546949967344016946677650469887400824309366506208268876415834179144736744435500274878228739411744267121340041151818167863056301066419840916246099944730001099356339866160238467592187559156216113597610220782409991601204800019572539076366253482695892885889851048712651168157137540165178219494310941530642015481698824631975425553280350935511269938960869026191981795455572516059527519030546652229433501815612015012442742448441346622629871328518205088193376872699546756154906164567911780511339829525116742258577798508547864141070863053053481963870304654680525811551435506161057819067361775644340997989836984171478959747073535178220850150092254985572848176998031624089867332434708553501931714051248560074826347391889710107550115733987281717073394186895288534174564508465734292189782532594027619350333677345136441104917390093532231388720538816204938990894260337093398025390282705543066264868476209294619252919496796717731523335825580002593629232551317518923038110517705727144194923509549434617494967359702527599551576891962597635029468217219103736049712134102879328205018318844360306863621876969591658766424809554780049722043677656992001311174806126963113747439410874272123211103459409357886246445737541062831194164324090904196611462738669950321160214676501746973219686563004256834948915273524785223594404995677911570650865927958550011670005741035442283708278848666675999643086294886179344166385925082356494016169655808837246882458025342711325774908373156651528212424323219423002851929601944334208759879994895939790836794165600940952633749585132216801442196332824650369046152752163605220274247240618427879387341320444346883359602268816209845315662587590177301708408137441240186596548731899205553729928260661080433852572781389718399905753406430947814867239674987454318268339504643466466552671818526546928428466578714538952581368923812677433152841107329525133992635138870649039406834362013724506772262331384502631068311687826371726294328846688048270598298599608822334799596822191953056042524762833611654628365432351163941694606356404392114275041831843035974645125672093561975550413275377507408279422465100636305944399861130220227509132210267313038714426205777783993029697380298741209801038693698990616180178726831553290145284739097749289549094943730289273470601421248144340049546718101509546469050961081853514386233956973680678233444747380265746319876257713667484108581009979597511896689561592176378904992712472858092214117649614298501833894278459169454955112628846013856984568867794729470244244769659523142561916454440865193405830110569722154781931077420530866235693207361320323853332400647418527645317328577080162908950505435508405107573591879321396811123878785397421649340954634638670732221739715682760608522069135345227303080940294710797046010328909637214057325345714355199475625594368318530650938170339499555709065638279574092471880837999186745842382471586724594738540454163675203200300252801402676923328422975571018106544364025113597402165696024153019386563966398260667662054997792141388470791929437507506581217276962613220929718724909105488296802283358831415347079483660282567578866975824701866917533516197682204979078563373582543067480798773570676977247083810759629423944098706102269098827192255965477102937874872354165485787881973381134503838341922756918514382087381131317433440601172606848698616943283367334596629394658002154286583515946827146507933104111060195102607271723065897286115015961236006604489158320466942985485095945062489059443520556730963553718208999486084458504308173979783728495753662717723622235196069000513746065095854363737746491128392916345914656275329162022336017184822225902184823850769563388213211736381578771260337292566932661198332055553919482257284149204035393871874759540104625097156875218079715989817542700395702573378293560390005874236905130229522822075581416286401355120586073482137310089230425840901893043205850232146020660176150513614108199686475586033374214332752609810750377081923738293238652982197507706345243480850571146785901870344582799188496648333918940123362040463272513394731185177958956285332065336291196381299890588564844651168069877421796419474465022952163843698850927358763483463007591216261831377423219315883029017991054232683435830025216772888835283271144501985811974654422516797759737515506981469365782364112563800338163282172394203080137533314523818751492498446587008991869074415706289314050259138866116218606839330778570429183741110292848649625146233583937538801822782051364505095707158594566937802065274476143381491324822903916569726935191660384076016964628782728765496173952095179544133977323733251721985567471882456116375912659854497749891376682731704929365271876490575376807016762473661837873193957282984308141207429044877136108372975412037379879580388405893086006580871155746279461613149118131916223239929857241629653255163269726113833045428097239302855234122820407421258535682008488313405001297719703966408262895974327194172016537177167467544939516571227427737703710187600275287691938557100393803482831684243651296045914101094002271867791474887592182923149276402157960709261375004941358747928021519725311411355340850146677118582368258438409842233639845969719385776660417648445273864988104436540265916832760812637737152032917678301828013146940715674324927429397754136263203700791878889264906566828747692732009011371555879482737992529781967983305764438303955678645113745232221083629050652817589190037555002559713797541909647908460634464126563715199660680325929679354961419434495140135129252963781927624810503056796931363882605680612512643650077298005403694625338461710910990501326329231453204886695108639641584771362262744165734296064789710155341952064984286409535067785323151806182187026696189116498987053228693416697570621880986746660265618793486503602283523280210360331340529900637046359805315098121015417003828127928963138033632381515810775874764540404139860578750513958223709623685725927537180249343449946505453493739829695778979506361250632813960552313679971180153119902011793702570132713061545677018031966889794470677344717920354774867588592542896789645324027159380654780167400630824745542581849745157221906969367953967084489033136347557884298862780183953719783691399338003749979126288280233932480347153335758777784918536701013272574208880894228269062952089605787182582064507514117518103255983324159684716246578872667799205917056909307685147274370589541347129853428307542299155474360520991050796380999176842621570989831869093009350413471933174333164742935849597947079472860491095723418398585010892894716697217502864233103525497218224970242130991986598375705165172217632233333222168307083595334364063860766237470189265664927418131005916938594951693482302338881560283104008778451361516763180225957571724119717896449546137959891926429436707337640613513284773512149547252300197217454997005861497153513181947692617881377953001075346305290464359353811513618714756548278898300836981580710892173997408425272701937928604687810195571913030648255146882110126767893034235883566666864253650448704088079179241924424226586255697828372224955037366179081688522241172978955045832594617521102197540646356700754900727257479987135111011009904387653611139915595214168706675912357996990469463514147114487011294474892234582002735825227087146278632379830730132565493339049731594285383984771149046337203567377704104755800314774692139728382198382808968120118817855431970118073754072631429314808449524385908057200648786562255471905017209670715317045776390544701266690734324794144852054239917992548490002337328776700089176079352781993847245922466959186639940685259658084160982012326082209993122489204233591133860103894068798488344573353432341313472726039630328525380337257761435433382040433896098624593507811726867573402883676548062340404535889908037457384079924930942371217705363370853162185988305285270143779785933434061811411073095030815139468196563456761461054871543769621663160459300621746583559633234634263209671770850407807891744267616236441798495383115801084491347819314236212790309341592097957134289512143410563070290368622926543573020452606568723703283714598712936706480537957731975821519240246833570028610262491531893396787771736966982997659666496484221879007957269568250029025449967447753993159631102961285217397325200623296476570084574946415241228410628936516676510384711620431923343627731157996616456905573710342080313040858180755486581285528932332332166119119767384773431808457587807067900082472315632527749466692978001639489792552288402005870600677789175422501311829428792280106589361579052825425781665430317046696269268996259467361543589186856949648470585986369703526405871595552655363005507271384659057414295723939812844391160376759444857384201094875848024733754010539251778368317301852357112082812663807976172158296150518142862971104087570073312941045064177132293828117587216038917771774948139515243423593119817509672644745328269798411497104742587368953818721219992466222962102968304274925016634541523768121553392874816532997785054500472721337029771164169156643214616049727951800493253276213208264050858531070896807745001765327970719533543596834169114436087930733192045939072535600644575170045176054620593269235699252639757654820694116038242156699462515186544809503348096581304121587706027550911503960863319176095388957483649689200661851190586475371935274372255381981272317582979274229448045436174089626981272228070199337247673987156771604157534835860580316983725791728938502972112416535743267218318972887000848281048207273261792950420054232201861205986691760969593052030629549786630804065135900935557363507488176779266426918713979841261301292357468053017273994036313313488352203847019434932185220352184168027715590335543209456281984820636434245791787992610476653852681880414075035850809961821730324836638296694284699734112560504747764861527015181766239551818971603723447210796609650998286527469813059420371077684523463529505833691606143999792935841117124479783228959010668169014008508620085355902426227031473417230008744691566426616362071188134497216402348723729847649634175389209596875432010105064112079843292797958702409763161428490724338187541151113926131511168253470478374774919739926727944724853174577036227751447795616086800362912870986981434869381428301447013992520938968642645811551279718684129604563429760435353000404367053765695877722988960033812923929809452337028628230409040637739322729851724157544917788895214781108881166164041931246858844614393658105999533150768044321930969576268187587202057970897915485459429993693287530394359415116664555808079805757832589564654722835114369431505852545882936567205418316293057248407783113310341330386442037142998908538114173513032219888772664655310925491929079882873709355241616393577326944691956258225869234499810611941273887683576815471273279652080913958333497929886729033818831508313679859908397048851883558958277577054049305610565534849900812271807875136332037140630032336704370773541017286689245002482018097317943779603951715497975845904797754439935616553020288340941976319750896922848945019058742723137439466136105303895543696370065872350436100612930434305687604272852891601772522471850619396968258441536501754582411133707809803498365022655275235480208990911677812527644471854196131538418522806042672080148354979180766548686898987301727503670126171927504545644350291878523810109049217955136790871719303169734707452889834349909872449126019619167945213764745231442171779369494446750351019806974228890477555888817827075973756444596586982763621820313271613953265031050409639550949685893372685517690978853548918628039090787914653827333165434792415981895771479096200527605901510700498891536402066305276271999217613066177170674467038348744954561490182933782497960708201413974619037080237706196074706006191756990632221821988810866398103402310192751224103614903903940718397360157209821879865421313167684204656472764595099562465895533551655159777136746997959903767836654328639696162339537917525747682810297402238968248953780066774418844958496863332309598370309309835221813864358481832814816471105807597723172562311665083085519592246769925177984957153553329900153419764152969300432554949171282472570763877317153425262052514263452098139493131716649547103788401844495627281100790271689236554201120553130928192330046757885841982314306698729714034613463334470312256974507858576289176622640896726244359171652173200051879053956053428261859097529538187238885162125610920151032201777726332388698616344999248586766947698714419860794219151663644772092283461170869119066594550580798864390067596107674379408546117534418728544990490901848953438935244780556842162071124279155816201598227187753098551887925298118868796176583584614269154600197438745571094369905756159559242765236433334580162851350403526329287190028194042449975054329311788578548011301299737383099130494319690428765644807558310917435789377212810291868371386917536786850655957723273170394683756299879686769193460736377406262043978803169939556555868968144856309038510891312842006878466306196473673872910921643794271023171901908377725522897051091077805180549049401162409989743984421223929769498618256257936737151389235678694586961456004407607287325970534220973863839785258943110749102091740511958176525467350568334407149487993393713221985241627737927558512361454673815996772775150031678638185152098169045131234032287856816551792394356362945967914473258564643395147216715053984352159459282961351953825965175076515217611305044579771376912825121577608918826141540426229258570006259384261157642383201000910775055149325831254156082129080764539426790191959030309846241519622090580730618313408722459354531767389355161378641236068425951004902215456640052852901135628283775960815939125822493402793464357825014536598063063719699374479700256147843023711909579154690900403436155970365350154416826517509821057973647076831112319425007968417628167156120922554762674341471187918192003295343964349323008074717121805706480773876485971040844243298632929626778597909307033614084982420964422438022495570192967031268206688199765647225113427136548604216657531525967812580573681139797157375593509140937021393585799094018670674326514570611086749896219390533133251935556662377769440502037521682102725354113820138230721720144558240916625654694919666196035298531649390532342886481911496282692969900342074886972723020719191471632107507736476478616527281612181755295270874945424289026215946134725993155409667183627621439964393956194060643364263257707576690415824164008406447994949621055328106158782539102562074421601881801368999967769015834895670842960305934016594999523817433224499979843532902208530706105420536295143015297222706621910530415210909092895088865352791879626970111905322913435381065362022189364342932027899538246637724251687962688315155895185042702108883798658783267264865025818346965301822263771544958274879608268054660219869335696985994334012962069292073853514286352702850222789028254944496239536666847915082123077297226140980329330525604012561838319571074802956509058330374746264676985613938235565287212127379866767090995588874145772197928909047695385686553882688800645044497308090463923832975884668933674465951282914417661602317265182297836398245544258112435966801982691510605236479213372981198640920805014439484748567792490269144492083600370613331525877837182450705917098919439955659331258232337864252799962902998055462715306450901570734883320723727604380503077368786569695648928434020822586828333339251412749451593877211592856209932486839448446086043915470043494460433381971121509493897115964700806985946050272705332016875990360493039111921201447651753457615625570093583364461842173061323364582686836787561584148729979966232543763912554930031903341539760364422108034467520993832355358313950264782515411581697466376759528348644547482878901790120437166012024248685473619715514641214662740248978014374026829202978965637263378806496664708359175594671596526111351770709351749869713587911186614441777272452048595786817887381290789207399793317478505492100694220547723761297768884475821639955034874034330664989020225288336555375292231583471266276258788310978310932751482379996095783872704152250450465758413882456191115689864824547751549238274935588328867726349612564441060545061712755579117482434233902326893601388783315257702121049233259690080862205369131707716665503821289904348036421257566265505291534685028384144837242226230687194645433822367882264748851966256046945613832175206712248423699653251899591184557706865503949403712143693634102324147134732342380442510408864675234913488653567279609218978746469031514699579674014779245481623884197347563639873726509501506687933809778626070228880587689829093481484115992943243938553110565621135635454734502164499292994847862063801628322948107352528705248378681697972330975682835431946175274837799343806712984651099435678261096441172970073155383505960207533177157287626992563028966258130273948785080150134646378258352725420052155969366429848685889149902490577841292339691730024865189321650498209460747546525287132836484616257996572910340163202702358027727543021115075331944875476088269487687656253666421580939375262107436312820027887768757935298384500597156484672633180534963163683336565904825471124899741992227415098129973052682224578659669464736153091981530203963657751552509189839610255731531833682239753869248269150043815968578035439025613999967079751051004739578711293179743920326717719103256906392447541375297631767571363443502227261450036593422066630509448468734066039308524781715763524054928502704913667845725144428928600173552209589748151441426648260610239782485645925981318487914589548754823601875165971259021527961671881348356050212196828685823318573036243919910919802720390182122569718487401300247571673107287788394370403386146612594066038335522121466222436332030521479020642048528526230103193584369038607817994575463381790305048969568889714032921099720782830661524929533941381433080021888957984443090503490640835759852573142969542696865385010066966288114492739291151397019216402655067836491608139910593668427459748632520360227546250755097851742395004194445769087236885729488548177783887299728701613502240227495394871308251014434749115717638293149212918527948114693500653752169284169697674186530240648590964035667685175286659517294711728804148288162033994950168255341364676877066435958701551353890819186490883338510016177784721362460784132272217432434222148358068698576112344285251748992506157260883288366257837485547527231652342498876549395937946299965138773174658561737097521526200521452317602724514186483874411630790412793998585049908816102555466430968528153505910787937987492685656641229824909631507987018216801903982668671356793257046810446002120294968032021145962359761998269100840112539599085097809644912529247603149539493017429407391535221531716558112734063347928133288515689198305165342607161712003811061245712057599878030604671723661123245493060737347236901972789459051775949363440538463696346171882659217096183899047116681680803158865610952692399902718154049102090968389996399551989602805729024172428663258353833993142522966631072518132340096038683775491704105674906702871739855046322160724529085537643308812271676291961684901420784593114608156338695975275487702347699978824595335955661037319199182495274950069851874106159313753773737289262784995179621710895050737157789760666946111007067011847980621141510762998415819343065749536167807914270894554225216196558972193105622880621459970872978747720874421399138714405190774849923126312906999816666448989302441046402567725207538828846286932442237731864001445012324382003311239341370427096807792454652104795105385920695436377168432486963603771936998335087401276740435268207590451360494791244694306195277318586212091296148700791262507047857286108284257796604986133139063558215745520424016112949556899137045835131141125901652374465777130683066789612562648454363600215809897146788892721424513961364014125553935493588240806276722487867196366774986160117861870017847958896194710849815898836637252585433261838778802471706255548138368327890501603573296203794662379292484878073375661437107286602723741660156091971082453309598437936442267871979412293316564095026964081335613123198852167427135597195462178528020573056479887595889628545730492331458453291878356697441841280020665837823133512322436278253719492621908625105808065899016930170973449744160025642777348511943156194162747424295551641211549729758144046369218560162611838514924876200896050471066220079077119252520866691731396925140457357762234471826158869575519620851679501885539244540892300961381643919915076084310241272306413902657128025057517076795775201612942319080369046579114757630697979982511728039348694047247593059893126046813170728196016774316750213598099283926326594306417779328476680289464001049287963654062695092518681616409094175584746118009353011524602793374770018866106690328823980919745258329418476533218494101303560405010419188622642950939562546357348862442601314069318640261998430573181930600181149858687867954450275650438041769105434141410049701188263766776168483461167620359541261829363046560512765307263872463864481834930578809987167609560610419357768444634804485209139035641603519736390909406778661331427772412757462924898448655187286276553396877742111944360174198448383117499003327343079425179627378120943044238581662112710809779096105446296820403445168992461539093259828239197496777251730806510550180747071237245498028833521646333656859933880446735191261068191583466422295364807170927521832191345743380855254224555493006072526077751143195884263605066188586113315521414396072894097346594502233058557940114059168028564673900029652183401225019613606967924296304780711447858528839461256571841363824273101385863049915828821620978386701319350663774035289089365212602328410904296409929167758953436859083836473184517494970788269518408401063313188918753253293522575170723793296436417635792805410612396695343199808032745027034812046043306063816939007394039313401835501359676351413180013689649691219580540611470358706970957099829869730339549125557340779835887552436960592795956872539044255546101294974718641197114072370045068304474322441830014589002257774505550588344039783318003419688673362326249956681201592187491590705428068926718847421835026473485210529746850170156599067203274993304073568626002554047014999915379064314499612482664615731950817571430280236017910336081458149198030556035106019034680308330129630486193684573002664385568732880560030717990828899824118126858751741173290783904706469445305318417328382257565476944304287499781454999074763632379986876404076279605046460806885409254002509151440820231972128762159056266307907628894345457523355706155261458583051494028390411095164741920820917334054005649260900480696519511411851503447721942429496471257204041597171983294126294460367315368238631876729158141357794226278884032362222820494538662005522736811541502205578705473798755773777639963929464954781538948845756478151285160234302704604443067990394123592968319296102673630434024579953815899386048530230663496303285268937058965127851291225827463608951737101399835718849087547901858122280445305855003724961940111779639645086885994252889567873230220798097404053300873316010011058917212940563518278357411066898861106699634375927313067342618860925427523888664320677525746621997622867235011383993320570500919145211690101527751162589560546605501929903699075946968731521858971036135328537082920070998673571371296367380330163829624283961319761493833608691983817101225474262851681067793867164814723283416923309387127221542364090362770547806309277128574196934913049272646300025384950477019288351047288187358880342668866973127569373142576407674064819859605672623736227602290502221958505074913515085031810232338958716029162411427150213944378734018247917727926736002397091701464976697418007789718984588507334496119133052426550914131395962327717154757941514459493494441802542148187156338310263866706145829525328208994723293555927436193122321205570833338487078217023045761565589208452969282763136208552151750503883058973667608190813923253468232608824766540966198525579477350334411021125690961007388985481088328503064166077938546923460806862111035700176449705472520833249722837286622512700152055766474213756130417122563690371169326287256777300821612278499848266139244493775704563144547615314358007451625036425079833504118082578276989546952790162044811265541386199031243962822666350322230294939150157442914858734180545054449643105628057802164637279788942099181963696280980522037858271842685399223104289200868272615505219147788016573959911054443294968399442632020395404931628205260554722082274699658076512496650196508467005416708173543008971378886924401851474091424910031281881998693939053889228036978903432082497784232653292214881576308565152826242074697265931206268180557801410880632098712839294084565995786321049242277748765523477978263652900108708221008351401862046894609907334012453169627544844597452103287417397857789429872146395736926929151166312594241208436968605000215342799656914313845040684133295357583815367493400266686973481999205658768908517084578764800882804242376548995611903832132030782601159037151047834040886941177093390196433968177847968762053611096262404715671143126155024461781834969409841779350776172534263273620894267056076899550965903170534788746282615297886549892422308177143066717586275553219091352938107388927278976113865422642594169372416657375163678210639472857924313385365977881638523897804577407712598442133365536551401381885600187826855548358901143268487167185693848884580867923351867440626517812226613017787645216457175443137724865387786754950315539041015977282730164099542642250077914369287882213758243737361137594743869189016381760976710613808855292244244766337849727363764851795201055669374046356871541252916068912848513325833663066029466228883199423715737334343139708705025477904890057022348183931420899665938565509072729832916419077351279624294813971767734804490581709832379765321471854247762314427498456649316555368558420521758916630172535746097188537873500096635650745352534901933613928500511842598992376568802076735378584264790825229497797379996224123529501025459795643188680131133269800998549156489375548529030023393755550050296315937635519343064205005590170490365302808440954039808990434794925700655236334513632502035274885839377694966717236242316033153537061605418748650244597602629708389383598182720816114875993162388370440313585893255721740229473946359695016410150003828954836722712283091627780588892529081282215267947198754497881540290578903965821780208159950725938092034353965785636674425874236373687418968814878547094243745419026633998293882275957585203813926452929176177138639081798813187613130304383323541828656701777572535152535037019781631393385606300941198362097885966794886433375346439815981354719038813218476378553471250952554092726128262239518889942573822537989173713722292618779652098092047522225473328968394571677994665145345219261094348185268262499855420229788468554558064108358726066957640025758914195400739002840375540834307206154862343431669996566235024367137999968523872406986367620946225799069767514075088172754501964058668165717924917746021461319755324256375334733026883177503472629472942802144637546257269485631029592921614072332669146826712131630867993112252369763488334237370561314988135447499004670079721157906882814897037682100634599328139774868188631990763861691127009855566484259723526376564853617764206599993008954691617387023135161823797761829266369541308275975393374028485854150463053875787479217434797988172657915814543530913734933407464499471405520777528071840085812933533646358186871254523641939587505133511011591324817279798798859694204646320030006184555693598706274727295359852348905228279518477491735376853607250758435687835298166722192832968367033852586763708135897930592720417573698064737205213176189895168994150750617306228979974592126997592799325043657972339710414360093578095884161160606022452116597883886921888245712073707721091327816954679236641921167441002722491432795725165611745522071528731352093621748819417849934096205343892266294210308573950846110264374993841840505751544816266483333577103874038271523011402698176465975574362789279276026776956421348045847348560341712458708688508742030231351343850293180223683321890795670932704888015264686807143670216015712857811070269958980511566075096736781381673070344023293315361104327764915751990125639663889636532602169942751065482016229571657474829970012021715866507017568407312971278144367108234048978718140277855897564555354019086539361360156038641807360208433941085261377045037031173781789889825942170829010024500773050459065068019330947863002843687593446793381473801293488977685916724599008731176982184257808326641842560672226605821842453595470300956149861993817279574278422646210759736197114641940749723112808258461752946667410673164480521678912649739422785025286148052655846578963884416651472714112820516032491636308326775027199613420408202637893306622524317765782902785466870319668389251351964674819400847910780361331258246745854373882932681694208291657353465579044478376219330108180762425428601445322753096850861733573562642187719372149225052478303587119906626038101364440931096069166593188307068544825385755072413878008676634835797367827711238674955311622801793707037859069843145236936825079991828932520726218462790510483489780995028970901898852252068625924542266376138843090417832985162307020240160829686259740727633355075081032835468305068863301483971349848908716090022381937431387696247452636904160351575685398381642379903289977849585439706293797363063244774374875751981191851301727548555816971381354412295080490450688005085984708410677648505470318586455053499220317028904179188266743636020966371112247579987481112779730491248688473589107291031114955647673268921902635705945530568145535041925516714148528514490593003829763943368939056233396904056276431237160163666428135020728982383497041068781134813339123005504864885131629635893830247536683472334442084667042780102565843946924475716871169473541258078004882433695872707851509048496114462637527660100288759920687124311952748303220963108409813530249320300420555633030540683793301618836930745268407380688911912332851586280247950748068733581698798800548124913259748514161156829326330698873508646127023310442569268566274710133484555576232529597911317368342903347588640702863393339593535716984418910466996952442760632115578653071864237225834995643085675809237699896095047799713839341015112024978541884221287395983785168629786558650715852102028084279105442520876075162679861738156662672868719907037817020407544335033472473558060490746685319532232960814563187438462387511016088544201508897067303146950344805041509939294890278963638349684630610249771767171790034263332341779239586515222354705046223950806848596364967226174805678043729898132639824047498060043382048249462026554880629727809763671591778604121202824776481288913551727988774039973612667856459247819502806787265107912321704999407858815478787162363216202962049488661673603295602934561016703171028582700121422081013927378023317437710814956016577549161110331903126953740533272187565230873977624352795065574889730329416482086825063161878229133388300062891004750503808084835145766827298267301368796926206961032488878228060156078915889293823188524144194438669834868968142156584504490178436637938823969895964584249586707656983050849296233547489086564343544720246535108009143899223621334126558211510715332157977714741092664778972325480728512617539977720158850510551667506593701222618588303338071581779233701708467218748730446714544114358703532638317755565954990149628811465206367761368751101480180736307431392106631365970954876751398297538862334952136267966338239260698834082027401030132413089202972711856241140075788538572171211537733258278591967592274457787087859639088717729758488762357966138984620250297384513942625798594148706526511715015328802898991399896683523099495761863804184368577426673394270498629149741979772844504475865059392240532863564282455395874272111516330285864241734442603458815187056791468508040652841786302850485274138810678886818006461933041240430027477606074261570896507505532124038488165404253095492920466924100954829835321627807487257692930459442956527958666120553357244218642952460286193445299438140967249561387382604902201125025759943289071623971930343027427956995959293258165087252763133728299150804202793160567981382662114759079799700526803494380559127406428341172589929633253120672546712337656678115905852728226630615887787921144205255538154281980308724994255030188878179298414612339986111330279475142574420985436726310261287277317501862512128606548353303018797912979835693269245982710627721891006279395532473178665418665866403770204919477529473755797738534711808547651403952611028340141380234921439879583324621128074564428945949915079259723910992844103435159050093798963668134253979283387586412613309336150097024425566332621552523221084196574667989722099399036621080212381322922899717603342052895193253616169488240935958015124105578202240417992664224858806472509812213950380632452634352266914123421143885867503095531592024157201525948343776826583348326428893373913194893223214083729365106632944436372855095143481741479855412841741412067705189976106732059289581363748188382458052912119562943752534566508194933760911410681924604645105081108898775832565514006118593523757177205298436046242997390629402501768688627354560599278315775687682391137166153202708925353988686693850504097746556625763305346384096853271052782472649345118113118872476460700021888861854842405294353657031923130120065744978320004495892177953047317883006101475599731531618905372121139493850296856587119021473301225411527480025047515484089466722169780670592266449195780641541610410748393450752119024107607839941821125862992982615078139365988325305420245186960541613293219439561185043547600130384393645394698697637886832584666040493697643516340428899710595633947166674885650641252614902301301969588911180210929077362620404946172682980893442927413933891342051036569582121591280789015574079263977065375748726551288500841425163829025616852905443851766415321887710234378027294603068551704065934695478160701563384052580862881619626637407910915566501759502053811469694213350296194306843640328965789561571578177805387979840831841708608269681123308312031372029093527100258199021646159208797074624095781398407666292010559542303330739514229899993878692496300184757955441991196820822333156873989064501744782328354064805513276931938769587254424621816649530032917512646827281755131638145598043935749188471630308475259714486895364306267333077124030930546800885080050899391375973640055801689988525991074360507588141793466786428917363176775000257381664830194022107545044891426074120407651235035425258346216049927110831326289301715083186495741305154689773353910263815108057592215502832640886908425721596663443548365618983595458420320459346277705422282076193787536446667708286152932105013283252922609979689774196115038728336474940404506870619385853574336853304699662889171755542580773039799838461744033459139947468847212605550954753842072300896253553782670210618312559947229992800681402460923168364659176020087952165638918061268575267291475952011856430101602642075531482887624732251122670451771482467974926059828539250516192821420046599321445753016320221794287155389130598057925825935278528081100470633397721617963789510135682807788798646773057101606774526103984631531865093534074395519749665833979809342679237307192931061120724781136825107792443664146771145867337591778535120399962825073809218965179785276883115313145048339410525273831038462173085356732189850526754920479317571275277014432018061848944042754430916600575909311065072498181003876817719235173239459325528842452187013234538900766174684011728186696628786711635422801856876456517947574086545639397994099771913950624039615929715497812424487950583210145767702928622342737045929679311375443812268263798567012515541284734518210344428396061588164061128796387872789682975482151993206969163667635988056911711289264295456371426344339349736816975314690714549812851790784129305201108684106785300702156332052675485554610574362523568612686203399311709049565931823604402930355612888104081683456507322437947783333969452738802155703814989997787789394619138557531518398995595638648860740936646223346847223831798899382429741014014368949145945125635306875238999895688819064529090713049899843444411990604995745271515956742365291465076305534783514987828450316169661008468353282827980870071001035893663432916187911815527253624095085108515802410836302695056535546632902134484832796266973887435628842467132182957495993861210512803355361225241996725521228994328309587155381554659305669294574007777651331102347195002573385449682344352507451368623055571133431032916006881317480006429224682845947175687466687834428132726153647761104405477508355005142088380226922264507305663852424651706404900343941817384498216902515836781829554360004213639157842204216104367953068636328029219245544469807062935959751473029782036136403141699047161863985173600601947261927671260475245275869665355103658807450059111458362350918076722755862727670345289264261674773341940147320825420252918660011327559564726212780087744275948153827410670373099219796797643784065892993432813875537724861928836083060658636203067785709976166652352078366741157026183656427623973655056157348955449777600555752737187437809730286755682828309595143259243748905895395719731923245282286757854058344698845002428648068613156681680302322565679085705136374714384391051446324659536701599577100470478247922304240424968983510063607720135456275949205568303328073131235444742007950671250771357611800642703592595261783370323898928657998859209558505609874739567866117908984706241152277030369133661832300387062383728667129190671250084803998494241601790375507205511975273180314708057272624554100718748879785040190588810775653921152099411361786296856818862503517821240409668449881846018746464939989521702722957864037155548665750500223537255117992283956524564137009104545516471247983285426394915419374618793017530575510749752465013167123217994386454166817860934907784176541156088117066624075110367736076042651780213512319923255176870420908698094869443698586435227151404719833519077083594284034980158776048350551165337731886432058947363615334096680456881177306524772803172816732662729306817033428751992275290482017916089109795554031539643537802387505132358554555357469368061562588470576725503321263704942589625638996148072600158967119362685737120984227385502231155649942416411761389676354917083246521691664815800887903575407700424029745768128209037439283690126744648801110548429041895962741410980340086280106008058086593680346935422927406101534318754075490803995485040432890163935109231959792434593905913481125592396380027958194939425920349961638437670872101098888363716259018254708218265894148247963529035587475146512891480456745034157393056852841936507961170041065974033980154236991735049577887543577947960854945088325472131197035222930746806045818846946588413811546867031105169079199581589916422129017510563524554422463370546117105858666984226847625778756431080524010981907802319872747470103372896824990866093629005299385042966354037983455958891585322020425498733412950904337402397430779277575141012633735686658264312779000837574026945652351421014309526410498710433469668431566811685096486951901903948187558113910742875424537112431040653677256707340946819575460301539283052390453366851666408406426797956926060041277626561323650469362717591808479235983279211850044459794981889914686596442565759683587299755623600955812604504884020349433158144966936708280188514470698080687598711301871531589200203744634606977050525372411459834942916685646912640641736813017405707216912177748453351491275577336517038080911557104545190055554092151351445906135038202112004477404711554660669882270182326609000166482312885401830797345093190758006667463545119926784518465988127434378923998129171357370237056225935344496664950691574657511977275863579895379763780684456785471337203451934777655307831167832908309606275831291920596307920894775801474143214513046776006536920983430510282730404184602705732448487749643046610443122615711176983017194090055015670244786811843969320123533300990015716589280423303535407645124169728639978911895497812415949621781375359201797768660819630820799729760994440062436463882508826826964242401606999916503562521972054776676148136429556799055397294848518672193601331468279969862331578968173523374456793663816075741564201881084938909949242304565391944851601198957314454161391619370787576574186140069785768900922971347890615010314745892265551932444854258244121191505184246262928393747123328442469402394450083662658491272092332958003370281096220703943724636601184580977656982482606193301458182644820994677372830490170364875565880228507674037558631979239365037497296241711340342372274817529303436531239090658269629940238158685025509219238910667975060166723821516088816073042980772839586884324096496291550089515892403521262864812759947488358108032258744883675696608018987216577781415909991483041290202909681455746268070585128492598227539007216710621189210653357770969684402508206771344516978219985306869734307983201868910068020883634147876970583297939204941823770294489244152747132640533289106909994859932699037653919612010756507942651024509202726608097303902922478127213511811712353349350054365861297002294214264440559695648790037320287196225504483507591723157888776868136702011349878475452592266742431191658448009023350952630157623836431174323284850038759985247470763858316771123712140889717774189052333399710261517677979223512956199570533519619949590505050243377027218440577046974646088661865833413720396599469783331556733658224722612197727077970394280922336961884333248014043171263381397863749913869036835151825579031305083736604571786715761204380494825940912721867198600136647242518637586666391447843023161866795044430784992644082736901792874937125195095537326983053366150408410331118918483635764624180867002653655335911604004053991617872655751722904467150758910124899380432716717045166868594903238022641766482618979969368967198545366341530240014288858597083552336050526910812439133056683982167371485302122882360215407099927036265682741970471552136438398592342238617087673577654783523760046844128888458239142628133341524017297938981151306724183333498098635351087559283882739533173418483429813627494660182653341970491996274387321227986740140738791547429966657107011467823764823879099139740701646120194647504175150288736360590062222492912184290229363210693888286805889972997249462600867114087625035842124860742936887776450057145567824873061575110925818343330350455611278225549209509747307504679134753935453656636790318591653139376840619895283379102258719448660213746576870921882510774683937759664489594867379847961396287794771337781947292390940071414359123706539071046032358661019390436558529703654125138601454140420348055798788868436010719412653459579892234202051308309001860974592471098289003474698672589013530378279793873586902402810966094495598772342057965953514998428434806360554373534003247557890972942727821280523999398944980415414298855451808345283890561925704940330798606259267798624278838325525751369544074429567870455701120320773186898906397200569174578511591460915296828703369037140357619335022347520354290267495342058744602856994340401616246383700523882229307455737157854612175420741044976995685857903900156068352446606721845899113908764144548096918746351067027038357748603574978422544787763127334946601717157839218571434111675229420366078997158237495037319327269832300384930839536912200594543716824673224980224818991793852647088943381124952019321121016836025552934034451567677644312075650882862133013973208992219841446433090446041071940069692582696974713956327243178202409090915018192111256019808174520560125578539332136611854627067985117748416289011270855470003518782486484792657952029060461300716384603888268719767494058860164538878414809647111058872271652672949084681361925534849556050124402096314594203141377323550410733049272198490338975754105576494740357910305619946894656705968875994006766225053490109768156534751442381602298486391121866039888889643991881599787626273123361046743972448086801295573544831818705146141506178815352195143313551996015497378219298049878596090364747721597389425926522063654818696546096234075133674142673660991260321300724922517766526909642500599249794116945771329306480256744521496111345957282727103397936933780596954088499553991354522495907560024180794199060227698527169752681461149474148810819143054652201885055739767243131600084065151229497924625913162445065393607560769670985862496627325417748534095619829219740704761261382543866127814024588878597523743343718910648091050662846926239589980512555484463302103076409811138264142671301049978814638968384947035893555552114801933764204918873604057999966224605614963856436550878918555577548291990642784823046547100423457520588566979433061932658238998605111187373062502319800301828006891506117216350323190484505693299022956383582310936199172574665664449342365817523915887732586148385489809312127362344203212780845313223430312739010826910317373039033573393015528946119059173484667511158792056579274053019878242753060870871045674039889011357942654458329250315304820164783603187777945145557564652930621934673103885205846457313100470529908389111749680304161555069469700118231427952097189681973983245825748325051186405822726339814534076985533791193137741118796462000994741209669958085653576201401899966938261915435777984924519575051126303614973048879582682789881745107549026073687259185426162685072956278301959774740437322835308319718963359502734093248334436611007293113126913676823956352008579733702767567613183188789242559121453123573573523405297533494849413463324833830300750697500988338011226977233119941628578346658399273688677844423084944528682263683264049839032124145152994523021813154490298519778700707330637711361342208198372375493474110974685724847195861709837813280381373973777467235324398694235746346026916918956575741379613556126487070422703186126106133206595049196612251657027483054641565460698176548190418504253913835600578479509749676421244689383401047099125738709851889709293013241612908237993238344361355426624426416668018469016171038480757189843172596819037370166030914912832866563754555123929574717676870264217919139411566971885928517256587562181929181123534906334384010459706673658139865732229064533324355459626300500540770116017496737862203111030338732678201283536859282702224289592348218989431604725776170798105660814073536643168952369170063669565678547688529523782372457328335897879950288289939779544778271727460395218001968045886416229734593387633359066181804835554427124860205182049794330291219802350594982819345021756300025145844401568563039195787890809912969894160679423304007091732750048406744653717615089761500423481811114851493362583173520269820340057120899032169359451457548275367803198254181540380650082497330655378276169686999101543100692443344138213976694238421244796146743976899300698266286521438244709157864435166506246804469999103875974459566987436039652985258473693170320764915032023183505138588648986879283559738788983661106795176295380136563199425148155202311123407986423246503064329451980186426429945897530894204492071785377729612257112089593845418282457403646081629750554406038753105741644224286961279193396618856465318004509491450100220548083975493900841726068442606412399838033595756965894197540233085293655397357578908561551317395212288146804205125717981174584378858355192372972716968669294108768306113934074516587121747638758174339031397065635366660806084629239908291232356542715818579152123479559827434922402223164796938472303250222408741412525582031679977792561015704607465108490135664239492476411530959040998280552308871789444627066247535364604066225319505487622396189491855386729892545062929116215572646599442535601399907714427337335408677458204561614452123909907414303750031789419303368086969053944695287803225937543209442846194459429409828425112567685374173635160826136310931388315351783313183529184301785372374330430881997417035560905407883835900434966828011400127348588621959315616421644754630409363465468661251856838225628436542647445470906038250101659592901070505860118992458506146744780071804969036599711722759055578573476869790705502429054922030002942382725986367037775936740256544692822714023741177182334661416099513660731686552186724480236131652962710327797239720012648295429282302043139657017318261213647325193886359897973929642465051249626300478953452881241667821577437400835638051673798891589105699301776955245694248589303578480232409366150928982061248650404834195816765991845018493177828577528120652861409655743761641195205161086402460002312652983285995981087206039646769284002714135269304085828802255044793018066497056880823062095021879787311330319102594480447137823713449674514885848580401486407347323493580834736235563607460089026660328467370552593625453138437993630121821303302980913788167581730451983088813285047684546216562685871677515653661811801386423143745931960805359094724289108465269359146650921676885012138970783865752470660188050590096641343176565698171121699754138194317828388116844864208527231989327275511782644374857657302374197931162638603540101800064740378423438492832514031515551867420576534996387087752765667423757353077006943033003724384071535945512375955386419780016236437183502966667844091413195555505635110492069456865962942943279496652329957104983719636053005460509299803880621838977690149755642102068955576001951647322458227413817216734994608825065078955305800814578438647442689564769727803835395509005012253977876810158820229954290347085383621831859128907457727192292709674301304395743592972350253154272515744511994534443121944243938352134120576571373390754832523737661877611941146095232524131290045551679820192311476606382868471787372066935110083687978441422513056233584207572442217041288208849705075181079735839071356387078774695142368280530551497549763652033733720168756967555391234614133312807342577075962480267900773372910100422093204788533142913600506124159657945426449874250781223592330885220538897483304555026400335487626771370546317516147423188307952542220654814126441031392843219993363789965645948866835044616780192146130375151598366263396366082954834386216227543502347080981818130333973537030118373187603821267258665674134440192003058989586621099403528263094163653491433351657895024632055805032120581428986147968844562863028417442063029549602637299877086329497912532657562919452306466076774134366220550225160101417389433140126982108721221072650963204096129008917542794229360608484666486348009960777647634226939483228059998100264016959275277402697613966112468686156921663767325922450924447104931556592447605798421445971592773397254070055062743148422988195158921293967544594414294270246174255536501887680409095979261487449324194902638429500120247019046424961153764116820873358735392517274905612848613274844732164278860605085088833310719587467465190423189513851866807168757928993519839468912906497041887898495849325283618952820734274096179994497947559299420980563258638514349571288418274945225423160476398568320885182253297436248730284633703881661146985785833020931194634282723874934222198098240196138579537012258520286784307912443253304848964183874208853458113431704747925190022359013181231766899656879911700140109912083255075634697725976381524370385919892271281682100553932208623550558746520255929348161834031943625127091702450598303202750066192621457751647064741607050933764954772831343626178498352241280410349024529756775963265087563904909847929960764766315698622277664743052724774798408117026814226604485959747304466781426355439892021271971232964320049237374014852895570249578217283430110639759508385128356386373476075032021390927596834839171601950371218455396911004157219533061941517553832314615759764501848472794938410676764519101308443452052399366246613678215729723164631685417750026845498500618938565230055050956339801187157227802100133795716722656441436890616574727655380187581977924490505991536839827184911432314917738268855821869685619649893279271739242169806196568396463512661477417801393074497659062536276325004999850269209332967636219962379774818228205147931610550640185548674348657914363278422704783925988177396715713235289241223230003925919799513403467628141695526235410572251670409689736658597247103021319064592036181661432673183985442145000996152366551544632285845174208562084795763752550141030963716365156899936542436722592377225923265929529221171965202742876966603520367848378808878804379738447608393914953646081334552498485868395564813933673026361528014156206958590549346967876337337501249944016128838142636036447231311142480930712987070902976377790565523404319170018073927953393658820119129428949986013529867016172666924656379792612520767744841558329799962004637070585161265184266518787144950105268832906812320560891620722349089640989314889769124779682080864762709626756664348185031081981162990673441491446793134610251935197696112607642021585323346040679685993159047759982012103957438828519932143348471432202260378510547845141732307469565108573436997032638829218103481834574766057428952057765232241692288856297910651621916904089119230409884438347883309415754310502107572033710360318759242108157757891213898731292641373968767219517583536858692824441274736797135391225322209423560255794519556966048370131758221651801330080344688044353120476873916539106930696219189208022695802176848240224646066566632112602141230497617639771083609371944550511537916309118288089881930772120027054389468180438762902233844508422016411609477142220815176461247199777198524572053657823348840558556768639430462899180803591702435611384806134345967819597943706376654437017497609800703617488371821860649047640290128762888544103520837898953803127698709920271876812796224575598741762857191390779996735009983909701909437713585692937352774980861609807204700543462910297625509683988348461951467260270655235789949746817553375525198604927853424190254880666394271674567112972092952433348946029486568379191959716568124851442464622345768683953134945577878949671001458038903677917243033637956035987182869251265904863828903513797050802479458529401119330645023027600039096348738817079586616918989794464429682588575465751854671244835211708436915740955226028899141894029446271757634462401196765881029886252325863143934297796980556772661419553544285129775863890213726037332177248986022704351136537946888113206906377785503744373748201531412008946943006844174591980192877904680233702215423061127917032895383701538395244283650733777742147280837305922940309023429488352105034342853819980849952958767230304790675675773396510655604922387904730228836367143713390302079350032836532073089729615656713558321464612194598660610859887243178717154115474738915244410162512955001526568255335727670877752672145127635853628408101894518696406666476804353724209503622964324802970412418292469238373020564797416026881890794844487918011214921443988188424895740340980323560667947995942120496536954409088993789862507034657500810417860505107234646801730833881455848980633962320524330071901151606492313578017494008616165310236424221238184386663964040997413072654368107582803869331439077623310782723682693706507840392061543299112363377486811712570054390196653150617847878316032586771948214460394874034596917543355438274543093246345090818098177072609931213893580212922563808903502880592969542439390535255557281262332527227342599318485438363271500796638549105462273552681561242336460108201216838914498307069724422472615994433327274996298907481764724254342096407638920356266986011458602917122096781770130011123066971305611466500082086024757286738443397289865961489992699753940698325943164799792455736848183178070783368103696706145433422518552228168836733621199394114824355034918134400648157080484398415992376364150702490941154914234474002991510449979024234826438705285534403423865784185349276741028517862411428962963914261185100336837467662098784815643142630313265299204526791836934506601838561834147923985595148657877168955748459943136223950966914034663364048942291345253389444794873353185135277519552227900840353009532164651435082588390790810190221519120857797704920371436083724811069091954825742691843309023623714526796625240740583519080550601496181325488487353596851857513492952771624874285683994106263868563251496279867127947172538375641673142721132722195162927385128555645977123438935263942925780458577629184093655972377597133048710038221186787906713684204711546805574841711618677325129060654190100769841777544263372835904265974096161000226485230528996563787379777116650705258371867697609343155455035724413163722810336006044573222489382498334679212222642782228535027590026000746006450079812980913938984191031712344978732588641997597410698448388482695101996196526619333346324605664136850986243200038191784695028542149122383559097508452251945153323339180372788109560252733344566694654785303713978019145778641786525188580804941452515881597921657350111087610999554400274336937384309421682875774151032437096182973961135023248190393632908100251559920116504350989482504829468067299734391174123053198755511524670939541411418759032130899104757860067493687558113943416188796129470114055925374877097470855367414549608642022673121676951099397603049150951057088641992740027102701868375461061844327176439715376308577970078706971213952618523276282543919220664453389100421929068662315898575613286497109010487050020618783516964997532788759834417262406910219413025497395434115418768834188602046965712898444030107586369110240140278319108525328976099367978187674237109598516675117381142849218365681730797440536162236957323425829802819781755648442460673260271783576646908364406277670333160217969486932839780895411250437156298624309691097284135345831268342739075106838027108419679091735555112479864656007894660781249746380097134755047618317213602466209597372012366064219704441142455502232876073244780308396552928715618888432556069959422827232697266088411039383382779584580037446134593803313510728777111512479560306871472418839171727824453725267727207251275848417180059479117847345482603633743570608467472840405053640875775279372570052213993979548689337308318462614819800659116024340622177371539321724312355996548713512000112458741401842570990576457380374968869224102463814419898153573807267786113895457641951260234667539784613554205702211704616450500761576358607465987890975839625703984292294530941907900040045305033961241926045030503634605351213658490100429793266973615950593943781115729628692643400793641889114991707063246322008346479471467139294458664849212965281702417079817117041351054683013695709601891723013184676242920934197561875694796995794162407160593603166544302756335418074813310402829808452528819210060908044600903202308543772827444834903591688605456705497694563339263728412224180039309559037206186622242715212575079272165994584201515237385844369946186753439934921897109388471000326105081085905198355564906282781284893975589528543539397537822716971305088609637560287425158135349078669226412748675811104401901411279157843550786124866196355471447278192876349610715090086453250080924671707816612856148164411028908232773229434837711321103541099115521742394868667667089651173681121687642643285678267860831613920017765354889145691381605107220689356337994848027941332036176593697473878949669897172556163655041228291118695101952305491105326941735897028904306979608054597200014857143643940146645356649134704406739110391778508431525965856097342944951214580173398056169178573740718334882927168674908974248589190831696737451352847801302608626972663474640191039919345748014332483353156368376053054709167839469292504235818985119433534532911128438536660178478960522776939584294517007868447352679172684901852731779748018510990277812149311743059431330603164657030711178715638844232189415424072632022035145957629504005204641248900855295512323766479947045491618380221539903302446854898972269994536580252170691711358482590140508674688099391553447379852355225685861746561585839447634598508481101896442674193078009681579152692439834808056972209351356725769085217864571340360197187357096742432331446074679099120544278628272207470436417347337458965528427678884263826804274527921007178319357051996770797945010410122551134515646408059812224145237307315240377571409551333945494019987608160480030062550669332884074300715572278868651933199803674427511853924761693922549575879643860572841916615262377542768254150552774320637951318987724990299852586817475360280086272191811971601303803436552088572128951585261046153201900449082796580994045460108813440784141699372864018004074991208014268772615319904904002637519722482836455262789808500953696328737087011660976458768864699177199375116071572141362279102736721991732817675056303685793376128517128826828707272105161427644098599129789604128320034221592440234252610616928885739169188809583260775470769340915496400497986121656522845989353555615754763773890195666221667873274908756250068723038996842584072880003455144615377658005032448696088904346914409985156918993451651929280811769105884521024544257958025037318605018742388282831000941398667339708035252053656753765569895468952316181591752604047141766825165086203293698494898149697671960583751835988051403710104309631314957026380501044292658214330619422446969910974965219759115707262531918832757490589651730434186868619763116186615310643055540009860757402741555153272666789794933811951622608877269758289211934166811489016737243176901553742807934065153260389416629525725453369834494910182237502723673941836751425357860210781018338626019047816016279954880575916741788138667602540488370233142747332837209026474847894677105780142736726301458866224013821775795697898481726839630750386587658352739338876015965951223687754700539556171509272271704313583966307074530479347217354453148386611505885043200498766821767083611006623522226786243311482253872696944927396022562093327774735047733980470455477275513109023350586155205843373936715932970159883420168618583175930000546015950297560352175622226905043170145837972201217628734491970279823750551412212297212463233190787210642342221764647825864296502041578514442821259351142302615589028559744574087348214180659346790387344450506083930124830928385242589609354703288953552045332035450842090647831030570178023915415363471268104546980865756659278221067742217552890816175885526022353168065146929496874229635784374326760884450084299210610185286329977433575377735460274114610544781811721227904803566497371252537834273610847599680058845416647026206482384988449296900222838211731979702340861052996017758853530398639475088833707191903103984545519143463929663358663319530116196864884351766078845753551829578390565997557251799100693789052584215006553535668429051492549142910682978476863376642938204414028400514831925224945553637762871038383672037166824454786337383650608426146821103919845893523008175653390429680778413970895264359201194719535751344965038063138957427773957294515606393837870331369372307514289457886202638205492392749488415429476037701173003716027046029405199596712623452014694573559570254270494205220548474035916348033988961170781098180729207551363257079827227386178762671627287898440728506362885919729911247933215561037641238087591887391750049274116258080949183723684430188455713827378013323538076721819374094622976247658241356415578056992259493609061873280183372031814675216424317220671964924677086556370850180226386563367361438832759600673011400644003064544183493079630034334179405727439651083677342824204149439289341962671458343028433752567128651022257843220016536002999352019411559760240402967194612766182934540343632724626438405225865249193526208945220232279047212069801052923629334206841131365145929119533587648173015011798719975181949949641271765093959713325262951626091094616089133423937135312432602852846851652783181140983553059427520194837039991456033360880661447963824119867576587311869630275742473902812994315440786991203809226545856955561127728956250372164335670408285404674473811773141388932503031475384280024590748168729028110934643284237214337875307389734429881937852683239676613350443983669619992026394747317160594018658565937280996095905008134858710270987946803979778513432387601142585761501390299512237807249183510781838229720293672409316895453310187790839793668099468293797321675415706993940457012811077244124757736214845868416004990745387508461668140888531177034012774917981911063353969808002199733531778645918694136838835304195897940198916566927887652057996955647421942404285729366995368142001415130548445355695286001436311317919864029018226612085940384553707872155820113213898344039808801476550714739469197891788619150646833222983636706289026002620379823464990245768276102822389116195038472259112774315472058023974829245208016495635429995657476416038047334246642138641845742064701892132273048560401873641846099716443886831951921796879986924609621738447463231016619706810057885722160650132722743908197015771377495977001419584324761932118575499442200883133160700923147918610592147347637821361102875283082333402618837529852994683222384895083446199535566648004196338857473242796370182743988315986588600253500504436739399399602762207174729701928758316310194859536779416060195602553995442218895755273243701019385665962823534121022080314356431595348035424866538889159262890645649169989931247291006469560537816055544900966507603613496291483244478472314704570344735103114163009327391357257599825893944705935937061991074443911542799195093411385460581647290779197583518096383489523045446534981528767397786548891827144674623076877454861750339941786684101153491976790002331046374199766712674792008825821552262490206281600828624103824541383025913426904642332829176017596813506385209420113968269424042667854084184999843190649531145673458421020981636759405778598441902274319048427821380794153792087205821371668785719044640686607363672485850625077834193936150479898229466644807823817380688008956409521102660139072843973523853715771973469184899055587760387046437221395897217072126588881162127059553475856192701036832589502362223857615030533087196124600633492726238303888489360070463134995898846834495162111192717665632489747387006088033174223954999512821532738499004674634728730459463800516075336659184430167741972457457852233293896550105621393743392113362264832128921465347926896303290032561338479967800024051814538170324287519081605854315105372918245989816561578730775484619399432797920331539525013475976942329684239612641169094668588922628179881078643659103529775848835172721011726488091714178686755130022466990370767633480904772984869089347819867399278913007132928909783729308938628395699932835322637451980949971480590918120395281982720565734993917486168135534424519837333473597999738848625028045620061558595198930114071164548029385125651300606403150818512196702324959366993412587982370085657868634292679448570596312520566420257935840471254385234094377664218991779295439706667636492286204843087872548313308130555620157501192015837230944393984334734440091324012552895835674874476013922893212871264725773208018349872074372484022796955911490466492575990845929959276863063597126441406484168836631775355600896